Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Dica
titleDica

A configuração do NFS é importante para quando um servidor (hardware) não suporta toda a carga gerada por um grande volume de usuários, sendo necessário incluir novos servidores (hardware) para dividir a carga de trabalho.

Por exemplo, o diretório protheus_data pode ser compartilhado desta maneira.

Nota
titleClientes que utilizam o RH

Para clientes que utilizam o módulo SIGAGPE, o repositório de fórmulas precisa ser compartilhado conforme documentado na página sobre Repositório de fórmulas e roteiros com balance. Este repositório pode ser incluído abaixo da protheus_data, em um novo diretório.

Aviso

Não configure o repositório padrão do Protheus para compartilhamento de rede. O repositório é um arquivo de tamanho significativo e seu compartilhamento pode acarretar em gargalos na rede. 

Como configurar um servidor e um cliente de NFS?

Antes de começar vamos , é necessário entender a arquitetura, isto . Isto é muito importante para identificar possíveis falhas.

Image for postImage RemovedImage Added

Vamos definir o servidor A como primary. Ele ficará como server do NFS e o servidor B será o cliente do NSFNFS, onde será mapeado o diretório publictotvs.

NFS Servidor

Instale Então vamos instalar o pacote nfs-utils (para Red Hat) eou nfs-common (para Ubuntu) no servidor A.

Para RHEL 7/6/5 instale o pacote nfs-utils através do yum:

Bloco de código
languagetext
# yum install -y nfs-utils

Para Ubuntu, instale o pacote nfs-common:

Bloco de código
languagetext
# apt-get install nfs-common

Uma vez que o pacote foi instalado vamos iniciar , inicie e habilitar habilite os serviços nfs-server e rpcbind:

Bloco de código
languagetext
# systemctl start nfs-server rpcbind

...


# systemctl enable nfs-server rpcbind

Agora vamos criar Crie o diretório que será compartilhado. Crie, crie na raiz, um diretório com o nome de public: totvs:

Bloco de código
languagetext
# mkdir

...

 -p /totvs/protheus_data
Informações
titleInformações - mkdir

O parâmetro -p criará os diretórios pais caso estes não existam. Caso queira saber mais sobre, utilize o comando mkdir --help.

Após a criação do diretório, dê Diretório criado! Agora vamos dar permissão total para todos nesta pasta:

Bloco de código
languagetext
# chmod 777

...

 /totvs/protheus_data

Em seguida vamos editar , edite o arquivo /etc/exports, inclua o diretório que criamos neste arquivo:

Bloco de código
languagetext
# vim /etc/exports

...



/totvs/protheus_data 192.168.0.0/24(rw,sync,no_root_squash)

/totvs/publicprotheus_data Diretório Caminho absoluto do diretório que será compartilhado.

192.168.0.0/24 Range de clientes com permissão de acessar o diretório, pode utilizar um ip específico ou permitir para o acesso de qualquer endereço com o caractere *.

rw — Permissão de leitura e escrita na pasta compartilhada.

...

no_root_squash — Não monopoliza o acesso, permite que o root do cliente acesse o diretório compartilhado.

Dica

Mais

...

informações podem ser adquiridas com o comando $ man exports.

Por fim do Do lado do servidor nfs, vamos exportar exporte o diretório compartilhado usando o comando exportfs:

Bloco de código
languagetext
# exportfs -r
Dica
titleParâmetros do comando exportfs

-v — Lista na tela todos os arquivos e diretórios compartilhados.

-a — Exporta todos os diretórios listados em /etc/exports.

-r — (Re)Exporta todos os diretórios após modificado o /etc/exports.

-u — Remove a exportação de um ou mais diretórios.


É importante lembrar de incluir os serviços do mountd rpc-bind e nfs na exceção do firewall, utilize os comandos abaixo para realizar a configuração.

Bloco de código
languagetext
# firewall-cmd

...

 --permanent --add-service mountd

...


# firewall-cmd

...

 --permanent --add-service rpc-bind

...


# firewall-cmd

...

 --permanent --add-service nfs

...


# firewall-cmd

...

 --reload

NFS Cliente

Agora vamos configurar Configure o cliente, também é necessário que instale o nfs-utils:

Bloco de código
languagetext
# yum install -y nfs-utils

Para Ubuntu, instale o pacote nfs-common:

Bloco de código
languagetext
# apt-get install -y nfs-common

Vamos verificar Verifique os diretórios que estão disponíveis no server com o comando showmount:

Bloco de código
languagetext
# showmount -e <ip-do-nfs-server>
Dica
titleDica

...

$ showmount -e

Mostra os diretórios disponíveis para compartilhar na sua máquina:

$ showmount -e <ip-do-servidor ou hostname>

Lista os diretórios disponíveis para compartilhar na máquina remota.

Após verificar qual é o diretório disponível no servidor vamos criar , crie um diretório do lado do cliente para utilizar no mapeamento entre o servidor e o cliente. Uma boa prática é utilizar  

Bloco de código
languagetext
# mkdir -p /totvs/protheus_data
Dica
titleDica: Boas práticas
  • Utilize o mesmo nome que foi utilizado no servidor NFS.

# mkdir /mnt/<nome-diretório-do-servidor>

  • As unidades compartilhadas provenientes de outro servidor devem ser montadas no diretório /mnt por boas práticas.

Em seguida, monte Em seguida vamos montar a unidade remota com o diretório local:

...

. Em nosso exemplo, utilizamos o diretório /totvs/microsiga/protheus_data no servidor e o diretório /mnt/totvs/microsiga/protheus_data no cliente. 

Bloco de código
languagetext
# mount <ip-do-servidor>:

...

/totvs/protheus_data /totvs/protheus_data
Nota
titleAtenção

Substitua a chave <ip-do-servidor> pelo IP do servidor primary.

Para verificar se o NFS cliente foi montado podemos utilizar , utilize o comando mount e para . Para facilitar a visualização vamos redirecionar , redirecione a saída do comando mount para o comando grep e filtrar filtre por nfs:

Bloco de código
languagetext
# mount | grep

...

 nfs

Também podemos utilizar o comando df para verificar se o volume foi montado corretamente:

Bloco de código
languagetext
# df -hT

Será exibido algo parecido com a imagem abaixo.

Agora podemos É possível testar o compartilhamento criando um arquivo no volume criado:.

Bloco de código
languagetext
# ifconfig > /

...

totvs/protheus_data/ipcliente

Para finalizar, configure no cliente vamos configurar o fstab para que o volume compartilhado seja sempre seja montado automaticamente o volume compartilhado quando a máquina for iniciada:

Bloco de código
languagetext
# vim /etc/fstab

Vamos adicionar Adicione a linha abaixo , edite no arquivo fstab. Edite a linha conforme as configurações do servidor NFS:

Bloco de código
languagetext
<ip-do-servidor>:

...

/totvs/protheus_data /totvs/protheus_data nfs nosuid,rw,sync,hard,intr 0 0

Salve e feche o arquivo fstab.

:wq ou ZZ ou :x

Agora sempre que o servidor for iniciado o volume será montado montado o volume automaticamente.

Quando precisar desmontar o volume compartilhado pode utilizar , utilize o comando umount:

Bloco de código
languagetext
# umount

...

 /totvs/protheus_data/

Confira o artigo original publicado no Medium pelo arquiteto por um dos arquitetos de dados da equipe da engenharia de dados Protheus!