내 시스템에는 다음과 같은 설치 옵션이 정의되어 있습니다. 스토리지 중단이 발생하면 (bg,hard,nointr)
이러한 이유로 인해 콘솔 액세스가 잠기게 됩니까?
storage:/vol/myvol on /test type nfs (rw,bg,hard,nointr,rsize=65536,wsize=65536,tcp,nfsvers=3,timeo=600)
어떤 nfs 옵션 조합이 올바른 접근 방식으로 간주됩니까?
답변1
모든 NFS 마운트 옵션에는 장점과 단점이 있습니다.
bg
즉mount
, 파일 시스템에 액세스하려고 할 때(보통 시스템 부팅 중) 서버가 적시에 응답하지 않으면 마운트가 백그라운드에서 실행되는 프로세스를 분기하고 주기적으로 마운트를 다시 시도합니다.bg
이 옵션을 사용하지 않으면mount
재시도되며mount -a
마운트가 성공하거나 실패할 때까지 종료되지 않습니다(또는 다른 파일 시스템을 계속 마운트하는 경우).자주 종료되는 서버에서 파일 시스템을 마운트해야 하고 결과적으로 시스템 시작이 지연되는 것을 원하지 않는 경우 이
bg
옵션(또는 자동 마운트)을 사용하십시오.이 옵션의 단점은
bg
원격 파일 시스템이 마운트되지 않은 상태에서 시스템이 부팅될 수 있다는 것입니다. 이로 인해 파일 시스템을 사용하려는 응용 프로그램이 실패할 수 있습니다(또는 더 나쁘게는 기록하려는 내용으로 원격 파일 시스템을 채울 수 있음). 로컬 디스크) 원격 파일 시스템).따라서 사용은
bg
당신이 해야 할 선택입니다.hard
soft
파일 시스템을 마운트한 후 적용됩니다 .원격 서버가 충돌하거나 연결할 수 없는 경우 하드 설치는 계속해서 I/O 요청을 무기한 재시도합니다.
소프트 설치는 응용 프로그램에 오류를 반환하며 일반적으로 로컬 디스크 드라이브의 전원이 꺼진 것처럼 이를 복구할 수 없는 오류로 처리합니다. 애플리케이션 실행 파일 자체가 소프트 마운트되어 액세스할 수 없는 원격 파일 시스템에 있는 경우 로컬 커널이 원격 파일 시스템에서 페이지를 가져와야 할 때 애플리케이션이 종료됩니다.
따라서 선택은 귀하에게 달려 있습니다. 원격 서버(또는 네트워크)가 다운될 때 프로그램이 실패하도록 하시겠습니까, 아니면 원격 서버에 다시 연결할 수 있을 때까지 I/O를 무기한 재시도하도록 하시겠습니까?
하드 마운트를 사용하면 원격 서버에 오류가 발생하더라도 로컬 디스크를 사용하는 프로그램이 (보통 짧은) 기간 동안 중단되지 않는 것처럼 원격 파일 시스템을 사용하는 모든 프로그램이 신호에 의해 중단되지 않습니다. 디스크 I/O를 수행하는 데 필요한 시간입니다. 이는 프로그램이 중단되고 사용할 수 없게 되므로 사용자에게 실망스러울 수 있습니다 control-C. NFS i/o를 기다리는 프로그램을 중단하려면
intr
마운트 옵션을 포함하십시오. 일반적으로 이 옵션을 사용하는intr
것은 안전합니다 . 프로그램이EINTR
인터럽트될 때 I/O 오류(오류)가 표시될 수 있다는 점을 명심하십시오.
제가 제안하는 한 가지는: 실패할 수 있는 원격 서버와 함께 하드 마운트된 NFS 파일 시스템을 사용할 때,원하지 않는다/
(예를 들어)의 디렉토리에 파일 시스템을 마운트 /test
하거나 실제로 마운트하십시오.어느디렉토리는 많은 사람들이 사용하는 것과 동일한 수준에 있습니다. 예를 들어 이는 C 라이브러리가 디렉토리 트리를 탐색하여 디렉토리에 대한 작업을 수행하기 때문 /home/username
입니다 . 애플리케이션이 응답하지 않는 하드 마운트 NFS 마운트 지점에서 작업을 수행하면 중단됩니다.pwd
stat
stat
pwd
이것이 사용자가 NFS에 대해 불평하는 주된 이유입니다. 쉘이 어떤 작업을 수행하고 NFS 파일 시스템이 다운되어 사용할 필요도 없기 때문에 로그인할 수 없습니다 .이것이 홈 디렉토리에 자동 마운트를 사용하는 또 다른 좋은 이유입니다.
NFS 마운트에 대한 모범 사례는 다음과 같습니다.
- 자동 설치 프로그램 사용
- 그렇지 않은 경우 각 원격 파일 시스템을 /n/에 마운트합니다.원격 서버 이름/파일 시스템 이름옵션이 있습니다
hard,intr
. - /n 및 /n/원격 서버 이름NFS 마운트 지점인 로컬 디렉터리가 아닙니다.
- 구성
updatedb
이나 다른 어떤 것도/n
.