Dell Unity:重复的主机名导致 NFSv4 环境中的性能问题(用户可纠正)

摘要: 共享相同主机名的 NFSv4.1 客户端可能会遇到频繁的会话终止和重新创建。这是因为 NFSv4.1 协议使用主机名作为唯一客户端标识符(客户端所有者)的一部分。当多个主机使用相同的标识符时,存储服务器(例如 Dell Unity)将它们视为尝试重新建立连接的同一客户端,从而导致“会话摆动”循环和潜在的 I/O 挂起。

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

症状

客户端:用户报告 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 地址之间的客户端 ID 冲突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

 

原因

NFSv4.1 及更高版本中,客户端使用客户端所有者字符串向服务器标识自身。默认情况下,许多 Linux 发行版使用客户端的主机名生成此字符串。
如果两个或更多客户端(常见于克隆的虚拟机或容器化环境)共享相同的主机名:
  1. 主机 A 建立会话。
  2. 主机 B 使用相同的主机名连接;服务器假定主机 A 已重新启动或重新连接。
  3. 服务器使主机 A 的会话“过期”,以允许主机 B 连接。
  4. 主机 A 随后尝试恢复其会话,从而启动主机 B

这会导致会话重置和序列 ID 重播的连续循环。这会导致严重的性能下降,因为客户端必须在强制恢复期(通常为 1 秒)内暂停所有 I/O 操作,然后才能重新启动 EXCHANGE_ID 以收回其会话。 

解决方案

Unity 系统按设计运行,并遵守 NFSv4.1/4.2 RFC 标准。当显示重复的客户端 ID(所有者字符串)时,服务器会正确终止会话,以防止数据损坏。

若要解决冲突,每个客户端都必须具有全局唯一标识符。确保主机名在访问共享的每个客户端上都是唯一的: 

hostnamectl set-hostname <unique_hostname>

重新启动 NFS 服务或重新启动客户端,以确保新标识符用于下一个 EXCHANGE_ID 调用 Unity 服务器。

 

 

受影响的产品

Dell EMC Unity
文章属性
文章编号: 000449536
文章类型: Solution
上次修改时间: 17 4月 2026
版本:  2
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。