Ceph est un système de stockage distribué qui s’intègre par­fai­te­ment à Proxmox et offre une solution de stockage hautement dis­po­nible et ré­si­liente. Mettez en place un cluster Ceph sur votre serveur Proxmox et créez ainsi une base Proxmox-Ceph fiable pour vos machines vir­tuelles et con­te­neurs.

Étape 1 : vérifier les prérequis

Avant de commencer l’ins­tal­la­tion de Ceph sur Proxmox, vous devez vous assurer que votre en­vi­ron­ne­ment remplit les exigences de base. Ceph est un système de stockage distribué qui réplique les données sur plusieurs serveurs. Pour que cette re­don­dance fonc­tionne de manière fiable, vous avez besoin d’au moins trois nœuds Proxmox. Ainsi, le système reste opé­ra­tion­nel même si un nœud tombe en panne, ce qui constitue la fondation d’un cluster Proxmox-Ceph stable.

Vérifiez que l’ins­tal­la­tion bare metal de Proxmox est terminée sur tous les serveurs et que Proxmox est à jour. Chaque nœud doit disposer d’un disque dur propre et inutilisé, réservé ex­clu­si­ve­ment aux Ceph OSD (Object Storage Daemon). Ces disques formeront le stockage réel de votre cluster. Une connexion réseau rapide et stable entre les nœuds est également in­dis­pen­sable pour garantir des latences faibles. Enfin, un accès root sur tous les hôtes est né­ces­saire, car l’ins­tal­la­tion implique des mo­di­fi­ca­tions système.

Vérifiez la version actuelle de Proxmox installée sur votre système avec la commande suivante :

pveversion
bash

Comparez les numéros de version sur tous les nœuds. S’il existe des dif­fé­rences ou si votre ins­tal­la­tion n’est plus à jour, effectuez une mise à jour pour amener tous les systèmes au même niveau :

apt update && apt full-upgrade -y
reboot
bash

Une fois que tous les nœuds sont mis à jour et ac­ces­sibles, votre en­vi­ron­ne­ment est prêt pour l’ins­tal­la­tion de Ceph.

Note

Bien qu’il ne s’agisse pas d’une exigence im­pé­ra­tive, vous devriez utiliser des SSD pour l’uti­li­sa­tion pro­duc­tive de Proxmox et Ceph. Ceph bénéficie fortement des accès rapides en lecture et écriture, car chaque en­re­gis­tre­ment de données est répliqué plusieurs fois et distribué sur plusieurs nœuds.

Serveurs dédiés
Per­for­mance et in­no­va­tion
  • Pro­ces­seurs dernière gé­né­ra­tion
  • Hardware dédié haute per­for­mance
  • Data centers certifiés ISO

Étape 2 : activer le dépôt Ceph

Pour installer Ceph fa­ci­le­ment via le ges­tion­naire de paquets, vous devez d’abord activer le dépôt approprié sur chacun de vos nœuds Proxmox. Ce dépôt contient tous les paquets Ceph né­ces­saires, spé­cia­le­ment ajustés et testés par Proxmox. Connectez-vous en tant qu’uti­li­sa­teur root sur chaque hôte et exécutez la commande suivante :

pveceph install
bash

Cette commande configure au­to­ma­ti­que­ment le dépôt officiel Ceph de Proxmox et installe les com­po­sants de base. Pour activer les nouvelles sources de paquets, mettez à jour votre liste de paquets avec :

apt update
bash

Étape 3 : ini­tia­li­ser Ceph sur le premier nœud

Au cours de la troisième étape, vous préparez le véritable cluster Ceph sur votre premier nœud Proxmox. Vous dé­fi­nis­sez le réseau utilisé pour la com­mu­ni­ca­tion interne du cluster et con­fi­gu­rez le premier Moniteur (MON). Ce moniteur joue un rôle essentiel dans un cluster Proxmox-Ceph, car il surveille l’état du cluster, gère ses membres et garantit que toutes les com­po­santes disposent en per­ma­nence des mêmes in­for­ma­tions.

Lancez l’ini­tia­li­sa­tion sur le premier hôte Proxmox avec la commande suivante :

pveceph init --network 10.0.0.0/24
bash

