La virtualisation c'est quoi?

Manu

Membre expert
Club iGen
31 Mai 2000
1 744
205
56
Puteaux région parisienne
Dans la news de MacGe d'hier, Intel détaillait sa technologie de virtualisation. Beaucoup se demandent ce que cela veut dire et à quoi ça sert.
En fait Intel profite de l'arrivée des processeurs multicores. En effet imaginons une machine avec la configuration suivante :

2 processeurs bicores à 2 GHz
2Go de RAM
2 disques de 100 Gigas chacun
2 cartes ethernet
2 sorties USB

On voit bien qu'avec de telles ressources, il y a de quoi faire deux machines. Justement la virtualisaton cache une technologie qui permet de le faire. Pour cela il suffit de rajouter une couche logicielle pour permettre d'allouer les ressources. Dans les ordinateurs qui permettent la virtualisation, cette couche s'appelle en général l'hyperviseur. C'est lui qui permet de configurer les machines dites virtuelles.

Vous vous poser certainement la question de savoir comment la mémoire qui est physique comment est-elle divisée? Eh bien il faut savoir que dans les OS modernes, la mémoire physique est divisée en pages. une application qui s'exécute est chargée en mémoire. En fait tout son code n'est pas dans la mémoire physique. Une partie est certes en mémoire physique mais une autre est soit en cache soit sur disque dur.
D'autre part la mémoire physique d'une machine n'est pas remplie des pages de code d'un seul programme. Par contre les pages en mémoire physique ne dépassent pas la taille totale de celle-ci. En géneral la taille d'une page est de 4k. cela veut dire qu'une mémoire de 1 Giga de Ram aura 256 pages.

Dans ces conditions le fait de configurer par l'hyperviseur une mémoire de 1giga pour une machine virtuelle veut simplement dire que les programmes tournant sur cette machine virtuelle n'auront pas plus de 256 pages en mémoire réelle qui elle a 2 gigas.

Quant aux processeurs, au lieu de voir les procs physiques, on peut raisonner en terme de puissance disponible. Supposons que nos 2 procs bicores procurent une puissance constructeur de 12 unités de puissance (donnée purement constructeur). On peut estimer qu'on a une machine à 3 unités de puissance par proc.

Certains hyperviseurs permettent des configuration de 1/10 ème de puissance. Ainsi il n'est pas superflu d'attribuer par exemple à une machine 0,6 CPU. ce qui équivaut à 0,6 de la puissance globale de la machine.

Certaines technologies permettent la configuration de machines virtuelles (ou partitions) dynamiques. Cela veut dire qu'au lieu d'attribuer une puissance, on en attribue 3 valeurs de puissance.

Une valeur minimum par exemple 1 CPU, une valeur de CPU souhaitée soit par exemple 2 CPUs puis enfin une valeur maximum par exemple de 3CPUs. Tut cela sur une machine possédant une puissance de 4 CPUs.

Cela veut dire que pour fonctionner, ma partition doit avoir la puissance d'un proc. et que si l'autre machine ne fait pratiquement rien elle pourra aller jusqu'à s'octroyer une puissance de 3 CPUs. Et dans un cas de fonctionnement normal des deux partitions, elle a une puissance équivalente à 2 CPUs.

Même les éléments d'I/O comme disques et réseau peuvent être virtualisés.

Chose aussi importante, c'est que une fois les partitions configurées, on peut y installer l'OS que l'on veut. Donc un mac OS X sur une partition et un Windows Vista sur une autre. Cotrairement au dual boot, ici les deux partitions fonctionnent en même temps. L'hyperviseur permet de passer d'une partition à une autre.
J'espère avoir été assez clair. La discussion peut commencer
:)
 
Salut.

Merci manu pour ces explications.

A noter qu'il n'est pas obligatoire d'avoir deux disques dur ou deux processeurs pour que la technologie de virtualisation puisse fonctionner ;)

@+
iota
 
iota a dit:
Salut.

