다소 흥미로운 설정이 있습니다. 하나의 폴더에 여러 개의 원격 NFS 서버가 마운트 된 후 해당 폴더가 Samba를 통해 다시 내보내집니다. 모든 공유 폴더를 한 곳에 보관하는 공유 프록시라고 생각하십시오.
내 문제는 마운트 중 하나가 다운 될 때마다 (서버 재시작, 서비스 재시작, 서버가 내보내는 외부 하드 드라이브 등) 마운트 블록을 영원히 읽으려는 시도입니다. 또한 ls
해당 디렉토리에서 실행이 중지되고 Samba를 통해 연결하는 사용자도 정지됩니다. 이로 인해 수백 개의 프로세스가 차단되어 크론 작업 중 하나가 몇 배나 차단되어 서버가 거의 충돌했습니다. 일반적으로 ls
완료 (취소 할 수 없음)를 기다리고 , 실행하고 for i in *; do sudo umount -l -f $i; done;
, 작동하고, 문제를 해결하고, 모든 것을 다시 마운트 하기 를 기다리지 않는 터미널을 가져와야하기 때문에 매우 성가시다 .
어떤 이유로 든 연결이 실패하면 (바람직하게는 재시도 기간이 지난 경우) 마운트 자체가 마운트되지 않거나 최소한 차단되지 않는다는 규정으로 NFS 공유를 마운트하는 방법이 있습니까?
답변
일반적으로 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 마운트 옵션에 대한 자세한 내용은