Comment déployer Scality RING sur OPCP
Découvrez comment déployer un cluster Scality RING sur du bare metal OPCP avec Terraform, de la préparation des nœuds à la vérification
Objectif
Scality RING est une plateforme de stockage logicielle qui transforme un ensemble de serveurs en un système unique de stockage objet (S31) et/ou fichier (NFS/CIFS), avec une protection des données assurée soit par erasure coding (ARC), soit par réplication (COS), sans nécessiter de contrôleur RAID matériel.
Scality RING est une solution tierce certifiée OPCP. Cette procédure de déploiement est rédigée et maintenue par Scality, et non par OVHcloud. Pour toute assistance concernant RING lui-même, contactez le support Scality.
L'On-Prem Cloud Platform (OPCP) d'OVHcloud expose les serveurs physiques de son Bare Metal Pool via OpenStack : Nova confie chaque instance à Ironic, qui démarre en PXE une machine physique entière avec l'image que vous fournissez, plutôt que d'exécuter une machine virtuelle sur un hyperviseur. Il n'y a pas d'accès console et, sur la plateforme de production cible, aucun accès SSH direct aux nœuds avant leur déploiement.
Ce guide détaille le déploiement d'un cluster RING sur du bare metal OPCP, de bout en bout :
- La préparation des nœuds bare metal (bonding réseau et, éventuellement, RAID logiciel pour le disque OS).
- Le provisionnement des ports réseau et des instances bare metal avec Terraform.
- Le lancement automatique de l'installeur RING, piloté par
cloud-init, puisque les nœuds ne sont pas joignables en SSH avant leur démarrage. - La vérification du déploiement et l'accès à l'interface du superviseur RING.
Ce guide ne couvre pas la construction des images disque du superviseur et des nœuds de stockage Scality RING, ni l'obtention d'une licence RING. Il suppose que vous disposez déjà des deux. Consultez la section « Prérequis » ci-dessous pour savoir où les obtenir.
Prérequis
-
Disposer d'un projet OVHcloud OPCP comptant suffisamment de nœuds Bare Metal Pool à l'état Ironic
availablepour votre topologie cible. Le cluster minimal pris en charge par RING sur cette plateforme est 1 nœud superviseur et 3 nœuds de stockage, les 3 nœuds de stockage devant être soit des modèles du catalogue High Capacity Storage (write cache pas encore disponible), soit des modèles High Performance Storage. -
Disposer d'un identifiant d'application OpenStack (application credential) pour ce projet, utilisable à la fois par la CLI OpenStack et par Terraform. Consultez l'étape Création d'une Application Credential depuis Horizon du guide OVHcloud « Comment utiliser Terraform » pour OPCP.
-
Avoir installé les outils suivants sur le poste de travail depuis lequel vous lancez le déploiement :
- la CLI OpenStack (
openstack), pour importer les images (étape 2), configurer le LACP et le RAID (étape 3) et lancer les commandes de vérification (étape 8) ; - Terraform (ou OpenTofu) avec le provider
terraform-provider-openstack, pour provisionner les ports réseau et les instances bare metal ; jq, pour analyser la sortie JSON de la vérification des groupes de ports (étape 8) ;- un client SSH, utile si vous devez accéder directement au superviseur plutôt que par sa seule interface web.
- la CLI OpenStack (
-
Disposer d'une image qcow2 superviseur Scality RING et d'une ou plusieurs images qcow2 stockage, basées sur Rocky Linux ou RHEL — les seuls systèmes d'exploitation pris en charge par RING sur OPCP — prêtes à être importées dans Glance. L'image superviseur est censée déjà embarquer le bundle d'installation RING, car le superviseur n'a aucun moyen garanti de le récupérer après son démarrage sur cette plateforme.
InfoVous ne construisez pas ces images vous-même : demandez les images qcow2 superviseur et stockage (ainsi que le bundle d'installation RING, s'il n'est pas déjà intégré à l'image superviseur) à Scality, via votre interlocuteur commercial ou le support Scality. La construction ou la personnalisation des images RING n'est pas couverte par ce guide — consultez le portail de documentation Scality pour cette procédure, ou le guide OVHcloud sur la construction d'une image CentOS Stream personnalisée pour comprendre les exigences sous-jacentes d'Ironic/Nova en matière d'images.
-
Posséder une licence Scality RING valide. RING ne s'installe et ne fonctionne sans licence que dans un état d'évaluation limité et borné dans le temps ; demandez une licence auprès du support Scality avant toute mise en production.
-
Disposer d'un export de l'outil de dimensionnement RING (un fichier
cluster.csvdécrivant les rôles de vos nœuds, la disposition des disques et les paramètres de dimensionnement RING), généralement fourni par votre interlocuteur commercial ou le support Scality. -
Disposer du réseau privé backend déjà provisionné par le Bare Metal Pool pour votre projet (utilisé pour le plan interne RING) et, éventuellement, d'un second réseau pour le trafic client S3/NFS, que Terraform peut créer pour vous.
Ce guide suppose une bonne connaissance des concepts fondamentaux de RING (rings, connecteurs, protection des données COS/ARC, rôle du superviseur). Pour un rappel de ces notions, consultez le portail de documentation Scality.
En pratique
1. S'authentifier sur OPCP
Exportez votre identifiant d'application pour que la CLI OpenStack et Terraform puissent l'utiliser :
Vérifiez que cela fonctionne :
Dans certaines régions OPCP, le catalogue de services annonce des endpoints qui ne sont pas joignables depuis votre réseau. Si les commandes openstack ne parviennent pas à se connecter après l'émission réussie d'un jeton OpenStack, ajoutez des surcharges d'endpoint explicites par service (OS_COMPUTE_ENDPOINT_OVERRIDE, OS_IMAGE_ENDPOINT_OVERRIDE, OS_NETWORK_ENDPOINT_OVERRIDE, OS_BAREMETAL_ENDPOINT_OVERRIDE, OS_VOLUME_ENDPOINT_OVERRIDE) pointant vers les adresses fournies pour votre projet. Le provider OpenStack de Terraform accepte les mêmes surcharges dans son bloc provider.
2. Importer les images RING dans Glance
Importez les images superviseur et stockage fournies par Scality, en donnant à chacune un nom distinct :
Les noms d'image doivent être uniques dans le projet. Si vous importez une image sous un nom déjà présent dans Glance, votre plan Terraform échoue au lieu de réutiliser silencieusement l'ancienne image ; choisissez donc un nouveau nom à chaque import d'une image reconstruite (par exemple en ajoutant un suffixe de version).
La construction ou la personnalisation de ces images sort du périmètre de ce guide — consultez la note de la section « Prérequis » pour savoir comment les obtenir.
3. Préparer les nœuds bare metal
Deux réglages au niveau des nœuds se situent en dehors de Terraform, car le driver OpenStack Ironic standard ne dispose d'aucune ressource Terraform pour eux. Configurez ces réglages avant le déploiement des nœuds — ils ne peuvent être modifiés que sur des nœuds sans instance, et les refaire plus tard nécessite d'abord de détruire l'instance.
Bonding réseau (LACP). RING attend que chaque nœud présente son ou ses réseaux sous forme d'interface agrégée (bond0 pour le plan backend et, si vous utilisez un réseau frontend, bond1), afin que la perte d'une seule carte réseau ou d'un switch top-of-rack ne mette pas le nœud hors service. Configurez un groupe de ports 802.3ad (LACP) par plan directement dans OpenStack Ironic, en suivant le guide OVHcloud « Comment configurer LACP sur un nœud ». Utilisez la politique de hachage layer3+4 pour que le trafic se répartisse sur les 2 membres du bond (la valeur par défaut du noyau, layer2, attache chaque flux à un seul lien).
Les groupes de ports LACP ne peuvent être créés que sur des nœuds sans instance active. Si un nœud possède déjà une instance, détruisez-la d'abord — le guide OVHcloud ne couvre pas la reconfiguration du bonding sur un nœud en production.
RAID logiciel pour le disque OS (facultatif). Si vous souhaitez que le disque OS soit en miroir plutôt que de dépendre d'un contrôleur RAID matériel, configurez un target_raid_config RAID-1 sur chaque nœud en suivant le guide OVHcloud « Comment configurer un RAID logiciel sur un nœud », avant le prochain déploiement du nœud.
La création de la grappe RAID efface les disques qui la composent. N'activez cette option que sur des nœuds sans instance ni données à conserver, et assurez-vous que votre image stockage/superviseur est compatible mdadm (le système de fichiers racine n'a pas besoin d'être préconstruit sur un périphérique md, mais l'image doit être capable d'en assembler un au démarrage — mdadm installé, module mdraid dans l'initramfs).
4. Définir votre configuration Terraform
RING ne fournit pas de module Terraform public pour OPCP ; cette configuration est donc construite directement à partir des providers OpenStack, tls et random. Elle nécessite, dans l'ordre : une IP backend fixe par nœud, votre CSV de dimensionnement complété avec ces adresses, une paire de clés SSH de déploiement dédiée, les instances bare metal elles-mêmes, et une configuration cloud-init suffisante pour que le superviseur pilote l'installation une fois tous les nœuds démarrés.
Providers et adresses des nœuds
Compléter le CSV de l'outil de dimensionnement
Votre export de l'outil de dimensionnement peut regrouper plusieurs sections (par exemple, des paramètres au niveau du ring suivis d'un tableau de serveurs). Extrayez uniquement le tableau des serveurs — une ligne par nœud, avec son en-tête — dans son propre fichier (par exemple servers.csv), en conservant minion_id, role et enclosure tels que fournis, et en laissant vides les colonnes d'adresse (data_ip, data_iface, s3_ip, s3_iface). Terraform remplit alors exactement ces 4 colonnes :
Ports réseau
Paire de clés de déploiement et mot de passe GUI
Instances bare metal et cloud-init
cloudinit-store.yaml.tftpl a uniquement besoin d'autoriser la clé de déploiement en tant que root, pour que le superviseur puisse accéder au nœud :
cloudinit-supervisor.yaml.tftpl autorise la même clé, dépose le CSV complété et la partie privée de la clé de déploiement, puis attend que chaque nœud de stockage réponde en SSH avant de lancer l'installeur RING de façon non interactive et détachée (pour qu'il survive à la fin de cloud-init) :
Si votre déploiement sert également des clients S3/NFS sur un réseau distinct du plan backend RING, dupliquez le bloc des ports réseau pour un second réseau frontend (sans passerelle ni DNS, pour que les nœuds conservent leur route par défaut sur le plan backend), attachez un second bloc network { port = ... } à chaque openstack_compute_instance_v2.node, et faites pointer les colonnes s3_ip / s3_iface du CSV vers l'adresse et le bond (bond1) de ce plan pour les nœuds de stockage plutôt que vers ceux du backend.
5. Effectuer une vérification préalable
Avant de lancer terraform plan, vérifiez en lecture seule les conditions préalables au déploiement :
- L'identifiant d'application et le provider Terraform peuvent tous deux joindre le projet.
- Les images superviseur et stockage existent dans Glance sous les noms référencés par votre configuration.
- Le nombre de nœuds à l'état Ironic
availableest au moins égal à celui qu'exige votrecluster.csv. - Si
lacp_enabledest activé, chaque nœud susceptible d'être sélectionné par Terraform porte déjà ses groupes de ports LACP (étape 3). Nova peut choisir n'importe quel nœudavailableet le CSV de l'installeur fige les noms de bond au moment du plan : un nœud sans bonding démarre avec une configuration réseau incohérente. - Si vous avez configuré le RAID logiciel, son état correspond à ce que vous souhaitez pour ce déploiement.
Corriger un écart à ce stade est bien moins coûteux qu'après le provisionnement d'une instance bare metal.
6. Vérifier et appliquer le plan Terraform
Lisez attentivement tfplan.txt avant d'appliquer le plan :
Sur du bare metal, un replace Terraform d'une instance correspond à un redéploiement Ironic complet de la machine physique — le nœud est effacé et reprovisionné à partir de zéro. Recherchez spécifiquement must be replaced ou will be destroyed sur toute instance bare metal, port réseau ou paire de clés de déploiement, et, si l'une de ces mentions apparaît de façon inattendue, identifiez-en la cause avant d'appliquer le plan.
7. Laisser l'installation automatisée se dérouler
Puisque les nœuds ne sont pas joignables en SSH avant leur démarrage, l'installeur RING est lancé par cloud-init lui-même plutôt que par un opérateur exécutant un script :
- Terraform génère une paire de clés de déploiement dédiée. La partie publique est ajoutée au fichier
authorized_keysde root sur chaque nœud ; la partie privée n'est présente que dans lecloud-initdu superviseur, pour que seul le superviseur puisse accéder en root à chaque nœud de stockage. - Au premier démarrage, le superviseur écrit sur le disque local le CSV d'installation complété et la configuration de l'installeur, puis attend que chaque nœud de stockage réponde en SSH root (l'ordre de démarrage des nœuds bare metal n'étant pas garanti, cette attente est généralement assortie d'un délai généreux, de l'ordre d'une heure).
- Une fois que tous les nœuds répondent, le superviseur lance l'installeur RING de façon non interactive et détachée, pour qu'il survive à la fin de
cloud-initet ne soit pas affecté par une coupure de connexion vers le superviseur.
Aucune action de l'opérateur n'est requise à cette étape — c'est tout l'intérêt de la conception pilotée par cloud-init.
8. Vérifier le déploiement
Avant de considérer que l'installation progresse normalement, vérifiez que la couche réseau correspond à ce que le CSV supposait au moment du plan :
Chaque groupe de ports backend doit porter l'ID de port du nœud issu de votre sortie Terraform port_ids dans internal_info.tenant_vif_port_id (et, si vous avez configuré un réseau frontend, chaque groupe de ports frontend doit porter l'entrée frontend_port_ids correspondante). Cette correspondance n'est pas garantie contractuellement par Ironic, mieux vaut donc la vérifier après chaque déploiement, et pas uniquement après le premier.
Depuis le superviseur, vérifiez dans l'OS invité que chaque bond est monté avec l'adresse attendue et que la route par défaut pointe vers la passerelle backend, puis suivez le journal d'installation :
À chaque lancement, l'installeur s'arrête aussitôt s'il trouve un marqueur done ou un processus encore en cours d'exécution ; redémarrer un nœud en cours d'installation ne relance donc pas une installation terminée ou en cours.
9. Accéder à l'interface du superviseur RING
Récupérez le mot de passe GUI/admin généré par Terraform :
Depuis un hôte ayant accès au réseau backend, ouvrez ensuite https://<supervisor_published_address>/gui/ dans un navigateur, où <supervisor_published_address> est l'IP backend privée du superviseur. Acceptez le certificat auto-signé lors du premier accès et connectez-vous en tant qu'administrateur.
Si vous n'avez pas encore activé de licence RING, faites-le maintenant via l'interface du superviseur ou en suivant les instructions du support Scality. RING applique les limites de licence une fois la période d'évaluation terminée.
Conclusion
À ce stade, Terraform gère les ports réseau, les instances bare metal et les identifiants générés, et cloud-init a piloté une installation RING sans intervention sur l'ensemble des nœuds. Vous disposez d'un cluster Scality RING fonctionnel sur OPCP, prêt pour l'activation de la licence (si ce n'est pas déjà fait) et pour la configuration de S3/IAM et, le cas échéant, des connecteurs fichiers. Pour tout ce qui va au-delà — dimensionnement, modifications de la topologie du ring, configuration des connecteurs, mises à jour — consultez le portail de documentation Scality, et contactez le support Scality pour toute question de licence ou d'incident.
Aller plus loin
- Portail de documentation Scality — concepts RING, configuration et exploitation au-delà du déploiement initial
- Support Scality — licences et assistance technique
- Présentation d'OPCP
- Comment utiliser Terraform
- Comment configurer LACP sur un nœud
- Comment configurer un RAID logiciel sur un nœud
- Cycle de vie d'un nœud OPCP
- Matrice de compatibilité OPCP Core
- Contexte sur les exigences d'image Ironic/Nova : image CentOS Stream personnalisée
Pour une formation ou une assistance technique sur la mise en œuvre de nos solutions, contactez votre commercial ou consultez la page Professional Services pour obtenir un devis et faire analyser votre projet par nos experts.
Échangez avec notre communauté d'utilisateurs.
1 : S3 est une marque déposée appartenant à Amazon Technologies, Inc. Les services d'OVHcloud ne sont pas sponsorisés, approuvés, ou affiliés de quelque manière que ce soit.