GlusterFS · 4 min read · Feb 04, 2026
Criando Um Servidor de Armazenamento Autônomo Semelhante ao NFS Com GlusterFS No Fedora 13
Este tutorial mostra como configurar um servidor de armazenamento autônomo no Fedora 13. Em vez de NFS, usarei o GlusterFS aqui. O sistema cliente poderá acessar o armazenamento como se fosse um sistema de arquivos local. O GlusterFS é um sistema de arquivos em cluster capaz de escalar para vários petabytes. Ele agrega vários blocos de armazenamento sobre Infiniband RDMA ou TCP/IP em um grande sistema de arquivos de rede paralelo. Os blocos de armazenamento podem ser feitos de qualquer hardware comum, como servidores x86_64 com RAID SATA-II e HBA Infiniband.
Não dou nenhuma garantia de que isso funcionará para você!
1 Nota Preliminar
Neste tutorial, uso dois sistemas, um servidor e um cliente:
- server1.example.com: endereço IP 192.168.0.100 (servidor)
- client1.example.com: endereço IP 192.168.0.101 (cliente)
Ambos os sistemas devem ser capazes de resolver o nome do host do outro sistema. Se isso não puder ser feito através do DNS, você deve editar o arquivo /etc/hosts para que ele contenha as seguintes duas linhas em ambos os sistemas:
vi /etc/hosts| [...] 192.168.0.100 server1.example.com server1 192.168.0.101 client1.example.com client1 [...] |
(É também possível usar endereços IP em vez de nomes de host na configuração a seguir. Se você preferir usar endereços IP, não precisa se preocupar se os nomes dos hosts podem ser resolvidos ou não.)
2 Configurando O Servidor GlusterFS
server1.example.com:
O servidor GlusterFS está disponível como um pacote para o Fedora 13, portanto, podemos instalá-lo da seguinte forma:
yum install glusterfs-serverO comando
glusterfs --versiondeve agora mostrar a versão do GlusterFS que você acabou de instalar (2.0.9 neste caso):
[root@server1 ~]# glusterfs --version
glusterfs 2.0.9 built on Apr 11 2010 20:39:55
Repository revision: v2.0.9
Copyright (c) 2006-2009 Gluster Inc.
GlusterFS vem com ABSOLUTAMENTE NENHUMA GARANTIA.
Você pode redistribuir cópias do GlusterFS sob os termos da Licença Pública Geral GNU.
[root@server1 ~]# Em seguida, criamos alguns diretórios:
mkdir /data/
mkdir /data/export
mkdir /data/export-nsAgora criamos o arquivo de configuração do servidor GlusterFS /etc/glusterfs/glusterfsd.vol (fazemos um backup do arquivo original /etc/glusterfs/glusterfsd.vol primeiro) que define qual diretório será exportado (/data/export) e qual cliente está autorizado a se conectar (192.168.0.101 = client1.example.com):
cp /etc/glusterfs/glusterfsd.vol /etc/glusterfs/glusterfsd.vol_orig
cat /dev/null > /etc/glusterfs/glusterfsd.vol
vi /etc/glusterfs/glusterfsd.vol| volume posix type storage/posix option directory /data/export end-volume volume locks type features/locks option mandatory-locks on subvolumes posix end-volume volume brick type performance/io-threads option thread-count 8 subvolumes locks end-volume volume server type protocol/server option transport-type tcp option auth.addr.brick.allow 192.168.0.101 # Edite e adicione a lista de clientes permitidos separados por vírgula aqui subvolumes brick end-volume |
Por favor, note que é possível usar curingas para os endereços IP (como 192.168.*) e que você pode especificar vários endereços IP separados por vírgula (por exemplo, 192.168.0.101,192.168.0.102).
Depois, criamos os links de inicialização do sistema para o servidor GlusterFS e o iniciamos:
chkconfig --levels 35 glusterfsd on
/etc/init.d/glusterfsd start3 Configurando O Cliente GlusterFS
client1.example.com:
Há um pacote rpm do cliente GlusterFS para o Fedora 13, mas o problema com ele é que você receberá erros como df: /mnt/glusterfs': Software caused connection abort ou df:/mnt/glusterfs’: Transport endpoint is not connected quando tentar acessar o compartilhamento GlusterFS. É por isso que construímos o cliente GlusterFS a partir das fontes para evitar esses problemas.
Antes de construirmos o cliente GlusterFS, instalamos seus pré-requisitos:
yum groupinstall 'Development Tools'yum groupinstall 'Development Libraries'yum install libibverbs-devel fuse-develEm seguida, baixamos as fontes do GlusterFS 2.0.9 (por favor, note que esta é a mesma versão que está instalada no servidor!) e construímos o GlusterFS da seguinte forma:
cd /tmp
wget http://ftp.gluster.com/pub/gluster/glusterfs/2.0/LATEST/glusterfs-2.0.9.tar.gz
tar xvfz glusterfs-2.0.9.tar.gz
cd glusterfs-2.0.9
./configureNo final do comando ./configure, você deve ver algo como isto:
[...]
GlusterFS configure summary
===========================
FUSE client : yes
Infiniband verbs : yes
epoll IO multiplex : yes
Berkeley-DB : yes
libglusterfsclient : yes
argp-standalone : no
[root@client1 glusterfs-2.0.9]#make && make install
ldconfigVerifique a versão do GlusterFS depois (deve ser 2.0.9):
glusterfs --version[root@client1 glusterfs-2.0.9]# glusterfs --version
glusterfs 2.0.9 built on Sep 27 2010 19:20:46
Repository revision: v2.0.9
Copyright (c) 2006-2009 Gluster Inc.
GlusterFS vem com ABSOLUTAMENTE NENHUMA GARANTIA.
Você pode redistribuir cópias do GlusterFS sob os termos da Licença Pública Geral GNU.
[root@client1 glusterfs-2.0.9]# Em seguida, criamos os seguintes dois diretórios:
mkdir /mnt/glusterfs
mkdir /etc/glusterfsEm seguida, criamos o arquivo /etc/glusterfs/glusterfs.vol:
vi /etc/glusterfs/glusterfs.vol| volume remote type protocol/client option transport-type tcp option remote-host server1.example.com # pode ser IP ou nome do host option remote-subvolume brick end-volume volume writebehind type performance/write-behind option window-size 4MB subvolumes remote end-volume volume cache type performance/io-cache option cache-size 512MB subvolumes writebehind end-volume |
Certifique-se de usar o nome do host ou endereço IP correto na linha option remote-host!
É isso! Agora podemos montar o sistema de arquivos GlusterFS em /mnt/glusterfs com um dos seguintes dois comandos:
glusterfs -f /etc/glusterfs/glusterfs.vol /mnt/glusterfsou
mount -t glusterfs /etc/glusterfs/glusterfs.vol /mnt/glusterfsAgora você deve ver o novo compartilhamento nas saídas de…
mount[root@client1 glusterfs-2.0.9]# mount
/dev/mapper/vg_client1-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/etc/glusterfs/glusterfs.vol on /mnt/glusterfs type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)
[root@client1 glusterfs-2.0.9]#… e…
df -h[root@client1 glusterfs-2.0.9]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_client1-lv_root
29G 2.6G 25G 10% /
tmpfs 185M 0 185M 0% /dev/shm
/dev/sda1 194M 23M 161M 13% /boot
/etc/glusterfs/glusterfs.vol
29G 2.7G 25G 10% /mnt/glusterfs
[root@client1 glusterfs-2.0.9]#Em vez de montar o compartilhamento GlusterFS manualmente no cliente, você pode modificar /etc/fstab para que o compartilhamento seja montado automaticamente quando o cliente inicializa.
Abra /etc/fstab e acrescente a seguinte linha:
vi /etc/fstab| [...] /etc/glusterfs/glusterfs.vol /mnt/glusterfs glusterfs defaults 0 0 |
Para testar se sua modificação no /etc/fstab está funcionando, reinicie o cliente:
rebootApós a reinicialização, você deve encontrar o compartilhamento nas saídas de…
df -h… e…
mount4 Links
- GlusterFS: http://www.gluster.org/
- Fedora: http://fedoraproject.org/
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.