La clusterisation dans Proxmox VE

La clusterisation dans Proxmox VE

Dans les articles précédents, nous avons commencé à expliquer ce qu'est Proxmox VE et comment cela fonctionne. Aujourd'hui, nous allons parler de la façon d'utiliser la possibilité de clustering et montrer quels avantages cela offre.

Qu'est-ce qu'un cluster et à quoi sert-il ? Un cluster (du mot anglais cluster) est un groupe de serveurs interconnectés par des canaux de communication rapides, fonctionnant et apparaissant à l'utilisateur comme une seule entité. Il existe plusieurs scénarios principaux d'utilisation d'un cluster :

  • Assurer la haute disponibilité (High-availability).
  • Équilibrage de charge (Équilibrage de charge).
  • Augmenter les performances (Haute performance).
  • Effectuer des calculs distribués (Calcul distribué).

Chaque scénario impose ses propres exigences aux composants du cluster. Par exemple, pour un cluster effectuant des calculs distribués, l'exigence principale est une vitesse élevée des opérations à virgule flottante et une faible latence réseau. De tels clusters sont souvent utilisés à des fins de recherche scientifique.

Puisque nous avons abordé le sujet des calculs distribués, il convient de mentionner qu'il existe aussi le concept de système de grille (du mot anglais grid — grille, réseau). Malgré leurs similitudes, il ne faut pas confondre un système de grille avec un cluster. Un grid n'est pas un cluster au sens habituel du terme. Contrairement à un cluster, les nœuds d'un grid sont souvent hétérogènes et présentent une faible disponibilité. Cette approche facilite la résolution des tâches de calcul distribué, mais ne permet pas de créer un tout unifié à partir des nœuds.

Un exemple frappant de système de grille est la plateforme de calcul populaire BOINC (Berkeley Open Infrastructure for Network Computing). Cette plateforme a été initialement créée pour le projet SETI@home (Search for Extra-Terrestrial Intelligence at Home), qui traite la question de la recherche de vie extraterrestre par l'analyse des signaux radio.

Comment cela fonctionneUn énorme volume de données provenant des radiotélescopes est divisé en plusieurs petits morceaux, qui sont envoyés aux nœuds du système de grille (dans le projet SETI@home, ces nœuds sont des ordinateurs de volontaires). Les données sont traitées sur les nœuds et, une fois le traitement terminé, elles sont renvoyées au serveur central du projet SETI. Ainsi, le projet résout une tâche globale complexe sans disposer des puissances de calcul requises.

Maintenant que nous avons une compréhension claire de ce qu'est un cluster, examinons comment en créer un et l'utiliser. Nous allons utiliser un système de virtualisation open source Proxmox VE.

Il est particulièrement important, avant de commencer à créer un cluster, de bien comprendre les limitations et les exigences système de Proxmox, à savoir :

  • le nombre maximum de nœuds dans le cluster — 32;
  • tous les nœuds doivent avoir la même version de Proxmox (il y a des exceptions, mais elles ne sont pas recommandées pour une utilisation en production);
  • si une fonctionnalité de haute disponibilité est prévue à l'avenir, alors le cluster doit comprendre au moins 3 nœuds;
  • pour que les nœuds interagissent entre eux, les ports doivent être ouverts UDP/5404, UDP/5405 pour corosync et TCP/22 pour SSH;
  • la latence réseau entre les nœuds ne doit pas dépasser 2 ms.

Création du cluster

Important ! La configuration ci-dessous est à des fins de test. N'oubliez pas de vérifier avec documentation officielle Proxmox VE.

Pour lancer un cluster test, nous avons pris trois serveurs avec l'hyperviseur Proxmox installé, tous de la même configuration (2 cœurs, 2 Go de RAM).

Si vous souhaitez savoir comment installer Proxmox, nous vous recommandons de lire notre article précédent — La magie de la virtualisation : cours d'introduction à Proxmox VE.

Initialement, après l'installation du système d'exploitation, un serveur unique fonctionne en Standalone-mode.

La clusterisation dans Proxmox VE
Créons un cluster en cliquant sur le bouton Create Cluster dans la section correspondante.

La clusterisation dans Proxmox VE
Nous donnons un nom au futur cluster et sélectionnons la connexion réseau active.

La clusterisation dans Proxmox VE
Nous cliquons sur le bouton Create. Le serveur générera une clé de 2048 bits et l'enregistrera avec les paramètres du nouveau cluster dans des fichiers de configuration.

La clusterisation dans Proxmox VE
L'inscription TÂCHE OK indique que l'opération a réussi. Maintenant, en consultant les informations générales sur le système, il est clair que le serveur a basculé en mode cluster. Pour l'instant, le cluster ne se compose que d'un seul nœud, donc il n'a pas encore les fonctionnalités pour lesquelles un cluster est nécessaire.

La clusterisation dans Proxmox VE

Rejoindre le cluster

Avant de se connecter au cluster créé, nous devons obtenir les informations nécessaires pour effectuer la connexion. Pour cela, nous allons dans la section Cluster et appuyons sur le bouton Join Information.

La clusterisation dans Proxmox VE
Dans la fenêtre qui s'ouvre, nous sommes intéressés par le contenu du champ homonyme. Il faudra le copier.

La clusterisation dans Proxmox VE
Toutes les paramètres de connexion nécessaires sont codés ici : l'adresse du serveur pour se connecter et l'empreinte numérique. Nous nous rendons sur le serveur à inclure dans le cluster. Nous cliquons sur le bouton Rejoindre le Cluster et dans la fenêtre qui s'ouvre, nous collons le contenu copié.