Le sous-réseau 10.0.0.0/24 n’est qu’un exemple. Utilisez le réseau interne par lequel vos nœuds Proxmox sont di­rec­te­ment connectés entre eux. Avec pveceph init, la con­fi­gu­ra­tion de base de Ceph est créée sur votre premier nœud. Proxmox génère alors, entre autres, le fichier de con­fi­gu­ra­tion central du cluster, le keyring Ceph utilisé pour l’au­then­ti­fi­ca­tion au sein du cluster, ainsi que les ré­per­toires système né­ces­saires au fonc­tion­ne­ment des services Ceph dans votre en­vi­ron­ne­ment Proxmox-Ceph.

Une fois l’ini­tia­li­sa­tion terminée, vous pouvez con­fi­gu­rer le premier service de moniteur :

pveceph createmon
bash

Cette commande démarre le processus du moniteur et l’en­re­gistre dans le cluster. À partir de ce moment, un nœud Ceph fonc­tion­nel mais encore autonome existe. Le moniteur commence à collecter des in­for­ma­tions d’état, posant ainsi les bases pour la com­mu­ni­ca­tion future avec d’autres nœuds.

Note

Dans un cluster Ceph, au moins trois moniteurs sont gé­né­ra­le­ment utilisés. Cela permet au cluster de rester opé­ra­tion­nel même si l’un d’eux tombe en panne. Ce n’est qu’en présence de plusieurs moniteurs que Ceph peut atteindre un état de quorum, c’est-à-dire une majorité capable de prendre des décisions con­cer­nant l’état du cluster. Cette re­don­dance est in­dis­pen­sable pour garantir la stabilité d’un en­vi­ron­ne­ment Proxmox-Ceph.

Étape 4 : ajouter d’autres nœuds au cluster

Pour que Ceph offre la ré­si­lience souhaitée, vous devez intégrer les autres nœuds Proxmox dans le cluster Ceph et créer des moniteurs uni­que­ment sur les nœuds destinés à en héberger. Chaque nœud sup­plé­men­taire apporte de la re­don­dance et de la capacité de stockage. Connectez-vous sur les autres nœuds et exécutez-y suc­ces­si­ve­ment les commandes suivantes :

pveceph install
pveceph createmon
bash

De cette manière, vous con­fi­gu­rez également des moniteurs sur les autres hôtes. Dès que tous les moniteurs sont actifs, vous pouvez vérifier l’état de votre cluster sur n’importe quel nœud en utilisant la commande suivante :

ceph -s
bash

La sortie vous montre quels moniteurs et services sont ac­tuel­le­ment en cours d’exécution. Si plusieurs moniteurs y sont listés, vous avez intégré tous les nœuds avec succès.

Étape 5 : créer des OSD

Les OSD sont le cœur de votre cluster Ceph. Chaque disque que vous utilisez pour Ceph devient une unité OSD à part entière. Ces daemons sont res­pon­sables de l’écriture, de la ré­pli­ca­tion et de la re­cons­ti­tu­tion de vos données sur les disques lorsqu’elles sont demandées par un autre nœud ou une machine virtuelle. Plus votre cluster compte d’OSD, plus la capacité de stockage et les per­for­mances aug­men­tent. Avant de commencer la con­fi­gu­ra­tion, vérifiez quels disques sont dis­po­nibles sur votre nœud. Vous pouvez le faire avec la commande suivante :

lsblk
bash

La sortie vous montre tous les disques et par­ti­tions reconnus par le système. Veillez à n’utiliser pour Ceph que des disques libres. Utilisez uni­que­ment des disques qui ne con­tien­nent pas le système d’ex­ploi­ta­tion et qui ne sont pas montés. Une fois que vous avez identifié un disque approprié, dans notre cas /dev/sdb, vous pouvez l’ini­tia­li­ser en tant qu’OSD :

pveceph createosd /dev/sdb
bash

Le disque sera au­to­ma­ti­que­ment formaté de manière ir­ré­ver­sible, et Ceph con­fi­gu­rera la structure né­ces­saire. Ensuite, le daemon OSD sera démarré et intégré au cluster. Toutes les données présentes sur le disque sé­lec­tionné seront sup­pri­mées. Assurez-vous donc que le disque dur est réel­le­ment destiné uni­que­ment à Ceph.

