Wpływ protokołu Kerberos na wydajność woluminów NFSv4.1 usługi Azure NetApp Files
Usługa Azure NetApp Files obsługuje szyfrowanie klienta NFS w trybach kerberos (krb5, krb5i i krb5p) przy użyciu szyfrowania AES-256. W tym artykule opisano wpływ protokołu Kerberos na woluminy NFSv4.1. Porównania wydajności, do których odwołuje się ten artykuł, są wykonywane względem parametru sec=sys
zabezpieczeń, testowania na pojedynczym woluminie przy użyciu jednego klienta.
Dostępne opcje zabezpieczeń
Dostępne obecnie opcje zabezpieczeń dla woluminów NFSv4.1 są następujące:
- sec=sys używa lokalnych identyfikatorów UID i GID system UNIX przy użyciu AUTH_SYS do uwierzytelniania operacji NFS.
- sec=krb5 używa protokołu Kerberos V5 zamiast lokalnych system UNIX identyfikatorów UID i GID do uwierzytelniania użytkowników.
- sec=krb5i używa protokołu Kerberos V5 do uwierzytelniania użytkownika i przeprowadza sprawdzanie integralności operacji NFS przy użyciu bezpiecznych sum kontrolnych, aby zapobiec manipulowaniu danymi.
- sec=krb5p używa protokołu Kerberos V5 do uwierzytelniania i sprawdzania integralności użytkowników. Szyfruje ruch NFS, aby zapobiec wąchaniu ruchu. Ta opcja jest najbezpieczniejszym ustawieniem, ale obejmuje również największe obciążenie związane z wydajnością.
Przetestowane wektory wydajności
W tej sekcji opisano wpływ wydajności po stronie pojedynczego klienta na różne sec=*
opcje.
- Wpływ na wydajność został przetestowany na dwóch poziomach: niska współbieżność (małe obciążenie) i wysoka współbieżność (górne limity operacji we/wy i przepływności).
- Przetestowano trzy typy obciążeń:
- Mała operacja losowego odczytu/zapisu (przy użyciu fio)
- Duża operacja sekwencyjnego odczytu/zapisu (przy użyciu fiO)
- Duże obciążenie metadanych generowane przez aplikacje, takie jak git
Oczekiwany wpływ na wydajność
Istnieją dwa obszary koncentracji uwagi: lekkie obciążenie i górny limit. Na poniższych listach opisano ustawienie zabezpieczeń wpływające na wydajność przez ustawienie zabezpieczeń i scenariusz według scenariusza.
Zakres testowania
- Wszystkie porównania są wykonywane względem parametru
sec=sys
zabezpieczeń. - Test został wykonany na jednym woluminie przy użyciu jednego klienta.
Wpływ krb5 na wydajność:
- Średnia liczba operacji we/wy na sekundę spadła o 53%
- Średnia przepływność zmniejszyła się o 53%
- Średnie opóźnienie wzrosła o 0,2 ms
Wpływ krb5i na wydajność:
- Średnia liczba operacji we/wy na sekundę spadła o 55%
- Średnia przepływność zmniejszyła się o 55%
- Średnie opóźnienie wzrosła o 0,6 ms
Wpływ krb5p na wydajność:
- Średnia liczba operacji we/wy na sekundę spadła o 77%
- Średnia przepływność spadła o 77%
- Średnie opóźnienie wzrosła o 1,6 ms
Zagadnienia dotyczące wydajności z nconnect
Nie zaleca się używania nconnect
i sec=krb5*
instalowania opcji razem. Spadek wydajności zaobserwowano w przypadku używania dwóch opcji w połączeniu.
Interfejs GSS-API (Generic Security Standard Application Programming Interface) umożliwia aplikacjom ochronę danych wysyłanych do aplikacji równorzędnych. Te dane mogą być wysyłane z klienta na jednej maszynie do serwera na innej maszynie.
Gdy nconnect
jest używany w systemie Linux, kontekst zabezpieczeń GSS jest współużytkowany między wszystkimi nconnect
połączeniami z określonym serwerem. TCP to niezawodny transport, który obsługuje dostarczanie pakietów poza zamówieniem w celu obsługi pakietów poza zamówieniem w strumieniu GSS przy użyciu przesuwanego okna numerów sekwencji. Gdy pakiety nie są odbierane w oknie sekwencji, kontekst zabezpieczeń zostanie odrzucony i zostanie wynegocjowany nowy kontekst zabezpieczeń. Wszystkie komunikaty wysyłane w kontekście teraz odrzuconym nie są już prawidłowe, co wymaga ponownego wysłania komunikatów. Większa liczba pakietów w nconnect
konfiguracji powoduje częste pakiety poza oknem, wyzwalając opisane zachowanie. Nie można określić określonych wartości procentowych degradacji przy użyciu tego zachowania.