VMware ESXi  es una plataforma de virtualización

VMware ESXi  es una plataforma de virtualización a nivel de centro de datos producido por VMware, Inc.. Es el componente de su producto VMware Infraestructure que se encuentra al nivel inferior de la capa de virtualización, el hipervisor, aunque posee herramientas y servicios de gestión autónomos e independientes.

Está compuesto de un sistema operativo autónomo que proporciona el entorno de gestión, administración y ejecución al software hipervisor, y los servicios y servidores que permiten la interacción con el software de gestión y administración y las máquinas virtuales.

Descripción técnica

Términos y condiciones

VMware hace referencia en todos sus documentos al hipervisor usado por ESXi como «vmkernel».

Arquitectura

VMware ESXi es un hipervisor del tipo «bare metal».3​ En oposición a otros productos, no se ejecuta sobre un sistema operativo externo sino que está incrustado en el núcleo del mismo.4​ Para su ejecución, ESXi se apoya en un sistema Linux basado en Red Hat Enterprise Linux modificado para la ejecución del hipervisor y los componentes de virtualización de VMware. Hasta la versión 3.5u4 se basa en código ejecutable de 32 bits, pero a partir de la versión 4 (vSphere) su código ejecutable pasa a ser de 64 bits por lo que sus requerimientos pasan a ser mayores ofreciendo a su vez un rendimiento superior.

El arranque de la máquina anfitriona se produce a través de la ejecución de un núcleo Linux el cual proporciona servicios de consola y hardware a nivel del anillo 05​ en colaboración con el hipervisor funcionando en modo «Supervisor». A partir de la versión vSphere (versión 4.0), el hipervisor aplica los teoremas de la paravirtualización y sustituye al núcleo Linux por sus propias interfaces, creando un nivel de anillo -1, y pasando a ejecutar el entorno operativo como una máquina virtual.6​

El vmkernel está programado y configurado siguiendo la arquitectura de microkernel,7​ y tiene las siguientes interfaces con el exterior:

hardware
sistema invitado
consola de servicio (Console OS, Service Console)

Interfaz con el hardwar

El vmkernel administra CPU y memoria de manera directa utilizando Scan-Before-Execution (SBE) para priorizar instrucciones e interrupciones especiales y privilegiadas8​

El acceso al resto del hardware (almacenamiento, red, HID) se realiza por medio de módulos, algunos de ellos similares a los implementados en el núcleo Linux. Para el acceso a alguno de ellos se establece una interfaz de comunicación a través del módulo adicional vmklinux. De acuerdo a lo indicado en el fichero README, «This module contains the Linux emulation layer used by the vmkernel.», indica el establecimiento de la interfaz de emulación de Linux en modo supervisor.9​

Los controladores utilizados son los siguientes:

block/cciss
net/bnx2
net/e100
net/e1000
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
Estos controladores están descritos en la «Hardware Compatibility List»10​ de VMware.

Existen métodos11​ para agregar drivers o aplicaciones a una imagen de VMware ESXi, lo que permitiría por ejemplo instalar el hipervisor en una PC de escritorio.

Sistemas hospedables

El núcleo vmkernel ofrece una interfaz al sistema alojado en la máquina virtual el cual simula una plataforma hardware adaptada a dicho sistema. Esto se lleva a cabo de tal manera que dicho se puede ejecutar sin modificar a través del hipervisor. Como el uso de controladores sin modificaciones en el sistema alojado consume recursos del sistema, el hipervisor ofrece controladores especializados para diferentes sistemas operativos para aumentar el rendimiento.12​ Estos controladores mejorados forman parte de los paquetes VMTools, compuesto a su vez por diferentes paquetes de utilidades y secuencias de comandos. Tanto los controladores mejorados que permiten un mayor aprovechamiento de la infraestructura física por parte del sistema alojado como las utilidades que ofrecen servicios como el control de la máquina virtual y sus recursos por parte del hipervisor, la comunicación entre máquinas virtuales, los servicios de sincronización horaria y de arranque y parada personalizables. Cada familia de sistemas tiene versiones propias.

Service Console (Consola de servicio)

Proporciona acceso de bajo nivel a todos los servicios y configuraciones del servidor ESXi. Supone una interfaz de gestión alternativa al cliente gráfico y a la RCLI remotos. Tanto la consola como la RCLI pasan a ser servicios considerados obsoletos por parte de VMware orientando su administración al cliente gráfico y los sistemas embebídos monolíticos al estilo del ESXi Server.

Dependencias con Linux

ESXi utiliza un núcleo Linux Red Hat Enterprise Linux modificado para permitir la ejecución del hipervisor vmkernel por lo que tiene similitudes con sistemas GNU/Linux más allá de la interfaz de usuario. En la FAQ/PUF de ESX Server 3.013​ se hace referencia a este tema de la siguiente forma: «ESX Server also incorporates a service console based on a Linux 2.4 kernel that is used to boot the ESX Server virtualization layer». «ESX Server también incorpora una consola de servicio basada en un núcleo Linux 2.4, que es usada para lanzar la capa de virtualización de ESX Server».