Les entrées/sorties, chaînon (encore) manquant de la virtualisation
Jusqu'alors la virtualisation de serveurs x86 s'est largement limitée à la mutualisation des ressources processeurs et mémoire. Dans la plupart des cas, il était en effet impossible à plusieurs machines virtuelles d'adresser efficacement et en parallèle les ressources physiques d'une carte d'entrées/sorties.
Jusqu'alors la virtualisation de serveurs x86 s'est largement limitée à la mutualisation des ressources processeurs et mémoire. Dans la plupart des cas, il était en effet impossible à plusieurs machines virtuelles d'adresser efficacement et en parallèle les ressources physiques d'une carte d'entrées/sorties. Cette limitation devrait peu à peu s'estomper avec l'apparition des premières plates-formes serveurs et des premières cartes d'extension supportant le standard PCI IOV (I/O Virtualisation, littéralement virtualisation d'entrées/sorties), défini par le PCI SIG (PCI Special Interest Group).
Ces technologies devraient étendre aux entrées/sorties ce que VT chez Intel et AMD-V chez AMD ont apporté à la virtualisation des ressources processeur et mémoire. Pour leur déploiement, il ne suffira toutefois pas que les cartes d'entrées/sorties supportent le standard. Les plates-formes serveurs devront aussi s'y conformer, d'où les travaux menés par Intel sur sa technologie VT-d et par AMD sur sa technologie IOMMU. Ls hyperviseurs eux aussi devront être modifiés pour tirer partie de la technologie. Dans la pratique, les premiers serveurs prêts à la virtualisation d'entrées/sorties devraient faire leur apparition en volume au troisième trimestre côté Intel et au premier trimestre 2009 chez AMD.
PCI-IOV : bientôt dans un serveur près de chez vous
Les spécifications IOV ont été finalisées au cours du troisième trimestre 2007, après deux ans de discussions animées au sein du groupe de travail. Leur objet : virtualiser et partager efficacement des interfaces d'entrées/sorties (Ethernet, Fiber Channel, vidéo….). Le PCI-SIG a regroupé le fruit de ses travaux au sein de trois spécifications : Address Translation Services (ATS), Signe Root IOV et Multi-Root IOV. ATS résout les problèmes de translation d'adresses DMA et de correspondance d'interruptions en environnement virtualisé. Single Root IOV permet de partager les ressources d'un adaptateur d'entrées/sorties entre plusieurs machines virtuelles au sein d'un même système.
Lorsqu'une carte d'entrées/sorties supporte la spécification, chaque machine virtuelle peut accéder à ses ressources physiques comme si la carte lui était attribuée exclusivement, alors que dans la pratique, lesdites ressources sont mutualisées entre toutes les machines virtuelles. Exemple type, une interface 10 Gigabit Ethernet pourra apparaître comme n-interfaces 10 Gigabit, chacune assignée à une machine virtuelle.
Multi-Root IOV : partager des ressources entre plusieurs serveurs lames
Multi-Root IOV est encore plus ambitieux puisqu'il permet de partager une ressources d'entrées/sorties entre des machines virtuelles installées sur plusieurs machines physiques différentes. La spécification définit un système de commutateur permettant dans la pratique de mutualiser une carte d'entrées/sorties entre plusieurs hôtes. Le scénario type est celui d'une carte Ethernet, Fibre Channel ou Infiniband mutualisée entre plusieurs serveurs lames installés dans le même châssis. Multi-Root IOV ouvre la voie à de nouvelles architectures, dans lesquelles les lames se résument à des ressources processeurs et mémoire, et où le châssis fournit des ressources d'entrées/sorties mutualisées entre les lames et les machines virtuelles tournant sur ces lames.
Premiers produits commerciaux pour VMworld Europe 2008
A l'occasion de VMworld Europe, plusieurs fournisseurs ont montré leurs premiers équipements conformes aux standards IOV. Sans surprise, ce sont des fabricants de cartes Ethernet qui ont tiré les premiers. Notamment Neterion qui présentait sur le salon ses adaptateurs Gigabit Ethernet de la série X3100. L'annonce de la firme suit de peu celle effectuée à la fin 2007 par Netxen. Sun devrait aussi annoncer un support similaire pour ses adaptateurs 10Gigabit à base de puces Neptune dans les prochaines semaines, de même que Server Engines.
NextIO a une approche encore plus ambitieuse puisque la firme à conçu une architecture de commutation conforme à la spécification Multi-Root IOV pour mutualiser des ressources d'entrées/sorties entre plusieurs lames serveurs. Son commutateur a déjà été montré en version prototype lors de WinHEC en 2006 dans des serveurs de Dell et Fujitsu-Siemens (Dell serait l'un des investisseurs dans la société). A l'occasion de cette démonstration, NextIO avait montré comment plusieurs serveurs lames reliés à un fond de panier pouvaient partager un même contrôleur Fibre Channel (Ethernet et Infiniband sont aussi des candidats logiques à une telle virtualisation). NextIO pourrait aussi séduire HP, puisque Shane Robison, l'actuel directeur technique de la multinationale a été l'un des membres du conseil d'administration de la start-up. NextIO vient de lever 18 millions de dollars après avoir précédemment recueilli plus de 20 millions en deux tours. Preuve que de l'intérêt des investisseurs pour le sujet.
En savoir plus (en anglais):
Un livre blanc de NetXen sur la virtualisation des cartes Ethernet
Une présentation technique du PCI-SIG sur les architectures d'entrées/sorties virtualisées