pNFS Anwendungsfälle in ONTAP
Sie können pNFS mit verschiedenen ONTAP-Funktionen verwenden, um die Leistung zu verbessern und zusätzliche Flexibilität für NFS-Workloads zu bieten.
pNFS mit nconnect
NFS führte mit einigen neueren Clients und Servern eine neue Mount-Option ein, die es ermöglicht, mehrere TCP-Verbindungen über eine einzige IP-Adresse bereitzustellen. Dies bietet einen Mechanismus zur besseren Parallelisierung von Operationen, zur Umgehung von Einschränkungen des NFS-Servers und -Clients und potenziell zur Steigerung der Gesamtleistung bei bestimmten Arbeitslasten. nconnect wird in ONTAP 9.8 und höher unterstützt, sofern der Client nconnect unterstützt.
Bei Verwendung von nconnect mit pNFS werden Verbindungen mithilfe der nconnect-Option parallel über jedes vom NFS-Server angekündigte pNFS-Gerät aufgebaut. Wenn beispielsweise nconnect auf vier gesetzt ist und vier geeignete Schnittstellen für pNFS vorhanden sind, beträgt die Gesamtzahl der erstellten Verbindungen bis zu 16 pro Mountpunkt (4 nconnect x 4 IP-Adressen).
pNFS mit NFSv4.1 Session Trunking
NFSv4.1 Session Trunking ("RFC 5661, Abschnitt 2.10.5" ist die Nutzung mehrerer TCP-Verbindungen zwischen einem Client und einem Server, um die Geschwindigkeit des Datentransfers zu erhöhen. Unterstützung für NFSv4.1 Session Trunking wurde in ONTAP 9.14.1 hinzugefügt und muss mit Clients verwendet werden, die ebenfalls Session Trunking unterstützen.
In ONTAP wird NFSv4.1-Session-Trunking über mehrere physische Schnittstellen auf einem einzelnen Knoten in einem Cluster verwendet, um zusätzlichen Durchsatz und Redundanz über unabhängige Verbindungen bereitzustellen.
Bei Verwendung mit pNFS können diese Trunks eine insgesamt höhere aggregierte Performance im gesamten Cluster bieten.
Session-Trunking wird auf verschiedene Weise eingerichtet:
-
Automatische Erkennung über Mount-Optionen: Session Trunking wird in den meisten modernen NFS-Clients mithilfe von Mount-Optionen eingerichtet (siehe Dokumentation Ihres Betriebssystemherstellers), die dem NFS-Server signalisieren, Informationen über Session Trunks an den Client zurückzusenden. Diese Informationen erscheinen in einem NFS-Paket als ein
fs_location4-Aufruf.Die verwendete Mount-Option hängt von der Betriebssystemversion des Clients ab. Beispielsweise verwenden Ubuntu Linux-Distributionen in der Regel
max_connect=n, um anzuzeigen, dass ein Session-Trunk verwendet werden soll. In RHEL Linux-Distributionen wird dietrunkdiscoveryMount-Option verwendet.Ubuntu Beispielmount -o vers=4.1,max_connect=8 10.10.10.10:/pNFS /mnt/pNFS
RHEL-Beispielmount -o vers=4.1,trunkdiscovery 10.10.10.10:/pNFS /mnt/pNFS
Wenn max_connectauf RHEL-Distributionen verwendet wird, wird es stattdessen als nconnect behandelt und Session Trunking funktioniert nicht wie erwartet. -
Manuelle Einrichtung: Sie können Session-Trunking manuell einrichten, indem Sie jede einzelne IP-Adresse demselben Exportpfad und Mountpunkt zuordnen. Wenn Sie beispielsweise zwei IP-Adressen auf demselben Knoten (10.10.10.10 und 10.10.10.11) für einen Exportpfad von
/pNFShaben, wird der Mount-Befehl zweimal ausgeführt:mount -o vers=4.1 10.10.10.10:/pNFS /mnt/pNFS mount -o vers=4.1 10.10.10.11:/pNFS /mnt/pNFS
Dieser Vorgang ist für alle Schnittstellen zu wiederholen, die am Trunk teilnehmen sollen.
|
|
Jeder Knoten erhält seinen eigenen Sitzungstrunk. Trunks durchlaufen keine Knoten. |
|
|
Bei Verwendung von pNFS sollte entweder Session Trunking oder nconnect verwendet werden. Die gleichzeitige Verwendung beider Optionen führt zu unerwünschtem Verhalten, beispielsweise profitiert nur die Metadatenserververbindung von den Vorteilen von nconnect, während die Datenserver eine einzige Verbindung nutzen. |
pNFS kann einen lokalen Pfad zu jedem teilnehmenden Knoten in einem Cluster bereitstellen, und in Verbindung mit Session Trunking kann pNFS einen Session Trunk pro Knoten nutzen, um den Durchsatz für den gesamten Cluster zu maximieren.
Wenn trunkdiscovery verwendet wird, wird ein zusätzlicher GETATTR-Aufruf (FS_Locations) für die aufgelisteten Session-Trunk-Schnittstellen auf dem NFS-Serverknoten genutzt, auf dem sich die Mount-Schnittstelle befindet. Sobald diese zurückgegeben wurden, werden nachfolgende Mounts an die zurückgegebenen Adressen durchgeführt. Dies ist in einer Paketerfassung während des Mounts zu sehen.
pNFS versus NFSv4.1-Referrals
NFSv4.1-Verweise ermöglichen die Umleitung des anfänglichen Mount-Pfads und leiten einen Client bei einer Mount-Anfrage zum Speicherort der Volumes. NFSv4.1-Verweise funktionieren innerhalb einer einzelnen SVM. Diese Funktion versucht, den NFS-Mount auf eine Netzwerkschnittstelle zu lokalisieren, die sich auf demselben Knoten wie das Datenvolume befindet. Wenn diese Schnittstelle oder das Volume während des Mountens auf einen anderen Knoten verschoben wird, ist der Datenpfad nicht mehr lokalisiert, bis ein neuer Mount eingerichtet wird.
pNFS versucht nicht, einen Mount-Pfad zu lokalisieren. Stattdessen wird ein Metadatenserver mithilfe eines Mount-Pfads eingerichtet und der Datenpfad anschließend bei Bedarf dynamisch lokalisiert.
Sie können NFSv4.1-Referrals mit pNFS verwenden, aber die Funktionalität ist unnötig. Die Aktivierung von Referrals mit pNFS zeigt keine merklichen Ergebnisse.
Interaktion von pNFS mit fortschrittlichem Kapazitätsausgleich
"Erweiterter Kapazitätsausgleich" in ONTAP schreibt Teile von Dateidaten über die Teilvolumes eines FlexGroup Volumes (wird bei einzelnen FlexVol Volumes nicht unterstützt). Wenn eine Datei wächst, entscheidet ONTAP, die Daten in einen neuen Multipart-Inode auf einem anderen Teilvolume zu schreiben, das sich auf demselben oder auf einem anderen Knoten befinden kann. Schreib-, Lese- und Metadatenoperationen an diesen Multi-Inode-Dateien erfolgen transparent und ohne Unterbrechung für die Clients. Ein fortschrittlicher Kapazitätsausgleich verbessert das Speicherplatzmanagement zwischen den FlexGroup Teilvolumes, was für eine gleichmäßigere Performance sorgt.
pNFS kann Daten-IO abhängig von den im NFS-Server gespeicherten Dateilayoutinformationen auf einen lokalen Netzwerkpfad umleiten. Wenn eine einzelne große Datei in Teilen über mehrere zugehörige Volumes erstellt wird, die sich potenziell über mehrere Knoten im Cluster erstrecken, kann pNFS in ONTAP dennoch lokalen Datenverkehr zu jedem Dateiteil bereitstellen, da ONTAP die Dateilayoutinformationen für alle Dateiteile ebenfalls verwaltet. Beim Lesen einer Datei ändert sich die Datenpfadlokalität nach Bedarf.