# VMware ESXi

VMware ESXi (anteriorment VMware ESX) és una plataforma de virtualització a nivell de centre de dades produït per VMware, Inc.. És el component del seu producte VMware Infraestructure que es troba al nivell inferior de la capa de virtualització, el hipervisor, encara que posseeix eines i serveis de gestió autònoms i independents.
Està compost d'un sistema operatiu autònom que proporciona l'entorn de gestió, administració i execució al programari hipervisor, i els serveis i servidors que permeten la interacció amb el programari de gestió i administració i les màquines virtuals.

## Descripció tècnica
### Termes i condicions

VMware fa referència en tots els seus documents al hipervisor usat per ESXi com "vmkernel".

### Arquitectura

VMware ESXi és un hipervisor del tipus "hipervisor". En oposició a altres productes, no s'executa sobre un sistema operatiu extern sinó que està incrustat en el nucli del mateix. Per a la seva execució, ESXi es recolza en un sistema Linux basat en Red Hat Enterprise Linux modificat per a l'execució de l'hipervisor i els components de virtualització de VMware. Fins a la versió 3.5u4 es basa en codi executable de 32 bits (x86), però a partir de la versió 4 (vSphere) el seu codi executable pansa a ser de 64 bits pel que els seus requeriments passen a ser majors oferint al seu torn un rendiment superior.
L'arrencada de la màquina amfitriona es produeix a través de l'execució d'un nucli Linux el qual proporciona serveis de consola i maquinari a nivell de l'anell 0 en col·laboració amb l'hipervisor funcionant en manera "Supervisor". A partir de la versió vSphere (versió 4.0), l'hipervisor aplica els teoremes de la paravirtualizació i substitueix al nucli Linux per les seves pròpies interfícies, creant un nivell d'anell -1, i passant a executar l'entorn operatiu com una màquina virtual.
El vmkernel està programat i configurat seguint l'arquitectura de microkernel, i té les següents interfícies amb l'exterior:
* maquinari
* sistema convidat
* consola de servei (Console US, Service Console)

#### Interfície amb el maquinari

El vmkernel administra CPU i memòria de manera directa utilitzant Scan-Before-Execution (SBE) per prioritzar instruccions i interrupcions especials i privilegiades
L'accés a la resta del maquinari (emmagatzematge, xarxa, HID) es realitza per mitjà de mòduls, alguns d'ells similars als implementats en el nucli Linux. Per a l'accés a algun d'ells s'estableix una interfície de comunicació a través del mòdul addicional vmklinux. D'acord amb l'indicat en el fitxer README, "This moduli contains the Linux emulation layer used by the vmkernel.", indica l'establiment de la interfície d'emulació de Linux en manera supervisor.
Els controladors utilitzats són els següents:
* block/cciss
* net/bnx2
* net/i100
* net/i1000
* net/forcedeth
* net/pcnet32
* net/tg3
* scsi/aacraid_esx30
* scsi/adp94xx
* scsi/aic79xx
* scsi/aic7xxx
* scsi/ips
* scsi/lpfcdd-v732
* scsi/lpfcdd-v7xx
* scsi/megaraid_sas
* scsi/megaraid2
* scsi/mptscsi_2xx
* scsi/qla2200-v7.07
* scsi/qla2200-v7xx
* scsi/qla4010
* scsi/qla4022
* scsi/vmkiscsi
Aquests controladors estan descrits en la "Maquinari Compatibility List" de VMware.
Existeixen mètodes per agregar drivers (controladors) o aplicacions a una imatge de VMware ESXi, la qual cosa permetria per exemple instal·lar l'hipervisor en una PC d'escriptori.

#### Sistemes hospedables

El nucli vmkernel ofereix una interfície al sistema allotjat en la màquina virtual el qual simula una plataforma maquinari adaptada a aquest sistema. Això es duu a terme de tal manera que dit es pot executar sense modificar a través de l'hipervisor. Com l'ús de controladors sense modificacions en el sistema allotjat consumi recursos del sistema, l'hipervisor ofereix controladors especialitzats per a diferents sistemes operatius per augmentar el rendiment. Aquests controladors millorats formen part dels paquets VMTools, compost al seu torn per diferents paquets d'utilitats i seqüències de comandos. Tant els controladors millorats que permeten un major aprofitament de la infraestructura física per part del sistema allotjat com les utilitats que ofereixen serveis com el control de la màquina virtual i els seus recursos per part de l'hipervisor, la comunicació entre màquines virtuals, els serveis de sincronització horària i d'arrencada i parada personalizables. Cada família de sistemes té versions pròpies.

#### Service Console (Consola de servei)

Proporciona accés de baix nivell a tots els serveis i configuracions del servidor ESXi. Suposa una interfície de gestió alternativa al client gràfic i a la RCLI remots. Tant la consola com la RCLI passen a ser serveis considerats obsolets per part de VMware orientant la seva administració al client gràfic i els sistemes embeguts monolítics a l'estil del ESXi Server.

### Dependències amb Linux

ESXi utilitza un nucli Linux Red Hat Enterprise Linux modificat per permetre l'execució de l'hipervisor vmkernel pel que té similituds amb sistemes GNU/Linux més enllà de la interfície d'usuari.

## Referències

* ↑ «"ESX Server Datasheet"». Arxivat de l'original el 2021-02-13. [Consulta: 16 octubre 2019].
* ↑ «"ESX Server Architecture"». Vmware.com. Arxivat de l'original el 7 de novembre de 2009. [Consulta: 1r juliol 2009].
* ↑ «Meet the Next Generation of Virtual Infrastructure Technology». VMware. [Consulta: 21 setembre 2007].
* ↑ «"Support for 64-bit Computing"». Vmware.com, 19-04-2004. Arxivat de l'original el 2 de juliol de 2009. [Consulta: 1r juliol 2009].
* ↑ Gerstel, Markus: "Virtualisierungsansätze mit Schwepunkt Xen"
* 1 2 «"ESX Server Open Source"». Vmware.com. [Consulta: 1r juliol 2009].
* ↑ «"VMware's HLC"». VMware. [Consulta: 27 setembre 2009].
* ↑ «"VMware ESXi en una computadora personal"». Arxivat de l'original el 2016-04-15. [Consulta: 1r abril 2016].
* ↑ «Benchmarking VMware ESX Server 2.5 vs Microsoft Virtual Server 2005 Enterprise Edition». Virtualization Benchmark Review, 19-04-2006. Arxivat de l'original el 2006-05-03. [Consulta: 11 juny 2009].
* ↑ «Copia archivada». Arxivat de l'original el 11 de febrer de 2007. [Consulta: 21 setembre 2007].