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-server

O comando

glusterfs --version

deve 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-ns

Agora 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 start

3 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-devel

Em 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  
./configure

No 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  
ldconfig

Verifique 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/glusterfs

Em 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/glusterfs

ou

mount -t glusterfs /etc/glusterfs/glusterfs.vol /mnt/glusterfs

Agora 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:

reboot

Após a reinicialização, você deve encontrar o compartilhamento nas saídas de…

df -h

… e…

mount

4 Links

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.