Merci manu pour ces explications.

A noter qu'il n'est pas obligatoire d'avoir deux disques dur ou deux processeurs pour que la technologie de virtualisation puisse fonctionner ;)

@+
iota

Je l'ai mis pour avoir des chiffres plus ...parlant. En effet le nombre de procs importe peu puisqu'on parle en termes de puissance.
 
Je précise quand même que la configuration précédente peut permettre de créer plus que 2 pattions. Le nombre maximum de parttions dépend la plupart du temps du constructeur.

Il existe aussi parfois deux modes de fonctionnement des partitions. le mode fixe et le mode dévridé. dans le mode fixe, la partition, quelque soit le cas de figure la partition dispose uniquement du montant des ressources qui lui sont allouées. Il n'en change pas. Dans le cas débridée au contraire elle est libre de prendre des ressources supplémentires si celles-ci sont disponibles. Tout cela sans dépasser les valeurs max configurées.

Le fait de configurer une partition signifie lui créer un profil. Ainsi on peut, pour une partition, créer plusieurs profils que l'on active le moment venu.

Ainsi un graphiste peut créer sur une partition un profil débridé permettant à une partition sous Mac OS X de faire la nuit des gros traitements de rendu le soir et le jour activer un profil normal.Et sur une partition Windows un profil débridé pour le jeu et un autre normal. etc..
 
  • J’aime
Réactions: fanou
Manu a dit:
D'autre part la mémoire physique d'une machine n'est pas remplie des pages de code d'un seul programme. Par contre les pages en mémoire physique ne dépassent pas la taille totale de celle-ci. En géneral la taille d'une page est de 4k. cela veut dire qu'une mémoire de 1 Giga de Ram aura 256 pages.
:)
Chouette post !
Juste un truc: 1go =1024*1024 ko, donc avec des pages de 4ko ça fait 262144 pages non ?
 
Merci ! C'était à la fois suffisemment détaillé et clair... ;-)

Une autre question que je me pose au sujet de la virtualisation c'est son utilité pratique... Pour un dévellopeur ou un geek, c'est clair que c'est génial, mais pour la majorité des utilisateurs, quelles avantages cela pourrait-il apporter (je pense par exemple à un système secondaire "de secours", capable de prendre la relève et/ou de réparer le système principal en cas de défaillance...) ?
 
firenze a dit:
Merci ! C'était à la fois suffisemment détaillé et clair... ;-)

Une autre question que je me pose au sujet de la virtualisation c'est son utilité pratique.. ?

La première utilité et la plus évidente c'est la possibilité de pouvoir utiliser plus de softs sur une machine à plusieurs OS. Pour une entreprise c'est très important.

Elle peut par exemple sur une partition installer un OS sécurisé pour faire fonctionner des applications particulièrement sensibles et sur une autre partition un OS pour des applications bureautiques ... etc. En fait tout concourt à casser le monopole de Windows.

En effet aujourd'hui un PC=1 version de Windows. Si demain on peut avoir un PC= 1 Windows + 1 Mac OS ou Linux ce serait pas mal. Ou même un PC sans Windows du tout.

Il faut également savoir que l'on peut installer le même OS sur plusieurs partitions. Pour les entreprises c'est important. Ils peuvent sur des machines d'utilisateurs, valider une application sur une partition avant de la passer en production pendant que l'autre partition sert à l'utilisateur pour faire le travail courant.
Sur une partition sensible, une entreprise peut configurer une interface réseau dédiée réseau d'entreprise sans sortie WAN (internet). et cette partition ne disposerait pas de prise usb, ..etc.

Bref, comme tu vois plusieurs possibilités. Ce qui fait de la virtualisation une solution très flexible et très avantageuse.
 
