Daemons morrem com erro de barramento quando seus binários vivem no NFS

2

Temos alguns daemons em execução em vários hosts.

As imagens executáveis do daemon são esses binários muito grandes hospedados no NFS.

Quando os binários são atualizados no servidor NFS, os daemons executados anteriormente caem mortos com um erro de Barramento. Estou assumindo que o que está acontecendo é que o servidor NFS está substituindo os binários de uma maneira que é invisível para a camada VFS nos clientes NFS, então eles acabam carregando as páginas do binário atualizado, o que naturalmente leva à loucura.

Nós tentamos mover os novos binários para o lugar em vez de cp, mas isso não parece resolvê-lo.

Estou considerando simplesmente mlock () 'ing o binário no script de inicialização do daemon, mas com certeza há opções ou semânticas mágicas do NFS que deveríamos estar abusando. Existe uma maneira melhor de corrigir isso?

    
por mbac32768 30.06.2010 / 19:16

2 respostas

2

A melhor solução que encontramos é sempre instalar o binário com uma string de versão no final do nome e manter um link simbólico sempre apontando para a versão mais recente.

/mnt/foo/bar -> bar-20111201000000
/mnt/foo/bar-20111201000000
/mnt/foo/bar-20111115000000

Quando você instala a nova versão, você move atomicamente um novo link simbólico sobre o antigo.

Quando você executa o binário do NFS, seu processo mapeia o nome binário com versão, que novas instalações não irão perturbar. Ele também tem esse recurso de bônus puro, no qual você pode executar o ps e ver imediatamente qual versão do binário está sendo executada.

    
por 07.12.2011 / 17:24
0

Este é um problema comum com o NFS. Quando você remove o arquivo, a conexão NFS existente acredita que a tabela de estatísticas que possui está correta, vai para recarregar e obtém um erro de barramento.

O que você quer fazer é mover o binário existente, colocar o novo binário no lugar, depois que cada uma das máquinas começar a usar o novo binário, remova o antigo. O Apache faz isso quando tenta migrar arquivos servidos do NFS que também mudam.

    
por 30.06.2010 / 19:20

Tags