Hardware
Proxmox + Ceph: Le cocktail ultime de la virtualisation Open Source

Proxmox + Ceph: Le cocktail ultime de la virtualisation Open Source

Vous le savez sûrement pas, et même si vous le savez, comment voulez-vous que je le sache, dans le domaine de la virtualisation, VMware règne en maître depuis longtemps, reconnu pour ses fonctionnalités robustes et ses performances hors pair.

Cependant, cette puissance a un coût, souvent prohibitif pour les petites et moyennes entreprises. C’est ici que Proxmox Virtual Environment (Proxmox VE) entre en jeu, offrant une alternative open source gratuite, capable de rivaliser avec les solutions VMware. En combinant Proxmox VE avec Ceph, un système de stockage distribué, vous obtenez une solution de virtualisation et de stockage à la fois performante, évolutive et économique.

Voilà de quoi ravir votre infrastructure sans vider vos poches!

Qu’est-ce que Proxmox VE ?

Proxmox Virtual Environment (Proxmox VE) est une plateforme open source de virtualisation. Elle permet de gérer des machines virtuelles (VM) et des conteneurs, offrant une interface web intuitive pour une administration simplifiée. Proxmox VE supporte les hyperviseurs KVM (Kernel-based Virtual Machine) et LXC (Linux Containers), permettant ainsi de déployer facilement des environnements virtualisés.

Qu’est-ce que Ceph ?

Ceph est un système de stockage distribué conçu pour offrir une haute performance, une grande évolutivité et une tolérance aux pannes. Il permet de stocker des données de manière redondante et distribuée sur plusieurs nœuds, assurant ainsi une haute disponibilité et une récupération rapide en cas de panne. Ceph offre plusieurs interfaces de stockage, y compris le stockage d’objets, le stockage de blocs et le système de fichiers.

Les Avantages de l’Intégration Proxmox et Ceph

Haute Disponibilité : Avec Ceph, les données sont répliquées sur plusieurs nœuds, ce qui garantit que vos VM et conteneurs restent disponibles même en cas de panne d’un serveur.

Scalabilité : Ajouter des ressources de stockage et de calcul est simple et peut être fait sans interruption de service.

Gestion Centralisée : L’interface web de Proxmox VE permet de gérer facilement l’infrastructure de virtualisation et le stockage Ceph, réduisant ainsi la complexité administrative.

Performance Optimale : Ceph offre un stockage haute performance, idéal pour les applications critiques et les charges de travail intensives.

Configuration d’un Cluster Proxmox VE avec Ceph

Dans la suite de cet article, nous allons installer et configurer un cluster Proxmox en haute disponibilité, intégrant Ceph pour le stockage distribué.

Avant d’aller plus loin je vous invite à lire la doc officielle:

https://pve.proxmox.com/wiki/Deploy_Hyper-Converged_Ceph_Cluster

Créer un cluster Proxmox avec Ceph implique plusieurs étapes :

Étape 1: Installation de Proxmox VE

Installez Proxmox VE sur vos serveurs physiques ou virtuels.

Nous allons installer trois serveurs Proxmox avec des configurations identiques, et avec trois interfaces réseau minimum chacun.

Étape 2: Configuration du Réseau

Configurez les adresses IP et les noms d’hôtes pour assurer une communication fluide entre les serveurs.

PVE-1 : 192.168.0.111

PVE-2: 192.168.0.112

PVE-3: 192.168.0.113

Sur chaque serveur Proxmox il faudra modifier le fichier /etc/hosts comme suit:

Puis nous devrons créer au moins trois réseaux bien distincts

En cas de doute, nous recommandons d’utiliser trois réseaux (physiques) distincts pour les configurations à hautes performances : un réseau à très haut débit (25 Gbit/s et plus) pour le trafic du cluster Ceph (interne). Un second réseau à haut débit (10 Gbit/s et plus) pour le trafic Ceph (public) entre le serveur Ceph et le trafic de stockage du client Ceph.

https://pve.proxmox.com/wiki/Deploy_Hyper-Converged_Ceph_Cluster

Étape 3: Initialisation du Cluster

Créez et joignez les serveurs au cluster Proxmox.

Nous pouvons créer notre cluster en ligne de commande avec:

Ou bien sur sur le portail web d’un des trois nœuds comme suit:

Le Cluster est créé sur le PVE-1. Nous devons maintenant joindre le PVE-2 et le PVE-3 au Cluster que nous venons de créer.

Pour ce faire, nous nous connectons sur l’interface web de notre PVE-2 qui est sur 192.168.0.112, et nous allons sur « Datacenter » > « Cluster » > « Join Cluster ». En français cela donne:

