WikiMiNET

La documentation technique et administrative

Outils pour utilisateurs

Outils du site


wiki:cluster:presentation

N'oubliez pas quand vous faites un backup sur Proxmox que cela met la VM/CT en pause. Le service est donc baisé provisoirement.

Cluster MiNET

Présentation du projet

Traditionnellement à MiNET les machines virtuelles étaient sur Xen. Avec cette solution, il n'y avait aucun management global des VMs, de l'occupation des Dom0 et des migrations. Cette architecture est d'autant plus préjudiciable que les machines et les disques étant mourants, le risque de perdre une VM était très élevé. Cela induisait une méfiance qui faisait que la création de VM était très limitée, notamment pour les 1A.

Maintenant avec le projet Cluster, tous ces problèmes sont résolus :

  • Machines neuves achetées pour l'occasion
  • Le risque de perte de VM est encore diminué par l'utilisation d'un NAS en raidZ (raid5) et d'un système de backup
  • Virtualisation plus légères que Xen
  • Proxmox permet d'avoir une vue unifiée des VM, de l'utilisation des ressources
  • Possibilité de migrer les VM y compris à chaud
  • Grâce à la création d'un cluster DEV (ou membre) chacun peut créer sa VM pour faire des tests.

En 2018, insolentbacon a offert 4 HP Proliants à l'association. Le cluster tournait à l'époque sur 4 serveurs Dell Proliant 1950 appelées spirit, galactica, curiosity & opportunity. insolentbacon & varens ont migré toutes les machines virtuelles du vieux cluster sur 2 de ces machines (Atlantis & Discovery). Nous sommes passés d'un cluster à 32 CPUs avec 120GiO de RAM (en DDR2) à un cluster avec 100CPUs avec ~256GiO de RAM (en DDR3).

Une tour à aussi été ajoutée au U7, elle est dans le cluster et normalement presque rien ne tourne dessus. Elle sert juste en temps que témoin, en effet, pour garantir de la haute disponibilité il nous faut au moins 3 machines. Voir le problème des généraux byzantins. Elle a été appelée Houston (ben oui, c'est le témoin des expéditions spatiales :P)

Architecture

Comme évoqué plus haut il y a deux cluster, séparés dans des vlans différents. L'un est destiné aux services en production et l'autre aux membres pour les tests (car ce sont les tests qui font avancer MiNET !)

Contrairement à Proxmox 1, il n'y a plus de master dans les clusters Proxmox >=2. Vous pouvez vous connecter à n'importe quelle machine, par exemple :

Cluster Nom Ip
Production Atlantis 192.168.102.160
Production Discovery 192.168.102.161
Production Houston 192.168.102.162
Développement Challenger 192.168.103.206
Développement rosetta 192.168.103.2

Tous deux sont basés sur la solution Proxmox VE, voici de la documentation :

Proxmox est installé sur chaque machine HP ProLiant DL585 G7 (et sur une tour au U7). Mais il y a deux dernières machines que j'ai oubliées de vous présenter …

Atlas, Callisto et Phobos ! Des serveurs de stockage que nous utilisons pour stocker les VM et CT. Les données des VM sont accédées par les machines du cluster via RBD. C'est également sur celles ci que nous faisons des backups de ces VM (via fonctionnalités de RBD). Quelques VM qui sont stockées sur les serveurs du cluster sont cependant stockées sur les serveurs de calcul proxmox (local-lvm).

Ces serveurs sont actuellement basé sur Debian, et font partie d'un cluster Ceph

Informations supplémentaires

Pour ne pas faire trop long, voici quelques liens vers :

Architecture de MiNET

Comme vous l'avez compris, on a 3 serveurs pour le calcul et 3 serveurs pour le stockage, cependant un élément est limitant pour la disponibilité du stockage et du calcul.

Le routeur et le switchs-serveurs-u1 ne sont pas redondés, ce qui fait que si le routeur vient à s'arrêter, les machines ne pouvant plus parler entre elles, elles suivent leur comportement normal c'est à dire elles s'éteignent. En fait cela sert à ce qu'un serveur qui se voit comme isolé ne fasse pas de splitbrain avec les autres (calcul comme stockage).

Une des solutions serait de redonder le routeur pour les connexions entre les deux salles U1, salle serveur et U7. Ainsi on pourrait perdre le routeur ou le switch qui le redonde et avoir les machines qui peuvent encore communiquer, un schéma vaut mieux qu'un long discours :

Voici le schéma actuel :

Voici le schéma dans lequel on redonde le routeur grâce au switch U1 en utilisant le spanning-tree :

On fera attention à la configuration du spanning tree pour que le routeur ne soit pas exclu et qu'on se retrouve avec deux réseaux séparés, et d'inclure en priorité le routeur : il ne faut pas que tout le trafic de tous les vlans passe par le switch-serveur-u1

Point également important, nous utilisons un spanning tree par vlan, donc on peut très bien envisager d'utiliser ce spanning tree uniquement pour le réseau de stockage ou de calcul (102), on est finalement assez libre

Sachant qu'il reste des fibres de disponibles entre le U1 et le U7, et qu'il reste des fibres disponibles entre la salle serveurs et le U1. Cela est possible.

Cependant il faut savoir qu'on ne peut pas pour l'instant redonder les connexions entre le routeur et les batîments (je vous conseille de regarder sur place et de regarder les plans Le réseau de la DISI)

Il existe une autre solution qui est de relier les serveurs entre eux et de leur donner un travail de commutation : on fait un bridge (linux ou Open Vswitch au choix) et on relie physiquement les serveurs entre eux (Topologie en Ring). Attention cependant à la gestion des vlans et au protocole de spanning tree utilisé. Voici la doc proxmox sur les Open Vswitch.

wiki/cluster/presentation.txt · Dernière modification: 2020/09/05 17:51 de nierquick