GlusterFS é um sistema de arquivos distribuído e descentralizado mantido pela Redhat e sua comunidade.
O GlusterFS agrega múltiplas unidades de armazenamento remotas em um único volume. As unidades de armazenamento, chamadas bricks, são distribuídas pela rede em um único sistema de arquivos paralelo, permitindo uma escalabilidade de milhares de bricks e vários petabytes de armazenamento. Os clientes, que também podem ser simultaneamente servidores de dados, montam os diretórios compartilhados pelos servidores, tendo assim acesso a uma parte ou a todo o conteúdo compartilhado.
Tipos de Volumes :
Volumes Distribuídos
Volumes distribuídos primam por espalhar aleatoriamente os arquivos armazenados pelos diversos bricks que fazem parte do volume Gluster. Como resultado o tamanho do volume compreende a soma dos tamanhos dos bricks, ou seja, quatro bricks de 80GB cada um, resultam em um volume de 320GB disponíveis. Utiliza-se esta técnica quando existe uma alta demanda por escalabilidade, ou seja, o armazenamento tende a crescer muito com o passar do tempo, deixando que a garantia da integridade dos dados seja efetuada por uma camada de hardware ou software especializado.
Volumes Replicados
Replicação de volumes e a abordagem que diz respeito a composto de diversos bricks participantes do volume Gluster possuem dados idênticos. Utiliza-se este tipo de volume, em ambientes que demandem alta disponibilidade ou confiabilidade dos dados.
Volumes Fracionados
Entende-se por volumes fracionados ou em inglês stripper aqueles volumes que possuem arquivos segmentados por todos os bricks que fazem parte do volume. Vantagens na utilização desta técnica se aplicam em ambientes que demandam um grande numero de acesso concorrente a arquivos de grande tamanho.
Volumes Fracionados e Distribuídos
Neste tipo de volume os arquivos são fracionados e distribuídos pelos nós que compõe o cluster. Os melhor resultado da utilização desta abordagem e quando necessita-se que o armazenamento seja escalável e o acesso concorrente a arquivos de tamanho grande e um ponto crítico.
Volumes Replicados e Distribuıdos
Neste modo de criação de volumes os arquivos são distribuídos entre bricks replicados do volume. Se utilizam este tipo de volume em ambientes que o armazenamento seja es calável e ao mesmo tempo ofereça um alto nível de confiabilidade. Volumes distribuídos e replicados oferecem um melhor desempenho de leitura de dados.
Volumes Distribuídos, Fracionados e Replicados
Nos volumes distribuídos, fracionados e replicados ocorre uma distribuição fracionada dos dados nos bricks replicados do cluster. Utiliza-se esta técnica em ambientes de alto acesso concorrente, onde o ocorre acesso paralelo a arquivos muito grandes, primando pelo desempenho.
Na tabela abaixo podemos ver as dependências entre o tipo e tamanho :
No link abaixo podemos encontrar um detalhamento maior sobre cada conceito explicado :
http://gluster.readthedocs.io/en/latest/Quick-Start-Guide/Architecture/
1) Ambiente :
Este ambiente será configurado para ser um storage com o Volume replicado :
10.0.0.30 – gfs-01 – Gluster Server 01
10.0.0.31 – gfs-02 – Gluster Server 02
Cada servidor tem 1 disco a mais de 4 Gbs para configuração do storage.
2) Instalação dos Servers :
Habilitando o repositório
rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-6.noarch.rpm wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/glusterfs-epel.repo
Instalando o Gluster nos servidores :
yum -y install glusterfs-server
Inicie o serviço :
systemctl start glusterd.service systemctl enable glusterd.service
Preparando o ponto de montagem e os discos
mkdir -p /data mkfs.xfs /dev/sdb1 echo '/dev/sdb1 /data xfs defaults 1 2' >> /etc/fstab mount /data
Obs : para configuração dos servidores o Firewalld e o SELINUX estão desabilitados
3) Configuração dos Discos :
Configure a relação de confiança entreo o servidor 1 e 2 com o comando abaixo
gluster peer probe <SERVER>
Do gfs-01 para o gfs-02
Do gfs-02 para o gfs-01
Criando o volume replica
gluster volume create replica replica 2 gfs-01:/data/brick1/rep1 gfs-02:/data/brick1/rep1
Dando permissão aos hosts Gluster server
gluster volume set replica auth.allow 10.0.0.30,10.0.0.31
Iniciando o volume
gluster volume start replica
Confirmando o volume com o comando gluster volume info
Crie em cada servidor o diretório storage para montar o volume
mkdir -p /storage/volume1
Montando no servidor gfs-01
mount -t glusterfs gfs-01:/replica /storage/volume1/
Montando no servidor gfs-02
mount -t glusterfs gfs-02:/replica /storage/volume1/
Modelo para adicionar no fstab
gfs-01:/VOLUME /MountPoint glusterfs defaults,_netdev,backupvolfile-server=gfs-02 0 0
4) Testes Finais :
Rodei o comando abaixo para gerar um numero grande de arquivos no /storage/volume1
touch {1..1000}
No servidor gfs-02 podemos ver que foi criado a replica dos dados
Referências :
http://www.mundodocker.com.br/persistindo-dados-glusterfs/
http://tutoriaisgnulinux.com/?p=12638
http://gluster.readthedocs.io/en/latest/Quick-Start-Guide/Architecture/
https://www.digitalocean.com/community/tutorials/automating-the-deployment-of-a-scalable-wordpress-site