Clustering dans Proxmox VE

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 manière dont vous pouvez utiliser la possibilité de clustering et montrer quels avantages cela apporte.

Qu'est-ce qu'un cluster et pourquoi est-il nécessaire ? Un cluster (de l'anglais cluster) est un groupe de serveurs unis par des canaux de communication à haut débit, fonctionnant et apparaissant à l'utilisateur comme un tout. Il existe plusieurs scénarios principaux d'utilisation d'un cluster :

  • Fournir une tolérance aux pannes (la haute disponibilité).
  • L'équilibrage de charge (L'équilibrage de charge).
  • Augmentation de la productivité (haute performance).
  • Effectuer du calcul distribué (Informatique distribuée).

Chaque scénario a ses propres exigences pour les membres du cluster. Par exemple, pour un cluster qui effectue du calcul distribué, la principale exigence est une vitesse élevée des opérations en virgule flottante et une faible latence du réseau. Ces clusters sont souvent utilisés à des fins de recherche.

Puisque nous avons abordé le sujet de l'informatique distribuée, je voudrais noter qu'il existe également une chose telle que système de grille (de la grille anglaise - treillis, réseau). Malgré la similitude générale, ne confondez pas le système de grille et le cluster. Grid n’est pas un cluster au sens habituel du terme. Contrairement à un cluster, les nœuds inclus dans la grille 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 tout unique à partir de nœuds.

