
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 (Berkeley Open Infrastructure for Network Computing). Cette plateforme a été initialement créée pour le projet (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 .
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 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 â .
Initialement, aprĂšs l'installation du systĂšme d'exploitation, un serveur unique fonctionne en Standalone-mode.

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

Nous donnons un nom au futur cluster et sélectionnons la connexion réseau active.

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.

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.

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.

Dans la fenĂȘtre qui s'ouvre, nous sommes intĂ©ressĂ©s par le contenu du champ homonyme. Il faudra le copier.

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Ă©.

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.

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.

Nous pouvons maintenant contrĂŽler tous les nĆuds du cluster depuis une seule interface graphique.

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.

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.

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.

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.

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.

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.

Ăteignons le node2. Voyons si le cluster rĂ©sistera et si la VM reviendra automatiquement Ă l'Ă©tat opĂ©rationnel.

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 
AprÚs 2 minutes, le mécanisme HA a fonctionné correctement et ne trouvant pas node2, a lancé notre VM sur node3.

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
