acch.spectrum_scale


WICHTIG: Leider wird dieses Projekt nicht mehr aktiv von seinen ursprünglichen Ersteller(n) gewartet. Der Code wurde in das "offizielle" IBM/ibm-spectrum-scale-install-infra Projekt zusammengeführt — dort wird die zukünftige Entwicklung stattfinden. Während dieses (ursprüngliche) Projekt möglicherweise keine Updates oder Unterstützung mehr erhält, bleibt der Code für jeden zugänglich, der an einer Weiterentwicklung interessiert ist.


IBM Spectrum Scale (GPFS) Ansible Rolle

Build Status GitHub Issues GitHub Stars Role Downloads License

Hochgradig anpassbare Ansible-Rolle zur Installation und Konfiguration von IBM Spectrum Scale (GPFS)

Besonders interessiert an Feedback und zukünftigen Anforderungen!

Features

  • Installation von Spectrum Scale-Paketen auf Linux-Knoten
  • Optional Überprüfung der Paketintegrität durch Vergleich von Prüfziffern
  • Durchführung eines (offline) Upgrades, wenn der Daemon gestoppt ist
  • Kompilierung oder Installation einer vorcompilierten Linux-Kernel-Erweiterung
  • Konfiguration der SSH-Öffentlichen-Schlüssel-Authentifizierung
  • Erstellen eines neuen Clusters oder Erweitern eines bestehenden Clusters
  • Konfiguration von Netzwerkfreigegebenen Festplatten (NSDs)
  • Erstellen neuer oder Erweitern bestehender Dateisysteme
  • Konfiguration von Knotenkategorien
  • Definition von Konfigurationsparametern basierend auf Knotenkategorien

Folgende Installationsmethoden sind verfügbar:

  • Installation aus (bestehendem) YUM-Repository
  • Installation aus einem Remote-Installationspaket (erreichbar auf dem von Ansible verwalteten Knoten)
  • Installation aus einem lokalen Installationspaket (erreichbar auf der Ansible-Kontrollmaschine)

Zukünftige Pläne:

  • Installation von CES-Paketen
  • Installation von GUI- und zimon-Paketen

Installation

$ ansible-galaxy install acch.spectrum_scale

Anforderungen

Da kein öffentliches Repository verfügbar ist, müssen Sie die Spectrum Scale (GPFS) Pakete von der IBM-Website herunterladen. Besuchen Sie https://www.ibm.com/support/fixcentral und suchen Sie nach 'IBM Spectrum Scale (Software Defined Storage)'.

IBM Spectrum Scale Developer Edition

Wenn Sie kein Abonnement haben, können Sie jetzt die IBM Spectrum Scale Developer Edition herunterladen:

  • Bietet alle Funktionen der IBM Spectrum Scale Data Management Edition, ist jedoch auf 12 TB pro Cluster beschränkt.
  • Es gibt keine Unterstützung von IBM für die Spectrum Scale Developer Edition. Darüber hinaus ist die Nutzung in einer Produktionsumgebung verboten.
  • Die Developer Edition ist über https://www.ibm.com/us-en/marketplace/scale-out-file-and-object-storage zugänglich.

Lokales Repository

Um ein lokales Spectrum Scale-Repository auf einem Webserver zu erstellen:

cd /your/webserver/folder
# Laden Sie das Installationspaket herunter. Holen Sie sich den direkten Link oder kopieren Sie ihn manuell...
wget <Spectrum Scale Installationspaket>
sh ./Spectrum_Scale_Data_Management-5.0.X.X-x86_64-Linux-install --dir ./SpectrumScaleRpms/5.0.X.X/ --silent
cd SpectrumScaleRpms/5.0.X.X/
yum -y install createrepo
createrepo .

Rollenvariablen

Standardvariablen sind in defaults/main.yml definiert. Dort finden Sie auch eine ausführliche Dokumentation. Definieren Sie Ihre eigenen Hostvariablen in Ihrem Inventar, um die Standards zu überschreiben.

Die Definition der Variablen scale_version ist obligatorisch. Darüber hinaus müssen Sie eine Installationsmethode konfigurieren, indem Sie eine der folgenden Variablen definieren:

  • scale_install_repository_url
  • scale_install_remotepkg_path (erreichbar auf dem von Ansible verwalteten Knoten)
  • scale_install_localpkg_path (erreichbar auf der Ansible-Kontrollmaschine)

