Outils pour utilisateurs

Outils du site


fr:infra:notes_sur_infra_de_neutrinet

Quelques notes sur Proxmox de l'infra de Neutrinet :-)

(Un résumé de l'infra pour les noobs ^^)

C'est notes ont été prises les de la journée du 2020/08/01 (Hub infra). Merci Célo !

En résumé

La vue data center montre les différentes machines physiques qui peuvent avoir des machines virtuelles. Ici, deux machines, Troll et Orval. Quand on installe Proxmox sur une machine physique, on peut d'office y accéder par son port 8006 et la machine est automatiquement dans la vue data center. Ici, qu'on se connecte à Troll ou Orval du data center , on accède à la même interface de gestion.

Les machines virtuelles sont numérotées, chacune a sa petite configuration hardware particulière. Quand on crée une VM on doit créer un disque dur qui va contenir toutes les données comme un disque dur physique.

Il y a 2 types importants de stockage :

1) Le stockage local (sur le disque d'Orval, par exemple, on met les fichiers des vm sur le disque d'Orval). Son désavantage : si on veut passer la machine d'Orval à Troll, il faut copier les fichiers sur l'autre machine.

2) Le CEPH : dédié à la distribution de données sur différents machines. Donc Troll et Orval ont le même espace de stockage.

C'est ici qu'intervient une troisième petite machine. Elle n'est pas reprise dans le data center car elle n'hébergera pas de machines virtuelles mais apparaît dans Proxmox. Il s'agit de Comptoir. Comptoir n'a pas de disque dur mais est responsable de la gestion du stockage : c'est cette machine qui prend les décision pour dire si les données vont sur un disque ou l'autre.

Troll et Orval partagent un même espace de stockage : data.

Cette architecture permet de migrer une machine virtuel d'Orval sur Troll, sans coupure, et facilement via l'interface web. Lors de la migration, la machine est déplacée en terme de CPU et de mémoire mais le stockage reste data, géré par CEPH. C'est uniquement la machine physique qui gère son fonctionnement qui change.

Ça permet par exemple de déplacer temporairement toutes les machines virtuelles sur Troll afin d'éteindre Orval ou de le redémarrer sans stopper les machines. On peut aussi automatiser : exiger que telle machine soit toujours en ligne, et qu'elle soit déplacé sur telle machine physique.

Chaque machine a deux disque dur, donc 4 OSD, qui sont gérés par CEPH. Comptoir sert de quorum. (?)

Création d'une machine virtuelle avec Proxmox

Les machines virtuelles peuvent être créées facilement dans l'interface de Proxmox un peu comme dans VirtualBox. On peut choisir d'abord sur quel serveur du data center on créé la machine (on ne voit pas Comptoir qui ne gère pas de machine virtuelle).

On choisit ensuite l'OS, la mémoire, un disque dur, l'image ISO, etc… de la VM. On peut demander à Proxmos de simuler un matériel particulier ou d'utiliser les hardware du serveur.

Quemu agent : Lorsque cette option est cochée, cela permet à Proxmox de communiquer avec l'OS. C'est un peu comme dans VirtualBox avec les guests tools. Cela peut servir en cas de backup : Proxmos peut demander de figer le disque dur virtuel de la machine pour être certain qu'on obtient un backup consistant.

Au niveau du stockage, on peut aussi ajouter des disques durs mais pas utile pour les machines qu'on hébergera ici. Le contrôleur SCSI est redondant avec la carte mère. On choisit également à ce stade si le stockage se fait sur le disque physique d'Orval ou sur data géré par CEPH.

! Octroyer un disque de 32 Go à une VM ne signifie pas qu'elle prendra toute cette place. Si des données sont supprimées sur la VM, on n'écrit pas de 0 dessus et cet espace est rendu à Proxmox qui sait qu'il peut l'utiliser pour une autre machine, tout en sachant que celle-ci pourra en utiliser 32 au maximum.

Au niveau du CPU, on peut octroyer des cœurs ou donner des caractéristiques spécifiques mais on peut aussi utiliser les caractéristiques de la machine physique sur laquelle est installé Proxmox en choisissant host. Donner des caractéristiques spécifiques au CPU peut être utile pour virtualiser un système plus ancien ou si la seconde machine du data center ne disposait pas d'un processeur avec le même jeu d'instruction. Dans ce dernier cas, en effet, il faudrait alors choisir le jeu d'instruction le plus bas pour ne pas créer de conflit lors d'une migration.

Au niveau de la mémoire, contrairement au stockage, il faut s'assurer d'avoir à disposition la RAM qu'on octroie à la machine. Si on donne plus de RAM que disponible, Proxmox va utiliser la swap alors que les machines croiront remplir la RAM. Cela entraîne des ralentissements.

Au niveau du réseau, on peut choisir une ou plusieurs interfaces réseau (pour un routeur, on en mettrait deux par exemple).

