Neste volume, os arquivos são distribuídos em conjuntos replicados. O número de bricks deve ser um múltiplo da contagem de réplicas. Além disso, a ordem em que especificamos os bricks é importante, pois os bricks adjacentes tornam-se réplicas uns dos outros.
Esse tipo de volume é usado quando é necessária alta disponibilidade de dados devido à redundância e escalonamento de armazenamento. Portanto, se houvesse oito blocos e a réplica contasse 2, os dois primeiros blocos se tornariam réplicas um do outro, os próximos dois e assim por diante.
Este volume é denotado como 4x2. Da mesma forma, se houvesse oito bricks e a contagem de réplicas fosse 4, então quatro bricks se tornariam réplicas um do outro e denotamos este volume como 2x4.
Vamos configurar um Storage Replicado e Distribuído, com 4 servidores (server1, server2, server3 e server4) 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ção:
cat /etc/hosts
192.168.0.199 server1
192.168.0.198 server2
192.168.0.197 server3
192.168.0.196 server4
Instale o Gluster nos 4 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 formatado e montado o
/dev/sdb de 100GB, ponto de montagem
/glusterfs.
Agora, em todos os 4 servidores, vamos criar um diretório em cada um deles:
server1:
# mkdir /glusterfs/vgrd1
server2:
# mkdir /glusterfs/vgrd2
server3:
# mkdir /glusterfs/vgrd3
server4:
# mkdir /glusterfs/vgrd4
Vamos configurar o nosso gluster no server1, para podemos usar o "for" que fica mais fácil:
# for i in server{2..4}; do gluster peer probe $i; done
Agora vamos criar o volume de réplica e distribuída:
# gluster volume create dist-repl-gfs replica 2 transport tcp \
server1:/glusterfs/vgrd1 server2:/glusterfs/vgrd2 \
server3:/glusterfs/vgrd3 server4:/glusterfs/vgrd4
Verifique o status:
E start o volume:
# gluster volume start dist-repl-gfs
Agora podes montar no client:
# mount.glusterfs server1,server2,server3,server4:/dist-repl-gfs /mnt/gluster
Vamos agora criar alguns arquivos de testes:
# cd /mnt/glusterfs
# for i in {1..10};do echo teste > "Teste${i}.txt"; done
Vamos verificar agora nos servidores:
server1:
server2:
server3:
server4:
Espero que ajude!
Guia de Referência