# VMware

VMware est une société informatique américaine fondée en 1998, filiale d'EMC Corporation depuis 2004 (racheté par Dell le 7 septembre 2016$^,$), qui propose plusieurs produits propriétaires liés à la virtualisation d'architectures x86. C'est aussi par extension le nom d'une gamme de logiciels de virtualisation.

## Bref historique

* 1999 : création de la société à Palo Alto (Californie)
* 1999 : VMware Workstation 2.0
* 2000 : IBM, Dell et Compaq deviennent partenaires
* 2001 : VMware GSX Server 1.0 et ESX Server 1.0 (technologie VMFS)
* 2002 : HP devient partenaire, Dell revendeur, 1 million d'utilisateurs
* 2003 : VirtualCenter 1.0 (technologie VMotion) et VMware ESX Server 2.0 (vSMP, VMFS-2 & NUMA)
* 2004 : achat par EMC Corporation, annonce du support 64 bits et 1er VMworld
* 2005 : centre de recherche à Cambridge (Massachusetts)
* 2006 : VMware ESX 3.0, VirtualCenter 2.0
* Juin 2008 : gratuité de VMware ESXi 3.5
* Novembre 2008 : achat de la société Tungsten Graphics
* Mai 2009 : VMware ESX 4.0
* Août 2009 : achat de SpringSource
* Janvier 2010 : rachat de Zimbra à Yahoo!
* 2011 : rachat de Digital Fuel (SaaS)
* 2012 : rachat de Wanova (en), DynamicOps (en) et Nicira (en)
* 2012 : partenariat avec Atos et EMC pour la création de Canopy, dans le but de commercialiser des services et solutions cloud en Europe
* 2014 : Achat de AirWatch, une entreprise de sécurité spécialisé dans les appareils mobiles, pour 1,54 milliard de dollars
* 2017 : Vente de l'activité vCloud Air et des datacenters associés au français OVH
En 2019, VMware annonce l'acquisition de Pivotal Software, qui appartient également à Dell, pour 2,7 milliards de dollars ainsi que de Carbon Black pour 2 milliards de dollars.
En avril 2021, Dell annonce la scission de VMware, avec le rachat par VMware lui même d'une participation de 81 % qu'avait Dell dans VMware, pour environ 11 à 12 milliards de dollars.
En mai 2022, Broadcom annonce l'acquisition de VMware pour 61 milliards de dollars.

## Fonctionnement

VMware crée un environnement clos dans lequel sont disponibles un, deux, quatre ou huit (vCPU) processeur(s), des périphériques et un BIOS virtuels.
Selon les concepteurs, le microprocesseur est émulé seulement lorsque c'est nécessaire. Par exemple, les instructions initiées dans la VM (machine virtuelle) en mode user ou en mode virtuel 8086 ne sont pas toujours émulées, elles sont passées directement à l'OS hôte. Par contre, pour les instructions initiées en mode noyau ou en mode réel, VMWare va utiliser la technique dite de translation de code. Tout cela permet à VMware d'être plus rapide que des solutions multiplateformes qui émulent tout.
Lorsqu'une VM s'exécute dans un mode qui nécessite une émulation, VMware traduit dynamiquement le code privilégié en un code équivalent en mode utilisateur, le place dans un endroit libre de la mémoire, le rend invisible et inaccessible au code d'origine et l'exécute à la place. Lorsqu'une machine virtuelle fait appel à un périphérique, VMware intercepte la demande et la traduit pour qu'elle soit gérée par le système hôte. Bien que les machines virtuelles tournent en mode utilisateur, VMware nécessite d'installer plusieurs pilotes de périphériques privilégiés dans le noyau du système hôte, qui notamment interchangent les tables GDT et IDT chaque fois qu'on passe la main à une VM.
VMware assure l'émulation de la carte vidéo, la carte réseau, le lecteur de CD-ROM, le bus USB, des ports série et parallèle et du disque dur de type SCSI ou IDE. Ce dernier étant un fichier extensible d'une taille voisine de la place occupée sur la machine virtuelle ou fixe pour davantage de performance. Ce fichier contenant le contenu du disque peut être copié sur un autre hôte et exécuté par un ordinateur. Pour l'ordinateur virtuel, tous les périphériques sont identiques, même si le système hôte est totalement différent, car c'est VMware qui caractérise les périphériques.

## Produits

En 2006, les produits suivants étaient disponibles :
* VMware Workstation, VMware Player et VMware ACE : logiciels pour stations de travail ;
* VMware Fusion : logiciel pour stations de travail Macintosh avec processeurs Intel ;
* VMware GSX Server, VMware Server et VMware ESX/ESXi Server : logiciels pour serveurs ;
* VMware Virtual Center et VMware Converter : logiciels de gestion et outils.
La combinaison de ces différents produits crée ce que VMware nomme commercialement une infrastructure virtuelle.

### VMware Workstation

