Força a desmontagem de uma partição compartilhada através do NFS, mas não usada

2

Não tenho certeza se é mais adequado para superusuário de placas unix & linux , me avise.

Temos um servidor que é um dos principais pontos principais de uma arquitetura de alguma forma grande. Este servidor tem um disco de backup que não foi usado, embora tenha hospedado backups muito antigos. Então, decidi configurá-lo e, embora fosse no começo uma única partição, usei fdisk para reparticioná-lo da mesma maneira que a unidade principal (ambos são idênticos).

Infelizmente, após o reparticionamento fdisk não conseguiu obter o kernel, consulte a nova tabela de partição, nem partrobe , blockdev ou sfdisk . Todos enfrentaram o mesmo problema: BLKRRPART: Device or resource busy , embora nem lsof nem fuser tenham mostrado nada usando o dispositivo. Aqui eu tenho que mencionar que usei umount -l para forçar a desmontagem antes de usar fdisk (sim, agora parece estúpido e eu deveria ter lido o documento com mais cuidado).

Depois eu descobri que o NFS estava compartilhando um dos diretórios da unidade, e é por isso que ele não apareceu em lsof e fuser - não me pergunte quem teve a idéia boba de usar um diretório de uma unidade de backup antiga para compartilhar arquivos de configuração de inicialização para clientes NFS…

Não consigo reinicializar este servidor e não reiniciei o NFS. Eu li que eu poderia usar nfs-kernel-server reload para manter as transferências NFS enquanto recarregava /etc/exports (se eu entendi corretamente), mas primeiro eu não tenho certeza se isso vai funcionar e segundo eu realmente não quero tentar isso. Eu realmente quero evitar interferir nos processos em execução.

Agora, se o diretório realmente aparecer na saída de showmount -e (que parece basicamente o mesmo que /etc/exports ), ele não aparecerá em showmount -a nem em showmount -d . Eu acho que isso significa que o diretório não está em uso, então talvez haja alguma maneira de forçar a desmontagem do NFS?

Alguma sugestão?

    
por Skippy le Grand Gourou 07.11.2012 / 16:48

1 resposta

1

O NFSv2 e o NFSv3 são protocolos sem estado. Isso significa que, particularmente ao usar o UDP, você pode reiniciar o servidor sem nenhum efeito nos clientes conectados.

I've read I could use nfs-kernel-server reload to keep NFS transfers while reloading /etc/exports (if I understood correctly), but first I'm not sure this will work and second I really don't want to try that.

Se você não vai confiar no que lê, é difícil dar sugestões. A edição de /etc/exports e a execução de nfs-kernel-server reload é, obviamente, a solução correta. Executar isso simplesmente executa exportfs -r , que é a maneira correta de atualizar as exportações de um servidor em execução sem reiniciá-lo.

Como um aparte, você disse:

I have to mention that I used umount -l to force the unmount before using fdisk

Para esclarecer, umount -l não não força uma desmontagem. É possível que seu sistema de arquivos ainda esteja montado ou que ainda esteja montado enquanto você executa o fdisk.

    
por 07.11.2012 / 21:17