IFPR-Labtelecom: CNFS (Cluster)

Cluster com sistema de compartilhamento de arquivos em rede NFS (CNFS)

Um cluster consiste em vários computadores conectados que trabalham em conjunto, de modo que em muitos aspectos, podem ser considerados um único sistema [1]. No Labtelecom tem 5 servidores de rede (Amanda, Carolina, Elisa, Gabriela e Helena) que utilizam o sistema de compartilhamento de arquivos em rede (NFS) [2]. Na figura abaixo é mostrada a topologia lógica de funcionamento da rede, onde cada servidor tem uma interface conectada na rede 192.168.1.0/24.

A Amanda funciona continuamente e centraliza os diretórios NFS dos demais servidores que são utililizados esporadicamente. Aos serem ligadas (Carolina, Elisa, Gabriela e Helena) recebem um endereço IP de Amanda, conforme apresentado acima, e após 1 min realizam a montagem dos diretórios NFS.

Esse trabalho foi apresentado na Conferência Internacional do Linux Debian no dia 22/07/2019, conforme vídeo abaixo. Na sequência são apresentados os passos para implementação desse Cluster.

AMANDA (ACESSO LOCAL 192.168.1.3/24):

Esse servidor centraliza e fornece o acesso do sistema NFS para os demais computadores do laboratório com o Servidor Web Apache no diretório /var/www/html/. Evidentemente, foi criado dentro do diretório do servidor web com os diretórios dos demais servidores, conforme listado na estrutura abaixo:

1) Arquivo /etc/fstab: Após criar os diretórios, foi editado o arquivo /etc/fstab com os parâmetros abaixo para permtir a montagem remota pelos outros servidores [3];

192.168.1.10:/home/cluster /var/www/html/cluster_gabriela nfs rw,noauto,user 0 0

192.168.1.12:/home/cluster /var/www/html/cluster_carolina nfs rw,noauto,user 0 0

192.168.1.14:/home/cluster /var/www/html/cluster_elisa nfs rw,noauto,user 0 0

192.168.1.16:/home/cluster /var/www/html/cluster_helena nfs rw,noauto,user 0 0

2) Scripts de montagem: Na sequência foram criados shell scripts para montar os servidores em rede. Nesse caso, foram criados 4 arquivos conforme a tabela abaixo:

3) Scripts para desmontar: A mesma lógica foi utilizada para criar shell scripts para desmontar os servidores, conforme tabela abaixo:

4) Aviso de servidores desligados: Nos diretórios de cada cluster foi adicionado um arquivo com a informação Servidor_OFFLINE no servidor principal. Logo, se alguém acessar os diretórios do sistema NFS e o servidor estiver desligado, aparece o status da figura abaixo informando que naquele momento o servidor está desligado.

5) Desmontando automaticamente os diretórios NFS: Para desligar automaticamente foi adicionado no Crontab os comandos que desmontam os diretórios NFS as 22:30 hrs, conforme apresentado abaixo

30 22 * * * sshpass -p "SENHA" ssh cluster@192.168.1.3 ./umount_carolina.sh; ./umount_elisa.sh; ./umount_gabriela.sh; ./umount_helena.sh;

Na sequência são apresentada as informações dos demais servidores que quando ligados disponibilizam automaticamente os diretórios NFS para o servidor principal.

CAROLINA, ELISA, GABRIELA E HELENA:

Nesses 4 servidores foi criado um usuário denominado de cluster e configurado um Servidor NFS para compartilhar o diretório /home/cluster, conforme o procedimento descrito abaixo

1) Para instalar o sistema NFS no terminal como usuário root digite:

apt-get update

apt-get install portmap nfs-kernel-server nfs-common

2) Na sequência é necessário editar o arquivo /etc/exports para compartilhar o diretório /home/cluster para o dispositivo de rede com endereço 192.168.1.3.

/home/cluster 192.168.1.3(rw,sync,no_root_squash)

3) No terminal digite exportfs -a para habilitar o compartilhamento no servidor.

4) É importante também liberar as permissões do diretório compartilhado nesse caso vamos permiter apenas a leitura e execução do diretório /home/cluster no terminal digite:

chmod -R 755 /home/cluster/

5) Ao ligar o servidor ele exporta automaticamente o diretório especificado em /etc/exports.

6) O sshpass permite executar scripts remotamente pela linha de comando, nesse caso toda vez que um servidor ligar ele vai montar remotamente o diretório NFS na Amanda, primeiro passo é instalação do sshpass, no terminal digite:

apt-get install sshpass

7) Automatização do processo, no arquivo Crontab vamos automatizar a montagem adicionando o parâmetro abaixo. Nesse caso, 60 segundos (1 min) após o boot o servidor vai executar o script de montagem na Amanda e disponibilizar o diretório pelo sistema NFS

@reboot (sleep 60) && (sshpass -p "SENHA" ssh cluster@192.168.1.3 ./mount_helena.sh);

Obs.: Esse tempo de 1 min foi configurado para garantir que o servidor recebe IP do DHCP antes de montar o diretório NFS.