Skip to main content
BeeGFS on NetApp with E-Series Storage
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

Bereitstellen von BeeGFS-Clients

Beitragende

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

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

    1. 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>
    2. 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>
    3. 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>
  4. 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 erfordert ansible_ssh_user „Root“ oder „Sudo“-Berechtigungen besitzen):

    # BeeGFS client inventory.
    all:
      vars:
        ansible_ssh_user: <USER>
        ansible_become_password: <PASSWORD>
    Wichtig 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.
  5. Im client_inventory.yml Datei, Listen Sie alle Hosts auf, die als BeeGFS-Clients unter dem konfiguriert werden sollen beegfs_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.
    Hinweis 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".
  6. Im client_inventory.yml Datei, Listen Sie die BeeGFS-Dateisysteme auf, die Sie unter einem zuvor definierten gemountet haben möchten vars:

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

    1. 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/verteilt client_inventory.yml, Und es ist keine zusätzliche Aktion erforderlich.

      1. Weitere Optionen finden Sie in der vollständigen Liste der Standardwerte, die im enthalten sind "BeeGFS-Client-Rolle".

    2. Wenn Sie ein benutzerdefiniertes Geheimnis mit angeben beegfs_ha_conn_auth_secret Geben Sie ihn im an client_inventory.yml Außerdem:

      beegfs_ha_conn_auth_secret: <SECRET>
    3. Wenn Sie die verbindungsbasierte Authentifizierung vollständig mit deaktivieren beegfs_ha_conn_auth_enabled, Geben Sie das im an client_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

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

    1. Wenn Sie InfiniBand (IPoIB) verwenden:

          - name: Ensure IPoIB is configured
            import_role:
              name: ipoib
    2. Bei Verwendung von RDMA over Converged Ethernet (RoCE):

          - name: Ensure IPoIB is configured
            import_role:
              name: roce
    3. Wenn Sie Ethernet verwenden (nur TCP, kein RDMA):

          - name: Ensure IPoIB is configured
            import_role:
              name: ip
  3. 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