I/O 오류 및 NFS 잠금 회수 실패 문제 해결 - FSx for ONTAP

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

I/O 오류 및 NFS 잠금 회수 실패 문제 해결

이 섹션에서는 FSx for ONTAP 파일 시스템의 장애 조치 이벤트 중 I/O 오류 및 NFS 잠금 회수 실패와 관련된 문제와 각 문제에 대한 해결 방법을 설명합니다.

장애 조치 이벤트 중에 I/O 오류가 발생하는 경우

FSx for ONTAP Single-AZ 파일 시스템의 장애 조치 중에 NFS 클라이언트에 일시적인 I/O 오류 또는 장기 일시 중지가 발생할 수 있습니다. NFSv4+ 클라이언트의 경우 다음과 같은 커널 로그 메시지가 표시될 수 있습니다.

NFS: __nfs4_reclaim_open_state: Lock reclaim failed!

이러한 메시지는 클라이언트가 장애 조치 기간 동안 NFS 잠금을 성공적으로 회수할 수 없음을 나타냅니다.

장애 조치 이벤트 중에 I/O 오류를 줄이려면

Linux에서는 장애 조치 감지 시간을 55~60초에서 15~20초로 줄이도록 클라이언트에서 네트워크 설정을 구성할 수 있습니다.

중요

항상 비프로덕션 환경에서 이러한 구성을 먼저 테스트합니다. 이러한 설정은 IP 주소를 로컬 네트워크의 물리적(MAC) 주소에 매핑하는 데 사용되는 주소 확인 프로토콜(ARP) 트래픽을 증가시키고 네트워크 제약 환경에는 적합하지 않을 수 있습니다.

NFS 클라이언트에 최적화된 네트워크 설정을 구성하려면
  1. 각 NFS 클라이언트에서 sysctl 구성 파일을 생성합니다. 다음 예제에서는 default를 사용하여 모든 네트워크 인터페이스에 설정을 적용합니다. 인스턴스에 여러 네트워크 인터페이스가 있는 경우 default를 FSx for ONTAP Single-AZ 파일 시스템에 연결하는 데 사용되는 특정 인터페이스 이름(예: eth0 또는 ens5)으로 바꿀 수 있습니다.

    $ sudo tee /etc/sysctl.d/99-fsx-failover.conf > /dev/null << 'EOF' # NFS client optimizations for faster failover detection # Replace 'default' with your interface name (e.g., eth0, ens5) to target a specific interface net.ipv4.neigh.default.base_reachable_time_ms=5000 net.ipv4.neigh.default.delay_first_probe_time=1 net.ipv4.neigh.default.ucast_solicit=0 net.ipv4.tcp_syn_retries=3 EOF
  2. 설정을 즉시 적용합니다.

    $ sudo sysctl -p /etc/sysctl.d/99-fsx-failover.conf
  3. 구성이 활성 상태인지 확인합니다. 를 사용한 경우 다음 명령을 사용하여 확인할 default수 있습니다. 특정 인터페이스를 지정한 경우를 인터페이스 이름(예: eth0 또는 ens5)default으로 바꿉니다.

    $ sysctl net.ipv4.neigh.default.base_reachable_time_ms $ sysctl net.ipv4.neigh.default.delay_first_probe_time $ sysctl net.ipv4.neigh.default.ucast_solicit $ sysctl net.ipv4.tcp_syn_retries

이러한 설정이 동일한 가용 영역 내에서 FSx for ONTAP 파일 시스템에 연결하는 모든 NFS 클라이언트에 일관되게 적용되는지 확인합니다. 이러한 네트워크 최적화를 사용할 때는 다음 사항에 유의하세요.

  • base_reachable_time_ms=5000 – ARP 캐시 항목 유효성을 30초에서 5초로 줄여 클라이언트가 장애 조치 이벤트 중에 IP 소유권 변경을 더 빠르게 감지할 수 있습니다.

  • delay_first_probe_time=1 - 오래된 네트워크 항목을 5초에서 1초로 탐색하기 전에 지연 시간을 줄입니다.

  • ucast_solicit=0 - 유니캐스트 이웃 프로브를 건너뛰고 브로드캐스트 ARP 요청을 즉시 실행하여 활성 파일 서버의 재검색을 가속화합니다.

  • tcp_syn_retries=3 - TCP 연결 재시도 기간을 127초에서 15초로 줄입니다.

네트워크 설정이 적용되면 환경을 모니터링하여 변경 사항을 확인해야 합니다. 파일 시스템의 처리량 용량을 수정하여 장애 조치 이벤트를 테스트할 수 있습니다. 자세한 내용은 파일 시스템에서 장애 조치 테스트 단원을 참조하십시오.

변경 사항 적용 후 환경 모니터링

  • 시스템 로그에서 NFS 오류를 모니터링하여 NFS 관련 커널 로그 메시지를 확인합니다.

    $ sudo journalctl -f | grep -i nfs

    와 같은 메시지 발생 횟수가 적은지 확인합니다Lock reclaim failed.

  • 애플리케이션 로그를 모니터링하여 장애 조치 이벤트 중에 I/O 제한 시간, 연결 오류 및 재시도 관련 실패를 줄입니다.

  • 증가된 ARP 트래픽이 환경의 네트워크 성능에 부정적인 영향을 미치지 않도록 네트워크 영향을 검증합니다.

NFSv4 환경을 위한 대체 접근 방식

클라이언트 측 구성을 수정할 수 없는 NFSv4 환경에서는 다음 대안을 고려하세요.

  • NFSv4 임대 제한 시간을 연장합니다. 스토리지 관리자와 협력하여 NFSv4 임대 제한 시간을 늘립니다. 이러한 제한 시간을 연장하면 클라이언트가 장애 조치 이벤트 중에 잠금을 회수할 시간을 추가로 확보할 수 있습니다. 자세한 내용은 NetApp ONTAP 설명서의 NFSv4 잠금 유예 기간 지정을 참조하세요.