Porque utilizar o NFS e não SMB
O
NFS oferece um melhor desempenho com arquivos de tamanho médio ou pequeno. Se os arquivos forem grandes, os tempos de ambos os métodos se aproximam. Além disso, a configuração do NFS é simples e rápida.
Fonte:
Network share: Performance differences between NFS & SMB
Os benefícios são:
- Transparência, o usuário vê o sistema de arquivos como um sistema único;
- Localização física dos arquivos fica oculta ao usuário;
- Garantia de transparência, sistemas de nomes robusto e (4) Novos computadores podem ser adicionados com facilidade, duplicação de dados e aumentando a escalabilidade.
Cenário de teste
O cenário de teste é composto por um ambiente virtual onde a 2 servidores
Apache rodam e compartilham da mesma pasta de configuração e páginas WEB, como isso é possível fazer uma sincronização dos servidores de forma simples e rápida, criando um ambiente de alta disponibilidade com um simples Shell Script.
Dados do ambiente virtual proposto:
- APACHE PRINCIPAL - SRV01 - 192.168.1.6
- APACHE RESERVA - SRV02 - 192.168.1.7
- Cliente para acessar as páginas web disponibilizadas pelo servidor
- Sistema utilizado: Debian 10
Instalação e configuração do servidor principal
Instalação do serviço Cliente NFS no servidor Apache:
# apt-get update
# apt-get upgrade
# apt-get install nfs-common
Agora vamos realizar a instalação de nosso Apache, nos 2 servidores WEB:
# apt-get install apache2
Configuração da montagem automática das pastas no servidor WEB Apache:
# nano /etc/fstab
Inserir as informações abaixo, no arquivo "fstab":
# IP-SERVIDOR-NFS:/etc/apache2/ /etc/apache2/ nfs defaults 0 0
# IP-SERVIDOR-NFS:/var/www/ /var/www/ nfs defaults 0 0
Reiniciando o sistema operacional para atualizar as configurações definidas:
# reboot
Instalação e configuração do servidor NFS
Após a instalação e configuração do seu servidor Apache, é necessário a configuração do NFS, tanto no servidor principal como no reserva
Instalação do Servidor NFS (Network File System):
# apt-get update
# apt-get upgrade
# apt-get install nfs-kernel-server nfs-common apache2
Abrir o arquivo
/etc/exports do servidor NFS e editar inserindo a pasta e computador que irá acessar:
# /etc/apache2 IP-SERVIDOR-PRIMARIO(rw,sync,no_root_squash)
# /var/www IP-SERVIDOR-PRIMARIO(rw,sync,no_root_squash)
Após alterar, reiniciar o serviço:
# service nfs-kernel-server restart
Pronto, agora ambos os servidores estão rodando Apache e compartilham da mesma estrutura de arquivos e configuração. Porém, as páginas ainda funcionam de maneira separada, ou seja, elas podem ser acessadas de ambos os IPs dos servidores:
Agora é necessário configurar o nosso script para que o usuário consiga acessar a página por apenas um endereço de IP. Para isso, vamos utilizar o script abaixo salvo em
/root/check.sh:
O script verifica se o servidor primário do apache (196.168.1.6), está na rede através de do seu ping.
Caso o servidor perca a comunicação com a rede, o script reconfigura interface de rede do servidor secundário (NFS) para o mesmo IP do servidor principal. Assim, não é preciso fazer nenhuma configuração extra no Apache.
Agora, basta colocar o script para rodar no crontab a cada minuto. Para isso, basta digitar o comando:
# crontab -e
...e editar o arquivo, conforme a imagem abaixo:
Referências
Por: Cleyber Bezerra dos Reis e Diego França Martins
Blog:
https://www.linkedin.com/in/cleyber-reis