Clustering dans Proxmox VE



Dans des articles précédents, nous avons commencé à parler de ce qu'est Proxmox VE et de son fonctionnement. Aujourd'hui, nous allons parler de la façon dont vous pouvez utiliser la fonction de clustering et montrer quels avantages elle offre.

Qu'est-ce qu'un cluster et pourquoi est-il nécessaire? Un cluster (du cluster anglais) est un groupe de serveurs connectés par des canaux de communication à haut débit, travaillant et représentant l'utilisateur dans son ensemble. Il existe plusieurs scénarios de base pour l'utilisation d'un cluster:

  • Fournir une tolĂ©rance aux pannes (haute disponibilitĂ©).
  • Équilibrage de charge (Load Balancing).
  • ProductivitĂ© accrue (haute performance).
  • ExĂ©cution de l' informatique distribuĂ©e

Chaque scénario présente ses propres exigences pour les composants du cluster. Par exemple, pour un cluster effectuant de l'informatique distribuée, la principale exigence est une vitesse élevée des opérations en virgule flottante et une faible latence du réseau. Ces grappes sont souvent utilisées à des fins de recherche.

Puisque nous avons abordé le sujet de l'informatique distribuée, je tiens à noter qu'il existe toujours une chose telle qu'un système de grille(de l'anglais. grille - treillis, réseau). Malgré la similitude générale, ne confondez pas le système de grille et le cluster. La grille n'est pas un cluster au sens habituel. Contrairement au cluster, les nœuds inclus dans le réseau sont le plus souvent hétérogènes et se caractérisent par une faible disponibilité. Cette approche simplifie la solution des problèmes de calcul distribué, mais ne permet pas de créer un seul ensemble à partir de nœuds.
Un exemple frappant d'un système de grille est la plate-forme informatique populaire BOINC (Berkeley Open Infrastructure for Network Computing). Cette plateforme a été créée à l'origine pour le projet SETI @ home (Search for Extra-Terrestrial Intelligence at Home), qui traite du problème de la recherche d'intelligence extraterrestre en analysant les signaux radio.
Comment ça fonctionne
, , , - ( SETI@home ). SETI. , .

Maintenant que nous comprenons clairement ce qu'est un cluster, nous suggérons d'envisager comment il peut être créé et déployé. Nous utiliserons le système de virtualisation open source Proxmox VE .

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

  • le nombre maximal de nĹ“uds dans un cluster est de 32 ;
  • tous les nĹ“uds doivent avoir la mĂŞme version de Proxmox (il existe des exceptions, mais ils ne sont pas recommandĂ©s pour la production);
  • si Ă  l'avenir il est prĂ©vu d'utiliser la fonctionnalitĂ© Haute disponibilitĂ©, le cluster doit avoir au moins 3 nĹ“uds ;
  • pour que les nĹ“uds communiquent entre eux, les ports UDP / 5404 , UDP / 5405 pour corosync et TCP / 22 pour SSH doivent ĂŞtre ouverts ;
  • le retard du rĂ©seau entre les nĹ“uds ne doit pas dĂ©passer 2 ms .

Création de cluster


Important! La configuration ci-dessous est une configuration de test. Assurez-vous de vérifier la documentation officielle de Proxmox VE.

Afin de démarrer le cluster de test, nous avons pris trois serveurs avec l'hyperviseur Proxmox installé 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: un cours d'introduction à Proxmox VE .
Initialement, après l'installation du système d'exploitation, un seul serveur s'exécute en mode autonome .


Créez un cluster en cliquant sur le bouton Créer un cluster dans la section correspondante.


Nous nommons le futur cluster et sélectionnons la connexion réseau active.


Cliquez sur le bouton Créer. Le serveur générera une clé de 2048 bits et l'écrira avec les paramètres du nouveau cluster dans les fichiers de configuration.


L'inscription TASK OK indique une opération réussie. Maintenant, en regardant les informations générales sur le système, il est clair que le serveur est passé en mode cluster. Jusqu'à présent, le cluster se compose d'un seul nœud, c'est-à-dire qu'il n'a pas les capacités pour lesquelles le cluster est nécessaire.


Rejoindre un cluster


Avant de vous connecter au cluster créé, nous devons obtenir des informations pour terminer la connexion. Pour ce faire, accédez à la section Cluster et cliquez sur le bouton Join Information .


Dans la fenêtre qui s'ouvre, nous nous intéressons au contenu du champ du même nom. Il devra être copié.


Tous les paramètres de connexion nécessaires sont encodés ici: adresse du serveur pour la connexion et empreinte digitale. Nous passons au serveur qui doit être inclus dans un cluster. Cliquez sur le bouton Join Cluster et dans la fenêtre qui s'ouvre, collez le contenu copié.