Répétez cette opération sur tous les nœuds et pour tous les disques que vous souhaitez intégrer à votre stockage Proxmox-Ceph. Selon la taille du cluster et le matériel, l’in­té­gra­tion complète de tous les OSD peut prendre quelques minutes.

Vérifiez ensuite si les OSD que vous venez de con­fi­gu­rer ont été cor­rec­te­ment reconnus et sont actifs. Pour cela, utilisez la commande suivante :

ceph osd tree
bash

Grâce à la structure ar­bo­res­cente claire, vous pouvez fa­ci­le­ment voir comment vos dis­po­si­tifs de stockage sont répartis dans le cluster et s’ils fonc­tion­nent cor­rec­te­ment.

Étape 6 : activer Ceph-Manager et le tableau de bord

Pour sur­veil­ler et gérer fa­ci­le­ment votre cluster Proxmox-Ceph, installez main­te­nant le Ceph-Manager (MGR). Ce service collecte les données de per­for­mance, surveille tous les com­po­sants actifs et propose des fonctions sup­plé­men­taires via dif­fé­rents modules. L’une de ces fonctions est le tableau de bord Web intégré. Installez le service Manager sur votre nœud Proxmox avec la commande suivante :

pveceph createmgr
bash

Dès que le Manager est actif, vous pouvez activer le module tableau de bord. Il est au­to­ma­ti­que­ment fourni par le service MGR et doit sim­ple­ment être activé :

ceph mgr module enable dashboard
bash

Le tableau de bord vous offre une interface con­vi­viale, à partir de laquelle vous pouvez consulter l’état de votre cluster, suivre l’uti­li­sa­tion des OSD et des moniteurs et détecter les alertes. Vous y accédez via votre na­vi­ga­teur en utilisant le port par défaut 8443 :

https://<PROXMOX_IP>:8443

Remplacez ici PROXMOX_IP par l’adresse IP du nœud Proxmox sur lequel le Ceph-Manager a été installé.

Étape 7 : créer et tester des pools Ceph

Une fois que votre cluster Ceph est configuré et que tous les OSD sont actifs, vous pouvez créer la véritable zone de stockage où vos données seront con­ser­vées. Ceph organise ses données en pools. Un pool est une unité logique dans laquelle Ceph stocke vos fichiers, images de disques ou volumes de con­te­neurs. Chaque pool est composé de nombreux groupes de placement, qui ré­par­tis­sent les données sur dif­fé­rents OSD et assurent une dis­tri­bu­tion uniforme de la charge. Avec les pools, vous dé­fi­nis­sez donc comment et où Ceph stocke vos données. Vous pouvez ainsi, selon vos besoins, créer un pool pour les machines vir­tuelles et un autre pour les sau­ve­gardes ou les images de con­te­neurs.

Pour créer un nouveau pool, exécutez la commande suivante sur l’un de vos nœuds Proxmox :

pveceph pool create cephpool --size 3 --min_size 2 --pg_num 128
bash

Dans notre exemple, un pool nommé cephpool est créé. Les pa­ra­mètres indiquent comment Ceph doit gérer vos données :

  • --size 3 signifie que chaque fichier est répliqué trois fois. Cela garantit une tolérance aux pannes, car si un OSD tombe en panne, deux copies restent dis­po­nibles.
  • --min_size 2 stipule qu’au moins deux copies doivent être actives pour que le pool soit considéré comme opé­ra­tion­nel. Cela empêche Ceph de fonc­tion­ner avec des données in­com­plètes.
  • --pg_num 128 définit le nombre de groupes de placement, c’est-à-dire les con­te­neurs de données logiques dans lesquels Ceph divise vos données en interne. Il s’agit ici d’une valeur d’exemple à adapter : plus vous avez d’OSD, plus elle peut être élevée afin de répartir les données de manière équi­li­brée.
Note

Le nombre de groupes de placement que vous dé­fi­nis­sez lors de la création d’un pool Ceph ne peut pas être réduit par la suite. Vous pouvez l’augmenter à mesure que votre cluster se développe, mais une réduction n’est pas prévue tech­ni­que­ment, car elle pourrait entraîner une perte de données. Prévoyez donc dès le départ suf­fi­sam­ment de PG. Les Placement Groups sont des unités logiques dans les­quelles Ceph répartit vos données avant de les dis­tri­buer sur les OSD. Ils servent de couche in­ter­mé­diaire per­met­tant un équi­li­brage efficace du stockage. Une règle générale consiste à utiliser environ 50 à 100 PG par OSD dans le pool, ce qui constitue une bonne base pour les en­vi­ron­ne­ments de petite à moyenne taille.

Après avoir créé le pool, vérifiez si tout fonc­tionne cor­rec­te­ment.

ceph -s
bash

Dans la sortie, vous verrez l’état actuel de votre cluster Ceph. Si l’in­di­ca­tion HEALTH_OK apparaît, cela signifie que votre pool a été cor­rec­te­ment configuré et que votre cluster Proxmox-Ceph fonc­tionne de manière stable.

Conseil

Un cluster Ceph assure certes la re­don­dance, mais ne remplace pas des sau­ve­gardes ré­gu­lières. Pour une véritable sau­ve­garde des données dans les en­vi­ron­ne­ments Proxmox, il est re­com­mandé d’utiliser un Proxmox Backup Server. Celui-ci permet de réaliser des backups dé­du­pli­qués et chiffrés de vos VM et con­te­neurs, même lorsqu’ils sont stockés sur Ceph.

Étape 8 : intégrer le stockage Ceph dans Proxmox

Une fois que votre cluster Ceph est configuré et que le premier pool est créé, vous devez, dans une dernière étape, l’intégrer dans Proxmox pour que vos machines vir­tuelles et con­te­neurs puissent utiliser le stockage. Proxmox utilise pour cela le protocole RBD. La méthode la plus simple consiste à passer par l’interface graphique de Proxmox. Ouvrez l’interface Web et accédez à « Centre de données > Stockage > Ajouter > RBD (Ceph) ».

Dans la boîte de dialogue suivante, saisissez les in­for­ma­tions de connexion né­ces­saires à votre cluster Ceph.

  • Pour ID, entrez un nom unique pour la nouvelle des­ti­na­tion de stockage.
  • Dans la section « Moniteurs », indiquez les adresses IP de vos Ceph-MON. Il s’agit des adresses des nœuds sur lesquels les services de moniteur sont exécutés. Séparez plusieurs adresses par des virgules, par exemple 10.0.0.11,10.0.0.12,10.0.0.13.
  • Dans le champ « Pool », entrez le nom du pool Ceph créé pré­cé­dem­ment, par exemple cephpool.
  • En tant qu’uti­li­sa­teur, vous pouvez gé­né­ra­le­ment utiliser client.admin.
  • Le trousseau de clés est rempli au­to­ma­ti­que­ment, car Proxmox récupère la clé d’au­then­ti­fi­ca­tion né­ces­saire à partir de votre con­fi­gu­ra­tion Ceph.
Note

Si vous préférez tra­vail­ler via la ligne de commande, vous pouvez réaliser la même opération avec une seule commande :

pvesm add rbd ceph-storage --monhost <mon1,mon2,mon3> --pool cephpool --content images
bash

Remplacez <mon1,mon2,mon3> par les adresses IP de vos nœuds moniteurs.

Une fois que le stockage est ajouté, il apparaît dans l’interface Proxmox. Vous pouvez désormais le sé­lec­tion­ner di­rec­te­ment comme des­ti­na­tion pour les machines vir­tuelles. À partir de ce moment, Proxmox utilise Ceph comme stockage. Cela signifie que toutes les machines vir­tuelles créées sur ce stockage bé­né­fi­cient au­to­ma­ti­que­ment de la re­don­dance et de la ré­si­lience offertes par votre cluster Proxmox-Ceph.

Conseil

Si vous souhaitez plus tard exploiter un cluster Ku­ber­netes sur Proxmox, l’in­té­gra­tion de Ceph est par­ti­cu­liè­re­ment avan­ta­geuse. En effet, Ceph peut être utilisé sans dif­fi­culté comme stockage per­sis­tant pour Ku­ber­netes. Ainsi, vos con­te­neurs bé­né­fi­cient de la même re­don­dance et haute dis­po­ni­bi­lité que vos machines vir­tuelles.

Aller au menu principal