깨진 NFS 마운트가 디렉토리를 잠그지 못하게 하시겠습니까?


17

다소 흥미로운 설정이 있습니다. 하나의 폴더에 여러 개의 원격 NFS 서버가 마운트 된 후 해당 폴더가 Samba를 통해 다시 내보내집니다. 모든 공유 폴더를 한 곳에 보관하는 공유 프록시라고 생각하십시오.

내 문제는 마운트 중 하나가 다운 될 때마다 (서버 재시작, 서비스 재시작, 서버가 내보내는 외부 하드 드라이브 등) 마운트 블록을 영원히 읽으려는 시도입니다. 또한 ls해당 디렉토리에서 실행이 중지되고 Samba를 통해 연결하는 사용자도 정지됩니다. 이로 인해 수백 개의 프로세스가 차단되어 크론 작업 중 하나가 몇 배나 차단되어 서버가 거의 충돌했습니다. 일반적으로 ls완료 (취소 할 수 없음)를 기다리고 , 실행하고 for i in *; do sudo umount -l -f $i; done;, 작동하고, 문제를 해결하고, 모든 것을 다시 마운트 하기 를 기다리지 않는 터미널을 가져와야하기 때문에 매우 성가시다 .

어떤 이유로 든 연결이 실패하면 (바람직하게는 재시도 기간이 지난 경우) 마운트 자체가 마운트되지 않거나 최소한 차단되지 않는다는 규정으로 NFS 공유를 마운트하는 방법이 있습니까?


당신은 게시 할 수 있습니까 /etc/fstab?
Karlson

답변:


19

일반적으로 NFS를 마운트 할 때 다음과 유사한 플래그를 설정하는 것이 좋습니다.

bg,intr,soft
   bg      If  the  first  NFS  mount  attempt times out, retry the mount in the 
           background.  After a mount operation is backgrounded, all subsequent mounts
           on the same NFS  server  will  be  backgrounded immediately, without first
           attempting the mount.  A missing mount point is treated as a timeout, to
           allow for nested NFS mounts.
   soft    If  an  NFS  file operation has a major timeout then report an I/O error
           to the calling program.  The default is to continue retrying NFS file
           operations indefinitely.
   intr    If  an  NFS  file  operation  has  a major timeout and it is hard mounted,
           then allow signals to interupt the file operation and cause it to return
           EINTR to the calling program.  The default is to not allow file operations
           to be interrupted.

당신은 또한 설정할 수 있습니다 :

timeo=5,retrans=5,actimeo=10,retry=5

NFS 서버가 재 시도를 기다리지 않고 연결을 끊으면 NFS 마운트 시간이 초과되고 디렉토리에 액세스 할 수 없게됩니다.

한 번 봐 가지고 이 링크를 NFS 마운트 옵션에 대한 자세한 내용은


Fedora 20에서는 bg, intr, soft 만 사용하여 120 초의 정지를 유지합니다. 그러나 timeo = 5, retrans = 5, actimeo = 10, retry = 5를 추가하면 멋지고 빠릅니다. 감사!
Greg Sheremeta

4
"intr / nointr 마운트 옵션은 커널 2.6.25 이후에는 더 이상 사용되지 않습니다. SIGKILL 만이 커널에서 보류중인 NFS 작업을 중단 할 수 있으며, 지정된 경우이 마운트 옵션은 무시되어 이전 커널과의 하위 호환성을 제공합니다." "이 옵션은 이전 버전과의 호환성을 위해 제공됩니다. 커널 2.6.25 이후에는 무시됩니다."
David C. Bishop 23 년

1
@ DavidC.Bishop 그 견적은 어디에서 왔습니까? 당신은 링크를 줄 수 있습니까? 감사.
becko

2
@becko : SIGKILL 인용문은 nfs 매뉴얼 페이지에서 발췌 한 것입니다 ( 'nointr'검색). 내 시스템의 버전과 같은 최신 버전은 이제 "이 옵션은 이전 버전과의 호환성을 위해 제공됩니다. 커널 2.6.25 이후에는 무시됩니다."라고 읽습니다. 연결 .
David C. Bishop 1
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.