Les champs Adresse du pair et Empreinte digitale seront remplis automatiquement. Saisissez le mot de passe root à partir du nœud numéro 1, sélectionnez la connexion réseau et cliquez sur le bouton Rejoindre .


Lorsque vous rejoignez un cluster, la page Web GUI peut cesser de se mettre à jour. C'est normal, il suffit de recharger la page. De la même manière, nous ajoutons un nœud supplémentaire et, par conséquent, nous recevons un cluster à part entière de 3 nœuds de travail.


Nous pouvons maintenant contrôler tous les nœuds de cluster à partir d'une seule interface graphique.


Organisation à haute disponibilité


Proxmox prêt à l'emploi prend en charge la fonctionnalité d'organisation HA pour les machines virtuelles et les conteneurs LXC. L'utilitaire ha-manager détecte et traite les erreurs et les échecs en effectuant un basculement d'un nœud défaillant vers un nœud fonctionnel. Pour que le mécanisme fonctionne correctement, il est nécessaire que les machines virtuelles et les conteneurs aient un stockage de fichiers commun.

Une fois la fonctionnalité Haute disponibilité activée, la pile logicielle ha-manager commencera à surveiller en continu l'état de la machine virtuelle ou du conteneur et à interagir de manière asynchrone avec les autres nœuds du cluster.

Attacher un stockage partagé


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

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


Remplissez les champs ID et Serveur . Dans la liste déroulante Exporter , sélectionnez 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 spécifions notre stockage comme stockage.

Personnaliser HA


Par exemple, créez un conteneur avec Ubuntu 18.04 et configurez-y la haute disponibilité. Après avoir créé et lancé le conteneur, accédez à la section Datacenter - HA - Ajouter . Dans le champ qui s'ouvre, spécifiez l'ID de la machine virtuelle / du conteneur et le nombre maximal de tentatives de redémarrage et de déplacement entre les nœuds.
Si ce montant est dépassé, l'hyperviseur marquera la machine virtuelle comme ayant échoué et la transférera à l'état d'erreur, après quoi elle cessera d'exécuter toutes les actions avec elle.

Après avoir cliqué sur le bouton Ajouter , l' utilitaire ha-manager avertira tous les nœuds du cluster que la machine virtuelle avec l'ID spécifié est maintenant surveillée et si elle tombe, elle doit être redémarrée sur un autre nœud.


Faire un crash


Afin de voir comment fonctionne le mécanisme de commutation, payons anormalement l'alimentation du nœud1. Nous regardons d'un autre nœud ce qui arrive au cluster. On voit que le système a enregistré une panne.

Le fonctionnement du mécanisme HA ne signifie pas le fonctionnement continu de la machine virtuelle. Dès que le nœud est "tombé", le fonctionnement de la machine virtuelle est temporairement arrêté jusqu'au redémarrage automatique sur un autre nœud.
Et ici, la «magie» commence - le cluster a automatiquement réaffecté le nœud pour exécuter notre machine virtuelle et en 120 secondes, le travail a été automatiquement restauré.


Nous éteignons node2 sur la nutrition. Voyons si le cluster peut résister et la machine virtuelle reviendra automatiquement à son état de fonctionnement.


Hélas, comme nous le voyons, nous avons eu un problème avec le fait que le seul nœud survivant n'a plus de quorum, ce qui désactive automatiquement HA. Nous donnons la commande pour forcer l'installation du quorum dans la console.

pvecm expected 1


Après 2 minutes, le mécanisme HA fonctionnait correctement et ne trouvant pas node2, a lancé notre VM sur node3.


Dès que nous avons rallumé node1 et node2, le cluster a été entièrement restauré. Notez que la machine virtuelle ne migre pas vers node1, mais cela peut être fait manuellement.

RĂ©sumer


Nous vous avons expliqué le fonctionnement du mécanisme de clustering dans Proxmox et montré également comment HA est configuré pour les machines virtuelles et les conteneurs. L'utilisation appropriée du clustering et de la haute disponibilité améliore considérablement la fiabilité de l'infrastructure et fournit également une reprise après sinistre.

Avant de créer un cluster, vous devez planifier immédiatement à quelles fins il sera utilisé et combien il devra être mis à l'échelle à l'avenir. Vous devez également vérifier la disponibilité de l'infrastructure réseau avec des délais minimaux afin que le futur cluster fonctionne sans échecs.

Dites-nous - utilisez-vous des capacités de clustering dans Proxmox? Rendez-vous dans les commentaires.

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


All Articles