Skip to main content

09_Storage

Mise en place d'un stockage distribué :

Ceph est une solution open source de stockage distribué qui offre une haute disponibilité, une tolérance aux pannes et une scalabilité. Avant toute chose, je vais revenir sur des points qui me paraissent importants. Nous allons mettre en place CEPH étape par étape, pour cela vous devez savoir et maîtriser quelques points importants :

  • Monitor (MON) : Les moniteurs assurent la synchronisation du cluster en maintenant la carte du cluster, qui contient la liste des nœuds et leur état. Ils permettent la coordination des opérations et harmonisent le tout entre les différentes machines du cluster.
  • Manager (MGR) : En complément des moniteurs, le manager apporte des fonctionnalités supplémentaires comme la gestion des statistiques, les tableaux de bord Web et les modules d'extension permettant d'analyser la performance et d'automatiser certaines tâches.
  • Metadata Server (MDS) : CephFS fonctionne comme un système de fichiers distribué et utilise les MDS pour gérer les informations sur les répertoires et les fichiers. Cela évite que les OSD (que nous verrons plus bas) aient à traiter ces métadonnées, optimisant ainsi l'accès aux fichiers.
  • Object Storage Daemon (OSD) : Ce sont les unités de stockage pour Ceph. Chaque OSD stocke les données et effectue des opérations de réplication, d'équilibrage et de réparation en cas de panne.
  • Pool : Ceph organise le stockage en pools qui définissent la politique de réplication. Chaque pool peut être configuré pour répartir les données selon les besoins de performance et de fiabilité du système.
  • CephFS : C'est l'un des types de stockage pris en charge par Ceph, en complément du stockage en bloc et de l'objet. CephFS permet un accès aux fichiers avec une distribution automatique des données et des métadonnées pour assurer une haute disponibilité et de bonnes performances.

Installation

Rendez-vous sur chacun de vos nœuds pour faire les manipulations suivantes : Cliquez sur le node 1 puis allez dans CEPH, et là, un bouton bleu avec écrit "Install Ceph" apparaît. Vous avez juste à cliquer dessus. Une nouvelle fenêtre de dialogue s'ouvre : Attention à bien choisir “no-subscription” !

proxmox-18.png

Vous allez devoir choisir un network, c'est pour cela que, normalement, vous avez fixé en statique votre deuxième NIC. Donc, nous aussi, c'est le network 10.10.10.0/24. Il est aussi préférable de redémarrer le service networking avant de commencer l'installation. Laissez-vous guider, rien de bien compliqué :

sudo systemctl restart networking

Si tout va bien, et comme vous êtes de bons admins, vous lisez chaque message avant de cliquer partout. Normalement, dans la fenêtre de dialogue, il y aura écrit "Installation successful!" Sinon, à vous de faire du troubleshooting suivant les différents messages d'erreur.

proxmox-19.png

Monitor / Manager

Toujours sur le node et dans la partie Ceph, rendez-vous dans Monitor, là vous verrez les deux parties : Monitor et Manager.

Pour cela, rendez-vous dans Ceph → Monitor, puis dans la partie "Monitor", faites "Create".

note :
Nous devons également l'ajouter sur chacun des nodes.

proxmox-20.png

proxmox-21.png

C'est la même étape pour le Manager, mais ici, nous allons choisir qui sera le manager. Pour cet exemple, je choisis le node 2 :

proxmox-22.png

Ce qui termine la partie Monitor / Manager.

Metadata

Accédez à la section "Ceph" → "CephFS", où vous allez configurer les serveurs de métadonnées. Pour cela, dans l’onglet "Metadata Servers", cliquez sur "Create".

proxmox-23.png

note :
Nous devons également l'ajouter sur chacun des nodes.

OSD (Object Storage Daemon)

Cela dépendra entièrement de votre configuration. Dans cet exemple, j'ai ajouté trois disques durs pour une meilleure tolérance aux pannes, tandis que sur mon lab physique, je n'en ai qu'un seul. À mon sens, il est inutile d'utiliser cette technologie avec un seul disque. Nous allons donc ajouter chaque disque :

proxmox-24.png

Ce qui donne un tableau de bord ressemblant à ceci :

proxmox-25.png

note :
Nous devons également faire cette étape sur chacun des nodes.

Au final, cela donne le tableau de bord suivant :

proxmox-26.png

Pool

Pour créer un pool de disque, allez dans Ceph → Pools. Puis, cliquez sur "Create". Une nouvelle fenêtre de dialogue s'ouvre et vous demande de remplir certaines informations.

proxmox-27.png

  • Name : C’est le nom du pool, qui servira à identifier où seront stockées les données.
  • Size : Définit le nombre de répliques d’un objet dans le cluster. Par exemple, une taille de 3 signifie que chaque donnée est stockée trois fois sur différents OSD pour la tolérance aux pannes.
  • PG autoscale Mode : Gère automatiquement le nombre de Placement Groups (PGs) en fonction de la capacité disponible et de la charge du cluster.
  • Add as Storage : Ajoute automatiquement ce pool à nos différents nodes.

Options avancées :

  • Min size : Nombre minimum de répliques nécessaires pour qu’un objet soit accessible. Si trop de répliques sont perdues, l’objet devient indisponible.
  • Crush Rule : Détermine comment Ceph distribue les données sur les OSD en fonction des règles de placement.
  • Num of PGs : Nombre de Placement Groups pour le pool. Ce sont des unités logiques qui répartissent les objets entre les OSD afin d’assurer l’équilibre sur chaque node.
  • Target Ratio : Permet d’attribuer une proportion du stockage total au pool, utilisée pour l'équilibrage.
  • Target Size : Indique une taille recommandée pour le pool.
  • Min of PGs : Définit le nombre minimal de Placement Groups, ce qui évite qu’un pool soit trop petit et déséquilibre le cluster.

Cela donne le tableau de bord suivant :

proxmox-28.png

Ceph FS

Dernière étape avant de tester que tout fonctionne bien : rendez-vous dans "CephFS", puis cliquez sur "Create CephFS".

proxmox-29.png

Une fois créé, le nouveau CephFS apparaîtra.

proxmox-30.png

Migration d'une VM vers notre pool Ceph

Rien de plus simple : cliquez sur votre VM ou Container. Ici, c'est un container afin de ne pas prendre trop de ressources. Puis, dans "Ressource", il y a un bouton "Volume Action" → "Move Storage". Une nouvelle fenêtre de dialogue s'ouvre, et là, nous allons choisir notre stockage CephFS.

proxmox-31.png

Si tout s'est bien déroulé, la fenêtre de dialogue affichera à la fin "TASK OK".

proxmox-32.png

Vérification

Billy : « C'est bien beau, mais comment savoir si tout fonctionne correctement ? »

Rohba : « Je t'explique ça tout de suite, Billy, tu es trop impatient ! »

Maintenant que tout est créé et bien paramétré, vous pouvez refaire les étapes de migration si ce n’est pas déjà fait, ou simplement tester sur une autre VM ou un autre container. Une fois l’opération terminée, il vous suffit d’éteindre le node où se trouve votre hôte (VM ou container). Si la migration se déclenche automatiquement, cela signifie que tout fonctionne correctement. Attention, le processus peut prendre un certain temps, et je n’ai pas abordé en détail certains points qui pourraient être importants.