Maniatux's Blog

Welcome to the internet

Virtualisation avec KVM sur serveur dédié : #1 Introduction

Rédigé par Xavier - -

Pour ma formation de technicien réseau, j'ai été amené à travailler sur un projet de mon choix. J'ai choisit la virtualisation et ait rapidement essayé quelques solutions, avant de me fixer sur KVM.

virtualisation windows 2008

Voici une série d'articles expliquant comment Virtualiser un Windows Server 2008 sur un système Linux avec KVM... en exploitant quelques outils comme Virtio.

Introduction à la virtualisation

Le terme de "virtualisation" désigne un ensemble très vaste de solutions permettant de faire fonctionner un ou plusieurs systèmes logiques sur un système physique.

Les avantages sont multiples:

  • Réduction de la consommation électrique
  • Facilité des sauvegardes/restaurations
  • Possibilité de faire des snapshots des machines
  • Performances excellentes

Du bidouilleur qui souhaite essayer une distribution Linux, à l'entreprise qui fait fonctionner des services cruciaux, la virtualisation tend à devenir de plus en plus utilisée.

Solutions Technologiques

  • Isolateur: Par exemple chroot ou BSD Jail. Le programme a exécuter est placé en isolation, dans un environnement virtuel (racine du système de fichiers).
  • Émulation: Par exemple QEMU ou Virtualbox. Un système complet est émulé, carte mère, bios, carte graphique... et les systèmes virtualisés sont confinés dedans. Ils tournent sur du matériel entièrement émulé.
  • Paravirtualisation: Par exemple XEN. On ne parle plus de machine virtuelle mais d'hyperviseur. En effet, son rôle est uniquement de concilier le fonctionnement de plusieurs systèmes sur le même matériel. Ces derniers ont conscience d'être paravirtualisés, ils doivent donc être adaptés en conséquence.

Pour de plus amples explications et des schémas, je vous conseille de lire l'excellent article de Wikipédia se trouvant à cette adresse.

  • Intel VT-x et AMD-V: Technologies matérielles dites "virtualisation processeur". Les machines virtualisées peuvent accéder directement au processeur physique. Si ces technologies ne sont pas présentes, il faut émuler un processeur, ce qui provoque une énorme chute des performances.
  • Intel VT-d et AMD-Vi: Technologies dites de "virtualisation chipset", ou encore IOMMU (input/output memory management unit). Possibilité d'attribuer un périphérique physique à une machine virtuelle (par exemple, une carte réseau).

Plus d'informations sur VT-x / AMD-V et IOMMU.

KVM

Il existe énormément de solutions pour la virtualisation. Pour citer les plus connues: XEN, Hyper-V, vmware, Virtualbox, KVM, QEMU.

KVM est un projet phare du monde Linux, on peut d'ailleurs constater que beaucoup de distributions abandonnent le support de XEN (sauf en guest) pour se concentrer sur KVM. Red Hat, Ubuntu et Fedora semblent particulièrement soutenir le projet. C'est donc sur cette solution que j'ai choisit de travailler.

KVM émule un système matériel complet, afin d'être compatible avec Microsoft Windows et la majorité des systèmes d'exploitation. Il est à la base dérivé de QEMU mais intègre le support des technologies de virtualisation.

  • Supporte Intel VT-x et AMD-V pour la virtualisation processeur
  • Supporte Intel VT-d et AMD-Vi pour la virtualisation chipset
  • Tourne sans interface graphique (utilise une instance VNC pour le système virtualisé)
  • Propose la technologie KSM: Kernel Shared Memory. Si plusieurs machines virtuelles ont le même système hôte, elles peuvent partager des parcelles de mémoire.
  • Supporte la paravirtualisation partielle. Les pilotes virtio sont disponibles sur Linux et Windows, et permettent de meilleures performances.

KVM s'utilise en lignes de commandes, mais il existe plusieurs interfaces pour se faciliter la vie.

  • Virt-manager: développé par Red Hat, c'est un gestionnaire de machines virtuelles. Il permet d'avoir une interface graphique, et de se connecter à distance sur un serveur dédié. Malheureusement mes propres essais sur plusieurs distributions n'ont pas été concluants, impossible de se connecter à distance.
  • Proxmox: C'est une distribution Linux qui intègre KVM+OpenVZ et propose une interface web à l'utilisateur pour tout gérer. Très utile, mais pas gratuit selon les éditions.
  • SPICE: Projet initié par Red Hat. Permet une prise de contrôle à distance d'un système virtualisé, avec envoi de commandes ACPI (extinction...)

En piste!

Dans les prochains articles, je vais détailler l'installation d'un Windows Server 2008 virtualisé avec KVM sur un système Debian. Restez branchés!