Como definir um retorno de chamada para o NFS para permitir scripts?

2

O contexto

Eu tenho dois servidores: um NAS e um servidor cliente. Ambas são pequenas máquinas (Raspberry, OLinuXino) e estão conectadas à mesma régua de energia (que tem um botão liga / desliga).

O servidor cliente monta os volumes NFS do NAS na inicialização.

O problema

Quando eu ligo o filtro de linha, ambos os servidores são inicializados ao mesmo tempo. Mas no momento em que o cliente tenta montar volumes NFS, eles ainda não estão disponíveis no NAS.

Então eu tenho que montá-los manualmente e eu quero automatizar isso.

Eu uso o fstab para montar os volumes em uma distribuição Debian Wheezy.

nas.local:/media/myshare  /media/myshare nfs defaults 0 0

Como eu resolveria isso

Então eu pensei em adicionar um script no NAS que chamasse um comando ssh para dizer ao cliente "monte seus volumes NFS, eles estão prontos agora!".

Algo como ssh -i idFile login@clientServer 'sudo mount -a' do lado do NAS.

A questão

Qual seria o melhor lugar para colocar esse tipo de roteiro?

Um gancho NFS? Algo como um retorno de chamada?

Pergunta extra

Ou existe outra maneira melhor de fazer isso?

    
por lauhub 26.06.2014 / 10:46

1 resposta

2

Eu tentaria proteger contra falhas por vários motivos. Uma tarefa cron que verifica se o volume está montado e, em seguida, monta-o, se não for, isso aconteceria.

  1. Use para criar o script usando a resposta de Verifique se o diretório montado com bash [closed]

  2. Para a montagem no script bash que você está criando, use a resposta do Giles para modificar seu arquivo sudoers para permitir que o script do cron seja executado como sudo Como executar um programa específico como root sem um prompt de senha? . Este pode ser um passo opcional, dependendo da sua configuração.

  3. Configure seu cron job. Você vai querer dois. O primeiro seria verificar regularmente a montagem e montá-la se não. Dessa forma, se falhar, independentemente, ele voltará a ficar on-line. O segundo deve empregar um cron após o boot. Esta resposta irá ajudá-lo a iniciar o trabalho de Crontab +1 min após @reboot

Do lado do servidor: Você pode anexar um script ao próprio serviço NFS. Você pode editar seu script de serviço para executar após um breve período de inatividade após a conclusão. O script bash pode seguir o formulário:

sleep 60 && my_mount_script.sh

Usando o systemd, você pode esperar para o serviço nfs. iniciar. As substituições incluiriam a remoção da seção Antes e a alteração do nome após o serviço para nfs.service

    
por 26.06.2014 / 11:35