Proxmox permet de virtualiser le hardware mais aussi le réseau. On peut créer l'équivalent d'un switch virtuel sur lequel sont connectés tous les câbles des machines virtuelles. L'avantage, c'est qu'on ait fait 3 ou 50 ports, on pourra ensuite dire à la machine virtuelle de se plugger dessus. On peut aussi faire un switch qui n'est pas connecté à internet si certaines machines doivent parler entre elles mais pas à l'extérieur. Et avoir un switch connecté virtuellement à internet. Un autre avantage de la virtualisation est ainsi qu'on peut créer des environnements qui sont proches de nos besoins en termes d'isolation ou de communication entre les machines. Par exemple, on pourrait faire un switch virtuel pour les autres associations, mais qui alors ne sont pas sur le même réseau que les machines de Neutrinet.

Pour le moment, on a les switch vmbr0 et vmbr1.

Lors de la création d'une machine, VirtlO signifie qu'on utilise les couches physique du serveur, donc la carte réseau physique du serveur. Là aussi, on pourrait encore choisir un équipement particulier.

Proxmox dispose d'un outil de par-feu permettant de gérer le par-feu de la machine dans Proxmox, on ne l'utilisera pas ici.

Migrations et backups

Les migrations sont faciles à effectuer. Les machines continuent à fonctionner pendant la migration. On peut le vérifier en lançant un ping (par exemple vers 1.1.1.1) durant la migration. On voit que le ping n'a perdu que quelques millisecondes pendant l'opération.

! Quand la machine virtuelle s'installe, l'ISO est situé localement sur une des machines et elle ne peut pas être migré sur l'autre. On obtient alors une erreur en essayant la migration.

La virtualisation permet de faire des snapshots. Dans les snapshots, on prend un instantané du disque dur et on inclut aussi la RAM, ce qui permet de revenir rapidement à un état précédent de la machine en cas de problème. La machine est en effet restaurée exactement telle qu'elle était avec tous les processus en cours. Par exemple, si l'on est en train de faire un ping, lorsque la machine est restaurée, le ping reprend là où il en était.

Pour les backups, il y a deux possibilités, soit avec les snapshots, soit un backup normal. Il y a un stockage spécial pour les backups, qui est synchronisé entre Troll et Orval. Si le backup est fait comme un snapshot, CEPH utilise le Quemu agent pour figer le disque. Si l'on fait un backup normal, la machine doit s'arrêter.

La différence est que les snapshots sont stockés dans le CEPH. Les autres backups peuvent être déplacés ailleurs, même sur d'autres machines.

Réseau

On a deux matériels de câble réseau, le cuivre et la fibre optique. Pour CEPH, il faut du rapide, au moins 10 Gbit/s (?) idéalement. Il y a donc une carte réseau avec 2 ports 10Gbit/s (?) et de la fibre. Troll et Orval sont aussi connectés entre eux par des câbles en cuivre, comme ça si la carte fibre optique crash, on a un réseau de secours. L'idée c'est qu'on puisse arracher n'importe quel câble, ça continue de fonctionner : si la connexion entre Troll et Comptoir casse, ça utilise les câbles réseau qui vont de Troll à Orval et de Comptoir à Orval. Cela permet d'arracher le moindre câble réseau sans perte de paquet.

Faire cela est possible avec SPF et LACP. LACP permet d'agréger des ports physiques en une seule connexion virtuelle. On utilise Open vSwitch, ce qui permet de créer autant de VLAN qu'on désire, et à chaud. On peut aussi utiliser les primitives du kernel mais il faut alors créer de nouvelles interfaces réseau.

Le bridge vmbr0 est utilisé pour l'interconnexion avec les serveurs. Sur ce switch virtuel, un câble est connecté pour aller à Comptoir, et ensuite on a les deux liens entre Troll et Orval. C'est le vlan 20 qui permet la connexion privée entre Troll, Orval et Comptoir. Il est équipé d'un Rapid Spanning Tree Protocol pour bloquer les liens redondants tant que le lien 10 Gbits fonctionne.

vmbr0 et vmbr1 : ici, vmbr0 fait le bridge entre une interface physique, Troll, Comptoir et Orval. Et vmbr1 est une autre interface physique, mais c'est spécifique à cette config : un câble réseau sur Troll et Orval puis sur le modem de la maison. Chez Verixi, les vmbr1, seront utilisés pour les edge 01 et 02. Par exemple pour relier edge 01 et router 01.

Les vlan permettent de créer des réseaux isolés. On peut taguer des numéros sur les paquets, ce qui permet d'utiliser la même interface matérielle et physique tout en créant des réseaux qui ne communiquent pas entre eux. Par exemple, quand on créé des paquets sur le vlan 10, ils ne vont pas sur le vlan 20. On utilise ici les mêmes câbles réseaux physiques pour les liens entre proxmox et les machines virtuelles et pour les machines virtuelles entre elles. Cette fragmentation est une bonne pratique : on isole les machines physiques dans un vlan et les machines virtuelles dans un autre vlan.

fr/infra/notes_sur_infra_de_neutrinet.txt · Dernière modification: 2020/08/03 10:38 par tierce