Dell Unity: 중복된 호스트 이름으로 인해 NFSv4 환경에서 성능 문제가 발생함(사용자 수정 가능)
Summary: 동일한 호스트 이름을 공유하는 NFSv4.1 클라이언트에서 세션이 자주 종료되고 재생될 수 있습니다. 이는 NFSv4.1 프로토콜이 호스트 이름을 고유한 클라이언트 식별자(클라이언트 소유자)의 일부로 사용하기 때문입니다. 여러 호스트가 동일한 식별자를 사용하는 경우 스토리지 서버(예: Dell Unity)는 동일한 클라이언트가 연결을 다시 설정하려고 시도하는 것으로 인식하여 "세션 플래핑" 루프가 발생하고 I/O가 중단될 수 있습니다. ...
Symptoms
클라이언트 측: 사용자가 심각한 NFS 성능 저하, 특히 소규모 파일 작업 시 긴 지연 시간을 보고합니다.
Unity 측: 로그에 NAS 서버가 자주 트리거되고 있음을 보여줍니다. checkReplay 로직으로, 시퀀스 ID(seqid)이 이미 처리되었다고 생각합니다.
2026/03/23-09:22:31.571765 3 7FCE8B3CF705 sade:NFS: 3:[NAS_server] checkReplay: sequence replay slotid 0 seqid 0x2
2026/03/23-09:22:31.571948 177 7FCE8AB4F703 sade:NFS: 3:[NAS_server] checkReplay: sequence replay slotid 0 seqid 0x3
2026/03/23-09:22:31.571969 15 7FCE8AE7F701 sade:NFS: 3:[NAS_server] checkReplay: sequence replay slotid 1 seqid 0x1
2026/03/23-09:22:33.950467 94K 7FCE8E57B703 sade:NFS: 3:[NAS_server] checkReplay: sequence replay slotid 0 seqid 0x1
2026/03/23-09:22:33.950614 142 7FCE8E24F702 sade:NFS: 3:[NAS_server] checkReplay: sequence replay slotid 0 seqid 0x2
2026/03/23-09:22:33.950780 159 7FCE8DEDA705 sade:NFS: 3:[NAS_server] checkReplay: sequence replay slotid 0 seqid 0x3
2026/03/23-09:22:33.950793 8 7FCE8E22A702 sade:NFS: 3:[NAS_server] checkReplay: sequence replay slotid 1 seqid 0x1
2026/03/23-09:22:36.025980 169K 7FCE8C9FD704 sade:NFS: 3:[NAS_server] checkReplay: sequence replay slotid 0 seqid 0x1
2026/03/23-09:22:36.026291 305 7FCE8C9B9704 sade:NFS: 3:[NAS_server] checkReplay: sequence replay slotid 0 seqid 0x3
회로망: 패킷 캡처는 여러 고유 IP 주소(10.10.1.8 및 10.10.1.3)를 제공해야 합니다. 두 호스트 모두 동일한 클라이언트 식별자를 사용하여 NFS 서버에 등록하려고 합니다. 이로 인해 한 클라이언트가 다른 클라이언트의 세션을 무효화하는 경합 상태가 발생하여 시퀀스 오류가 발생하고 성능이 저하되는 1초간의 복구 지연이 발생합니다.
42855 2026-03-20 02:34:12.752931 10.10.1.3 10.10.1.50 NFS 294 V4 Call (Reply In 42856) CLOSE StateID: 0x97d3
42856 2026-03-20 02:34:12.753069 10.10.1.50 10.10.1.3 NFS 182 V4 Reply (Call In 42855) CLOSE
42857 2026-03-20 02:34:12.753542 10.10.1.50 10.10.1.3 NFS 562 V4 Reply (Call In 42837) OPEN StateID: 0x3dba
42858 2026-03-20 02:34:12.753583 10.10.1.3 10.10.1.50 TCP 66 976 → 2049 [ACK] Seq=14332461 Ack=1382561 Win=26688 Len=0 TSval=2749783070 TSecr=3786939377
42859 2026-03-20 02:34:12.753635 10.10.1.3 10.10.1.50 NFS 330 V4 Call (Reply In 42860) SETATTR FH: 0xac0cc5de
42860 2026-03-20 02:34:12.753718 10.10.1.50 10.10.1.3 NFS 114 V4 Reply (Call In 42859) SEQUENCE Status: NFS4ERR_BADSESSION
42861 2026-03-20 02:34:12.753980 10.10.1.3 10.10.1.50 NFS 186 V4 Call (Reply In 42862) DESTROY_SESSION
42862 2026-03-20 02:34:12.754047 10.10.1.50 10.10.1.3 NFS 114 V4 Reply (Call In 42861) DESTROY_SESSION Status: NFS4ERR_BADSESSION
42863 2026-03-20 02:34:12.754111 10.10.1.3 10.10.1.50 NFS 298 V4 Call (Reply In 42864) CREATE_SESSION
42864 2026-03-20 02:34:12.754171 10.10.1.50 10.10.1.3 NFS 114 V4 Reply (Call In 42863) CREATE_SESSION Status: NFS4ERR_SEQ_MISORDERED
42865 2026-03-20 02:34:12.755288 10.10.1.50 10.10.1.8 NFS 246 V4 Reply (Call In 42852) EXCHANGE_ID
42866 2026-03-20 02:34:12.755357 10.10.1.8 10.10.1.50 NFS 298 V4 Call (Reply In 42867) CREATE_SESSION
42867 2026-03-20 02:34:12.755544 10.10.1.50 10.10.1.8 NFS 194 V4 Reply (Call In 42866) CREATE_SESSION
42868 2026-03-20 02:34:12.755606 10.10.1.8 10.10.1.50 NFS 218 V4 Call (Reply In 42869) PUTROOTFH | GETATTR
42869 2026-03-20 02:34:12.755706 10.10.1.50 10.10.1.8 NFS 182 V4 Reply (Call In 42868) PUTROOTFH | GETATTR
42870 2026-03-20 02:34:12.755775 10.10.1.8 10.10.1.50 NFS 210 V4 Call (Reply In 42871) RECLAIM_COMPLETE
42871 2026-03-20 02:34:12.755855 10.10.1.50 10.10.1.8 NFS 158 V4 Reply (Call In 42870) RECLAIM_COMPLETE
42872 2026-03-20 02:34:12.755926 10.10.1.8 10.10.1.50 NFS 290 V4 Call (Reply In 42873) GETATTR FH: 0xc7011572
42873 2026-03-20 02:34:12.756013 10.10.1.50 10.10.1.8 NFS 362 V4 Reply (Call In 42872) GETATTR
42874 2026-03-20 02:34:12.757262 10.10.1.8 10.10.1.50 NFS 290 V4 Call (Reply In 42875) GETATTR FH: 0x3bc92b95
42875 2026-03-20 02:34:12.757347 10.10.1.50 10.10.1.8 NFS 362 V4 Reply (Call In 42874) GETATTR
42876 2026-03-20 02:34:12.795850 10.10.1.3 10.10.1.50 TCP 66 976 → 2049 [ACK] Seq=14333077 Ack=1382705 Win=26688 Len=0 TSval=2749783113 TSecr=3786939378
42877 2026-03-20 02:34:12.799280 10.10.1.8 10.10.1.50 TCP 66 988 → 2049 [ACK] Seq=78001 Ack=49629 Win=1188 Len=0 TSval=2328275863 TSecr=986324573
43224 2026-03-20 02:34:13.779818 10.10.1.3 10.10.1.50 NFS 354 V4 Call (Reply In 43232) EXCHANGE_ID
43232 2026-03-20 02:34:13.782406 10.10.1.50 10.10.1.3 NFS 246 V4 Reply (Call In 43224) EXCHANGE_ID
Cause
둘 이상의 클라이언트(복제된 VM 또는 컨테이너화된 환경에서 공통)가 동일한 호스트 이름을 공유하는 경우:
- 호스트 A가 세션을 설정합니다.
- 호스트 B는 동일한 호스트 이름으로 연결합니다. 서버에서 호스트 A가 재부팅되었거나 다시 연결된 것으로 가정합니다.
- 호스트 B가 연결할 수 있도록 서버가 호스트 A의 세션을 "만료"합니다.
- 그런 다음 호스트 A는 호스트 B를 시작하여 세션 복구를 시도합니다.
이로 인해 세션 재설정 및 시퀀스 ID 재생의 지속적인 주기가 발생합니다. 이는 클라이언트가 복구 프로그램을 다시 시작하기 전에 필수 복구 기간(일반적으로 1초) 동안 모든 I/O 작업을 일시 중지해야 하므로 심각한 성능 저하로 이어집니다. EXCHANGE_ID 세션을 회수합니다.
Resolution
Unity 시스템은 설계된 대로 작동하며 NFSv4.1/4.2 RFC 표준을 준수합니다. 서버는 중복된 클라이언트 ID(소유자 문자열)가 있으면 데이터 손상을 방지하기 위해 세션을 올바르게 종료합니다.
충돌을 해결하려면 각 클라이언트에 Globally Unique Identifier가 있어야 합니다. 공유에 액세스하는 모든 클라이언트에서 호스트 이름이 고유한지 확인합니다.
hostnamectl set-hostname <unique_hostname>
NFS 서비스를 재시작하거나 클라이언트를 재부팅하여 새 식별자가 다음 작업에 사용되도록 합니다 EXCHANGE_ID Unity 서버에 대한 호출.