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.

Następne kroki