PowerScale:OneFS:不必要的外部 SID 查询导致身份验证延迟
Summary: 在 OneFS 9.12 及更高版本中,配置了多个身份验证提供程序的群集可能会在使用协议进行身份验证期间观察到延迟。这是由于对外部来源的 SID 上的用户成员身份信息进行不必要且代价高昂的调用。
Symptoms
受影响的群集可能会出现以下情况,但症状的范围和强度可能因个别工作流和配置而异:
- 在 SMB 会话设置期间,NTLM 或 Kerberos 身份验证可能需要 10-30 秒才能完成,有时甚至更长。
- NFS 工作流可能会观察到在身份验证期间文件访问挂起或延迟较长时间。
- 由于身份验证延迟导致的超时,应用程序可能会报告连接超时或“服务器无响应”错误。
- 在繁忙的工作流下,复合身份验证延迟可能会耗尽 LSASS 线程。这反过来又导致依赖 LSASS 的其他操作在等待 LSASS 处理其请求时变得潜在。
- 查看用户的映射令牌时出现异常程度的延迟。
也可能存在以下日志消息,但它们并不完全指示存在的问题。当存在上述延迟时,它们可能会变得可疑。这些消息存在于节点上的 /var/log/lsassd.log 中。
Unknown SID <SID> in file provider, trying to resolve as name
Unknown SID <SID> in NIS provider, trying to resolve as name
Unknown SID in LDAP provider, trying to resolve as name
管理员还可能观察到对 Active Directory 域控制器的出站 LDAP 查询比平时高。
Cause
9.12+ 中的代码增强功能为用户的非本地组成员身份引入了额外的不必要的查找,这无意中增加了每次查找 5-15 秒的延迟。在查看拥有大量成员身份(包括来自 SID 历史记录的用户)的组成员身份的情况下,这一点更为明显。
如果满足以下条件,则群集可能面临该问题的风险:
- 群集正在运行 OneFS 9.12 或更高版本。
- 存在多个身份验证提供程序。
- 受影响节点上的 /var/log/lsassd.log 中有过多消息尝试将外部 SID 解析为名称。
- 查看用户的映射令牌需要五秒钟或更长时间。
无法明确知道群集是否有遇到该问题的风险,因为这是每个单独的外部身份验证环境的主观因素。也就是说,除了上面列出的其他项目外,处于受影响的代码级别还会使群集面临该问题的风险。
Resolution
修复程序预计在以下版本发布:
OneFS 9.15 - 2026
年 8 月中/下旬发布 OneFS 9.13.1.1 - 2026
年 8 月发布 OneFS 9.14.0.1 - 当前可用
减少但不能完全消除延迟的方法是减少负高速缓存 TTL 和命中计数。Memcache 会以用户身份缓存组 SID 的失败查找,但在五次尝试之前,该项不会列为负条目。请注意, <必须使用相关命令为要应用这些更改的适用访问分区定义区域> 。
提醒:请 始终确保在更改之前收集计划修改的任何系统或全局配置的默认值,因为它们可能会因群集而异。
要修改将负高速缓存条目写入指定访问分区的 1 条目所需的失败查找数,请执行以下操作:
# isi_gconfig registry.Services.lsass.Parameters.Zones.<zone>.NegCacheHitsThreshold=1
如果单个访问分区不存在上述参数,则相同的值也可能全局更改。
isi_gconfig registry.Services.lsass.Parameters.NegCacheHitsThreshold=1
要将负高速缓存条目的 TTL/生存期延长至四小时,从而减少查询的频率,请执行以下操作:
# isi zone zones modify <Zone> --negative-cache-entry-expiry=4H
虽然未完全消除问题,但上述值会将配置更改为将潜在延迟的频率降低到每四小时一次。安装具有相应代码级别的修复程序的修补程序后,群集管理员可以将上述设置的值恢复为以前设置的值。