PowerScale: OneFS: opóźnienie uwierzytelniania spowodowane niepotrzebnymi zewnętrznymi zapytaniami dotyczącymi identyfikatora SID
Summary: W OneFS 9.12 i nowszych klastry ze skonfigurowanymi wieloma dostawcami uwierzytelniania mogą obserwować opóźnienia podczas uwierzytelniania za pomocą protokołów. Jest to wynikiem niepotrzebnych i kosztownych wywołań informacji o członkostwie użytkowników na zewnętrznych identyfikatorach SID. ...
Symptoms
W klastrach, których dotyczy problem, mogą wystąpić następujące problemy, chociaż zakres i nasilenie objawów mogą się różnić w zależności od poszczególnych przepływów pracy i konfiguracji:
- Podczas konfigurowania sesji SMB uwierzytelnianie NTLM lub Kerberos może potrwać od 10 do 30 sekund, czasami dłużej.
- Przepływy pracy NFS mogą obserwować zawieszanie się lub wstrzymywanie dostępu do plików przez dłuższy czas podczas uwierzytelniania.
- Ze względu na przekroczenie limitu czasu spowodowane opóźnieniami uwierzytelniania aplikacje mogą zgłaszać przekroczenie limitu czasu połączenia lub błędy "serwer nie odpowiada".
- W obciążonych przepływach pracy opóźnienia uwierzytelniania mieszania mogą wyczerpać wątki LSASS. To z kolei powoduje, że inne operacje polegające na usłudze LSASS stają się utajone, gdy czekają, aż usługa LSASS przetworzy ich żądania.
- Wyświetlanie tokenu mapowania dla użytkownika wykazuje nietypowy stopień opóźnienia.
Mogą być również obecne następujące komunikaty dziennika, choć nie wskazują one wyłącznie na występujący problem. Jeśli występują z powyższym opóźnieniem, mogą stać się podejrzane. Komunikaty te znajdują się w katalogu /var/log/lsassd.log w węźle.
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
Administratorzy mogą również zaobserwować więcej niż zwykle wychodzących zapytań LDAP do kontrolerów domeny usługi Active Directory.
Cause
Ulepszenia kodu w wersji 9.12+ wprowadziły dodatkowe niepotrzebne wyszukiwania dla członkostwa użytkowników w grupach nielokalnych, które nieumyślnie dodawały 5-15 sekund opóźnienia na wyszukiwanie. Jest to bardziej widoczne w przypadkach, gdy patrzy się na członkostwo w grupie użytkownika, który ma dużą liczbę członkostw, w tym z historii SID.
Klaster może być narażony na problem, jeśli spełnione są następujące warunki:
- Na klastrze działa system OneFS w wersji 9.12 lub nowszej.
- Obecnych jest wielu dostawców uwierzytelniania.
- W przełączniku /var/log/lsassd.log znajduje się nadmierna liczba komunikatów na węzłach, których dotyczy problem, próbujących rozpoznać zewnętrzne identyfikatory SID jako nazwy.
- Wyświetlanie tokenu mapowania użytkownika trwa pięć sekund lub dłużej.
Nie ma sposobu, aby jednoznacznie stwierdzić, czy klaster będzie narażony na wystąpienie problemu, ponieważ jest to subiektywne dla każdego środowiska uwierzytelniania zewnętrznego. To powiedziawszy, przebywanie na poziomie kodu, którego dotyczy problem, znacznie narazi klaster na ryzyko wystąpienia problemu, oprócz innych elementów wymienionych powyżej.
Resolution
Poprawka ma zostać wydana za:
OneFS 9.15 — wydanie połowa/koniec sierpnia 2026
r. OneFS 9.13.1.1 — wydanie sierpień 2026
r. OneFS 9.14.0.1 — obecnie dostępne
Sposobem na zmniejszenie, ale nie całkowite usunięcie opóźnienia byłoby zmniejszenie ujemnego czasu wygaśnięcia pamięci podręcznej i liczby trafień. Memcache buforuje nieudane wyszukiwania dla identyfikatora SID grupy jako użytkownika, ale nie jest on wyświetlany jako wpis ujemny do pięciu prób. Należy pamiętać, że <strefa> musi być zdefiniowana dla odpowiedniej strefy dostępu, do której chcesz zastosować te zmiany, za pomocą odpowiednich poleceń.
UWAGA: Przed ich zmianą należy zawsze zebrać wartości domyślne dla wszystkich konfiguracji systemowych lub globalnych, które planujesz zmodyfikować, ponieważ mogą się one różnić w zależności od klastra.
Aby zmodyfikować liczbę nieudanych wyszukiwań niezbędnych do zapisania wpisu w ujemnej pamięci podręcznej na jeden dla określonej strefy dostępu:
# isi_gconfig registry.Services.lsass.Parameters.Zones.<zone>.NegCacheHitsThreshold=1
Jeśli powyższy parametr nie istnieje dla poszczególnych stref dostępu, ta sama wartość może również zostać zmieniona globalnie.
isi_gconfig registry.Services.lsass.Parameters.NegCacheHitsThreshold=1
Aby wydłużyć czas wygaśnięcia/żywotność ujemnego wpisu pamięci podręcznej do czterech godzin, zmniejszając w ten sposób częstotliwość zapytań:
# isi zone zones modify <Zone> --negative-cache-entry-expiry=4H
Nie usuwając całkowicie problemu, powyższe wartości, w celu których konfiguracja została zmieniona, zmniejszają częstotliwość potencjalnych opóźnień do jednej na cztery godziny. Po zainstalowaniu poprawki z poprawką dla odpowiedniego poziomu kodu administratorzy klastra mogą przywrócić wartości powyższych ustawień do wartości ustawionych wcześniej.