Definition

Virtualisation d'entrées/sorties (PCI IOV)

Les technologies de virtualisation d'entrées sorties PCI-e, SR-IOV et MR-IOV - regroupées sous le parapluie générique PCI IOV -, ont été développées par le groupe de normalisation PCI (PCI SIG) pour permettre à plusieurs VM au sein d'un même serveur de partager les capacités d'une carte PCI-e (adaptateur réseau ou de stockage, par exemple) ou à plusieurs serveurs physiques de partager les capacités d'une carte PCI-e).

À l’origine 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 et de consommer efficacement et en parallèle les ressources physiques d’une carte d’entrées/sorties. Cette limitation a été progressivement levée avec l’adoption des technologies de virtualisation PCI-express dites PCI IOV — IOV étant l’abréviation d’ I/O Virtualisation, littéralement virtualisation d’entrées/sorties — et leur support dans les architectures d’Intel (VT-d), AMD (IOMMU) et ARM (IOMMU). La touche finale a été apportée par le support des technologies IOV dans les hyperviseurs du marché comme vSphere, Hyper-V, Xen ou KVM.

PCI-IOV : partager les capacités d’un périphérique PCI-express

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, Fibre Channel, vidéo….). Le PCI-SIG a regroupé le fruit de ses travaux au sein de trois spécifications : Address Translation Services (ATS), Single Root IOV (SR-IOV) et Multi-Root IOV (MR-IOV). ATS résout les problèmes de translation d’adresses DMA et de correspondance d’interruptions en environnement virtualisé.

Single-Root IOV (SR-IOV) : partager une ressource physique entre plusieurs VM au sein d’un serveur 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 serveur.

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. Pas de miracle toutefois, la capacité physique disponible sera partagée entre les VM. Ce n’est pas parce que la carte est vue par dix VM comme une carte 10G que par magie sa capacité physique est passée à 100G…

Multi-Root IOV (MR-IOV) : partager des ressources entre plusieurs serveurs lames

Multi-Root IOV est plus ambitieux puisqu’il permet de partager une ressource 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. C’est notamment ce type d’architecture qu’a utilisé Cisco pour ses derniers microserveurs denses UCS-M. Oracle fait aussi usage de MR-IOV dans ses châssis lames…

Cette définition a été mise à jour en septembre 2014

En savoir plus Virtualisation d'entrées/sorties (PCI IOV)

Pour approfondir sur Virtualisation de serveurs