Desmonte uma montagem nfs onde o servidor nfs desapareceu


32

O servidor A costumava ser um servidor NFS. O servidor B estava montando uma exportação disso. Tudo estava bem. Então A morreu. Apenas desligado. Se foi. Desapareceu.

No entanto, essa pasta ainda está montada em B. Eu obviamente não posso cdentrar nela ou algo assim. No entanto, umount /mnt/myfolderapenas trava e não é suficiente. Existe uma maneira de desmontá-lo sem reiniciar B?

Cliente e servidor são máquinas Linux.


Respostas:


45

Supondo que o Linux:

umount -f -l /mnt/myfolder

Vai resolver o problema:

-f Forçar desmontagem (no caso de um sistema NFS inacessível). (Requer o kernel 2.1.116 ou posterior.)

-l Desmontar preguiçoso. Desanexe o sistema de arquivos da hierarquia do sistema de arquivos agora e limpe todas as referências ao sistema de arquivos assim que ele não estiver mais ocupado. (Requer o kernel 2.4.11 ou posterior.)

-f também existe no Solaris e no AIX.


1
Eu tive o mesmo problema, pesquisei no Google e vim aqui. Sim - a bandeira preguiçoso realmente me ajudou aqui ... -f, por si própria não estava fazendo isso ...
wawawawa

sim, deve ter a opção "-l" "-f" AO MESMO TEMPO.
liuyang1

2
Além disso, às vezes tive melhor sucesso especificando o endereço remoto em vez do caminho local para umount, por exemplo. umount -f -l nfsserver:/export/thefolder.
Oliver

18

Elaborando a sugestão de David Pashley ,

a menos que "umount -l" resolva seu problema, você pode configurar um servidor falso com o mesmo endereço que o desapareceu - mas na verdade não é necessário configurar um novo servidor ou algo assim. A maneira mais fácil de sair da situação de bloqueio / interrupção do montante é configurar uma interface IP de alias local , da seguinte maneira:

ifconfig eth0:nfstmp 11.22.33.44 netmask 255.255.255.255
umount -l /mnt/deadnfsmount    # -l or -f or whichever that gets the job done
ifconfig eth0:nfstmp down

(obviamente 11.22.33.44 é o endereço IP (antigo) do servidor NFS (agora morto))


Isso funcionou para mim, exceto que eu tive que executar um servidor nfs local.
Gak

6

Pode ser aconselhável adicionar a intropção a quaisquer /etc/fstabentradas que possam parar ou travar. Se você não usar as opções softou intr, quando o servidor que hospeda os arquivos NFS ficar inativo, o servidor no qual os arquivos estão montados (o cliente) poderá travar durante a inicialização.

De acordo com man 5 nfs:

suave / hard
Determina o comportamento de recuperação do cliente NFS após uma NFS solicitar tempo limite. Se nenhuma opção for especificada (ou se a opção for especificada), as solicitações do NFS serão repetidas indefinidamente. Se a opção programável for especificada, o cliente NFS falhará em uma solicitação NFS após o envio das retransmissões de retransmissões, fazendo com que o cliente NFS retorne um erro ao aplicativo de chamada.

... e então continua dizendo que intré preferível soft, mas tem o efeito semelhante de impedir a suspensão.


3
Observe que nas versões mais recentes do nfs, o intr é reprovado ou não possui operação - nesse caso, o soft deve ser usado.
Paul

3

umount -f /mnt/myfolderdeve resolver isso. Veja a página de manual do umount.


2
Isso não acontece com o NFS e um servidor morto. Você também precisa da bandeira lenta (ou o truque para adicionar um IfAlias). lsof e fusor todos travam e umount -f diz "dispositivo ocupado".
Wawawawa 15/07

1

Como um aparte, o uso do automount manipulará os compartilhamentos NFS desmontáveis ​​quando eles ficarem indisponíveis, o que evita ficar preso nessa situação no futuro.


2
Não necessariamente. As montagens automount também podem travar nessa condição, se você tentar acessar o diretório de qualquer forma que o processo seja interrompido.
21411 Kamil Kisiel

Sim, o montador automático causa tantos problemas quanto resolve.
Pjc50 26/11/2009

1

Eu nunca consegui umount -ftrabalhar. Um truque útil é configurar outro servidor montando a mesma exportação, fornecendo o mesmo endereço IP do servidor antigo. Seu cliente NFS deve pensar que tudo voltou ao normal e os processos serão desbloqueados. Em seguida, você pode desmontar o ponto de montagem normalmente e remover o endereço IP do servidor NFS temporário.


2
o -l (preguiçoso) é a chave, tal como mencionado acima
Matt Simmons

1

Para o Solaris, reiniciar o cliente NFS resolverá a "espiral da morte da montagem rígida". O comando do Solaris 10 é "svcadm restart network / nfs / client". Não tentei isso em uma caixa Linux recentemente (porque todos eles montam com o sinalizador "intr" e raramente têm esse problema), mas provavelmente também corrigirá o problema.


0

Acabei de notar que o forçar desmontagens no kernel 3.2.0 trava com montagens NFSv4. As desmontagens do NFSv3 funcionam bem.

$ mount [...] -o nfsvers=3

0

apenas um acompanhamento específico do OS X, já que os comandos mount são na maioria dos casos * nix agnósticos: o sinalizador -l (preguiçoso) não existe no OS X; no entanto, o sinalizador -f (force) existe e provou ser suficiente . Além disso, os pontos de montagem gerados pelo sistema estão em / Volumes (/ Volumes / myserversexport)


0

Eu já encontrei esse mesmo problema. Desde que o servidor NFS foi removido, não consigo desmontar os nfs do cliente. Eu tentei o seguinte truque, veja se poderia ser útil. Como o servidor NFS original se foi, eu crio um novo servidor com o mesmo IP e as exportações. Então eu tento umount -f / mnt / nfs_part. Finalmente consegui desmontar o NFS agora.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.