VirtualBox : Les fichiers de disques durs virtuels (VDI)

Valentin Pourchet

Je reçois pas mal de questions concernant les fichiers de disques durs virtuels VirtualBox (.vdi). Voici donc un article qui permettra d'en apprendre un peu plus sur ces fichiers. Je passerai outre la description des disques durs physiquement parlant qui servent à stocker les données et installer l'OS.
Commentez

- Titre : VirtualBox : Les fichiers de disques durs virtuels (VDI)

- Auteur : Valentin Pourchet

- Parution : 28 octobre 2011

- Mise à jour : 23 octobre 2011

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2011 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- 1. Les contrôleurs

- 2. Notions sur la taille des VDI

- 3. Normal, Immutable, Shareable, multiattachou Write-Through ?

- IV. Remerciements

1 - Les contrôleurs

Ces fichiers à quoi correspondent-ils ? Tout simplement à un disque dur physique, que l'on rattache à un contrôleur virtuel dans VirtualBox. Différents contrôleurs virtuels existent.

- Serial ATA (SATA/AHCI) : les derniers-nés des contrôleurs de stockage, qui contrairement à leur prédécesseur IDE n'imposent aucune restriction quant au nombre de périphériques qui peuvent leur être rattachés. De plus ils sont Hot-plug et permettent d'ajouter/supprimer des disques à chaud sans éteindre le système d'exploitation. Ils peuvent être configurés en mode AHCI ou Advanced Host Controller compatibility mode ou en mode de compatibilité IDE (pour les OS ne supportant pas le AHCI). Les contrôleurs SATA fonctionnent plus vite, consomment moins de ressources et le nombre maximum de disques virtuels en SATA supportés par Virtualbox est de 30.

- IDE (ATA) : les contrôleurs ATA ont fait leur apparition dans les années 80. Ils sont aujourd'hui plus ou moins en voie d'extinction sauf (et encore) en ce qui concerne les lecteurs de CD-ROM. Par défaut VirtualBox présente le lecteur de CD-ROM sur un contrôleur IDE. Il est possible d'y ajouter trois périphériques (portant le tout à quatre) sachant que le troisième (secondary master) est configuré pour supporter le lecteur de CD-ROM. Les différents types de contrôleur IDE (PIIX3, PIIX4, ICH6) n'impactent pas les performances mais peuvent être utiles dans le cadre de l'import d'une appliance virtualisée qui crasherait au démarrage (problème de HAL, etc.).

- SCSI : ou Small Computer System Interface, apparu en 86 est de nos jours encore pas mal utilisé pour tout ce qui touche aux serveurs. Deux types de contrôleurs sont émulés par VirtualBox (LSI Logic et BusLogic SCSI avec chacun une limitation à 15 périphériques virtuels). Attention, les OS Windows 2003 et ultérieurs supporteront le type LSI Logic et les NT 4.0 et autres 2000 supporteront le type BusLogic SCSI.

- SAS (Serial Attached SCSI) : un autre type de contrôleur basé sur les commandes SCSI, mais qui utilise des périphériques en série et non en parallèle. Le SAS est au SCSI ce que le SATA est à l'IDE : plus rapide et moins vorace en ressources. Le contrôleur SAS de virtualbox supporte jusqu'à huit périphériques virtuels.

En résumé

- IDE : 4 périphériques dont 1 CD-Rom.

- SATA : 30 périphériques (compatibilité ide ou AHCI).

- SCSI : 15 périphériques.

- SAS : 8 périphériques.

2 - Notions sur la taille des VDI

La taille des fichiers de disques peut-être une problématique importante, nous allons voir pourquoi. Deux options sont possibles quant à la taille des VDI.

- Dynamically Expending (ou image à taille dynamique) : créé avec une taille minimale, le fichier grossit petit à petit à chaque nouvelle donnée insérée sur le disque jusqu'à atteindre la taille maximale définie par l'utilisateur.

- Fixed-size (ou image à taille fixe) : Le fichier est créé dès le départ avec l'espace total renseigné et préalloué sur le disque physique.

Lequel choisir ? Question délicate ! Les avantages du dynamique sont appréciables certes, on peut allouer plus que physiquement présent ce qui permet de faire du provisionning sur le stockage et de n'augmenter l'espace physique que lorsque cela est nécessaire. À l'inverse les opérations d'I/O sur le disque sont plus lentes et peuvent entrainer des ralentissements en écriture. Le fixe quant à lui n'est pas sujet à ces ralentissements, en revanche une mauvaise allocation (surallocation ) entraînera un espace de stockage jamais utilisé, qui aura un coût non négligeable et ne sera pas disponible pour d'autres VM qui pourraient en avoir besoin.

3 - Normal, Immutable, Shareable, multiattachou Write-Through ?

Différents sous-types de disques existent, le plus utilisé est le 'normal' mais il est bon de savoir que deux autres existent.

- Normal : le type par défaut, toutes les opérations d'I/O sont effectuées sur le VDI et sont persistantes, ce disque ne peut-être alloué qu'à une VM à la fois. Il convient à une utilisation que je qualifierais de standard.

- Immutable : le contenu du disque est en read-only, les données sont écrites sur un disque différentiel (tel un snapshot) et ne sont pas mergées au reboot ou au power-off de l'OS, l'image immutable est donc 'immodifiable' et peut être allouée à plusieurs VM à la fois (pas d'accès concurrents en écriture comme les écritures sont faites sur fichier séparé). Pour moi ce type de disque convient très bien à une utilisation de type démo (démo logicielle ou autre).

- Write-through : disques en lecture/écriture (donc pour une VM à la fois) mais dont les écritures sont effacées au reboot/power-off.

- Shareable : disques writte-through mais pouvant être partagés entre plusieurs machines virtuelles. Utile pour les systèmes de fichiers en cluster par exemple. Ce type n'est disponible que pour les disques en taille fixe.

- Multiattach : un disque placé en multiattach pourra être alloué à plusieurs machines virtuelles à la fois, chaque VM écrira sur un fichier différentiel qui ne sera pas mergé, chaque VM voit ainsi sa propre version du disque Multiattach et n'est pas affectée par les changements sur les autres VM.

Pour modifier le type d'un disque virtuel, je vous invite à utiliser l'utilitaire en ligne de commande VBoxManage fourni avec VirtualBox.

J'espère que ces notions vous auront permis de comprendre mieux le fonctionnement des disques virtuels sous virtualbox.

IV - Remerciements

Je voudrais remercier ClaudeLELOUP pour sa relecture orthographique détaillée.