GlusterFs

4,257 views
4,140 views

Published on

Aula sobre o sistema de arquivos distribuído GlusterFS. Nesta aula é apresentado o GlusterFS e como realizar a configuração de um AFR e um cliente.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,257
On SlideShare
0
From Embeds
0
Number of Embeds
1,106
Actions
Shares
0
Downloads
130
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

GlusterFs

  1. 1. Frederico Madeira LPIC­1, LPIC­2, CCNA fred@madeira.eng.br www.madeira.eng.br Sistemas Distribuídos Sistemas de Arquivos Distribuídos - GlusterFS
  2. 2. GlusterFS É um sistema de arquivo open source, que trabalha em cluster e é capaz de escalar diversos petabytes e gerenciar milhares de clientes. - GlusterFS User Guide at gluster.com
  3. 3. Funcionalidades Principais funcionalidades, implementadas através de tradutores: ✔ Replicação e espelhamento em nível de arquivos ✔ Striping em nível de arquivos ✔ Load balancing em nível de arquivos ✔ Volume failover ✔ Scheduling e disk caching ✔ Storage quotas
  4. 4. Configuração ✔ Arquitetura Modular ➔ Pode ser configurado em modo standalone (1 servidor) ➔ O sistema pode crescer ao tempo de acordo com a necessidade
  5. 5. Características Importantes ✔ Sistema de arquivos distribuído e descentralizado ✔ Agregação de múltiplas unidades de armazenamento remotas (bricks) em um único volume ✔ Funcionalidades implementadas através de tradutores (translators) ✔ Descarta a necessidade da utilização de servidores de metadados
  6. 6. Arquitetura AFR = Automatic File Replication
  7. 7. Configuração de um AFR ✔ Etapa 1: Configuração dos dois servidores ✔ Etapa 2: Configuração do client
  8. 8. Configuração do Servidor Instalar os pacotes abaixo: ✔ ✗ glusterfs-server-2.0.8-1.el5.i386.rpm ✗ glusterfs-common-2.0.8-1.el5.i386.rpm [root@server3 ~]# rpm -ivh glusterfs-server-2.0.8-1.el5.i386.rpm [root@server3 ~]# rpm -ivh glusterfs-common-2.0.8-1.el5.i386.rpm [root@server3 ~]# cd /etc/glusterfs/ [root@server3 glusterfs]# cp glusterfsd.vol glusterfsd.vol_orig [root@server3 glusterfs]# cat /dev/null > /etc/glusterfs/glusterfsd.vol [root@server3 glusterfs]# vi /etc/glusterfs/glusterfsd.vol
  9. 9. Configuração do Servidor 1 Arquivo de configuração: glusterfsd.vol ## Definindo os volumes volume posix Definições da pasta que será type storage/posix replicada com o outro servidor, option directory /opt/data/export chamada de posix end-volume volume brick1 Implementação da feature de type features/posix-locks locks (trava de arquivos) para subvolumes posix o volume posix, gerando o end-volume volume brick1 volume brick2 type protocol/client Declarando o volume brick1 option transport-type tcp/client do servidor 2 e a forma de option remote-host 192.168.15.37 comunicação com ele. Aqui option remote-subvolume brick1 será chamado de brick2 end-volume
  10. 10. Configuração do Servidor 1 Arquivo de configuração: glusterfsd.vol ## Definindo operação do AFR volume replicate Define um novo volume type cluster/replicate chamado replicate que fará a subvolumes brick1 brick2 replicação do brick1 no brick2 end-volume volume server type protocol/server Recurso que o cliente irá option transport-type tcp/server utilizar. Neste caso o nome do subvolumes replicate volume será server option auth.ip.brick1.allow 192.168.15* option auth.ip.replicate.allow 192.168.15* option auth.ip.server.allow 192.168.15* end-volume
  11. 11. Configuração do Servidor 2 Arquivo de configuração: glusterfsd.vol ## Definindo os volumes volume posix Definições da pasta que será type storage/posix replicada com o outro servidor, option directory /opt/data/export chamada de posix end-volume volume brick1 Implementação da feature de type features/posix-locks locks (trava de arquivos) para subvolumes posix o volume posix, gerando o end-volume volume brick1 volume brick2 type protocol/client Declarando o volume brick1 option transport-type tcp/client do servidor 1 e a forma de option remote-host 192.168.15.40 comunicação com ele. Aqui option remote-subvolume brick1 será chamado de brick2 end-volume
  12. 12. Configuração do Servidor 2 Arquivo de configuração: glusterfsd.vol ## Definindo operação do AFR volume replicate Define um novo volume type cluster/replicate chamado replicate que fará a subvolumes brick1 brick2 replicação do brick1 no brick2 end-volume volume server type protocol/server Recurso que o cliente irá option transport-type tcp/server utilizar. Neste caso o nome do subvolumes replicate volume será server option auth.ip.brick1.allow 192.168.15* option auth.ip.replicate.allow 192.168.15* option auth.ip.server.allow 192.168.15* end-volume
  13. 13. Configuração do Servidor 1 Arquivo de configuração: glusterfsd.vol Após término das configurações em ambos servidores, será necessário iniciar/reiniciar o serviço do glusterfs. [root@server3 glusterfs]# /etc/init.d/glusterfsd restart Observe o arquivo de log: [root@server3 glusterfs]# tail -f /var/log/glusterfs/-etc-glusterfs-glusterfsd.vol.log [2010-02-22 18:30:02] W [server-protocol.c:7569:get_auth_types] server: assuming 'auth.ip' to be 'auth.addr' [2010-02-22 18:30:02] W [server-protocol.c:7569:get_auth_types] server: assuming 'auth.ip' to be 'auth.addr' [2010-02-22 18:30:02] W [server-protocol.c:7569:get_auth_types] server: assuming 'auth.ip' to be 'auth.addr' [2010-02-22 18:30:02] N [afr.c:2194:notify] replicate: Subvolume 'brick1' came back up; going online. [2010-02-22 18:30:02] N [afr.c:2194:notify] replicate: Subvolume 'brick1' came back up; going online. [2010-02-22 18:30:02] N [glusterfsd.c:1306:main] glusterfs: Successfully started [2010-02-22 18:30:02] N [client-protocol.c:5733:client_setvolume_cbk] brick2: Connected to 192.168.15.37:6996, attached to remote volume 'brick1'. [2010-02-22 18:30:02] N [client-protocol.c:5733:client_setvolume_cbk] brick2: Connected to 192.168.15.37:6996, attached to remote volume 'brick1'.
  14. 14. Configuração do Cliente Instalar os pacotes abaixo: ✔ ✗ glusterfs-client-2.0.8-1.el5.i386.rpm ✗ glusterfs-common-2.0.8-1.el5.i386.rpm [root@server3 ~]# rpm -ivh glusterfs-client-2.0.8-1.el5.i386.rpm [root@server3 ~]# rpm -ivh glusterfs-common-2.0.8-1.el5.i386.rpm [root@server3 ~]# cd /etc/glusterfs/ [root@server3 glusterfs]# cp glusterfs.vol glusterfs.vol_orig [root@server3 glusterfs]# cat /dev/null > /etc/glusterfs/glusterfs.vol [root@server3 glusterfs]# vi /etc/glusterfs/glusterfs.vol
  15. 15. Configuração do(s) Cliente(s) Arquivo de configuração: glusterfs.vol ## Definindo o volume Definições do servidor/volume volume brick que será usado por este type protocol/client cliente. O nome do volume option transport-type tcp/client será server. option remote-host 192.168.15.40 option remote-subvolume server end-volume
  16. 16. Configuração do Cliente Após término das configurações do cliente, será necessário montar o volume remoto. No nosso caso, vamos montar na pasta /media/storage [root@server3 glusterfs]# mount -t glusterfs /etc/glusterfs/glusterfs.vol /media/storage/ Observe o arquivo de log do servidor: [root@server3 glusterfs]# tail -f /var/log/glusterfs/-etc-glusterfs-glusterfsd.vol.log [2010-02-22 18:30:03] N [server-protocol.c:7065:mop_setvolume] server: accepted client from 192.168.15.33:1021 [2010-02-22 18:30:03] N [server-protocol.c:7065:mop_setvolume] server: accepted client from 192.168.15.33:1014 [2010-02-22 18:30:11] N [server-protocol.c:7065:mop_setvolume] server: accepted client from 192.168.15.37:1023 [2010-02-22 18:30:12] N [server-protocol.c:7065:mop_setvolume] server: accepted client from 192.168.15.37:1022
  17. 17. Testes 1. Acesse a pasta /media/storage no cliente e crie um arquivo/diretório. Verifique nos dois servidores, na pasta /opt/data/export se os arquivos/diretórios criados estão presentes 2. Pare o serviço glusterfs no servidor 2 e refaça os testes acima. Observe que os dados serão gravados apenas no servidor 1. Inicie novamente o serviço no servidor 2 e em seguida liste o diretório /media/storage no cliente. Verifique se os servidores sincronizaram as informações.
  18. 18. Frederico Madeira LPIC­1, LPIC­2, CCNA fred@madeira.eng.br www.madeira.eng.br Sistemas Distribuídos Sistemas de Arquivos Distribuídos - GlusterFS

×