La virtualisation
Linux supporte différentes solutions de virtualisation et d’isolation de contexte (commes les jails BSD).
La virtualisation (KVM / Xen) permet de faire tourner plusieurs systèmes d’exploitations (Linux / FreeBSD / MacOS / Windows…) en parallèle sur la même machine physique.
Les machines virtuelles sont administrables comme des machines physiques, elles disposent de leurs ressources propres (disque / mémoire / cpu…), empruntées à la machine hôte, qui peuvent être adaptées aux besoins en charge, de manière beaucoup plus simple qu’une machine physique.
L’isolation de contexte (Vserver / OpenVZ) prend une approche très différente, en ce sens où tous les contextes (terminologie VServer pour désigner l’environnement virtuel) partagent le même noyau.
Chaque contexte dispose de ses propres binaires, de leur propre utilisateur root, en bref de leur environnement propre.
L’intérêt majeur de l’isolation de contexte par rapport à la virtualisation est l’impact minime sur les performances, et la possibilité d’utiliser facilement directement le matériel par les contextes.
Pour la virtualisation, vous avons retenu KVM, entre autres car « c’est l’avenir » puisqu’il est intégré au kernel linux depuis la version 2.6.20. Il est de plus en développement très actif, propulsé par RedHat.
Nous utilisons Linux VServer pour l’isolation de contexte, grâce notamment à leur approche d’isolation réseau (plutôt que d’une pile réseau par contexte) qui convient mieux à nos besoins. De plus un patch VServer + grsecurity est activement maintenu.
Haute disponibilité
Le terme de haute disponibilité se réfère pour simplifier à une architecture informatique qui a un taux de disponibilité supérieur à 99%
Par des mécanismes de redondance des organes du système d’information, on obtient une tolérance aux pannes efficace.
Le monde du logiciel libre est très bien fourni pour de la haute disponibilité système.
Il existe entre autres drbd, qui permet de faire du raid réseau sur des partitions du disque, c’est à dire qu’une opération disque (ex: écrire un fichier) est synchronisée entre les machines, de manière à ce que les informations sur la partition en question soient identiques sur les serveurs.
Dans le mode le plus courant, un seul des serveurs a accès en écriture sur cette partition et lance le service associé (serveur de mail par exemple avec les comptes utilisateur sur une partition répliquée par drbd).
Quand ce serveur tombe en panne, le serveur « failover » (celui qui était passif, et attendait sur le banc de touche), ayant toutes les informations nécessaires, lancera automatiquement le service chez lui, en prenant soin de devenir primary (pouvoir lire et écrire) du point de vue drbd pour la partition répliquée.
Lorsque le serveur en panne est réparé, il revient dans la chaîne, mais passif (en prenant la place sur le banc de touche, encore chaude).
Pour cette détection de perte de service et action correctrice automatique, il existe le projet Linux HA (heartbeat / pacemaker), qui dans sa version 2 permet d’atteindre une complexité de scénarios tout à fait épatante.