VMware Workstation Pro est la version station de travail du logiciel. Elle permet la création d'une ou plusieurs machines virtuelles au sein d'un même système d'exploitation (généralement Windows ou Linux), ceux-ci pouvant être reliés au réseau local avec une adresse IP différente, tout en étant sur la même machine physique (machine existant réellement). Il est possible de faire fonctionner plusieurs machines virtuelles en même temps, la limite correspondant aux performances de l'ordinateur hôte. La version Linux présente l'avantage de pouvoir sauvegarder les fichiers de la machine virtuelle (* .vmsd) pendant son fonctionnement.

### VMware Ace

C'est une version de Workstation qui permet de faire fonctionner des machines virtuelles dans des environnements divers, tout en gardant la centralisation de la configuration. Cela permet par exemple de mettre à disposition une version de Windows avec une application spécifique dans le parc informatique d'une société de service, sans que celle-ci puisse agir sur la configuration de cette dernière.
(ACE : Assured Computing Environment ou Environnement informatique assuré)

### VMware Fusion

C'est l'équivalent de la version Workstation à destination des ordinateurs Mac. Elle permet de faire fonctionner des systèmes Windows, Mac OS X Server, Linux et Solaris sur Mac OS X.

### VMware Server

C'est une application serveur très proche de GSX qu'elle remplacera à terme. Elle permet de créer et d'utiliser plusieurs machines virtuelles. Cette version est utilisable gratuitement. et a pour atout la console distante. On peut ainsi prendre le contrôle de l'ensemble des machines virtuelles depuis une machine distante, ce qui n'est pas possible avec la version VMware Player.

### VMware GSX Server

C'est une application serveur qui est conçue pour faire tourner des serveurs virtuels. La connexion à un serveur virtuel se fait par l'intermédiaire d'une console VMware depuis un poste Linux ou Windows. Lorsque la console VMware est fermée, le serveur continue de fonctionner en tâche de fond.

### VMware ESX
#### Présentation générale de VMware ESX

Ce produit s'installe sur la couche matérielle (on parle d'hyperviseur de type 1), et non sur un système d'exploitation « hôte ».
Le nom ESX est à l'origine une abréviation d'Elastic Sky X. En septembre 2004, le remplacement d'ESX s'appelait VMvisor en interne, mais a ensuite été remplacé par ESXi (le "i" en ESXi signifiant "intégré")")$^,$.
VMware ESX permet une gestion plus précise des ressources de chaque machine virtuelle et de meilleures performances. La solution VMware ESX est la solution la plus industrielle de la gamme. VMware ESX est basé sur une distribution RHEL5 (Red Hat Enterprise Linux 5) modifiée, et comprend deux modules :
* VMKERNEL : Ce module « noyau » gère et hiérarchise l'ensemble des ressources matérielles (mémoire, processeur, disques, réseaux) en fonction de chaque serveur, et gère les ressources physiques pour ESX.
* SERVICE CONSOLE : permet la gestion de l'hyperviseur en mode commande. Accessible depuis le port 22 (SSH), cette console sert à lancer certaines commandes inaccessibles depuis l'interface graphique ou encore à parcourir les dossiers dans lesquels sont stockées les machines virtuelles. Enfin, elle peut permettre de collecter des informations de débogage sur les machines virtuelles ou sur le serveur ESX.
Nombres d'options sont disponibles par le biais de la "service console", il est cependant déconseillé de manipuler ESX depuis cette interface pour les novices.
La gestion des serveurs se fait à l'aide d'un navigateur via une interface web, à l'aide d'une console cliente (Virtual Infrastructure Client) ou d'un outil de gestion centralisé VMware nommé Virtual Center. La Service Console est devenue une machine virtuelle à part entière dans vSphere, et la Service Console est absente de la version ESXi du produit (le contrôle est alors effectué à travers une "BusyBox" directement sur la console matérielle ou à travers une console DRAC/iLO).
Une machine virtuelle est en fait un assemblage de plusieurs fichiers. Ces fichiers sont créés sur un système de fichiers appelé/formaté vmfs. Ce système de fichiers possède plusieurs caractéristiques, la plus significative est qu'il est capable de gérer plusieurs connexions concurrentes. Il faut bien sûr que cet espace soit commun à tous les serveurs ESX (SAN par exemple).
ESX dispose également de mécanismes très précis pour la gestion de la mémoire partagée. Le TPS (Transparent Page Sharing) permet ainsi de consolider les pages mémoires communes entre machines virtuelles. Ainsi si plusieurs machines virtuelles utilisent une même page d'adresse, ESX supprimera la page supplémentaire et partagera la page restante entre les machines qui en ont besoin.
La version ESXi 5.0 permet de supporter jusqu'à 512 machines virtuelles par hôte, et les machines virtuelles peuvent utiliser jusqu'à 32 vCPU et 1 Tb de RAM.

### vCenter