Un exemple frappant de système de grille est une plate-forme informatique populaire BOINC (Infrastructure ouverte de Berkeley pour l'informatique en réseau). Cette plateforme a été initialement créée pour le projet SETI @ home (Search for Extra-Terrestrial Intelligence at Home), traitant du problème de la recherche d'intelligence extraterrestre en analysant les signaux radio.

Comment ça marcheUne vaste gamme de données reçues des radiotélescopes est divisée en plusieurs petits morceaux et envoyées aux nœuds du système de grille (dans le projet SETI@home, des ordinateurs volontaires jouent le rôle de ces nœuds). Les données sont traitées au niveau des nœuds et une fois le traitement terminé, elles sont envoyées au serveur central du projet SETI. Ainsi, le projet résout le problème mondial le plus complexe sans disposer de la puissance de calcul requise.

Maintenant que nous comprenons clairement ce qu'est un cluster, nous proposons de réfléchir à la manière dont il peut être créé et utilisé. Nous utiliserons un système de virtualisation open source Proxmox VE.

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

  • nombre maximum de nœuds dans un cluster - 32;
  • tous les nœuds doivent avoir la même version de Proxmox (il existe des exceptions, mais elles ne sont pas recommandées pour la production) ;
  • si à l'avenir il est prévu d'utiliser la fonctionnalité haute disponibilité, alors le cluster devrait avoir au moins 3 nœuds;
  • les ports doivent être ouverts pour que les nœuds puissent communiquer entre eux UDP/5404, UDP/5405 pour corosync et TCP / 22 pour SSH ;
  • le délai de réseau entre les nœuds ne doit pas dépasser 2 ms.

Créer un cluster

Important! La configuration suivante est une configuration de test. N'oubliez pas de vérifier auprès documents officiels Proxmox V.E.

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

Si vous voulez 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 dans mode autonome.

Clustering dans Proxmox VE
Créez un cluster en cliquant sur le bouton Créer un cluster dans la rubrique concernée.

Clustering dans Proxmox VE
Nous définissons un nom pour le futur cluster et sélectionnons une connexion réseau active.

Clustering dans Proxmox VE
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.

Clustering dans Proxmox VE
Légende TÂCHE OK indique la réussite de l’opération. Maintenant, en regardant les informations générales sur le système, on peut voir que le serveur est passé en mode cluster. Jusqu'à présent, le cluster ne comprend qu'un seul nœud, c'est-à-dire qu'il ne dispose pas encore des capacités pour lesquelles un cluster est nécessaire.

Clustering dans Proxmox VE

Rejoindre un cluster

Avant de nous connecter au cluster créé, nous devons obtenir des informations pour terminer la connexion. Pour cela, rendez-vous dans la rubrique Grappe и нажимаем нопку Informations sur l'inscription.

Clustering dans Proxmox VE
Dans la fenêtre qui s'ouvre, on s'intéresse au contenu du champ du même nom. Il faudra le copier.

Clustering dans Proxmox VE
Tous les paramètres de connexion nécessaires sont ici codés : l'adresse du serveur pour la connexion et l'empreinte numérique. Nous allons sur le serveur qui doit être inclus dans le cluster. On appuie sur le bouton Rejoindre le cluster et dans la fenêtre qui s'ouvre, collez le contenu copié.

Clustering dans Proxmox VE
champs Adresse homologue и Empreinte Digitale sera rempli automatiquement. Entrez le mot de passe root pour le nœud numéro 1, sélectionnez la connexion réseau et appuyez sur le bouton S'inscrire.

Clustering dans Proxmox VE
Pendant le processus de connexion à un cluster, la page Web de l'interface graphique peut cesser de se mettre à jour. C'est bon, rechargez simplement la page. De la même manière, nous ajoutons un autre nœud et obtenons ainsi un cluster à part entière de 3 nœuds fonctionnels.

Clustering dans Proxmox VE
Nous pouvons désormais contrôler tous les nœuds du cluster à partir d’une seule interface graphique.

Clustering dans Proxmox VE

Organisation haute disponibilité

Proxmox prend en charge la fonctionnalité d'organisation HA pour les machines virtuelles et les conteneurs LXC. Utilitaire ha-manager détecte et gère les erreurs et les pannes, 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 disposent d'un stockage de fichiers commun.

Après avoir activé la fonctionnalité haute disponibilité, la pile logicielle ha-manager surveillera en permanence l'état de la machine virtuelle ou du conteneur et interagira de manière asynchrone avec les autres nœuds du cluster.

Attacher un stockage partagé

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

Sélectionnez dans le menu de l'interface Web Datacenter - Stockage - Ajouter - NFS.

Clustering dans Proxmox VE
Remplissez les champs ID и Server. Dans la liste déroulante Exportations sélectionnez le répertoire souhaité parmi ceux disponibles et dans la liste Contenu — types de données requis. Après avoir appuyé sur le bouton Ajouter le stockage sera connecté à tous les nœuds du cluster.

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

Configuration de la haute disponibilité

Par exemple, créons un conteneur avec Ubuntu 18.04 et configurons la haute disponibilité pour celui-ci. Après avoir créé et exécuté 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 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 étant en échec et la mettra à l'état d'erreur, après quoi il cessera d'effectuer toute action avec elle.

Clustering dans Proxmox VE
Après avoir cliqué sur le bouton Ajouter utilité ha-manager informera tous les nœuds du cluster que la VM avec l'ID spécifié est désormais contrôlée et qu'en cas de crash, elle doit être redémarrée sur un autre nœud.

Clustering dans Proxmox VE

Faisons un crash

Pour voir comment fonctionne exactement le mécanisme de commutation, coupons anormalement l'alimentation du node1. Nous regardons depuis un autre nœud ce qui se passe avec le cluster. Nous voyons que le système a corrigé une panne.

Clustering dans Proxmox VE

Le fonctionnement du mécanisme HA ne signifie pas la continuité de la VM. Dès que le nœud « tombe », le fonctionnement de la VM est temporairement arrêté jusqu'à ce qu'il soit automatiquement redémarré sur un autre nœud.

Et ici, la « magie » commence : le cluster a automatiquement réaffecté le nœud pour exécuter notre VM et en 120 secondes, le travail a été automatiquement restauré.

Clustering dans Proxmox VE
Nous éteignons le nœud2 sur la nutrition. Voyons si le cluster survivra et si la VM reviendra automatiquement à un état de fonctionnement.

Clustering dans Proxmox VE
Hélas, comme nous pouvons le constater, nous avons un problème avec le fait qu'il n'y a plus de quorum sur le seul nœud survivant, ce qui désactive automatiquement la HA. On donne la commande pour forcer l'installation d'un quorum dans la console.

pvecm expected 1

Clustering dans Proxmox VE
Au bout de 2 minutes, le mécanisme HA a fonctionné correctement et, ne trouvant pas le nœud 2, a lancé notre VM sur le nœud 3.

Clustering dans Proxmox VE
Dès que nous avons réactivé node1 et node2, le cluster a été entièrement restauré. Veuillez noter que la VM ne migre pas automatiquement vers node1, mais cela peut être fait manuellement.

Résumant

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

Avant de créer un cluster, vous devez immédiatement planifier à quelles fins il sera utilisé et dans quelle mesure il devra être mis à l'échelle à l'avenir. Vous devez également vérifier que l'infrastructure réseau est prête à fonctionner avec un minimum de retards afin que le futur cluster fonctionne sans panne.

Dites-nous : utilisez-vous les capacités de clustering de Proxmox ? On vous attend dans les commentaires.

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

Source: habr.com

Ajouter un commentaire