>_GlusterFS – 1.1 – CentOS

GlusterFS é um sistema de arquivos distribuído e descentralizado.
Trata-se de um sistema cujo principal objetivo é a escalabilidade, sendo que para isso seus projetistas utilizaram conceitos da computação de alto desempenho, como a agregação. Este sistema pode executar sobre diversos sistemas operacionais, como Linux, FreeBSD, OpenSolaris e Mac OS X.
Basicamente, 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.

Brick: Um sistema de arquivos conectado localmente (por exemplo, ext4 por cima de um LVM), que faz por fim faz parte de um volume.
Cliente: Servidor que irá utilizar o sistema GlusterFS
Server: Servidor que irá hospedar o sistema de arquivos em que os dados serão armazenados.
Volume: Tipo de montagem disponível, exemplo: GlusterFS nativo, NFS, CIFS, e etc.

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.

Cenário:

glusterfs

Neste tutorial vou abordar as configurações Replicate e Distributed-Replicate.

Passo 1 – Atualize os servidores e configure o arquivo hosts.
O passos abaixo deve ser executado em todos os servidores.

# yum update -y
# vim /etc/hosts
192.168.2.3     gluster1
192.168.2.13    gluster2
192.168.2.14    gluster3
192.168.2.71    gluster4

Passo 2 – Faça o download do repositório do GlusteFS e instale os pacotes necessários.
O passos abaixo deve ser executado em todos os servidores.

# wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/glusterfs-epel.repo
# yum -y install glusterfs glusterfs-fuse glusterfs-server
# cp /etc/glusterfs/glusterd.vol /etc/glusterfs/glusterd.vol.old
# service glusterd start
# chkconfig glusterd on

Passo 3 – Configure o dispositivo /dev/vdb.
O passos abaixo deve ser executado em todos os servidores.

# mkdir /STORAGE
# mkfs.ext4 /dev/vdb

Passo 4 – Configure o arquivo /etc/fstab apontando o dispositivo /dev/vdb para o ponto de montagem /STORAGE.
O passos abaixo deve ser executado em todos os servidores.

Passo 5 – Crie o diretório /STORAGE/vol-replica1
O passos abaixo deve ser executado em todos os servidores.

# mkdir /STORAGE/vol-replica1

Passo 6 – O passo abaixo irá listar se existe algum brick configurado
O passo abaixo deve ser executado somente no servidor gluster1.

# gluster peer status
peer status: No peers present

Passo 7 – Crie o primeiro pool de armazenamento.
O passo abaixo deve ser executado somente no servidor gluster1.

[root@gluster1 ~]# gluster peer probe gluster1
peer probe: success: on localhost not needed
[root@gluster1 ~]# gluster peer probe gluster2
peer probe: success
[root@gluster1 ~]# gluster peer status
Number of Peers: 1

Hostname: gluster2
Port: 24007
Uuid: ebc49b84-3d81-44ef-a9dc-4b093e0a8b70
State: Peer in Cluster (Connected)

Passo 8 – Crie o primeiro volume replicado entre os dois servidores.
O passo abaixo deve ser executado somente no servidor gluster1.

Nome do volume: replica-vol1
Diretório: /STORAGE/vol-replica1

[root@gluster1 ~]# gluster volume create replica-vol1 replica 2 transport tcp gluster1:/STORAGE/vol-replica1 gluster2:/STORAGE/vol-replica1
volume create: replica-vol1: success: please start the volume to access data

Passo 9 – Defina a permissão de acesso somente entre os dois servidores.
O passo abaixo deve ser executado somente no servidor gluster1.

[root@gluster1 ~]# gluster volume set replica-vol1 auth.allow 192.168.2.3,192.168.2.13
volume set: success

Passo 10 – Inicie o volume replica-vol1.
O passo abaixo deve ser executado somente no servidor gluster1.

[root@gluster1 ~]# gluster volume start replica-vol1
volume start: replica-vol1: success
[root@gluster1 ~]# gluster volume info replica-vol1

Volume Name: replica-vol1
Type: Replicate
Volume ID: d86241c6-1f90-44da-a173-87f3c82b03ad
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: gluster1:/STORAGE/vol-replica1
Brick2: gluster2:/STORAGE/vol-replica1
Options Reconfigured:
auth.allow: 192.168.2.3,192.168.2.13

Passo 11 – Pare o serviço e em seguida inicie novamente.
O passo abaixo deve ser executado somente no servidor gluster1.

[root@gluster1 ~]# gluster volume stop replica-vol1
Stopping volume will make its data inaccessible. Do you want to continue? (y/n) y
volume stop: replica-vol1: success
root@gluster1 ~]# gluster volume start replica-vol1
volume start: replica-vol1: success

Passo 12 – Crie o diretório /mnt/volume1.
O passos abaixo deve ser executado em todos os servidores.