Clustermitgliedschaft

Alle Hosts im Play werden als Knoten im gleichen Cluster konfiguriert. Wenn Sie Hosts zu einem bestehenden Cluster hinzufügen möchten, fügen Sie mindestens einen Knoten aus diesem bestehenden Cluster zum Play hinzu.

Sie können mehrere Cluster erstellen, indem Sie mehrere Plays ausführen.

Beispiel-Playbook

Das einfachste mögliche Playbook zur Installation von Spectrum Scale auf einem Knoten:

---
- hosts: scale01.example.com
  vars:
    - scale_version: 4.2.3.4
    - scale_install_localpkg_path: /path/to/Spectrum_Scale_Standard-4.2.3.4-x86_64-Linux-install
  roles:
    - acch.spectrum_scale

Dies installiert alle erforderlichen Pakete und erstellt einen ein-Knoten Spectrum Scale-Cluster.

In der Realität möchten Sie wahrscheinlich Spectrum Scale auf mehreren Knoten installieren, und Sie sollten auch die Knotenrollen berücksichtigen, um hohe Verfügbarkeit zu gewährleisten. Der Cluster wird mit allen Hosts im aktuellen Play konfiguriert:

# hosts:
[cluster01]
scale01  scale_cluster_quorum=true   scale_cluster_manager=true
scale02  scale_cluster_quorum=true   scale_cluster_manager=true
scale03  scale_cluster_quorum=true   scale_cluster_manager=false
scale04  scale_cluster_quorum=false  scale_cluster_manager=false
scale05  scale_cluster_quorum=false  scale_cluster_manager=false
# playbook.yml:
---
- hosts: cluster01
  vars:
    - scale_version: 4.2.3.4
    - scale_install_repository_url: http://infraserv/gpfs_rpms/
    - scale_cluster_clustername: cluster01.example.com
  roles:
    - acch.spectrum_scale

Referenzieren Sie defaults/main.yml für eine detaillierte Erklärung möglicher Variablen und Konfigurationsoptionen.

Die Definition von Knotenrollen wie scale_cluster_quorum und scale_cluster_manager ist optional. Wenn Sie keine Quorum-Knoten angeben, erhalten die ersten sieben Hosts in Ihrem Inventar automatisch die Quorum-Rolle.

Die obigen Beispiele installieren die erforderlichen Pakete und erstellen einen funktionalen Spectrum Scale-Cluster, der zum Beispiel verwendbar ist, um bestehende Remote-Dateisysteme einzuhängen. Um auch lokale Dateisysteme im neuen Cluster zu erstellen, müssen Sie zusätzliche Informationen bereitstellen. Es wird empfohlen, host_vars Inventar-Dateien für diesen Zweck zu verwenden:

# host_vars/scale01:
---
scale_storage:
  - filesystem: gpfs01
    blockSize: 4M
    defaultMetadataReplicas: 2
    defaultDataReplicas: 2
    numNodes: 16
    automaticMountOption: true
    defaultMountPoint: /mnt/gpfs01
    disks:
      - device: /dev/sdb
        nsd: nsd_1
        servers: scale01
        failureGroup: 10
        usage: metadataOnly
        pool: system
      - device: /dev/sdc
        nsd: nsd_2
        servers: scale01
        failureGroup: 10
        usage: dataOnly
        pool: data
# host_vars/scale02:
---
scale_storage:
  - filesystem: gpfs01
    disks:
      - device: /dev/sdb
        nsd: nsd_3
        servers: scale02
        failureGroup: 20
        usage: metadataOnly
        pool: system
      - device: /dev/sdc
        nsd: nsd_4
        servers: scale02
        failureGroup: 20
        usage: dataOnly
        pool: data

Referenzieren Sie man mmchfs und man mmchnsd für eine Beschreibung der oben genannten Speicherparameter.

Der Name des filesystem ist obligatorisch, und die Variable device ist für jedes der Festplatten des Dateisystems obligatorisch. Alle anderen Parameter für das Dateisystem und die Festplatten sind optional. Daher könnte eine minimale Dateisystemkonfiguration so aussehen:

# host_vars/scale01:
---
scale_storage:
  - filesystem: gpfs01
    disks:
      - device: /dev/sdb
      - device: /dev/sdc
