nfs 서버가 사라진 nfs 마운트 마운트 해제


32

서버 A는 NFS 서버였습니다. 서버 B는 그 수출을 시작했다. 모든 것이 괜찮았다. 그런 다음 A는 죽었다. 그냥 껐어 지나간. 사라졌다.

그러나 그 폴더는 여전히 B에 마운트되어 있습니다. 분명히 그 폴더 cd나 다른 것에 넣을 수 없습니다 . 그러나 umount /mnt/myfolder그냥 멈추고 마운트되지 않습니다. 어쨌든 B를 다시 시작하지 않고 마운트를 해제해야합니까?

클라이언트와 서버는 모두 Linux 시스템입니다.


답변:


45

리눅스 가정 :

umount -f -l /mnt/myfolder

문제를 해결할 것입니다 :

-f 마운트 해제 할 수없는 NFS 시스템 인 경우 강제로 마운트 해제하십시오. (커널 2.1.116 이상이 필요합니다.)

-l 게으른 마운트 해제 파일 시스템 계층에서 파일 시스템을 분리하고 더 이상 사용하지 않는 즉시 파일 시스템에 대한 모든 참조를 정리하십시오. (커널 2.4.11 이상이 필요합니다.)

-f Solaris 및 AIX에도 존재합니다.


1
나는 똑같은 문제를 겪었고 여기에 왔습니다. 그렇습니다-게으른 깃발이 정말로 나를 여기에서 도와주었습니다 ... -f 자신의 일을하지 않았습니다 ...
wawawawa

예, "-l" "-f"옵션 SAME TIME이 있어야합니다.
liuyang1

2
또한 때로는 umount의 로컬 경로 대신 원격 주소를 지정하여 더 나은 성공을 거두었습니다. umount -f -l nfsserver:/export/thefolder.
oliver

18

David Pashley가 제공 한 힌트를 자세히 설명 하면

"umount -l"로 문제를 해결하지 않으면 사라진 주소와 동일한 주소로 가짜 서버를 설정할 수 있지만 실제로 새 서버 나 다른 것을 설정할 필요는 없습니다. 차단 / 정지 된 umount 상황에서 가장 쉬운 방법 은 다음과 같이 로컬 별명 IP 인터페이스 를 설정하는 것입니다.

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

(분명히 11.22.33.44는 (현재 죽은) NFS 서버의 (이전) IP 주소입니다)


로컬 nfs 서버를 실행해야한다는 것을 제외하고는 나를 위해 일했습니다.
gak

6

중단되거나 충돌 할 수 intr있는 /etc/fstab항목에 옵션 을 추가하는 것이 좋습니다 . soft또는 intr옵션을 사용하지 않으면 NFS 파일을 호스팅하는 서버가 다운되면 파일이 마운트 된 서버 (클라이언트)가 부팅 할 때 중단 될 수 있습니다.

에 따르면 man 5 nfs:

soft / hard
NFS 요청이 시간 초과 된 후 NFS 클라이언트의 복구 동작을 결정합니다. 옵션을 지정하지 않거나 hard 옵션을 지정하면 NFS 요청이 무기한 재 시도됩니다. soft 옵션이 지정되면 재전송 재전송이 전송 된 후 NFS 클라이언트가 NFS 요청에 실패하여 NFS 클라이언트가 호출 응용 프로그램에 오류를 리턴합니다.

... 그리고 계속해서 intr선호하는 soft것이지만 교수형을 방지하는 비슷한 효과가 있습니다.


3
최신 버전의 nfs에서는 intr이 더 이상 사용되지 않거나 작동하지 않습니다.이 경우 soft를 사용해야합니다.
Paul

3

umount -f /mnt/myfolder이 문제를 해결해야합니다. umount 맨 페이지를 참조하십시오.


2
NFS와 데드 서버에서는 그렇지 않습니다. 게으른 플래그도 필요합니다 (또는 IfAlias를 추가하는 트릭). lsof 및 퓨저가 모두 중단되고 umount -f에 "장치 사용 중"이 표시됩니다.
wawawawa

1

따로, automount 를 사용 하면 마운트 해제 할 NFS 공유를 사용할 수 없을 때 처리 할 수 ​​있으므로 나중에이 상황에 빠지지 않습니다.


2
반드시 그런 것은 아닙니다. 프로세스가 중단되는 방식으로 디렉토리에 액세스하려고하면 자동 마운트가이 상태에서 정지 될 수 있습니다.
Kamil Kisiel

예, 자동 마운터는 해결되는 한 많은 문제를 일으 킵니다.
pjc50 2016

1

나는 일을 해 본 적이 없다 umount -f. 유용한 내보내기는 동일한 내보내기를 마운트하는 다른 서버를 설정하고 이전 서버와 동일한 IP 주소를 제공하는 것입니다. NFS 클라이언트는 모든 것이 정상으로 돌아오고 프로세스 차단이 해제 될 것이라고 생각해야합니다. 그런 다음 마운트 포인트를 정상적으로 마운트 해제하고 임시 NFS 서버에서 IP 주소를 제거 할 수 있습니다.


2
위에서 언급했듯이 -l (lazy)이 핵심입니다
Matt Simmons

1

Solaris의 경우 NFS 클라이언트를 다시 시작하면 "하드 마운트 죽음의 나선"이 해결됩니다. Solaris 10의 명령은 "svcadm restart network / nfs / client"입니다. Linux 상자에서 최근에 이것을 시도하지 않았습니다 ( "intr"플래그가있는 모든 마운트 때문에이 문제는 거의 발생하지 않기 때문에). 문제.


0

방금 커널 3.2.0에서 마운트 해제를 강제 실행하면 NFSv4 마운트가 중단됩니다. NFSv3 마운트 해제가 제대로 작동합니다.

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

0

mount 명령은 대부분 * nix 불가지론 적이므로 OS X 고유의 후속 조치 만 수행합니다. -l (lazy) 플래그는 OS X에 존재하지 않지만 -f (force) 플래그는 존재하며 충분하다는 것이 입증되었습니다. . 또한 시스템 생성 마운트 지점은 / Volumes (/ Volumes / myserversexport)에 있습니다.


0

나는이 같은 문제를 만났다. NFS 서버가 제거되었으므로 클라이언트에서 nfs를 마운트 해제 할 수 없습니다. 나는 다음과 같은 트릭을 시도했는데 도움이되는지보십시오. 원래 NFS 서버가 사라 졌으므로 동일한 IP를 사용하여 새 서버를 만들고 내 보냅니다. 그런 다음 umount -f / mnt / nfs_part를 시도하십시오. 마침내 nfs를 마운트 해제 할 수있었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.