vCenter est l'outil de gestion phare de la gamme vSphere. Cet outil (optionnel) permet de gérer l'ensemble des machines virtuelles et des hôtes physiques.
Cette interface contrôle aussi :
* les alarmes de supervision (CPU, RAM) ;
* les templates (enveloppes de systèmes d'exploitation pré-configurés) ;
* l'utilisation des options (HA, vMotion, DRS, FT…).
Cet outil nécessite l'installation d'une base de données (Oracle ou MS SQL Server). Toutefois, pour de simples tests, on peut s'en passer grâce à la présence d'une base de données intégrée basique. Mais, pour des tests importants de la production ou encore un vCenter pour plusieurs ESX, l'utilisation d'une base de données complète est indispensable. Toutes les données et les statistiques d'utilisation des ressources sont stockées ainsi que l'ensemble de la configuration.
Depuis la version 5.0 de vSphere, vCenter est disponible sous forme d'appliance virtuelle pré-configurée, fonctionnant sur une distribution Linux SUSE.
Cette appliance se nomme vCSA (vCenter Server Appliance).

### vMotion

Cet outil permet de migrer "à chaud" (sans interruption de service) une machine virtuelle d'un serveur ESX(i) vers un autre. Cette opération est possible lorsque les serveurs hôtes utilisent des microprocesseurs compatibles et que l'espace de stockage des fichiers des machines virtuelles se trouve partagé sur un SAN ou un NAS. Au pire, la machine virtuelle déplacée par cette action perdra un ping réseau.
Le vMotion va déplacer le contenu de la mémoire d'un serveur ESX vers un autre.

### Storage vMotion

Tout comme le vMotion permet de transférer l'exécution d'une VM d'un serveur physique à l'autre, le Storage vMotion permet de déplacer les disques dur virtuels de la VM (vmdk) d'un espace de stockage partagé à un autre. Ceci s'effectue bien évidemment sans interruption de service. Le storage vMotion utilise la technologie du "Changed Block Tracking" ainsi que la technologie de snapshot.

### DRS (Distributed Resource Scheduler)

Cet outil permet la répartition de charges entre plusieurs serveurs ESX. Plusieurs modes de fonctionnement sont disponibles. Il est par exemple possible de laisser DRS gérer automatiquement les ressources entre serveurs ESX. DRS s'appuie sur le mécanisme de VMotion pour déplacer des machines virtuelles entre les différents serveurs ESX membres d'un cluster.
Il est en plus possible de créer des règles d'affinités les machines virtuelles seront toujours déplacées ensemble (Ex: cluster de machines virtuelles. Règle d'anti-affinité, machines virtuelles toujours séparés sur deux ou plusieurs ESX. (Ex: cas d'un AD primaire et secondaire).

### VMware HA (High Availability)

Cette option de Virtual Center consiste en un mécanisme de bascule des machines virtuelles d'un serveur ESX en panne vers un autre serveur ESX. Dans ce cas, la reprise ne se fait pas à chaud comme une migration simple avec VMotion, les machines virtuelles sont redémarrées sur le second serveur VMware ESX. On peut ainsi avoir de la haute disponibilité au niveau des serveurs VMware ESX.

### VMware FT (Fault Tolerance)

Cette option de Virtual Center consiste à créer un cluster de serveurs ESX, en les associant sous la forme d'un "Fault Tolerant Cluster". La technologie "LockStep" sur laquelle repose le cluster FT permet à la VM du serveur secondaire d'exécuter en parallèle la VM du serveur principal. Seul le serveur principal exécute les écritures (vers le disque, vers le réseau) - le serveur secondaire exécute la même VM en parallèle sans réaliser les écritures. En cas de panne du serveur principal, vCenter le désactive explicitement, et rend le serveur secondaire sur la base d'un Vmotion "automatique".

### VMware Consolidated Backup

C'est l'outil de sauvegarde de Virtual Center. Il permet de faire des sauvegardes des machines virtuelles (totale, incrémentale…) Il est possible de faire des sauvegardes à chaud, voire de faire des sauvegardes de l'ensemble des machines virtuelles à un moment donné pour éviter tout problème de désynchronisation.

### VMware Converter

C'est un outil de migration qui permet de transformer le contenu d'un serveur physique existant vers une machine virtuelle VMware (P2V : Physical-to-Virtual). Après avoir fait une image du contenu des disques du serveur physique, Converter analyse celle-ci et y fait des modifications afin de pouvoir amorcer ces disques dans une machine virtuelle. Les modifications portent essentiellement sur le remplacement des pilotes dans le système d'exploitation, notamment ceux qui sont liés aux contrôleurs de disques. Cela permet d'éviter de réinstaller complètement le système d'exploitation lors d'une migration vers un environnement virtuel. L'outil fonctionne avec les systèmes d'exploitation de Microsoft depuis Windows NT 4.0 (SP5 minimum) jusqu'à Windows Server 2003. Il peut utiliser des images créées avec des outils tiers (Acronis True Image ou Symantec Ghost par exemple).
Converter en version standard autorise le traitement d'une machine en fonctionnement; dans ce cas de figure la transformation de certains serveurs est connue pour être problématique (notamment les contrôleurs de domaine Microsoft). La version Enterprise comprend un CD bootable dont l'image est accessible aux titulaires d'une licence VirtualCenter. Cette version de Converter permet de réaliser la transformation hors fonctionnement (cold clone).