nfs 마운트 옵션 bg, hard, nointr을 사용하는 경우 스토리지가 오프라인일 때 시스템이 잠깁니다.

nfs 마운트 옵션 bg, hard, nointr을 사용하는 경우 스토리지가 오프라인일 때 시스템이 잠깁니다.

내 시스템에는 다음과 같은 설치 옵션이 정의되어 있습니다. 스토리지 중단이 발생하면 (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 마운트 옵션에는 장점과 단점이 있습니다.

  • bgmount, 파일 시스템에 액세스하려고 할 때(보통 시스템 부팅 중) 서버가 적시에 응답하지 않으면 마운트가 백그라운드에서 실행되는 프로세스를 분기하고 주기적으로 마운트를 다시 시도합니다.

    bg이 옵션을 사용하지 않으면 mount재시도되며 mount -a마운트가 성공하거나 실패할 때까지 종료되지 않습니다(또는 다른 파일 시스템을 계속 마운트하는 경우).

    자주 종료되는 서버에서 파일 시스템을 마운트해야 하고 결과적으로 시스템 시작이 지연되는 것을 원하지 않는 경우 이 bg옵션(또는 자동 마운트)을 사용하십시오.

    이 옵션의 단점은 bg원격 파일 시스템이 마운트되지 않은 상태에서 시스템이 부팅될 수 있다는 것입니다. 이로 인해 파일 시스템을 사용하려는 응용 프로그램이 실패할 수 있습니다(또는 더 나쁘게는 기록하려는 내용으로 원격 파일 시스템을 채울 수 있음). 로컬 디스크) 원격 파일 시스템).

    따라서 사용은 bg당신이 해야 할 선택입니다.

  • hardsoft파일 시스템을 마운트한 후 적용됩니다 .

    원격 서버가 충돌하거나 연결할 수 없는 경우 하드 설치는 계속해서 I/O 요청을 무기한 재시도합니다.

    소프트 설치는 응용 프로그램에 오류를 반환하며 일반적으로 로컬 디스크 드라이브의 전원이 꺼진 것처럼 이를 복구할 수 없는 오류로 처리합니다. 애플리케이션 실행 파일 자체가 소프트 마운트되어 액세스할 수 없는 원격 파일 시스템에 있는 경우 로컬 커널이 원격 파일 시스템에서 페이지를 가져와야 할 때 애플리케이션이 종료됩니다.

    따라서 선택은 귀하에게 달려 있습니다. 원격 서버(또는 네트워크)가 다운될 때 프로그램이 실패하도록 하시겠습니까, 아니면 원격 서버에 다시 연결할 수 있을 때까지 I/O를 무기한 재시도하도록 하시겠습니까?

  • 하드 마운트를 사용하면 원격 서버에 오류가 발생하더라도 로컬 디스크를 사용하는 프로그램이 (보통 짧은) 기간 동안 중단되지 않는 것처럼 원격 파일 시스템을 사용하는 모든 프로그램이 신호에 의해 중단되지 않습니다. 디스크 I/O를 수행하는 데 필요한 시간입니다. 이는 프로그램이 중단되고 사용할 수 없게 되므로 사용자에게 실망스러울 수 있습니다 control-C. NFS i/o를 기다리는 프로그램을 중단하려면 intr마운트 옵션을 포함하십시오. 일반적으로 이 옵션을 사용하는 intr것은 안전합니다 . 프로그램이 EINTR인터럽트될 때 I/O 오류(오류)가 표시될 수 있다는 점을 명심하십시오.

제가 제안하는 한 가지는: 실패할 수 있는 원격 서버와 함께 하드 마운트된 NFS 파일 시스템을 사용할 때,원하지 않는다/(예를 들어)의 디렉토리에 파일 시스템을 마운트 /test하거나 실제로 마운트하십시오.어느디렉토리는 많은 사람들이 사용하는 것과 동일한 수준에 있습니다. 예를 들어 이는 C 라이브러리가 디렉토리 트리를 탐색하여 디렉토리에 대한 작업을 수행하기 때문 /home/username입니다 . 애플리케이션이 응답하지 않는 하드 마운트 NFS 마운트 지점에서 작업을 수행하면 중단됩니다.pwdstatstatpwd이것이 사용자가 NFS에 대해 불평하는 주된 이유입니다. 쉘이 어떤 작업을 수행하고 NFS 파일 시스템이 다운되어 사용할 필요도 없기 때문에 로그인할 수 없습니다 .이것이 홈 디렉토리에 자동 마운트를 사용하는 또 다른 좋은 이유입니다.

NFS 마운트에 대한 모범 사례는 다음과 같습니다.

  • 자동 설치 프로그램 사용
  • 그렇지 않은 경우 각 원격 파일 시스템을 /n/에 마운트합니다.원격 서버 이름/파일 시스템 이름옵션이 있습니다 hard,intr.
  • /n 및 /n/원격 서버 이름NFS 마운트 지점인 로컬 디렉터리가 아닙니다.
  • 구성 updatedb이나 다른 어떤 것도 /n.

관련 정보