Bereitstellen von BeeGFS-Clients
Optional kann Ansible verwendet werden, um BeeGFS-Clients zu konfigurieren und das Dateisystem zu mounten.
Überblick
Für den Zugriff auf BeeGFS-Dateisysteme muss der BeeGFS-Client auf jedem Node installiert und konfiguriert werden, der das Dateisystem bereitstellen muss. In diesem Abschnitt wird beschrieben, wie Sie diese Aufgaben mit dem verfügbaren ausführen "Ansible-Rolle".
Schritte
Erstellen Sie die Client-Bestandsdatei
-
Richten Sie bei Bedarf über den Ansible-Steuerungsknoten passwortlose SSH für jeden Host ein, den Sie als BeeGFS-Clients konfigurieren möchten:
ssh-copy-id <user>@<HOSTNAME_OR_IP>
-
Unter
host_vars/`Erstellen Sie für jeden BeeGFS-Client eine Datei mit dem Namen `<HOSTNAME>.yml
Füllen Sie den Platzhaltertext mit den korrekten Informationen für Ihre Umgebung aus:# BeeGFS Client ansible_host: <MANAGEMENT_IP>
-
Geben Sie optional eine der folgenden Optionen ein, wenn Sie die Rollen der NetApp E-Series Host Collection verwenden möchten, um InfiniBand- oder Ethernet-Schnittstellen für Clients zu konfigurieren, damit eine Verbindung mit BeeGFS File-Nodes hergestellt werden kann:
-
Wenn der Netzwerktyp ist "InfiniBand (mit IPoIB)":
eseries_ipoib_interfaces: - name: <INTERFACE> # Example: ib0 or i1b address: <IP/SUBNET> # Example: 100.127.100.1/16 - name: <INTERFACE> # Additional interfaces as needed. address: <IP/SUBNET>
-
Wenn der Netzwerktyp ist "RDMA über Converged Ethernet (RoCE)":
eseries_roce_interfaces: - name: <INTERFACE> # Example: eth0. address: <IP/SUBNET> # Example: 100.127.100.1/16 - name: <INTERFACE> # Additional interfaces as needed. address: <IP/SUBNET>
-
Wenn der Netzwerktyp ist "Ethernet (nur TCP, kein RDMA)":
eseries_ip_interfaces: - name: <INTERFACE> # Example: eth0. address: <IP/SUBNET> # Example: 100.127.100.1/16 - name: <INTERFACE> # Additional interfaces as needed. address: <IP/SUBNET>
-
-
Erstellen Sie eine neue Datei
client_inventory.yml
Geben Sie den Benutzer an, den Ansible für die Verbindung mit den einzelnen Clients verwenden soll, und das Passwort, das Ansible zur Eskalation von Berechtigungen verwenden soll (dies erfordertansible_ssh_user
„Root“ oder „Sudo“-Berechtigungen besitzen):# BeeGFS client inventory. all: vars: ansible_ssh_user: <USER> ansible_become_password: <PASSWORD>
Speichern Sie Passwörter nicht im Klartext. Verwenden Sie stattdessen den Ansible-Vault (siehe "Ansible-Dokumentation" Für Inhalte mit Ansible Vault) oder verwenden Sie den --ask-become-pass
Option beim Ausführen des Playbooks. -
Im
client_inventory.yml
Datei, Listen Sie alle Hosts auf, die als BeeGFS-Clients unter dem konfiguriert werden sollenbeegfs_clients
Gruppe, und dann beachten Sie die Inline-Kommentare und Uncomment zusätzliche Konfiguration erforderlich, um das BeeGFS-Client-Kernel-Modul auf Ihrem System zu erstellen:children: # Ansible group representing all BeeGFS clients: beegfs_clients: hosts: <CLIENT HOSTNAME>: # Additional clients as needed. vars: # OPTION 1: If you’re using the NVIDIA OFED drivers and they are already installed: #eseries_ib_skip: True # Skip installing inbox drivers when using the IPoIB role. #beegfs_client_ofed_enable: True #beegfs_client_ofed_include_path: "/usr/src/ofa_kernel/default/include" # OPTION 2: If you’re using inbox IB/RDMA drivers and they are already installed: #eseries_ib_skip: True # Skip installing inbox drivers when using the IPoIB role. # OPTION 3: If you want to use inbox IB/RDMA drivers and need them installed/configured. #eseries_ib_skip: False # Default value. #beegfs_client_ofed_enable: False # Default value.
Wenn Sie die NVIDIA OFED-Treiber verwenden, stellen Sie sicher, dass beegfs_Client_ofed_include_PATH auf den korrekten „Header include path“ für Ihre Linux-Installation verweist. Weitere Informationen finden Sie in der BeeGFS-Dokumentation für "RDMA-Unterstützung". -
Im
client_inventory.yml
Datei, Listen Sie die BeeGFS-Dateisysteme auf, die Sie unter einem zuvor definierten gemountet haben möchtenvars
:beegfs_client_mounts: - sysMgmtdHost: <IP ADDRESS> # Primary IP of the BeeGFS management service. mount_point: /mnt/beegfs # Path to mount BeeGFS on the client. connInterfaces: - <INTERFACE> # Example: ibs4f1 - <INTERFACE> beegfs_client_config: # Maximum number of simultaneous connections to the same node. connMaxInternodeNum: 128 # BeeGFS Client Default: 12 # Allocates the number of buffers for transferring IO. connRDMABufNum: 36 # BeeGFS Client Default: 70 # Size of each allocated RDMA buffer connRDMABufSize: 65536 # BeeGFS Client Default: 8192 # Required when using the BeeGFS client with the shared-disk HA solution. # This does require BeeGFS targets be mounted in the default “sync” mode. # See the documentation included with the BeeGFS client role for full details. sysSessionChecksEnabled: false # Specify additional file system mounts for this or other file systems.
-
Ab BeeGFS 7.2.7 und 7.3.1 "Verbindungsauthentifizierung" müssen konfiguriert oder explizit deaktiviert sein. Je nachdem, wie Sie die verbindungsbasierte Authentifizierung bei der Angabe konfigurieren"Allgemeine Konfiguration der Datei-Nodes", müssen Sie möglicherweise Ihre Clientkonfiguration anpassen:
-
Standardmäßig konfiguriert die HA-Cluster-Implementierung die Verbindungsauthentifizierung automatisch und generiert einen
connauthfile
Die auf dem Ansible-Kontroll-Node bei platziert/gewartet werden<INVENTORY>/files/beegfs/<sysMgmtdHost>_connAuthFile
. Standardmäßig ist die BeeGFS-Client-Rolle so eingerichtet, dass sie diese Datei an die in definierten Clients liest/verteiltclient_inventory.yml
, Und es ist keine zusätzliche Aktion erforderlich.-
Weitere Optionen finden Sie in der vollständigen Liste der Standardwerte, die im enthalten sind "BeeGFS-Client-Rolle".
-
-
Wenn Sie ein benutzerdefiniertes Geheimnis mit angeben
beegfs_ha_conn_auth_secret
Geben Sie ihn im anclient_inventory.yml
Außerdem:beegfs_ha_conn_auth_secret: <SECRET>
-
Wenn Sie die verbindungsbasierte Authentifizierung vollständig mit deaktivieren
beegfs_ha_conn_auth_enabled
, Geben Sie das im anclient_inventory.yml
Außerdem:beegfs_ha_conn_auth_enabled: false
-
Eine vollständige Liste der unterstützten Parameter und weitere Details finden Sie im "Vollständige BeeGFS-Client-Dokumentation". Klicken Sie für ein vollständiges Beispiel eines Clientbestands auf "Hier".
Erstellen Sie die BeeGFS Client Playbook-Datei
-
Erstellen Sie eine neue Datei
client_playbook.yml
# BeeGFS client playbook. - hosts: beegfs_clients any_errors_fatal: true gather_facts: true collections: - netapp_eseries.beegfs - netapp_eseries.host tasks:
-
Optional: Wenn Sie die Rollen der NetApp E-Series Host Collection verwenden möchten, um Schnittstellen für Clients zu konfigurieren, mit denen sich eine Verbindung zu BeeGFS-Dateisystemen herstellen lässt, importieren Sie die Rolle entsprechend dem Schnittstellentyp, den Sie konfigurieren:
-
Wenn Sie InfiniBand (IPoIB) verwenden:
- name: Ensure IPoIB is configured import_role: name: ipoib
-
Bei Verwendung von RDMA over Converged Ethernet (RoCE):
- name: Ensure IPoIB is configured import_role: name: roce
-
Wenn Sie Ethernet verwenden (nur TCP, kein RDMA):
- name: Ensure IPoIB is configured import_role: name: ip
-
-
Schließlich importieren Sie die BeeGFS-Client-Rolle, um die Client-Software zu installieren und das Dateisystem-Mounts einzurichten:
# REQUIRED: Install the BeeGFS client and mount the BeeGFS file system. - name: Verify the BeeGFS clients are configured. import_role: name: beegfs_client
Klicken Sie zum vollständigen Beispiel für ein Client-Playbook auf "Hier".
Führen Sie das BeeGFS Client Playbook aus
Führen Sie den folgenden Befehl aus, um den Client zu installieren/zu erstellen und BeeGFS zu mounten:
ansible-playbook -i client_inventory.yml client_playbook.yml