acch.spectrum_scale
IMPORTANT : Malheureusement, ce projet n'est plus maintenu activement par son ou ses créateurs d'origine. Le code a été intégré dans le projet "officiel" IBM/ibm-spectrum-scale-install-infra — c'est là que tous les futurs développements auront lieu. Bien que ce projet (original) puisse recevoir moins de mises à jour ou de support, le code reste accessible et disponible pour toute personne intéressée à poursuivre son développement.
Rôle Ansible pour IBM Spectrum Scale (GPFS)
Rôle Ansible hautement personnalisable pour installer et configurer IBM Spectrum Scale (GPFS)
Nous recherchons particulièrement des retours d'expérience et des exigences futures!
Fonctionnalités
- Installer les paquets Spectrum Scale sur des nœuds Linux
- Optionnellement, vérifier l'intégrité des paquets en comparant les sommes de contrôle
- Effectuer une mise à niveau (hors ligne) si le démon est arrêté
- Compiler ou installer une extension du noyau Linux précompilée
- Configurer l'authentification par clé publique SSH
- Créer un nouveau cluster ou étendre un cluster existant
- Configurer des disques partagés en réseau (NSD)
- Créer un nouveau système de fichiers ou étendre un système existant
- Configurer des classes de nœuds
- Définir des paramètres de configuration en fonction des classes de nœuds
Les méthodes d'installation suivantes sont disponibles :
- Installer à partir d'un dépôt YUM (existant)
- Installer à partir d'un paquet d'installation à distance (accessible sur le nœud géré par Ansible)
- Installer à partir d'un paquet d'installation local (accessible sur la machine de contrôle Ansible)
Plans futurs :
- Installer les paquets CES
- Installer les paquets GUI et zimon
Installation
$ ansible-galaxy install acch.spectrum_scale
Exigences
Comme il n'y a pas de dépôt public disponible, vous devrez télécharger les paquets Spectrum Scale (GPFS) depuis le site d'IBM. Visitez https://www.ibm.com/support/fixcentral et recherchez "IBM Spectrum Scale (Stockage défini par logiciel)".
Édition Développeur IBM Spectrum Scale
Si vous n'avez pas d'abonnement, vous pouvez maintenant télécharger l'Édition Développeur d'IBM Spectrum Scale :
- Offre toutes les fonctionnalités de l'Édition de Gestion de Données IBM Spectrum Scale, mais est limitée à 12 To par cluster.
- Il n'y a pas de support d'IBM pour l'Édition Développeur d'IBM Spectrum Scale. De plus, son utilisation dans un environnement de production est interdite.
- L'Édition Développeur peut être accédée via https://www.ibm.com/us-en/marketplace/scale-out-file-and-object-storage.
Dépôt Local
Pour créer un dépôt local Spectrum Scale sur un serveur web :
cd /votre/dossier/serveur_web
# Télécharger le paquet d'installation. Obtenez le lien direct ou copiez-le manuellement...
wget <paquet d'installation Spectrum Scale>
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 .
Variables de Rôle
Les variables par défaut sont définies dans defaults/main.yml
. Vous trouverez également une documentation détaillée dans ce fichier. Définissez vos propres variables d'hôte dans votre inventaire pour remplacer les valeurs par défaut.
Il est obligatoire de définir la variable scale_version
. De plus, vous devez configurer une méthode d'installation en définissant une des variables suivantes :
scale_install_repository_url
scale_install_remotepkg_path
(accessible sur le nœud géré par Ansible)scale_install_localpkg_path
(accessible sur la machine de contrôle Ansible)
Adhésion au Cluster
Tous les hôtes dans le play seront configurés comme des nœuds dans le même cluster. Si vous voulez ajouter des hôtes à un cluster existant, ajoutez au moins un nœud de ce cluster existant au play.
Vous pouvez créer plusieurs clusters en exécutant plusieurs plays.
Exemple de Playbook
Le playbook le plus simple possible pour installer Spectrum Scale sur un nœud :
---
- hosts: scale01.example.com
vars:
- scale_version: 4.2.3.4
- scale_install_localpkg_path: /chemin/vers/Spectrum_Scale_Standard-4.2.3.4-x86_64-Linux-install
roles:
- acch.spectrum_scale
Cela installera tous les paquets requis et créera un cluster Spectrum Scale à un seul nœud.
Dans la réalité, vous voudrez probablement installer Spectrum Scale sur plusieurs nœuds, et vous voudrez également prendre en compte les rôles des nœuds pour obtenir une haute disponibilité. Le cluster sera configuré avec tous les hôtes dans le play actuel :
# 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
Référez-vous à defaults/main.yml
pour une explication détaillée des variables et des options de configuration possibles.
Il est optionnel de définir des rôles de nœud tels que scale_cluster_quorum
et scale_cluster_manager
. Si vous ne spécifiez aucun nœud de quorum, les sept premiers hôtes de votre inventaire se verront automatiquement assigner le rôle de quorum.
Les exemples ci-dessus installeront les paquets requis et créeront un cluster Spectrum Scale fonctionnel qui peut être utilisé pour monter par exemple des systèmes de fichiers distants existants. Pour créer également des systèmes de fichiers locaux dans le nouveau cluster, vous devrez fournir des informations supplémentaires. Il est conseillé d'utiliser des fichiers d'inventaire host_vars
à cet effet :
# 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
Référez-vous à man mmchfs
et man mmchnsd
pour une description des paramètres de stockage ci-dessus.
Le nom du filesystem
est obligatoire, et la variable device
est obligatoire pour chacun des disks
du système de fichiers. Tous les autres paramètres de système de fichiers et de disque sont optionnels. Ainsi, une configuration minimale de système de fichiers pourrait ressembler à ceci :
# 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
Notez que les paramètres du système de fichiers peuvent être définis comme des variables pour n'importe quel hôte dans le play — l'hôte pour lequel vous définissez les paramètres du système de fichiers est sans importance. Pour les paramètres de disque, l'hôte est seulement pertinent si vous omettez la variable servers
. En omettant la variable servers
, l'hôte pour lequel vous définissez le disque est automatiquement considéré comme le (seul) serveur NSD pour ce disque en particulier.
Important :
scale_storage
doit être défini pour un ou plusieurs hôtes individuels à l'aide de fichiers d'inventairehost_vars
. Ne pas définir les paramètres de disque à l'aide de fichiers d'inventairegroup_vars
ou d'instructionsvars:
en ligne dans votre playbook. Cela les appliquerait à tous les hôtes du groupe/play, définissant ainsi le même disque plusieurs fois...
De plus, les classes de nœuds Spectrum Scale peuvent être définies sur une base par nœud en définissant la variable scale_nodeclass
:
# host_vars/scale01:
---
scale_nodeclass:
- classA
- classB
# host_vars/scale02:
---
scale_nodeclass:
- classA
- classC
Ces classes de nœuds peuvent être utilisées pour définir des paramètres de configuration Spectrum Scale. Il est recommandé d'utiliser des fichiers d'inventaire group_vars
à cet effet :
# group_vars/all:
---
scale_config:
- nodeclass: classA
params:
- pagepool: 16G
- autoload: no
- ignorePrefetchLUNCount: yes
Référez-vous à man mmchconfig
pour une liste des paramètres de configuration disponibles.
Notez que les paramètres de configuration peuvent être définis comme des variables pour n'importe quel hôte dans le play — l'hôte pour lequel vous définissez les paramètres de configuration est sans importance.
Limitations
Ce rôle peut (actuellement) être utilisé pour créer de nouveaux clusters ou étendre des clusters existants. De même, de nouveaux systèmes de fichiers peuvent être créés ou étendus. Mais ce rôle ne supprimera pas les nœuds, disques, systèmes de fichiers ou classes de nœuds existants — intentionnellement ! C'est également la raison pour laquelle il ne peut pas être utilisé pour changer le pool de systèmes de fichiers d'un disque. Changer le pool nécessite de retirer puis de réajouter le disque d'un système de fichiers, ce qui n'est pas actuellement dans le champ de ce rôle.
De plus, les mises à niveau en ligne ne sont pas actuellement dans le champ de ce rôle. Spectrum Scale prend en charge les mises à niveau en ligne par étapes (en prenant un nœud à la fois), mais cela nécessite une planification et un suivi soigneux et pourrait nécessiter une intervention manuelle en cas de problèmes imprévus.
Résolution de problèmes
Ce rôle stocke des fichiers de configuration dans /var/tmp
sur le premier hôte du play. Ces fichiers de configuration sont conservés pour déterminer si les définitions ont changé depuis la dernière exécution et pour décider s'il est nécessaire d'exécuter à nouveau certaines commandes Spectrum Scale. En cas de problème, on peut supprimer simplement ces fichiers de configuration de /var/tmp
pour effacer le cache — cela forcera la réapplication de toutes les définitions lors de la prochaine exécution. En revanche, la prochaine exécution peut prendre plus de temps que prévu car elle pourrait réexécuter des commandes Spectrum Scale inutiles. Cela générera automatiquement à nouveau le cache.
Veuillez utiliser le suivi des problèmes pour poser des questions, signaler des bogues et demander des fonctionnalités.
Droits d'auteur et licence
Droits d'auteur 2017 Achim Christ, publié sous la licence MIT
Highly-customizable Ansible role for installing and configuring IBM Spectrum Scale (GPFS)
ansible-galaxy install acch.spectrum_scale