Bereitstellung des Lustre HA Clusters und der Clients
Das Serverbetriebssystem wird vorbereitet, NVIDIA DOCA-OFED installiert, der Lustre HA Cluster bereitgestellt und Lustre Clients mithilfe von NetApp Ansible Playbooks konfiguriert.
Bevor Sie beginnen, die in "Das Lustre Ansible-Inventar anpassen" beschriebene Inventarliste vervollständigen und sichern.
Bereitstellung des Lustre HA Clusters
-
Vom
building_blocks/playbooksVerzeichnis in Ihrer Arbeitskopie aus wird das Betriebssystem auf den Lustre-Servern vorbereitet. Ersetzen Sie<inventory_path>durch den Pfad zu Ihrem benutzerdefinierten Inventarverzeichnis:ansible-playbook -i <inventory_path>/lustre_inventory.yml deploy_lustre_os/deploy_lustre_os_playbook.yml -
NVIDIA DOCA-OFED wird auf jedem Lustre Server installiert. Die Kernelmodule werden für den Kernel erstellt, der im vorherigen Schritt installiert wurde. Das Verfahren für Ihren Kernel befindet sich in "NVIDIA DOCA-Host Installation und Upgrade". Das folgende Beispiel zeigt eine DOCA-OFED Installation auf RHEL oder Rocky Linux.
-
Installieren Sie das DOCA Host-Repository-Paket und aktualisieren Sie den Paketcache. Ersetzen Sie
<doca_host_package>durch das DOCA Host-Paket für Ihr Betriebssystem und Ihre Architektur:dnf install -y wget tar wget https://www.mellanox.com/downloads/DOCA/<doca_host_package>.rpm rpm -i <doca_host_package>.rpm dnf clean all dnf makecache -
Erstellt die DOCA-Kernelmodule für den laufenden Kernel. Das Skript gibt den Pfad des erstellten Pakets aus:
dnf install -y doca-extra /opt/mellanox/doca/tools/doca-kernel-support -
Installieren Sie das vom Skript erstellte Kernelmodul-Repository-Paket und aktualisieren Sie anschließend den Paketcache. Ersetzen Sie
<doca_kernel_repo>mit dem Pfad aus dem vorherigen Schritt:rpm -Uvh <doca_kernel_repo>.rpm dnf makecache -
Installieren Sie die DOCA-OFED Benutzerbereichs-, Kernel- und NVMe-Pakete. Ersetzen Sie
<kernel_version>durch die Versionsnummer des laufenden Kernels:dnf install -y doca-ofed-userspace dnf install -y --disablerepo=doca doca-kernel-<kernel_version> dnf install -y kmod-mlnx-nvme
-
-
Das Hauptbereitstellungs-Playbook ausführen:
ansible-playbook -i <inventory_path>/lustre_inventory.yml lustre_playbook.ymlPassen Sie --forksdie Größe der Bereitstellung an, um zu steuern, wie viele Hosts Ansible parallel konfiguriert. Zum Beispiel--forks 20für einen größeren Cluster.
Das Playbook stellt E-Series Volume-Gruppen oder DDP-Pools und Volumes bereit, konfiguriert die NVMe-oF-Host-Konnektivität, formatiert und mountet die Lustre-Targets, konfiguriert LNet, wendet Leistungsoptimierungen an und konfiguriert die Pacemaker HA-Ressourcen.
|
|
Eine Bereitstellung mit einem Baustein bildet ein Zwei-Node-Pacemaker-Cluster. Knoten A erhält im Falle eines Failovers eine zusätzliche Stimme. Um in einem Zwei-Node-Cluster den Quorum zu erreichen, sollte die Konfiguration eines qdevice in Betracht gezogen werden. Enthält eine Bereitstellung mehrere Bausteine, trägt jeder Baustein ein Serverpaar mit zwei Knoten zum größeren Pacemaker-Cluster bei, bis zum dokumentierten Clusterlimit. Die Fencing- und Quorum-Konfiguration im "HA Administrationshandbuch" sollte überprüft werden, damit der Cluster Ziele im Falle eines Knotenausfalls sicher wiederherstellen kann. |
Lustre Clients bereitstellen
Lustre Clients können auf jedem System bereitgestellt werden, das einen Dateisystemzugriff benötigt, indem die Client-Bereitstellungsvorlage angepasst und das Client-Playbook ausgeführt wird.
-
Wählen Sie ein kompatibles Client-Betriebssystem und einen Kernel aus der "Lustre Support-Matrix" aus. Die Lustre Client-Pakete für diesen Kernel können von "netapp-lustre" erstellt und installiert werden, falls sie noch nicht installiert sind.
-
Erstellen Sie eine Arbeitskopie des `clients`Vorlagenverzeichnisses, einschließlich der gemeinsamen `passwords.yml`Datei, und wählen Sie die Vorlage aus, die zu Ihrem Fabric passt:
-
InfiniBand: "IB_lustre_cluster_clients"
-
-
Passen Sie
lustre_client_inventory.yml,host_varsundgroup_varsfür Ihre Kunden an. Zeilenverweise in der Tabelle verweisen auf die RoCE Clientvorlagendateien imansible-lustrerelease/1.0.0-Tag; die InfiniBand Clientvorlage verwendet dieselben Variablen, sofern nicht anders angegeben.Feld Ansible Variable Vorlagendatei ( release/1.0.0)Umfang Hinweise Client Hosts
lustre_clientsPro Client
Jeder Client-Hostname wird aufgelistet.
Client-SSH-Benutzer und Passwort für „become“
ssh_client_user/ssh_client_become_passClusterweit
Das Passwort sollte nur gesetzt werden, wenn der SSH-Benutzer nicht
rootist.LNet Schnittstellen
eseries_lustre_lnetClusterweit
Namen der clientseitigen LNet-Schnittstellen (Werte bei L13).
MGS-NIDs einhängen
lustre_client_mounts.mgsnodeClusterweit
MGS NIDs, die zum Einbinden des Dateisystems verwendet werden (Werte in Zeile 20).
Dateisystemname
lustre_client_mounts.fsnameClusterweit
Muss mit dem Cluster übereinstimmen
fsname.Mount-Punkt
lustre_client_mounts.mount_pointClusterweit
Client Mount-Verzeichnis.
Client-Management-IP
ansible_hostWiederholung pro Kunde
Eine
host_vars/client_NN.ymlDatei pro Kunde.Storage-Fabric-Schnittstellen
eseries_roce_interfacesWiederholung pro Kunde
Frontend-Schnittstellenadressen (Werte in Zeile 15). Die InfiniBand-Vorlage verwendet
eseries_ipoib_interfaceshier.Die Einstellungen sind für jeden Client zu wiederholen. Für jeden Client ist eine
host_vars/client_NN.ymlDatei zu erstellen und der entsprechende Host zulustre_client_inventory.ymlhinzuzufügen. Die gemeinsameclients/passwords.ymlDatei ist zu befüllen und vor dem Ausführen des Client Playbooks mit Ansible Vault zu verschlüsseln. -
Das Client-Playbook aus dem Client-Vorlagenverzeichnis ausführen:
ansible-playbook -i lustre_client_inventory.yml lustre_client_playbook.yml
Das Client-Playbook konfiguriert die Client-Netzwerkschnittstellen und LNet und kann eine persistente systemd Mount-Unit für das Lustre Dateisystem erstellen.