Proxmox : configurer un cluster Ceph en quelques étapes
Ceph est un système de stockage distribué qui s’intègre parfaitement à Proxmox et offre une solution de stockage hautement disponible et résiliente. Mettez en place un cluster Ceph sur votre serveur Proxmox et créez ainsi une base Proxmox-Ceph fiable pour vos machines virtuelles et conteneurs.
Étape 1 : vérifier les prérequis
Avant de commencer l’installation de Ceph sur Proxmox, vous devez vous assurer que votre environnement 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 redondance fonctionne de manière fiable, vous avez besoin d’au moins trois nœuds Proxmox. Ainsi, le système reste opérationnel même si un nœud tombe en panne, ce qui constitue la fondation d’un cluster Proxmox-Ceph stable.
Vérifiez que l’installation 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é exclusivement 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 indispensable pour garantir des latences faibles. Enfin, un accès root sur tous les hôtes est nécessaire, car l’installation implique des modifications système.
Vérifiez la version actuelle de Proxmox installée sur votre système avec la commande suivante :
pveversionbashComparez les numéros de version sur tous les nœuds. S’il existe des différences ou si votre installation n’est plus à jour, effectuez une mise à jour pour amener tous les systèmes au même niveau :
apt update && apt full-upgrade -y
rebootbashUne fois que tous les nœuds sont mis à jour et accessibles, votre environnement est prêt pour l’installation de Ceph.
Bien qu’il ne s’agisse pas d’une exigence impérative, vous devriez utiliser des SSD pour l’utilisation productive de Proxmox et Ceph. Ceph bénéficie fortement des accès rapides en lecture et écriture, car chaque enregistrement de données est répliqué plusieurs fois et distribué sur plusieurs nœuds.
- Processeurs dernière génération
- Hardware dédié haute performance
- Data centers certifiés ISO
Étape 2 : activer le dépôt Ceph
Pour installer Ceph facilement via le gestionnaire 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écessaires, spécialement ajustés et testés par Proxmox. Connectez-vous en tant qu’utilisateur root sur chaque hôte et exécutez la commande suivante :
pveceph installbashCette commande configure automatiquement le dépôt officiel Ceph de Proxmox et installe les composants de base. Pour activer les nouvelles sources de paquets, mettez à jour votre liste de paquets avec :
apt updatebashÉtape 3 : initialiser 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éfinissez le réseau utilisé pour la communication interne du cluster et configurez 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 composantes disposent en permanence des mêmes informations.
Lancez l’initialisation sur le premier hôte Proxmox avec la commande suivante :
pveceph init --network 10.0.0.0/24bashLe 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 directement connectés entre eux. Avec pveceph init, la configuration de base de Ceph est créée sur votre premier nœud. Proxmox génère alors, entre autres, le fichier de configuration central du cluster, le keyring Ceph utilisé pour l’authentification au sein du cluster, ainsi que les répertoires système nécessaires au fonctionnement des services Ceph dans votre environnement Proxmox-Ceph.
Une fois l’initialisation terminée, vous pouvez configurer le premier service de moniteur :
pveceph createmonbashCette commande démarre le processus du moniteur et l’enregistre dans le cluster. À partir de ce moment, un nœud Ceph fonctionnel mais encore autonome existe. Le moniteur commence à collecter des informations d’état, posant ainsi les bases pour la communication future avec d’autres nœuds.
Dans un cluster Ceph, au moins trois moniteurs sont généralement utilisés. Cela permet au cluster de rester opérationnel 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 concernant l’état du cluster. Cette redondance est indispensable pour garantir la stabilité d’un environnement Proxmox-Ceph.
Étape 4 : ajouter d’autres nœuds au cluster
Pour que Ceph offre la résilience souhaitée, vous devez intégrer les autres nœuds Proxmox dans le cluster Ceph et créer des moniteurs uniquement sur les nœuds destinés à en héberger. Chaque nœud supplémentaire apporte de la redondance et de la capacité de stockage. Connectez-vous sur les autres nœuds et exécutez-y successivement les commandes suivantes :
pveceph install
pveceph createmonbashDe cette manière, vous configurez é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 -sbashLa sortie vous montre quels moniteurs et services sont actuellement 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 responsables de l’écriture, de la réplication et de la reconstitution 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 performances augmentent. Avant de commencer la configuration, vérifiez quels disques sont disponibles sur votre nœud. Vous pouvez le faire avec la commande suivante :
lsblkbashLa sortie vous montre tous les disques et partitions reconnus par le système. Veillez à n’utiliser pour Ceph que des disques libres. Utilisez uniquement des disques qui ne contiennent pas le système d’exploitation et qui ne sont pas montés. Une fois que vous avez identifié un disque approprié, dans notre cas /dev/sdb, vous pouvez l’initialiser en tant qu’OSD :
pveceph createosd /dev/sdbbashLe disque sera automatiquement formaté de manière irréversible, et Ceph configurera la structure nécessaire. Ensuite, le daemon OSD sera démarré et intégré au cluster. Toutes les données présentes sur le disque sélectionné seront supprimées. Assurez-vous donc que le disque dur est réellement destiné uniquement à 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’intégration complète de tous les OSD peut prendre quelques minutes.
Vérifiez ensuite si les OSD que vous venez de configurer ont été correctement reconnus et sont actifs. Pour cela, utilisez la commande suivante :
ceph osd treebashGrâce à la structure arborescente claire, vous pouvez facilement voir comment vos dispositifs de stockage sont répartis dans le cluster et s’ils fonctionnent correctement.
Étape 6 : activer Ceph-Manager et le tableau de bord
Pour surveiller et gérer facilement votre cluster Proxmox-Ceph, installez maintenant le Ceph-Manager (MGR). Ce service collecte les données de performance, surveille tous les composants actifs et propose des fonctions supplémentaires via diffé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 createmgrbashDès que le Manager est actif, vous pouvez activer le module tableau de bord. Il est automatiquement fourni par le service MGR et doit simplement être activé :
ceph mgr module enable dashboardbashLe tableau de bord vous offre une interface conviviale, à partir de laquelle vous pouvez consulter l’état de votre cluster, suivre l’utilisation des OSD et des moniteurs et détecter les alertes. Vous y accédez via votre navigateur en utilisant le port par défaut 8443 :
https://<PROXMOX_IP>:8443Remplacez 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 conservé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 conteneurs. Chaque pool est composé de nombreux groupes de placement, qui répartissent les données sur différents OSD et assurent une distribution uniforme de la charge. Avec les pools, vous définissez donc comment et où Ceph stocke vos données. Vous pouvez ainsi, selon vos besoins, créer un pool pour les machines virtuelles et un autre pour les sauvegardes ou les images de conteneurs.
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 128bashDans notre exemple, un pool nommé cephpool est créé. Les paramètres indiquent comment Ceph doit gérer vos données :
--size 3signifie 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 disponibles.--min_size 2stipule qu’au moins deux copies doivent être actives pour que le pool soit considéré comme opérationnel. Cela empêche Ceph de fonctionner avec des données incomplètes.--pg_num 128définit le nombre de groupes de placement, c’est-à-dire les conteneurs 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 équilibrée.
Le nombre de groupes de placement que vous définissez 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 techniquement, car elle pourrait entraîner une perte de données. Prévoyez donc dès le départ suffisamment de PG. Les Placement Groups sont des unités logiques dans lesquelles Ceph répartit vos données avant de les distribuer sur les OSD. Ils servent de couche intermédiaire permettant un équilibrage 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 environnements de petite à moyenne taille.
Après avoir créé le pool, vérifiez si tout fonctionne correctement.
ceph -sbashDans la sortie, vous verrez l’état actuel de votre cluster Ceph. Si l’indication HEALTH_OK apparaît, cela signifie que votre pool a été correctement configuré et que votre cluster Proxmox-Ceph fonctionne de manière stable.
Un cluster Ceph assure certes la redondance, mais ne remplace pas des sauvegardes régulières. Pour une véritable sauvegarde des données dans les environnements Proxmox, il est recommandé d’utiliser un Proxmox Backup Server. Celui-ci permet de réaliser des backups dédupliqués et chiffrés de vos VM et conteneurs, 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 virtuelles et conteneurs 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 informations de connexion nécessaires à votre cluster Ceph.
- Pour ID, entrez un nom unique pour la nouvelle destination 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édemment, par exemple
cephpool. - En tant qu’utilisateur, vous pouvez généralement utiliser
client.admin. - Le trousseau de clés est rempli automatiquement, car Proxmox récupère la clé d’authentification nécessaire à partir de votre configuration Ceph.
Si vous préférez travailler 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 imagesbashRemplacez <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électionner directement comme destination pour les machines virtuelles. À partir de ce moment, Proxmox utilise Ceph comme stockage. Cela signifie que toutes les machines virtuelles créées sur ce stockage bénéficient automatiquement de la redondance et de la résilience offertes par votre cluster Proxmox-Ceph.
Si vous souhaitez plus tard exploiter un cluster Kubernetes sur Proxmox, l’intégration de Ceph est particulièrement avantageuse. En effet, Ceph peut être utilisé sans difficulté comme stockage persistant pour Kubernetes. Ainsi, vos conteneurs bénéficient de la même redondance et haute disponibilité que vos machines virtuelles.

