Skip to main content
NetApp artificial intelligence solutions
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

Bereitstellung des Lustre HA Clusters und der Clients

Beitragende netapp-jsnyder
Änderungen vorschlagen

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

Schritte
  1. Vom building_blocks/playbooks Verzeichnis 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
  2. 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.

    1. 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
    2. 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
    3. 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
    4. 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
  3. Das Hauptbereitstellungs-Playbook ausführen:

    ansible-playbook -i <inventory_path>/lustre_inventory.yml lustre_playbook.yml
    Hinweis Passen Sie --forks die Größe der Bereitstellung an, um zu steuern, wie viele Hosts Ansible parallel konfiguriert. Zum Beispiel --forks 20 fü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.

Hinweis 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.

Schritte
  1. 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.

  2. 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:

  3. Passen Sie lustre_client_inventory.yml, host_vars und group_vars für Ihre Kunden an. Zeilenverweise in der Tabelle verweisen auf die RoCE Clientvorlagendateien im ansible-lustre release/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_clients

    "lustre_client_inventory.yml#L4"

    Pro Client

    Jeder Client-Hostname wird aufgelistet.

    Client-SSH-Benutzer und Passwort für „become“

    ssh_client_user / ssh_client_become_pass

    "passwords.yml#L2"

    Clusterweit

    Das Passwort sollte nur gesetzt werden, wenn der SSH-Benutzer nicht root ist.

    LNet Schnittstellen

    eseries_lustre_lnet

    "group_vars/all.yml#L7"

    Clusterweit

    Namen der clientseitigen LNet-Schnittstellen (Werte bei L13).

    MGS-NIDs einhängen

    lustre_client_mounts.mgsnode

    "group_vars/all.yml#L17"

    Clusterweit

    MGS NIDs, die zum Einbinden des Dateisystems verwendet werden (Werte in Zeile 20).

    Dateisystemname

    lustre_client_mounts.fsname

    "group_vars/all.yml#L21"

    Clusterweit

    Muss mit dem Cluster übereinstimmen fsname.

    Mount-Punkt

    lustre_client_mounts.mount_point

    "group_vars/all.yml#L22"

    Clusterweit

    Client Mount-Verzeichnis.

    Client-Management-IP

    ansible_host

    "host_vars/client_01.yml#L4"

    Wiederholung pro Kunde

    Eine host_vars/client_NN.yml Datei pro Kunde.

    Storage-Fabric-Schnittstellen

    eseries_roce_interfaces

    "host_vars/client_01.yml#L10"

    Wiederholung pro Kunde

    Frontend-Schnittstellenadressen (Werte in Zeile 15). Die InfiniBand-Vorlage verwendet eseries_ipoib_interfaces hier.

    Die Einstellungen sind für jeden Client zu wiederholen. Für jeden Client ist eine host_vars/client_NN.yml Datei zu erstellen und der entsprechende Host zu lustre_client_inventory.yml hinzuzufügen. Die gemeinsame clients/passwords.yml Datei ist zu befüllen und vor dem Ausführen des Client Playbooks mit Ansible Vault zu verschlüsseln.

  4. 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.

Nachdem Sie fertig sind