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.

Implementieren Sie das BeeGFS HA-Cluster

Beitragende

Geben Sie an, welche Aufgaben ausgeführt werden sollen, um BeeGFS HA-Cluster mithilfe eines Playbooks zu implementieren.

Überblick

In diesem Abschnitt wird beschrieben, wie Sie das Standard-Playbook zur Bereitstellung/zum Managen von BeeGFS auf NetApp zusammenstellen können.

Schritte

Erstellen Sie das Ansible Playbook

Erstellen Sie die Datei playbook.yml Und füllen Sie es wie folgt aus:

  1. Definieren Sie zunächst einen Satz von Aufgaben (allgemein als A bezeichnet) "Spielen") Die nur auf Block-Nodes der NetApp E-Series ausgeführt werden sollte. Wir verwenden eine Pause-Aufgabe, um vor dem Ausführen der Installation eine Aufforderung zu geben (um versehentliche Playbook-Läufe zu vermeiden), und importieren dann die nar_santricity_management Rolle: Diese Rolle übernimmt die Anwendung aller in definierten allgemeinen Systemkonfiguration group_vars/eseries_storage_systems.yml Oder einzeln host_vars/<BLOCK NODE>.yml Dateien:

    - hosts: eseries_storage_systems
      gather_facts: false
      collections:
        - netapp_eseries.santricity
      tasks:
        - name: Verify before proceeding.
          pause:
            prompt: "Are you ready to proceed with running the BeeGFS HA role? Depending on the size of the deployment and network performance between the Ansible control node and BeeGFS file and block nodes this can take awhile (10+ minutes) to complete."
        - name: Configure NetApp E-Series block nodes.
          import_role:
            name: nar_santricity_management
  2. Definieren Sie die Wiedergabe, die für alle Datei- und Blockknoten ausgeführt wird:

    - hosts: all
      any_errors_fatal: true
      gather_facts: false
      collections:
        - netapp_eseries.beegfs
  3. In diesem Sales Play können wir optional einen Satz von „Voraufgaben“ definieren, die vor der Bereitstellung des HA-Clusters ausgeführt werden sollten. Dies kann nützlich sein, um alle Voraussetzungen wie Python zu überprüfen/zu installieren. Zudem können Überprüfungen vor dem Flug durchgeführt werden, beispielsweise die Unterstützung der bereitgestellten Ansible-Tags:

      pre_tasks:
        - name: Ensure a supported version of Python is available on all file nodes.
          block:
            - name: Check if python is installed.
              failed_when: false
              changed_when: false
              raw: python --version
              register: python_version
    
            - name: Check if python3 is installed.
              raw: python3 --version
              failed_when: false
              changed_when: false
              register: python3_version
              when: 'python_version["rc"] != 0 or (python_version["stdout"] | regex_replace("Python ", "")) is not version("3.0", ">=")'
    
            - name: Install python3 if needed.
              raw: |
                id=$(grep "^ID=" /etc/*release* | cut -d= -f 2 | tr -d '"')
                case $id in
                  ubuntu) sudo apt install python3 ;;
                  rhel|centos) sudo yum -y install python3 ;;
                  sles) sudo zypper install python3 ;;
                esac
              args:
                executable: /bin/bash
              register: python3_install
              when: python_version['rc'] != 0 and python3_version['rc'] != 0
              become: true
    
            - name: Create a symbolic link to python from python3.
              raw: ln -s /usr/bin/python3 /usr/bin/python
              become: true
              when: python_version['rc'] != 0
          when: inventory_hostname not in groups[beegfs_ha_ansible_storage_group]
    
        - name: Verify any provided tags are supported.
          fail:
            msg: "{{ item }} tag is not a supported BeeGFS HA tag. Rerun your playbook command with --list-tags to see all valid playbook tags."
          when: 'item not in ["all", "storage", "beegfs_ha", "beegfs_ha_package", "beegfs_ha_configure", "beegfs_ha_configure_resource", "beegfs_ha_performance_tuning", "beegfs_ha_backup", "beegfs_ha_client"]'
          loop: "{{ ansible_run_tags }}"
  4. Schließlich importiert dieses Spiel die BeeGFS HA-Rolle für die Version von BeeGFS, die Sie bereitstellen möchten:

      tasks:
        - name: Verify the BeeGFS HA cluster is properly deployed.
          import_role:
            name: beegfs_ha_7_4 # Alternatively specify: beegfs_ha_7_3.
    Hinweis Für jede unterstützte Major.Minor Version von BeeGFS wird eine BeeGFS HA-Rolle beibehalten. Auf diese Weise können Benutzer festlegen, wann ein Upgrade von Major-/Minor-Versionen durchgeführt werden soll. Derzeit (beegfs_7_3(`beegfs_7_2`werden BeeGFS 7.3.x ) oder BeeGFS 7.2.x ) unterstützt. Standardmäßig werden beide Rollen zum Zeitpunkt der Veröffentlichung die neueste BeeGFS-Patch-Version bereitstellen. Benutzer können dies jedoch überschreiben und gegebenenfalls den neuesten Patch bereitstellen. "Upgrade-Leitfaden"Weitere Informationen finden Sie auf dem neuesten Stand.
  5. Optional: Wenn Sie zusätzliche Aufgaben definieren möchten, sollten Sie beachten, ob die Aufgaben an geleitet werden sollen all Hosts (einschließlich der E-Series Storage-Systeme) oder nur die Datei-Nodes Definieren Sie bei Bedarf ein neues Spiel speziell für Dateiknoten mit - hosts: ha_cluster.

Klicken Sie Auf "Hier" Beispiel für eine vollständige Playbook-Datei.

NetApp Ansible Sammlungen installieren

Die BeeGFS-Sammlung für Ansible, und alle Abhängigkeiten werden aufrechterhalten "Ansible-Galaxie". Führen Sie auf Ihrem Ansible-Steuerungsknoten den folgenden Befehl aus, um die neueste Version zu installieren:

ansible-galaxy collection install netapp_eseries.beegfs

Obwohl nicht in der Regel empfohlen, ist es auch möglich, eine bestimmte Version der Sammlung zu installieren:

ansible-galaxy collection install netapp_eseries.beegfs:==<MAJOR>.<MINOR>.<PATCH>

Führen Sie das Playbook aus

Aus dem Verzeichnis auf Ihrem Ansible-Steuerungsknoten, der den enthält inventory.yml Und playbook.yml Dateien, führen Sie das Playbook wie folgt aus:

ansible-playbook -i inventory.yml playbook.yml

Basierend auf der Cluster-Größe kann die ursprüngliche Implementierung 20+ Minuten dauern. Wenn die Implementierung aus irgendeinem Grund fehlschlägt, korrigieren Sie einfach Probleme (z. B. Fehlverkabelung, Knoten wurde nicht gestartet usw.) und starten Sie das Ansible Playbook neu.

"Allgemeine Konfiguration der Datei-Nodes"Wenn Sie angeben , wenn Sie die Standardoption wählen, damit Ansible die verbindungsbasierte Authentifizierung automatisch verwaltet, connAuthFile kann ein als gemeinsamer Schlüssel verwendet jetzt unter <playbook_dir>/files/beegfs/<sysMgmtdHost>_connAuthFile (standardmäßig) gefunden werden. Alle Clients, die auf das Dateisystem zugreifen müssen, müssen diesen gemeinsam genutzten Schlüssel verwenden. Dies wird automatisch verarbeitet, wenn Clients über die konfiguriert werden"BeeGFS-Client-Rolle".