# host_vars/scale02:
---
scale_storage:
  - filesystem: gpfs01
    disks:
      - device: /dev/sdb
      - device: /dev/sdc

Beachten Sie, dass Dateisystemparameter für jeden Host im Play als Variablen definiert werden können – der Host, für den Sie die Dateisystemparameter definieren, ist irrelevant. Für die Festplattenparameter ist der Host nur relevant, wenn die Variable servers weggelassen wird. Wenn Sie die Variable servers weglassen, wird der Host, für den Sie die Festplatten definieren, automatisch als (einziger) NSD-Server für diese spezifische Festplatte betrachtet.

Wichtig: scale_storage muss für einzelne Host(s) unter Verwendung von host_vars Inventardateien definiert werden. Definieren Sie nicht Diskparameter unter Verwendung von group_vars Inventardateien oder inline vars: in Ihrem Playbook. Andernfalls würde dies sie auf alle Hosts in der Gruppe/Play anwenden, wodurch dieselbe Festplatte mehrfach definiert wird...

Außerdem können Spectrum Scale-Knotenkategorien auf Einzelknotenbasis durch Definition der Variablen scale_nodeclass definiert werden:

# host_vars/scale01:
---
scale_nodeclass:
  - classA
  - classB
# host_vars/scale02:
---
scale_nodeclass:
  - classA
  - classC

Diese Knotenkategorien können optional verwendet werden, um die Konfigurationsparameter von Spectrum Scale zu definieren. Es wird empfohlen, group_vars Inventardateien für diesen Zweck zu verwenden:

# group_vars/all:
---
scale_config:
  - nodeclass: classA
    params:
      - pagepool: 16G
      - autoload: no
      - ignorePrefetchLUNCount: yes

Referenzieren Sie man mmchconfig für eine Liste der verfügbaren Konfigurationsparameter.

Beachten Sie, dass Konfigurationsparameter als Variablen für jeden Host im Play definiert werden können – der Host, für den Sie die Konfigurationsparameter definieren, ist irrelevant.

Einschränkungen

Diese Rolle kann (derzeit) verwendet werden, um neue Cluster zu erstellen oder bestehende zu erweitern. Ebenso können neue Dateisysteme erstellt oder erweitert werden. Aber diese Rolle wird nicht bestehende Knoten, Festplatten, Dateisysteme oder Knotenkategorien entfernen – absichtlich! Dies ist auch der Grund, warum sie nicht verwendet werden kann, um beispielsweise den Dateisystem-Pool einer Festplatte zu ändern. Das Ändern des Pools erfordert es, die Festplatte aus einem Dateisystem zu entfernen und dann wieder hinzuzufügen, was derzeit nicht im Rahmen dieser Rolle liegt.

Darüber hinaus sind Online-Upgrades derzeit nicht im Rahmen dieser Rolle. Spectrum Scale unterstützt rollende Online-Upgrades (indem jeweils ein Knoten heruntergefahren wird), dies erfordert jedoch sorgfältige Planung und Überwachung und kann manuelle Intervention im Falle unvorhergesehener Probleme erfordern.

Fehlerbehebung

Diese Rolle speichert Konfigurationsdateien in /var/tmp auf dem ersten Host im Play. Diese Konfigurationsdateien werden aufbewahrt, um festzustellen, ob sich die Definitionen seit dem letzten Lauf geändert haben, und um zu entscheiden, ob es notwendig ist, bestimmte Spectrum Scale-Kommandos (erneut) auszuführen. Bei Problemen kann man einfach diese Konfigurationsdateien aus /var/tmp löschen, um den Cache zu leeren – dies zwingt zur erneuten Anwendung aller Definitionen beim nächsten Lauf. Nachteil ist, dass der nächste Lauf länger dauern kann als erwartet, da möglicherweise unnötige Spectrum Scale-Befehle erneut ausgeführt werden. Dies wird automatisch den Cache neu generieren.

Bitte verwenden Sie den Issue Tracker, um Fragen zu stellen, Fehler zu melden und Funktionen anzufordern.

Urheberrecht und Lizenz

Urheberrecht 2017 Achim Christ, veröffentlicht unter der MIT-Lizenz

Über das Projekt

Highly-customizable Ansible role for installing and configuring IBM Spectrum Scale (GPFS)

Installieren
ansible-galaxy install acch.spectrum_scale
Lizenz
mit
Downloads
3.2k
Besitzer