Os volumes dispersos são baseados em códigos de eliminação. Ele distribui os dados codificados dos arquivos, com alguma redundância adicionada, em vários blocos no volume. Você pode usar volumes dispersos para ter um nível configurável de confiabilidade com desperdício mínimo de espaço. O número de blocos redundantes no volume pode ser decidido pelos clientes durante a criação do volume. Os bricks redundantes determinam quantos tijolos podem ser perdidos sem interromper o funcionamento do volume.
Nesse exemplo vamos usar 3 máquinas com:
- Centos 8 Stream
- 30 GB - S.O
- 100 GB - GlusterFS
- 2 x Network (uma rede somente para o GlusterFS)
- 192.168.0.x :: rede local
- 10.10.10.x :: rede para GlusterFS
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
10.10.10.1 glusterfs1
10.10.10.2 glusterfs2
10.10.10.3 glusterfs3
Instale o Gluster nos 3 servidores. Instale o repositório do CentOS Gluster9:
# dnf -y install centos-release-gluster9
Ajuste o repositório:
# sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/CentOS-Gluster-9.repo
Instale:
# dnf --enablerepo=centos-gluster9,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 3 servidores vamos criar um diretório comum entre eles:
# mkdir /glusterfs/disperso
Vamos configurar o nosso Gluster.
O server1:
# gluster peer probe glusterfs2
# gluster peer probe glusterfs3
Vamos fazer com 3 hosts onde teremos uma redundância, mas podemos fazer com 6 hosts onde podemos ter duas redundâncias. Fica a sua escolha.
# gluster volume create vol_disperse disperse 3 redundancy 1 transport tcp glusterfs1:/glusterfs/disperso glusterfs2:/glusterfs/disperso glusterfs3:/glusterfs/disperso force
Podes verificar o status com os comandos:
# gluster volume start vol_disperse
# gluster volume info
Vamos montar agora, instale o pacote "glusterfs-fuse". E para montar:
# mount.glusterfs glusterfs1,glusterfs2,glusterfs3:/vol_disperse /mnt/glusterfs
Após copiar um arquivo para o gluster vamos ver como fica em cada host: