Auswirkungen von Kerberos auf die Leistung von Azure NetApp Files NFSv4.1-Volumes
Azure NetApp Files unterstützt die Verschlüsselung des NFS-Clients in Kerberos-Modi (krb5, krb5i und krb5p) mit AES-256-Verschlüsselung. In diesem Artikel werden die Auswirkungen von Kerberos auf die Leistung von NFSv4.1-Volumes beschrieben. Leistungsvergleiche, auf die in diesem Artikel verwiesen wird, werden anhand des sec=sys
-Sicherheitsparameters durchgeführt, der auf einem einzelnen Volume mit einem einzelnen Client testet.
Verfügbare Sicherheitsoptionen
Derzeit sind folgende Sicherheitsoptionen für NFSv4.1-Volumes verfügbar:
- sec=sys verwendet lokale UNIX-UIDs und -GIDs mithilfe von AUTH_SYS zum Authentifizieren von NFS-Vorgängen.
- sec=krb5 verwendet Kerberos V5 anstelle von lokalen UNIX-UIDs und -GIDs zum Authentifizieren von Benutzern.
- sec=krb5i verwendet Kerberos V5 für die Benutzerauthentifizierung und führt die Integritätsüberprüfung von NFS-Vorgängen mithilfe von sicheren Prüfsummen durch, um Datenmanipulationen zu verhindern.
- sec=krb5p verwendet Kerberos V5 für die Benutzerauthentifizierung und die Integritätsüberprüfung. Bei dieser Option wird der NFS-Datenverkehr verschlüsselt, um das Ausspähen des Datenverkehrs zu verhindern. Diese Option ist die sicherste Einstellung, sie stellt aber auch die größten Anforderungen an die Leistung.
Getestete Leistungsvektoren
In diesem Abschnitt werden die Leistungsauswirkungen der verschiedenen sec=*
-Optionen auf einen einzelnen Client beschrieben.
- Die Leistungsauswirkungen wurden auf zwei Ebenen getestet: geringe Parallelität (niedrige Auslastung) und hohe Parallelität (Obergrenze für E/A und Durchsatz).
- Es wurden drei Arten von Workloads getestet:
- Kleine Vorgänge mit zufälligem Lese-/Schreibzugriff (mit FIO)
- Umfangreiche Vorgänge mit sequenziellem Lese-/Schreibzugriff (mit FIO)
- Hohe Arbeitsauslastung durch Metadaten, z. B. durch Anwendungen wie Git generiert
Erwartete Leistungsauswirkungen
Es gibt zwei Schwerpunktbereiche: geringe Auslastung und Obergrenze. In den folgenden Listen werden die Leistungsauswirkungen der einzelnen Sicherheitseinstellungen und Szenarien beschrieben.
Testumfang
- Alle Vergleiche beziehen sich auf den Sicherheitsparameter
sec=sys
. - Der Test wurde für ein einzelnes Volume unter Verwendung eines einzelnen Clients durchgeführt.
Leistungseinbußen von krb5:
- Durchschnittliche IOPS um 53 % verringert
- Durchschnittlicher Durchsatz um 53 % verringert
- Durchschnittliche Latenz um 0,2 ms erhöht
Auswirkungen der Leistung von krb5i:
- Durchschnittliche IOPS um 55 % verringert
- Durchschnittlicher Durchsatz um 55 % verringert
- Durchschnittliche Latenz um 0,6 ms erhöht
Leistungseinbußen von krb5p:
- Durchschnittliche IOPS um 77 % verringert
- Durchschnittlicher Durchsatz um 77 % verringert
- Durchschnittliche Latenz um 1,6 ms erhöht
Überlegungen zur Leistung mit nconnect
Es wird nicht empfohlen, die Einbindungsoptionen nconnect
und sec=krb5*
gemeinsam zu verwenden. Leistungsbeeinträchtigungen wurden beobachtet, wenn die beiden Optionen in Kombination verwendet werden.
Die GSS-API (Generic Security Standard Application Programming Interface) bietet Anwendungen eine Möglichkeit zum Schutz von Daten, die an Peeranwendungen gesendet werden. Diese Daten könnten von einem Client auf einem Computer an einen Server auf einem anderen Computer gesendet werden.
Bei Verwendung von nconnect
unter Linux wird der GSS-Sicherheitskontext zwischen allen nconnect
-Verbindungen mit einem bestimmten Server gemeinsam genutzt. TCP ist ein zuverlässiger Transport, der die unsortierte Paketübermittlung (Out-of-Order) unterstützt, um Pakete in falscher Reihenfolge in einem GSS-Stream mit einem Gleitfenster von Sequenznummern zu behandeln. Wenn Pakete empfangen werden, die sich nicht im Sequenzfenster befinden, wird der Sicherheitskontext verworfen, und ein neuer Sicherheitskontext wird ausgehandelt. Alle Nachrichten, die in dem nun verworfenen Kontext gesendet wurden, sind nicht mehr gültig, weshalb die Nachrichten erneut gesendet werden müssen. Eine größere Anzahl von Paketen in einer nconnect
-Einrichtung führt zu häufigen außerhalb des Fensters liegenden Paketen, wodurch das beschriebene Verhalten ausgelöst wird. Für dieses Verhalten können keine spezifischen Beeinträchtigungsprozentsätze angegeben werden.