La clusterisation dans Proxmox VE
Champs Adresse Peer et Fingerprint seront remplis automatiquement. Nous saisissons le mot de passe root pour le nœud numéro 1, choisissons la connexion réseau et cliquons sur le bouton Rejoindre.

La clusterisation dans Proxmox VE
Pendant le processus de connexion au cluster, la page web de l'interface graphique peut cesser de se mettre à jour. C'est normal, il suffit de recharger la page. Ajouter un autre nœud se fait de la même manière, et au final, nous obtenons un cluster complet de 3 nœuds opérationnels.

La clusterisation dans Proxmox VE
Nous pouvons maintenant contrôler tous les nœuds du cluster depuis une seule interface graphique.

La clusterisation dans Proxmox VE

Mise en place de la Haute Disponibilité

Proxmox prend en charge nativement la fonctionnalité de mise en place de HA pour les machines virtuelles et les conteneurs LXC. L'outil ha-manager détecte et gère les erreurs et pannes, exécutant un basculement d'urgence du nœud défaillant vers un nœud opérationnel. Pour que le mécanisme fonctionne correctement, il est nécessaire que les machines virtuelles et les conteneurs aient un stockage de fichiers commun.

Après activation de la fonctionnalité Haute Disponibilité, la pile logicielle ha-manager commencera à surveiller en permanence l'état de fonctionnement de la machine virtuelle ou du conteneur et interagira de manière asynchrone avec les autres nœuds du cluster.

Joindre un stockage commun

À titre d'exemple, nous avons déployé un petit stockage de fichiers NFS à l'adresse 192.168.88.18. Pour que tous les nœuds du cluster puissent l'utiliser, il faut effectuer les manipulations suivantes.

Nous sélectionnons dans le menu de l'interface web Datacenter — Stockage — Ajouter — NFS.

La clusterisation dans Proxmox VE
Nous remplissons les champs ID et Serveur. Dans la liste déroulante, Exporter nous choisissons le répertoire souhaité parmi ceux disponibles et dans la liste Contenu — les types de données nécessaires. Après avoir cliqué sur le bouton Ajouter le stockage sera connecté à tous les nœuds du cluster.

La clusterisation dans Proxmox VE
Lors de la création de machines virtuelles et de conteneurs sur l'un des nœuds, nous indiquons notre storage comme stockage.

Configurer la HA

À titre d'exemple, nous allons créer un conteneur avec Ubuntu 18.04 et configurer la Haute Disponibilité pour celui-ci. Après avoir créé et démarré le conteneur, nous accédons à la section Datacenter — HA — Ajouter. Dans le champ qui s'ouvre, nous indiquons l'ID de la machine virtuelle/conteneur et le nombre maximum de tentatives de redémarrage et de déplacement entre les nœuds.

Si ce nombre est dépassé, l'hyperviseur marquera la VM comme défaillante et la mettra dans un état d'erreur, après quoi il cessera d'effectuer toute opération avec elle.

La clusterisation dans Proxmox VE
Après avoir cliqué sur le bouton Ajouter outil ha-manager informe toutes les nœuds du cluster qu'à présent la VM avec l'ID spécifié est contrôlée et qu'en cas de panne, elle doit être redémarrée sur un autre nœud.

La clusterisation dans Proxmox VE

Provoquons une panne

Pour voir comment fonctionne le mécanisme de basculement, nous allons éteindre de manière inattendue le node1. Observons depuis un autre nœud ce qui se passe avec le cluster. Nous constatons que le système a enregistré la panne.

La clusterisation dans Proxmox VE

Le fonctionnement du mécanisme HA ne signifie pas la continuité du travail de la VM. Dès qu'un nœud « tombe », le travail de la VM s'arrête temporairement jusqu'à son redémarrage automatique sur un autre nœud.

Et c'est là que commence la « magie » — le cluster a automatiquement réaffecté un nœud pour exécuter notre VM et le travail a été automatiquement restauré en 120 secondes.

La clusterisation dans Proxmox VE
Éteignons le node2. Voyons si le cluster résistera et si la VM reviendra automatiquement à l'état opérationnel.

La clusterisation dans Proxmox VE
Malheureusement, comme nous le voyons, nous avons un problème avec le fait qu'il n'y a plus de quorum sur le seul nœud restant en vie, ce qui désactive automatiquement le fonctionnement de HA. Donnons dans la console une commande pour forcer l'établissement d'un quorum.

pvecm s'attend à 1

La clusterisation dans Proxmox VE
Après 2 minutes, le mécanisme HA a fonctionné correctement et ne trouvant pas node2, a lancé notre VM sur node3.

La clusterisation dans Proxmox VE
Dès que nous avons rallumé node1 et node2, le fonctionnement du cluster a été entièrement rétabli. Notez que la VM ne migre pas seule vers node1, mais cela peut être fait manuellement.

Bilan

Nous vous avons expliqué comment fonctionne le mécanisme de clustering dans Proxmox, ainsi que comment configurer HA pour les machines virtuelles et les conteneurs. Une utilisation correcte du clustering et de HA augmente considérablement la fiabilité de l'infrastructure et assure la récupération après des pannes.

Avant de créer un cluster, il faut d'abord planifier à quelles fins il sera utilisé et dans quelle mesure il devra être évolutif à l'avenir. Il est également nécessaire de vérifier l'infrastructure réseau pour qu'elle soit prête à fonctionner avec des latences minimales, afin que le futur cluster fonctionne sans pannes.

Dites-nous — utilisez-vous les possibilités de clustering dans Proxmox ? Nous attendons vos commentaires.

Articles précédents sur le sujet de l'hyperviseur Proxmox VE :

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster