La virtualisation traditionnelle - La conception de la sécurité du Système AWS Nitro

La virtualisation traditionnelle

En synthèse, la virtualisation permet à un seul ordinateur physique d'exécuter plusieurs systèmes d'exploitation à la fois. Un système de virtualisation (« hôte ») met en œuvre des fonctions de traduction, d'émulation et de restriction qui lui permettent de fournir à un ou plusieurs systèmes d'exploitation virtualisés (« invités ») des représentations virtuelles des capacités matérielles sous-jacentes (« machines virtuelles » ou « VM »). C’est ce que l’on appelle un hôte de virtualisation. L'un des principaux avantages de la virtualisation réside dans la possibilité d'utiliser efficacement un seul serveur physique puissant en répartissant ses ressources entre plusieurs machines virtuelles auxquelles est allouée une quantité de ressources optimale pour les tâches qui lui sont assignées.

Note

La discussion sur la virtualisation présentée dans cette section fournit une introduction générale de haut niveau et n'aborde pas des sujets tels que la paravirtualisation, dans laquelle le logiciel invité doit être modifié pour fonctionner dans un environnement virtualisé. Pour une présentation plus détaillée des technologies de virtualisation, consultez cette présentation sur les technologies de virtualisation par Anthony Liguori, vice-président et ingénieur émérite chez AWS.

Le composant principal responsable de la gestion du cycle de vie et du fonctionnement des machines virtuelles (VM) invitées dans un système de virtualisation est appelé moniteur de machine virtuelle (VMM), ou hyperviseur. Pour la majorité des opérations qu'il effectue, un invité exécute des instructions de manière native sur le processeur physique du système, sans aucune intervention de la VMM. Par exemple, lorsqu'un client cherche à calculer la somme ou le produit de deux valeurs, il peut communiquer directement avec le processeur du système pour émettre les instructions de code machine requises.

Il existe toutefois certaines classes d'instructions sensibles ou privilégiées, telles que la lecture ou l'écriture à partir de registres de contrôle du processeur, qu'un invité ne doit pas être autorisé à exécuter directement sur le matériel du processeur afin de maintenir la stabilité et l'isolation du système dans son ensemble. Lorsqu'un client essaie de transmettre l'une de ces instructions au processeur, au lieu de l'exécuter, l'instruction est redirigée vers le VMM, qui émule un résultat autorisé pour l'instruction, puis rend le contrôle à l'invité, comme si l'instruction avait été exécutée directement sur le processeur.

Le VMM lui-même est un logiciel relativement simple. Cependant, un hôte de virtualisation a besoin de plus de fonctionnalités pour permettre aux clients d'accéder à des périphériques tels que des interfaces réseau, des disques de stockage et des périphériques d'entrée. Pour fournir ces fonctionnalités, les hôtes s'appuient sur des composants logiciels supplémentaires appelés modèles de périphériques (« device models »). Les modèles de périphériques communiquent avec le matériel physique d'E/S partagé du système et émulent l'état et le comportement d'une ou de plusieurs interfaces de périphériques virtuels exposées aux machines virtuelles clientes.

Les hyperviseurs utilisent généralement un système d'exploitation standard pour s'interfacer avec divers matériels du système et exécuter des modèles de périphériques ainsi que d'autres logiciels de gestion pour le système de virtualisation. Ce système d'exploitation est généralement implémenté sous la forme d'une machine virtuelle à privilèges spéciaux appelée dom0 dans le projet Xen, et partition root/parent du système par Hyper-V . Dans les instances EC2 de première génération, cela prenait la forme d'une machine virtuelle Amazon Linux spéciale s'exécutant sous le nom de domaine 0, ou dom0 dans la terminologie Xen.

Un diagramme présentant une architecture traditionnelle de virtualisation.

Architecture traditionnelle de virtualisation