Por Gabriel Albuquerque*

Geralmente nos deparamos com uma necessidade de diversas máquinas de nosso front-end ter acesso a arquivos. Porém, em um ambiente com HA, temos que ter garantia que não perderemos estes arquivos. Para isso realizamos diversos testes com ferramentas de sistemas distribuídos, sendo o GlusterFS a ferramenta que mais se destacou no processo, visto a  facilidade em sua configuração e resultado. Abaixo mostro a configuração em 2 máquinas; nelas teremos replicação destes arquivos:

O ambiente utilizado para criação desta POC foi a AWS, e nela utilizamos um ELB com sticksession habilitado e 2 máquinas servindo como front-end da aplicação.

ELB: elb-glusterfs-123456789.sa-east-1.elb.amazonaws.com

Instances:

                   

        ILEGRA-GLUSTERFS-POC-01

                    ip: 172.23.131.184

                    az: sa-east-1a

        ILEGRA-GLUSTERFS-POC-02

                    ip: 172.23.132.184

                    az: sa-east-1c

SG: ILEGRA-GLUSTERFS-POC

       

## Preparando o SO ##

Com o ambiente definido, Irei preparar o repositório e disco. Para esta POC utilizo um RedHat 6.8, crio o repositório para o GlusterFS e realizo o procedimento abaixo:

vim /etc/yum.repos.d/gluster.repo

        [rhel6.8-gluster]

        name=RHEL 6.8 gluster repository

        baseurl=http://buildlogs.centos.org/centos/6/storage/x86_64/gluster-3.8/

        gpgcheck=0

        enabled=1

# confirme que o repositório criado acima está aparecendo com o comando abaixo

yum repolist

# atualize

yum update

# instale o GlusterFS, ele mesmo ficará encarregado de instalar as dependências

yum install glusterfs-server -y

# pare o iptables

service iptables stop

chkconfig iptables off

# inicie o serviço do gluster

service glusterd start

# deixa o gluster on para os runlevels default

chkconfig glusterd on

#Com o serviço do Gluster no ar, iremos “Permitir” os ips internos para entrarem no cluster do GlusterFS:

gluster peer probe 172.23.131.184

gluster peer probe 172.23.132.184

#Agora iremos verificar qual o nome do disco que iremos preparar para utilização do GlusterFS:

fdisk -l

#Com o retorno deste comando, pegue o nome do disco e crie uma partição, caso você não tenha o mkfs.xfs poderá rodar os comandos abaixo para a instalação do mesmo:

#Baixar o .rpm do xfsprogs: http://rpm.pbone.net/index.php3/stat/4/idpl/27829548/dir/centos_6/com/xfsprogs-3.1.1-16.el6.x86_64.rpm.html

#Enviar para as máquinas de backend:

   scp -i <sua chave> xfsprogs-3.1.1-16.el6.x86_64.rpm <user>@<ip externo do seu host>

# com o arquivo no host, fazer o ssh e instalar o .rpm:

sudo rpm -ivh xfsprogs-3.1.1-16.el6.x86_64.rpm

# Com o xfsprogs podemos dar andamento:

# confirme a unidade para ser utilizada no Gluster

fdisk -l

# crie a partição

fdisk /dev/xvdf

# formate em XFS

mkfs.xfs -f -i size=512 /dev/xvdf1

# crie o diretório local

mkdir -p /export/xvdf1

#testar com o comando abaixo:#

mount -t xfs /dev/xvdf1 /export/xvdf1

#se montou com sucesso rode o comando abaixo#

umount /export/xvdf1

echo “/dev/xvdf1 /export/xvdf1 xfs defaults 0 0,noatime,nofail”  >> /etc/fstab

mount -a

#verifique novamente se a unidade montou com sucesso#

df -h (é para estar o /export/xvdf1 aparecendo)

## Com o disco formatado em XFS e montado no local de sua escolha (procedimento feito logo acima) iremos fazer a configuração do GlusterFS ##

## Setup GlusterFS ##

gluster volume create gv0 replica 2 172.23.131.184:/export/xvdf1/brick1 172.23.132.184:/export/xvdf1/brick1

#verifique se o status do volume com o comando abaixo#

gluster volume info

#estando tudo ok, rodar o comando abaixo#

gluster volume start gv0

#enviar o ponto de montagem do GlusterFS para a FSTAB#

(backend1)

echo “172.23.131.184:gv0  /htdocs   glusterfs  defaults,_netdev 0    0″ >> /etc/fstab

(backend2)

echo “172.23.132.184:gv0  /htdocs   glusterfs  defaults,_netdev 0    0″ >> /etc/fstab

No exemplo acima montei o diretório /htdocs que irá ser contemplado no GlusterFS  e replicado no /export/xvdf1. Assim, se um host parar de funcionar, o outro continua sem maiores problemas. Lembrando que os dois hosts funcionam como Server, independente do que ‘cair’ o outro irá continuar funcional.

Gabriel Albuquerque* Gabriel Albuquerque é Arquiteto de Soluções na ilegra com foco em Cloud Computing e sempre em busca de novas tecnologias e soluções inovadoras. Possui experiência de Analista de Suporte, e, ultimamente, tem focado seus esforços em automação e arquitetura em nuvem. Nos pequenos períodos livres que sobram, gosta de jogar Xbox com os amigos.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

CAPTCHA
Change the CAPTCHA codeSpeak the CAPTCHA code