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 的失敗查詢,但要嘗試五次之後,此查詢才會列為負項目。請注意,必須為適用的訪問區域定義區域,<>以便使用相關命令將這些更改應用於。
註: 在變更之前,請務必先收集您計畫修改之任何系統或全域組態的預設值,因為這些預設值可能因叢集而異。
要修改將負緩存條目寫入指定訪問區域所需的失敗查找次數,請執行以下操作:
# 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
在未完全移除問題的同時,會變更上述值的組態,將潛在延遲的頻率降低至每四小時一次。使用適當程式碼層級的修正安裝修補程式後,叢集管理員可能會將上述設定的值還原為先前設定的值。