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
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 vonhost_vars
Inventardateien definiert werden. Definieren Sie nicht Diskparameter unter Verwendung vongroup_vars
Inventardateien oder inlinevars:
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
Highly-customizable Ansible role for installing and configuring IBM Spectrum Scale (GPFS)
ansible-galaxy install acch.spectrum_scale