Pour joindre un Cluster Proxmox à partir du second ou troisième nœud, nous devons au préalable récupérer les informations de jonction sur le premier nœud, sur lequel nous avons créé le Cluster, comme suit : « Datacenter » > « Cluster » > « Join Information ».

On copie le contenu de « Join information » pour les coller dans « Information » de la fenêtre de jonction du Cluster sur le PVE-2 et du PVE-3.

Et voila le resultat, notre cluster de trois noeuds tout neuf !

Étape 4: Installation de Ceph

Installez Ceph sur chaque serveur du cluster.

Étape 5: Configuration de Ceph

A cette étape nous allons configurer les Monitors et Managers pour gérer l’état et les opérations du cluster Ceph.

Etat final recherché 🙂

Étape 6: Ajouter des OSDs (Object Storage Daemons)

Les OSDs stockent les données réelles dans le cluster Ceph et participent à la réplication et la récupération des données.

Sur chaque serveur, ajoutez des OSDs. Vous pouvez utiliser des disques spécifiques ou les partitions existantes.

Etat final recherché dans Ceph > OSD:

Étape 7: Configuration du pool de stockage Ceph

Créez un pool de stockage dans Ceph pour organiser et gérer les données, notamment pour le stockage de nos machines virtuelles.

Si on clique sur Avancé, nous pouvons voir le calcul du PG:

Le nombre de Placement Groups (PG) dans un cluster Ceph est une variable critique qui affecte la performance et la résilience du stockage distribué. Le calcul optimal des PG peut aider à équilibrer la charge et à garantir une gestion efficace des données. Voici comment calculer le nombre de PG approprié pour un pool Ceph.

Formule de Calcul des PGs

Avant d’aller plus loin je vous conseille de lire ceci:

https://docs.ceph.com/en/nautilus/rados/operations/placement-groups

La formule recommandée pour déterminer le nombre de PG est :

Nombre de PG = Nombre d’OSD x 100 / facteur de replication

Cependant, il est important d’ajuster ce nombre pour qu’il soit une puissance de 2 (par exemple, 128, 256, 512, etc.), car Ceph fonctionne plus efficacement avec des valeurs de PG qui sont des puissances de 2.

Imaginons que nous avons 6 OSDs, la formule à appliquer nous donne:

Pour vous simplifier la tache, il est conseillé d’activer le PG-Autoscaler.

Notre pool Ceph est ajouté comme stockage dans Proxmox VE. Il sera utilisé par les VM et conteneurs, offrant ainsi une haute disponibilité et une redondance des données.

Étape 8: Configuration de la Haute Disponibilité (HA)

Nous allons voir comment configurer la haute disponibilité (HA) dans Proxmox. Pour cela, il est nécessaire que le stockage des machines virtuelles soit partagé entre les serveurs du groupe HA.

La haute disponibilité dans Proxmox est gérée via des groupes de haute disponibilité auxquels les serveurs appartiennent. Cela permet, par exemple, de regrouper différents types de serveurs membres d’un cluster et d’organiser les serveurs de type identique dans un même groupe.

Pour créer le groupe HA:

Ensuite nous pouvons integrer dans le groupe HA les VM de notre choix:

D’après le screen de dessus, la VM 100 (srv-web-01) est configurée pour être en haute disponibilité.

Étape 9: Test – Simulation de la panne d’un nœud

VM 101 qui tourne sur le PVE-1
Arrêt du nœud PVE-1
Début du la bascule de la VM 101
VM 101 tourne sur PVE-2

Comme vous pouvez le constater, avec la « panne » du nœud PVE-1 notre la machine VM 101 a basculée en quelques secondes sur le nœud PVE-2! 🏆

Vous voilà désormais aux commandes d’une infrastructure hyperconvergée à la fois puissante, flexible et – cerise sur le gâteau – quasi gratuite (mis à part, bien sûr, le coût du matériel et le support Pro). 😉

Proxmox couplé à Ceph se démarque par son coût nul et sa flexibilité remarquable. Attention cependant, il requiert une certaine expertise technique pour être parfaitement maîtrisé.

De l’autre côté de la balance, nous avons des mastodontes comme VMware et Nutanix. Ces solutions sont bardées de fonctionnalités avancées et d’un support client à toute épreuve, mais à des coûts parfois stratosphériques.

En fonction de vos besoins spécifiques – budget, complexité de gestion et fonctionnalités requises – vous pouvez choisir la solution HCI qui vous convient le mieux.

Et laissez-moi vous dire, Proxmox avec Ceph n’ont absolument pas à rougir devant ces géants du marché!

Si vous voulez plus d’informations sur Proxmox ( et pas que), je vous invite à visiter le blog de Stéphane Robert, un des meilleur blogs dans le domaine DevSecOps: https://blog.stephane-robert.info/docs/virtualiser/type1/proxmox/