Pplware

Glusterfs – Armazenamento distribuído e de alta disponibilidade

Nos dias que correm cada vez se torna mais relevante fazer cópias dos dados, não só por motivos de segurança, mas principalmente pela disponibilidade dos mesmos.

O GlusterFS é um sistema de armazenamento distribuído e descentralizado, que agrega múltiplas unidades de armazenamento remotas num único volume. As unidades, bricks, são distribuídas pela rede num único sistema de ficheiros paralelo, permitindo escalabilidade de milhares de bricks e vários petabytes!

Neste tutorial iremos explicar, passo a passo, como instalar o Glusterfs no Xubuntu e criar um sistema de armazenamento de alta disponibilidade. Para tal serão usados 2 máquinas servidor e um 1 cliente, sendo que os servidores replicam os ficheiros que o cliente guarda em determinado directório.

Vamos considerar que as máquinas têm os seguintes endereços:

  • servidor1 – 192.168.1.161
  • servidor2 – 192.168.1.162
  • cliente – 192.168.1.163

Considerando que vamos implementar o Glusterfs numa LAN, sem serviço de DNS para a rede local, devem começar por mapear os endereços IPs nos nomes definidos. Para isso devem realizar o passo 1

Passo 1 – Configurar o ficheiro hosts da seguinte forma em todas as máquinas de modo a estas se “conheçam” por nome.

nano /etc/hosts

Passo 2 – Mudar o nome da cada máquina de acordo com a configuração anterior.

nano /etc/hostname

Instalação do GlusterFS

Download e instalação do GlusterFS (efectuar este passo para ambos os servidores)

Dado a última versão do GlusterFS estar disponível num pacote Debian adicionamos a chave pública deste:

wget -O - http://download.gluster.org/pub/gluster/glusterfs/3.7/3.7.9/rsa.pub | apt-key add -

De seguida basta adicionar o repositório do GlusterFS:

echo deb http://download.gluster.org/pub/gluster/glusterfs/3.7/3.7.9/Debian/jessie/apt jessie main > /etc/apt/sources.list.d/gluster.list

Atualizamos a lista de repositórios:

apt-get update

Por fim instalamos o servidor de GlusterFS:

apt-get -y install glusterfs-server

Para confirmar que tudo foi instalado corretamente basta usar o seguinte comando:

glusterfs --version

Vamos agora criar um directório onde os ficheiros serão guardados (efectuar este passo em ambos os servidores)

mkdir /data

O próximo passo é atribuir os IP definidos acima definidos a cada um dos servidores:

ifconfig enp0s3 192.168.1.161/24

ifconfig enp0s3 192.168.1.162/24

Vamos agora adicionar o servidor2 ao servidor1 como armazenamento fidedigno, ou seja, ligar os bricks entre si para que estes possam sincronizar mutuamente.

gluster peer probe  servidor2
gluster peer status

Após estes comandos deverão obter o seguinte resultado:

Podemos verificar que o a ligação ao servidor2 foi bem sucedida e que este tem os serviços ativos.

Criar Volume

O próximo passo é criar um volume (que será partilhado pelos 2 servidores).

gluster volume create pplware replica 2 transport tcp servidor1:/data/pplware servidor2:/data/pplware force

 Inicializar o volume criado no passo anterior:

gluster volume start pplware

Para verificar que a volume foi bem iniciado e que a ligação está estabelecida podemos usar o seguinte comando:

netstat -tap | grep glusterfsd

Nota: Caso não consigam realizar este passo voltem a inicializar os serviços em ambos os servidores com o seguinte comando:

service glusterfs-server restart

Dado isto verifiquem se a ligação está bem estabelecida com o comando:

netstat -tap | grep glusterfsd

Para ver mais informações sobre o volume poderão recorrer ao seguinte comando:

gluster volume info

O resultado deverá ser o seguinte:

Regra de acesso

Restringir o acesso ao volume para apenas o nosso cliente ser o único com acesso (por omissão todas as máquinas na rede poderão utilizar o serviço):

A partir do servidor1 basta inserir o seguinte comando:

gluster volume set pplware auth.allow 192.168.1.163

Após receberem uma mensagem de sucesso poderão verificar nas informações do volume que por baixo de ‘Options Reconfigured:’ está o IP da máquina que acabamos de introduzir

Instalação do GlusterFS nocliente

Download e instalação do GlusterFS no cliente.

Os 3 primeiros comandos são os mesmos que foram usado no servidor.

wget -O - http://download.gluster.org/pub/gluster/glusterfs/3.7/3.7.9/rsa.pub | apt-key add -
echo deb http://download.gluster.org/pub/gluster/glusterfs/3.7/3.7.9/Debian/jessie/apt jessie main > /etc/apt/sources.list.d/gluster.list
apt-get update

Por fim instalamos o cliente de GlusterFS:

apt-get -y install glusterfs-client

Criar directório onde os ficheiros serão guardados e automaticamente sincronizados comos servidores:

mkdir /mnt/glusterfs

Atribuir o IP definido acima ao cliente:

ifconfig enp0s3 192.168.1.163/24

Associar o directório aos servidores:

mount.glusterfs servidor1:/pplware /mnt/glusterfs
mount

Para confirmar que a ligação foi estabelecida podemos usar o comando:

df –h

Testes

Finalmente com tudo está operacional podemos realizar alguns testes.

Criar um ficheiro no directório do cliente e verificar se este foi copiado para os servidores:

Efectuar o seguinte comando no cliente:

touch /mnt/glusterfs/primeiroTeste

Verificar em ambos os servidores se este foi replicado:

ls -l /data/pplware

Vamos agora eliminar um ficheiro no diretório do cliente e verificar se este também foi eliminado nos servidores:

Efetuar o seguinte comando no cliente:

rm -f /mnt/glusterfs/primeiroTeste

Verificar em ambos os servidores se este foi eliminado com o seguinte comando:

ls -l /data/pplware

Desligue um dos servidores, crie um ficheiro no directório do cliente e verifique que este foi criado no servidor activo. De seguida volte a ligar o servidor e verifique que é feita a sincronização dos ficheiros entre os servidores.

Efectuar o seguinte comando no cliente:

touch /mnt/glusterfs/terceiroTeste

Verificar no servidor se este foi replicado com o seguinte comando:

ls -l /data/pplware

Voltar a ligar o outro servidor e voltar a inicializa o serviço com os seguintes comandos:

service glusterfs-server restart

Verificar que a sincronização entre os servidores foi feita com o seguinte comando:

ls -l /data/pplware

E está feito. Esperamos que tenham gostado deste tutorial e que vos sirva para criarem gratuitamente , se tiverem necessidade, um sistema de armazenamento distribuído.

Exit mobile version