# mkdir /mnt/volume1

Passo 13 – Monte o compartilhamento GlusterFS.
O passos abaixo deve ser executado em todos os servidores.

[root@gluster1 ~]# mount -t glusterfs gluster1:/replica-vol1 /mnt/volume1/
[root@gluster1 ~]# df -h
Filesystem              Size  Used Avail Use% Mounted on
/dev/vda2                49G  1,3G   45G   3% /
tmpfs                   499M     0  499M   0% /dev/shm
/dev/vda1               485M   34M  426M   8% /boot
/dev/vdb                 20G  172M   19G   1% /STORAGE
gluster1:/replica-vol1   20G  172M   19G   1% /mnt/volume1
[root@gluster2 ~]# mount -t glusterfs gluster2:/replica-vol1 /mnt/volume1/
[root@gluster2 ~]# df -h
Filesystem              Size  Used Avail Use% Mounted on
/dev/vda2                49G  1,3G   45G   3% /
tmpfs                   499M     0  499M   0% /dev/shm
/dev/vda1               485M   34M  426M   8% /boot
/dev/vdb                 20G  172M   19G   1% /STORAGE
gluster2:/replica-vol1   20G  172M   19G   1% /mnt/volume1

Estendendo o volume para Replicado e Distribuído

Passo 14 – Adicione os demais servidores gluster3 e gluster4 no volume replica-vol1.
O passo abaixo deve ser executado somente no servidor gluster1.

[root@gluster1 volume1]# gluster volume add-brick replica-vol1 gluster3:/STORAGE/vol-replica1/ gluster4:/STORAGE/vol-replica1/
volume add-brick: success
[root@gluster1 volume1]# gluster volume set replica-vol1 auth.allow 192.168.2.3,192.168.2.13,192.168.2.14,192.168.2.71
volume set: success
[root@gluster1 volume1]# gluster volume info replica-vol1

Volume Name: replica-vol1
Type: Distributed-Replicate
Volume ID: d86241c6-1f90-44da-a173-87f3c82b03ad
Status: Started
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: gluster1:/STORAGE/vol-replica1

Passo 15 – Remova os servidores gluster3 e gluster4 do volume replica-vol1.
O passo abaixo deve ser executado somente no servidor gluster1.

[root@gluster1 volume1]# gluster volume remove-brick replica-vol1 gluster3:/STORAGE/vol-replica1/ gluster4:/STORAGE/vol-replica1/
Removing brick(s) can result in data loss. Do you want to Continue? (y/n) y
volume remove-brick commit force: success

Brick2: gluster2:/STORAGE/vol-replica1
Brick3: gluster3:/STORAGE/vol-replica1
Brick4: gluster4:/STORAGE/vol-replica1
Options Reconfigured:
auth.allow: 192.168.2.3,192.168.2.13,192.168.2.14,192.168.2.71

Perceba que o volume replica-vol1 retornou novamente para o estado de Replicado.

[root@gluster1 volume1]# gluster volume info replica-vol1

Volume Name: replica-vol1
Type: Replicate
Volume ID: d86241c6-1f90-44da-a173-87f3c82b03ad
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: gluster1:/STORAGE/vol-replica1
Brick2: gluster2:/STORAGE/vol-replica1
Options Reconfigured:
auth.allow: 192.168.2.3,192.168.2.13,192.168.2.14,192.168.2.71

Passo 16 – Adicione novamente no volume replica-vol1 os servidores gluster3 e gluster4.
O passo abaixo deve ser executado somente no servidor gluster1.

[root@gluster1 volume1]# gluster volume add-brick replica-vol1 gluster3:/STORAGE/vol-replica1/ gluster4:/STORAGE/vol-replica1/
volume add-brick: failed:

Erro!

Para corrigir o erro acima, remova o diretório /STORAGE/vol-replica1 e em seguida crie novamente o diretório /STORAGE/vol-replica1/

[root@gluster3 ~]# rm -rf /STORAGE/vol-replica1/
[root@gluster3 ~]# mkdir  /STORAGE/vol-replica1/

[root@gluster4 ~]# rm -rf /STORAGE/vol-replica1/
[root@gluster4 ~]# mkdir  /STORAGE/vol-replica1/

Passo 17 – Adicione novamente.
O passo abaixo deve ser executado somente no servidor gluster1.

[root@gluster1 volume1]# gluster volume add-brick replica-vol1 gluster3:/STORAGE/vol-replica1/ gluster4:/STORAGE/vol-replica1/
volume add-brick: success

Fontes:
http://blog.sleeplessbeastie.eu/2012/10/16/debian-how-to-replicate-data-over-network-using-glusterfs/
http://www.gluster.org/download/

>_GlusterFS – 1.1 – CentOS
Tagged on:

Deixe uma resposta

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

%d blogueiros gostam disto: