25 août 2010

Article

Technologies de l'information

L’art de la virtualisation avec Linux

Récemment, j’ai migré un serveur Linux physique Oracle d’un client vers une solution utilisant la virtualisation avec Xen. Le choix du système de virtualisation n’a pas été bien compliqué, car c’était intégré directement avec la version de Linux utilisé (CentOS 5.4). Les performances sont là. La facilité aussi et surtout une réelle grande souplesse pour tous les services fournis. Ce client d’ailleurs en profite pour rationaliser, réorganiser l’ensemble de ses serveurs. Concrètement, à terme, il est fort probable que le nombre de serveurs physiques diminue fortement. Dans cette jungle réelle qu’est le marché actuel de la virtualisation, faire le point sur la virtualisation avec Linux est un sujet qui mérite que l’on s’y arrête.

La virtualisation 101, c’est quoi ?

Wikipédia nous donne une excellente définition :
« La virtualisation consiste à faire fonctionner sur un seul ordinateur plusieurs systèmes d’exploitation comme s’ils fonctionnaient sur des ordinateurs distincts. » Pourquoi faire fonctionner plusieurs ordinateurs en n’en utilisant qu’un seul ? Parce que, en moyenne, les serveurs en entreprise sont utilisés à moins de 30 % de leur capacité ! L’intérêt principal est donc de mutualiser les ressources du serveur qui doit idéalement disposer de beaucoup de mémoire et de plusieurs processeurs à coeurs multiples.

Ainsi, il est possible de faire monter l’utilisation effective de l’équipement. En bref, au lieu d’avoir un seul serveur Linux, nous voilà capables d’avoir une ferme de serveurs virtuels. C’est le cas du client cité au début. Le serveur utilisé est d’un coût très raisonnable et peut facilement héberger plus d’une dizaine de serveurs virtuels, le tout dans un seul serveur physique qui occupe bien moins de place que les précédents !

Par comparaison entre une installation de serveur physique et sa contrepartie virtuelle, généralement, les systèmes de virtualisation ne réduisent pas de manière significative les performances du serveur virtuel. Il est par contre bien évident que les processeurs et la mémoire doivent être en quantité importante. De même, les disques ont intérêt à être des plus rapides car plus fortement sollicités (disques SAS 15 000 tours).

L’offre de virtualisation avec Linux ?

Les gros joueurs dans le monde des machines virtuelles Linux pour les entreprises ou plutôt « le gros joueur » est bien sur VMware qui occupe un monopole de fait. Mais qu’en est-il des alternatives non propriétaires pour offrir la virtualisation ?

Parmi l’ensemble de l’offre et pour simplifier, je n’en citerai que deux :

  1. Xen initialement développé par l’université de Cambridge est bien intéressant à plusieurs points de vue; toutes les architectures classiques sont supportées. Avec XenSource, le code est GPL2 ce qui garantit un accès sans frais au code. À noter que Xensource à été acheté par la compagnie Citrix en octobre 2007.
  2. KVM (également GPLv2), plus jeune, a trouvé sa place dans le noyau Linux au début de 2007. C’est un dérivé de QEMU (aussi utilisé par Xen). Son avantage immédiat est qu’il modifie peu le noyau Linux contrairement à Xen. Redhat porte d’ailleurs son offre virtuelle vers KVM. C’est logique, car le commanditaire principal Qumranet lui appartient.

Quelle solution de virtualisation choisir avec Linux ?

La réponse n’est pas forcément simple. De nombreux facteurs sont à considérer, entres autres et cette liste n’est pas limitative :

Le serveur est-il récent ? Si oui, alors il peut probablement utiliser les extensions Intel VT et AMD-V qui intègrent directement des instructions de virtualisation dans le processeur. KVM et/ou Xen conviennent. Pour vérifier rapidement, utiliser la commande :

	# egrep '^flags.*(vmx|svm)' /proc/cpuinfo
flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts
acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3
cx16 xtpr lahf_lm

Quoi faire avec un serveur plus âgé ? Xen sera probablement plus adapté.

Autres questions essentielles :

  • Où en est votre équipe avec la culture Linux ?
  • Vous désirez peut-être avoir un soutien technique disponible 24 h / 7 jours ? Ou à tout le moins obtenir des conseils rapidement…
  • Avez-vous considéré la haute disponibilité pour vos services ? La virtualisation peut certainement vous aider facilement et efficacement par redondances multiples de vos serveurs !

Tous ces aspects sont développés plus en détail dans le cours « Virtualisation de serveurs avec Linux (UN511) » donné par Technologia.

Patrick Lhermie possède plus de vingt années d'expérience en informatique. Il a géré et administré de nombreux systèmes UNIX, Linux et Oracle dans des services critiques pour certains. Il utilise le système d'exploitation Linux depuis plus de dix ans dans le cadre de ses activités de consultation. Il cumule plus de 2 500 heures de formation et plus de 1 500 personnes formées à Linux au Québec.