Pour cela il suffit de rajouter une couche logicielle pour permettre d'allouer les ressources. Dans les ordinateurs qui permettent la virtualisation, cette couche s'appelle en général l'hyperviseur. C'est lui qui permet de configurer les machines dites virtuelles.
tu peux en dire plus sur cette couche logicielle ? je suppose que chaque concepteur de procos aura sa couche propre et proprietaire donc grosso modo une Intel, une AMD, une PowerPC et une Sun Spark ?
donc y aura des differences de possibilites selon les procos ou je me gourre total ?
 
fedo a dit:
tu peux en dire plus sur cette couche logicielle ? je suppose que chaque concepteur de procos aura sa couche propre et proprietaire donc grosso modo une Intel, une AMD, une PowerPC et une Sun Spark ?
donc y aura des differences de possibilites selon les procos ou je me gourre total ?

Qui dit couche logicielle dit donc une possibilité de voir surgir une solution Open source.
 
Salut.

Lors de l'IDF de Juin 2005, Intel a fait deux démonstrations de sa technologie VT (de virtualisation donc).

La première présentait une version de VMWare basée sur la technologie VT (en bas de cette page, on peut voir que 2 windows et un linux sont lancés sur une même machine).

La seconde (en bas de cette page) met en avant une solution (onglets) qui permet la gestion de plusieurs utilisateurs sous windows grâce à la technologie VT.

@+
iota
 
  • J’aime
Réactions: NightWalker
Pour continuer notre discussion, on va parler de la virtualisation des ressources d'entrée/sortie comme les disques, les cartes ethernet, USB, Firewire, etc....

La chose interessante dans la virtualisation c'est le fait par exemple d'avoir une partition dédiée à des travaux particuliers et sécurisés.

Pour faire la gestion entre les différentes partitions les éléments d'entrée/sortie de la machine, on va donc créer une partition spéciale avec peu de ressources mémoire et cpu mais à qui on attribuera les cartes d'entrée/sortie de notre mac. Ce sera un serveur d'entrées/sorties.

Sur les autres partitions, nous allons configurer des entrées/sorties mais celle-ci seront virtuelles. En fait l'hyperviseur gérera un ensemble de cartes scsi ou sata virtuelles et les fait connaitre des partitions comme de vraies cartes d'entrées/sortie. Cela veut dire que sous le terminal, vous pouvez passer des commandes disque unix sans problème. Vous pouvez également utiliser l'utilitaire disque de Mac OS X sur ces diques virtuelles.

Sur le serveur d'entrée/sortie. que l'on appelle souvent VIOSERVER (virtual I/O Server), on en profite pour partitionner le ou les disques durs. Par exemple si on a un disque interne de 250Gigas et un disque externe de 200 Gigas, on dispose alors d'une capacité de stockage de 450 Gigas. Le partitionnement diisque sera fonction d'une stratégie que l'on mettra en place.

Supposons que l'on a configuré 3 partitions. On laisse au VIOSERVER 20 Gigas pour son OS et quelques fichiers et l'on fait des partitions disques de 200, 110 et 120 Gigas pour les 3 partitions. On peut aussi faire le partitionnement en distinguant le disque externe. dans ce cas on partitionne plus finement le ou les disques internes sur lesquels on installera les OS des partitions et les partitions du disque externe serviront à stocker les données.

On peut auusi virtualiser le lecteur/graveur de CD ou DVD par exemple pour la ou les partitions de vos enfants.

Bref comme vous le voyez, la virtualisation apporte une grande flexibilité et une certaine sécurité.
 
alors autant je vois comment on virtualise un disque dur ou le réseau, autant pour un graveur CD/DVD je m'interroge: on ne peut le couper en deux pour que 2 personnes gravent en meme temps...
J'aimerais bien savoir comment c'est géré.
 
Pour le CD ou le DVD, c'est le VIOSERVER qui indique à chaque partition qu'elle peut insérer un CD ou un DVD. Sinon les données à graver sont gardées dans un buffer puis dès que le lecteur est prêt, un message de montage de CD/DVD vierge est demandé. C'est comme un serveur d'impression. sauf qu'il n'y a rien à monter.