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)

État de la construction Problèmes GitHub Étoiles GitHub Téléchargements de rôle Licence

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'inventaire host_vars. Ne pas définir les paramètres de disque à l'aide de fichiers d'inventaire group_vars ou d'instructions vars: 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

À propos du projet

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

Installer
ansible-galaxy install acch.spectrum_scale
Licence
mit
Téléchargements
3.2k
Propriétaire