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: 16.057 ]

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

Instalando Fedora CoreOS no KVM

Ansible AWX

Instalando o oVirt 4.3 Single Host

CloudStack no CentOS7 com KVM

Instalação do Fedora Workstation 33

Leitura recomendada

Explorando NFS mal configurado

Acessando partições NTFS no Linux

Configuração do Samba no Debian Server

Trilha Filesystems Linux - Operação de Sistemas de Arquivos

Diferenças entre o sistema de arquivos do Windows e Linux

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

Parabéns Daniel.

[2] Comentário enviado por maurixnovatrento 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

[5] Comentário enviado por Carlos_Cunha em 19/02/2021 - 14:13h

Parabéns pelo Artigo!
Uma duvida que sempre tive(e tenho) é por exemplo, tenho um servidor que ja possui 100G de dados, e resolvi implementar o GlusterFS em modo replicação, como fazer ele replicar essa dados já existentes ?
Procurei e nunca achei, dados novos ele replica, mas o dados existente antes do Glusterfs é meu problema.



#-------------------------------------------------------------------------------------#
"Falar é fácil, me mostre o código." - Linus Torvalds
#-------------------------------------------------------------------------------------#


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts