GlusterFS - Um Sistema de Arquivos Distribuídos

O GlusterFS é um sistema de arquivos de rede escalável adequado para tarefas intensivas em dados, como armazenamento em nuvem e streaming de mídia. O GlusterFS é um software gratuito e de código aberto.

[ Hits: 1.161 ]

Por: Daniel Lara Souza em 21/10/2020 | Blog: http://danniel-lara.blogspot.com/


Introdução e Volume de Glusterfs Distribuídos



O que é Gluster

Gluster é um sistema de arquivos escalável e distribuído que agrega recursos de armazenamento em disco de vários servidores em um único namespace global.

Vantagens:
  • Escalas para vários petabytes;
  • Lida com milhares de clientes;
  • Compatível com POSIX;
  • Pode usar qualquer sistema de arquivos ondisk, que suporte atributos estendidos;
  • Acessível usando protocolos padrão do setor como NFS e SMB;
  • Fornece replicação, cotas, geo-replicação, snapshots e detecção de bitrot;
  • Permite otimização para diferentes cargas de trabalho;
  • Código Aberto.

Volume de Glusterfs distribuídos

Este é o tipo de volume que é criado por padrão, se nenhum tipo de volume for especificado. Aqui, os arquivos são distribuídos em vários bricks no volume. Assim, o arquivo1 pode ser armazenado apenas em brick1 ou brick2, mas não em ambos. Portanto, não há redundância de dados.

O objetivo para tal volume de armazenamento é dimensionar facilmente e barato o tamanho do volume. No entanto, isso também significa que uma falha de brick levará à perda completa de dados e deve-se confiar no hardware subjacente para proteção de perda de dados.
Linux: GlusterFS um sistema de arquivos distribuídos
Vamos configurar agora um Storage Distribuído, com 2 servidores (server1, server2) como mostra a imagem acima.

Uso para essa configuração:
  • S.O.: CentOS 8.2
  • 01 Disco de 100GB

Antes, é importante adicionar nos hosts de cada server os nomes e IP de cada um. Exemplo em cada /etc/hosts, tem que ter exatamente essas configurações:

cat /etc/hosts
192.168.0.199   server1
192.168.0.198   server2


Instale o Gluster nos 2 servidores. Instale o repo do CentOS gluster8:

# dnf -y install centos-release-gluster8

Ajuste o repo:

# sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/CentOS-Gluster-8.repo

Instale:

# dnf --enablerepo=centos-gluster8,PowerTools -y install glusterfs-server

Inicie o serviço:

# systemctl enable --now glusterd

Ajuste as regras de firewall:

# firewall-cmd --add-service=glusterfs --permanent

Reload no firewalld:

# firewall-cmd --reload

Em cada servidor tenho já formatado e montado o /dev/sdb de 100GB, ponto de montagem /glusterfs.

Agora, em todos os 2 servidores vamos criar um diretório comum entre eles:

# mkdir /glusterfs/distribuido

Agora vamos configurar o nosso gluster.

O server1:

# gluster peer probe server2
# gluster volume create vol_distributed transport tcp \
server1:/glusterfs/distribuido \
server2:/glusterfs/distribuido
Linux: GlusterFS um sistema de arquivos distribuídos
Podes verificar o status com os comandos:

# gluster volume start vol_distributed
# gluster volume info
Linux: GlusterFS um sistema de arquivos distribuídos
Vamos montar agora, instale o pacote "glusterfs-fuse". E para montar:

# mount.glusterfs server1,server2:/vol_distributed /mnt/gluster/
Linux: GlusterFS um sistema de arquivos distribuídos
Bom, eu criei alguns arquivos para mostrar:
Linux: GlusterFS um sistema de arquivos distribuídos
Agora vamos ver no server1:
Linux: GlusterFS um sistema de arquivos distribuídos
No server2:
Linux: GlusterFS um sistema de arquivos distribuídos
Tem a maneira mais elegante de se montar, usando um arquivo de conf. Crie o diretório "glusterfs" no seu /etc/, isso se não existir, é claro (geralmente, em máquinas client não tem):

# mkdir /etc/glusterfs

E crie um arquivo e edita o mesmo:

# vim /etc/glusterfs/vol_distributed.vol

E adicione o conteúdo:

volume remote1
  type protocol/client
  option transport-type tcp
# aqui vai o nome do server1
  option remote-host server1
# aqui vai o caminho completo onde foi criado o volume o gluster no server1
  option remote-subvolume /glusterfs/distribuido
end-volume

volume remote2
  type protocol/client
  option transport-type tcp
# aqui vai o nome do server2
  option remote-host server2
# aqui vai o caminho completo onde foi criado o volume o gluster no server1
  option remote-subvolume /glusterfs/distribuido
end-volume

volume replicate
  type cluster/replicate
  subvolumes remote1 remote2
end-volume

volume writebehind
  type performance/write-behind
  option window-size 1MB
  subvolumes replicate
end-volume

volume cache
  type performance/io-cache
  option cache-size 512MB
  subvolumes writebehind
end-volume

Salve e rode o comando pra montar:

# mount.glusterfs /etc/glusterfs/vol_distributed.vol /mnt/gluster
Linux: GlusterFS um sistema de arquivos distribuídos
Como informado, essa forma é um pouco arriscada. Caso tenha problema em um server e não tiver backup, é um problemão!

    Próxima página

Páginas do artigo
   1. Introdução e Volume de Glusterfs Distribuídos
   2. Volume de Glusterfs Replicados
   3. Volume Glusterfs Replicado e Distribuído
Outros artigos deste autor

FreeIPA - uma solução integrada de identidade e autenticação para ambientes de rede Linux/UNIX

Servidor Bacula com Fedora Server 21

Docker Swarm no CentOS 8

Bacula + Webacula + Bacula-web + bat no CentOS 6.3

ISPConfig 3 no CentOS 6.4 64 bits

Leitura recomendada

Desvendando os filesystems

Replicando e distribuindo armazenamento de arquivos através de quatro servidores usando Cluster (GlusterFs) no Debian Lenny

USB-ZIP - Emulando Zip Drive em Pendrive

Trabalhando com init no Debian

Dificuldade para instalar o Ubuntu em uma placa mãe com UEFI?

  
Comentários
[1] Comentário enviado por michelreis em 22/10/2020 - 11:12h

Parabéns Daniel.

[2] Comentário enviado por mauricio123 em 24/10/2020 - 22:47h


Muito bom artigo.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]

[3] Comentário enviado por danniel-lara em 26/10/2020 - 08:42h


[1] Comentário enviado por michelreis em 22/10/2020 - 11:12h

Parabéns Daniel.


Obrigado

[4] Comentário enviado por danniel-lara em 26/10/2020 - 08:43h


[2] Comentário enviado por mauricio123 em 24/10/2020 - 22:47h


Muito bom artigo.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]

Obrigado


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts