GlusterFS : Configuração no RHEL 7

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 :

Captura de Tela 2016-05-04 às 22.13.51

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 :

replicated-volume

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

Captura de Tela 2016-05-04 às 22.11.46

Do gfs-02 para o gfs-01

Captura de Tela 2016-05-04 às 22.28.56

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

Captura de Tela 2016-05-04 às 23.31.33

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}

Captura de Tela 2016-05-04 às 23.40.16

No servidor gfs-02 podemos ver que foi criado a replica dos dados

Captura de Tela 2016-05-04 às 23.41.10

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