# VMware ESXi

VMware ESXi (anteriormente ESX) es un hipervisor tipo 1 de clase empresarial desarrollado por VMware para implementar y servir computadoras virtuales. Como hipervisor tipo 1, ESXi no es una aplicación de software que se instala en un sistema operativo (SO); en cambio, incluye e integra componentes vitales del sistema operativo, como un kernel, VMkernel.
Después de la versión 4.1 (lanzada en 2010), VMware cambió el nombre de ESX a ESXi. ESXi reemplaza la consola de servicio (un sistema operativo rudimentario) con un sistema operativo más integrado. ESX/ESXi es el componente principal del paquete de software VMware Infrastructure.
El nombre ESX se originó como una abreviatura de Elastic Sky X. En septiembre de 2004, el reemplazo de ESX se llamó internamente VMvisor, pero luego se cambió a ESXi (ya que la "i" en ESXi significaba "integrado").

## Arquitectura

ESXi se ejecuta en bare metal (sin ejecutar un sistema operativo por encima) a diferencia de otros productos de VMware. Incluye su propio kernel. En el histórico VMware ESX, primero se inició un kernel de Linux y luego se usó para cargar una variedad de componentes de virtualización especializados, incluido ESX, que también se conoce como el componente vmkernel. El kernel de Linux era la máquina virtual principal; fue invocado por la consola de servicio. En tiempo de ejecución normal, vmkernel se ejecutaba en la computadora básica y la consola de servicio basada en Linux se ejecutaba como la primera máquina virtual. VMware abandonó el desarrollo de ESX en la versión 4.1 y ahora usa ESXi, que no incluye un kernel de Linux en absoluto.
El vmkernel es un microkernel con tres interfaces: hardware, sistemas invitados y la consola de servicio (Console OS).

### Interfaz al hardware

El vmkernel maneja la CPU y la memoria directamente, utilizando el escaneo antes de la ejecución (SBE) para manejar instrucciones de CPU especiales o privilegiadas y la SRAT (tabla de asignación de recursos del sistema) para rastrear la memoria asignada.
El acceso a otro hardware (como red o dispositivos de almacenamiento) se realiza mediante módulos. Al menos algunos de los módulos se derivan de módulos utilizados en el kernel de Linux. Para acceder a estos módulos, un módulo adicional llamado vmklinux implementa la interfaz del módulo Linux. Según el archivo README, "Este módulo contiene la capa de emulación de Linux utilizada por vmkernel".
vmkernel utiliza los controladores de dispositivo:
* net/e100
* net/e1000
* net/e1000e
* net/bnx2
* net/tg3
* net/forcedeth
* net/pcnet32
* block/cciss
* scsi/adp94xx
* scsi/aic7xxx
* scsi/aic79xx
* scsi/ips
* scsi/lpfcdd-v732
* scsi/megaraid2
* scsi/mptscsi_2xx
* scsi/qla2200-v7.07
* scsi/megaraid_sas
* scsi/qla4010
* scsi/qla4022
* scsi/vmkiscsi
* scsi/aacraid_esx30
* scsi/lpfcdd-v7xx
* scsi/qla2200-v7xx
Estos controladores en su mayoría equivalen a los descritos en la lista de compatibilidad de hardware de VMware. Todos estos módulos están bajo la licencia GPL. Los programadores los han adaptado para que se ejecuten con vmkernel: VMware Inc. ha cambiado la carga de módulos y algunas otras cosas menores.

### Consola de servicio

En ESX (y no en ESXi), la Consola de servicio es un sistema operativo vestigial de uso general que se usa principalmente como arranque para el kernel de VMware, vmkernel y, en segundo lugar, como interfaz de administración. Ambas funciones del sistema operativo de la consola están en desuso a partir de la versión 5.0, ya que VMware migra exclusivamente al modelo ESXi. La Consola de servicio, para todos los efectos, es el sistema operativo utilizado para interactuar con VMware ESX y las máquinas virtuales que se ejecutan en el servidor.

### Pantalla púrpura de la muerte

En caso de un error de hardware, vmkernel puede detectar una excepción de verificación de máquina. Esto da como resultado un mensaje de error que se muestra en una pantalla de diagnóstico de color púrpura. Esto se conoce coloquialmente como pantalla de diagnóstico púrpura o pantalla púrpura de la muerte.
Al mostrar una pantalla de diagnóstico púrpura, vmkernel escribe información de depuración en la partición de volcado del núcleo. El soporte de VMware puede utilizar esta información, junto con los códigos de error que se muestran en la pantalla de diagnóstico morada, para determinar la causa del problema.

## Versiones

VMware ESX ha estado disponible en dos tipos principales: ESX y ESXi, aunque desde la versión 5 solo se continúa con ESXi.
ESX y ESXi anteriores a la versión 5.0 no son compatibles con invitados Windows 8/Windows 2012. Estos sistemas operativos de Microsoft solo pueden ejecutarse en ESXi 5.x o posterior.
VMware ESXi, una versión más pequeña de ESX, no incluye la consola de servicio de ESX. Está disponible, sin necesidad de comprar una licencia de vCenter, como descarga gratuita de VMware, con algunas funciones deshabilitadas.
ESXi significa "ESX integrado".
VMware ESXi se originó como una versión compacta de VMware ESX que permitía una huella de disco de 32 MB en el host. Con una consola de configuración simple para la configuración de red principalmente y una interfaz de cliente de infraestructura de VMware basada en remoto, esto permite que se dediquen más recursos a los entornos invitados.
Existen dos variaciones de ESXi:
* VMware ESXi instalable
* Edición integrada de VMware ESXi
Se puede usar el mismo medio para instalar cualquiera de estas variaciones según el tamaño del medio de destino. Se puede actualizar ESXi a VMware Infrastructure 3 o a VMware vSphere 4.0 ESXi.
Originalmente llamado VMware ESX Server ESXi edition, a través de varias revisiones, el producto ESXi finalmente se convirtió en VMware ESXi 3. Luego siguieron nuevas ediciones: ESXi 3.5, ESXi 4, ESXi 5 y (a 2015) ESXi 6.

## Demanda por violación de la GPL

VMware ha sido demandado por Christoph Hellwig, un desarrollador del kernel de Linux. La demanda comenzó el 5 de marzo de 2015. Se alegó que VMware se había apropiado indebidamente de partes del kernel de Linux, y, luego de una desestimación por parte del tribunal en 2016, Hellwig anunció que presentaría una apelación.
La apelación se decidió en febrero de 2019 y nuevamente fue desestimada por el tribunal alemán, sobre la base de no cumplir con los "requisitos procesales para la carga de la prueba del demandante".
En la última etapa de la demanda en marzo de 2019, el Tribunal Regional Superior de Hamburgo también rechazó la demanda por motivos de procedimiento. Después de esto, VMware anunció oficialmente que eliminaría el código en cuestión. Esto siguió con Hellwig retirando su caso y reteniendo más acciones legales.

## Productos relacionados o adicionales

Los siguientes productos funcionan junto con ESX:
* vCenter Server, permite monitorear y administrar múltiples servidores ESX, ESXi y GSX. Además, los usuarios deben instalarlo para ejecutar servicios de infraestructura como:
** vMotion (transferencia de máquinas virtuales entre servidores sobre la marcha mientras se están ejecutando, sin tiempo de inactividad)
** svMotion, también conocido como Storage vMotion (transferencia de máquinas virtuales entre LUN de almacenamiento compartido sobre la marcha, sin tiempo de inactividad)
** vMotion mejorado, también conocido como evMotion (vMotion y svMotion simultáneos, compatibles con la versión 5.1 y posteriores)
** Distributed Resource Scheduler (DRS) (vMotion automatizado basado en los requisitos/demandas de carga del host/VM)
** Alta disponibilidad (HA) (reinicio de sistemas operativos invitados de máquinas virtuales en caso de falla física del host ESX)
** Fault Tolerance (FT) (conmutación por error con estado casi instantáneo de una VM en el caso de una falla física del host)
* Converter, permite a los usuarios crear máquinas virtuales compatibles con VMware ESX Server o Workstation a partir de máquinas físicas o de máquinas virtuales creadas por otros productos de virtualización. Converter reemplaza los productos VMware "P2V Assistant" e "Importer": P2V Assistant permitía a los usuarios convertir máquinas físicas en máquinas virtuales e Importer permitía importar máquinas virtuales de otros productos a VMware Workstation.
* vSphere Client (anteriormente VMware Infrastructure Client), permite monitorear y administrar una sola instancia del servidor ESX o ESXi. Después de ESX 4.1, vSphere Client ya no estaba disponible desde el servidor ESX/ESXi, pero debe descargarse del sitio web de VMware.

### Cisco Nexus 1000v

La conectividad de red entre los hosts ESX y las máquinas virtuales que se ejecutan en él se basa en NIC virtuales (dentro de la máquina virtual) y conmutadores virtuales. Este último existe en dos versiones: el vSwitch 'estándar' que permite que varias máquinas virtuales en un solo host ESX compartan una NIC física y el 'vSwitch distribuido' donde los vSwitches en diferentes hosts ESX juntos forman un conmutador lógico. Cisco ofrece en su línea de productos Cisco Nexus el Nexus 1000v, una versión avanzada del vSwitch distribuido estándar. Un Nexus 1000v consta de dos partes: un módulo supervisor (VSM) y, en cada host ESX, un módulo Ethernet virtual (VEM). El VSM se ejecuta como un dispositivo virtual dentro del clúster ESX o en hardware dedicado (serie Nexus 1010) y el VEM se ejecuta como un módulo en cada host y reemplaza un dvS (conmutador virtual distribuido) estándar de VMware.
La configuración del conmutador se realiza en el VSM utilizando la CLI estándar de NX-OS. Ofrece capacidades para crear perfiles de puerto estándar que luego se pueden asignar a máquinas virtuales mediante vCenter.
Hay varias diferencias entre el dvS estándar y el N1000v; una es que el conmutador de Cisco generalmente tiene soporte completo para tecnologías de red, como la agregación de enlaces LACP, o que el conmutador de VMware admite nuevas funciones, como el enrutamiento basado en la carga física de la NIC. Sin embargo, la principal diferencia radica en la arquitectura: Nexus 1000v funciona de la misma manera que un conmutador Ethernet físico, mientras que dvS depende de la información de ESX. Esto tiene consecuencias, por ejemplo, en la escalabilidad, donde el límite de Kappa para un N1000v es de 2048 puertos virtuales frente a 60000 para un dvS.
El Nexus1000v se desarrolla en cooperación entre Cisco y VMware y utiliza la API de dvS.

### Herramientas de administración de terceros

Debido a que VMware ESX es líder en el mercado de virtualización de servidores, los proveedores de software y hardware ofrecen una variedad de herramientas para integrar sus productos o servicios con ESX. Algunos ejemplos son los productos de Veeam Software con aplicaciones de respaldo y administración y un complemento para monitorear y administrar ESX usando HP OpenView, Quest Software con una gama de aplicaciones de administración y respaldo y la mayoría de los principales proveedores de soluciones de respaldo tienen complementos. o módulos para ESX. El uso de Microsoft Operations Manager (SCOM) 2007/2012 con un paquete de administración ESX de Bridgeways brinda al usuario una vista del estado del centro de datos ESX en tiempo real.
Los proveedores de hardware, como Hewlett Packard Enterprise y Dell, incluyen herramientas para respaldar el uso de ESX(i) en sus plataformas de hardware. Un ejemplo es el módulo ESX para la plataforma de administración OpenManage de Dell.
VMware agregó un cliente web desde v5, pero funcionará solo en vCenter y no contiene todas las funciones. vEMan es una aplicación de Linux que intenta llenar ese vacío. Estos son solo algunos ejemplos: existen numerosos productos de terceros para administrar, monitorear o respaldar infraestructuras ESX y las máquinas virtuales que se ejecutan en ellas.

## Limitaciones conocidas

A partir de septiembre de 2020, estas son las limitaciones conocidas de VMware ESXi 7.0 U1.

### Limitaciones de infraestructura

Algunos máximos en ESXi Server 7.0 pueden influir en el diseño de los centros de datos:
* RAM máxima del sistema invitado: 24 TB
* RAM máxima del sistema host: 24 TB
* Número de hosts en un clúster de programador de recursos distribuidos o de alta disponibilidad: 96
* Número máximo de procesadores por máquina virtual: 768
* Número máximo de procesadores por host: 768
* Número máximo de CPU virtuales por núcleo de CPU físico: 32
* Número máximo de máquinas virtuales por host: 1024
* Número máximo de CPU virtuales por máquina virtual tolerante a fallas: 8
* RAM máxima del sistema invitado por máquina virtual tolerante a fallas: 128 ES
* Tamaño máximo de volumen de VMFS5: 64 TB, pero el tamaño máximo de archivo es de 62 TB -512 bytes
* Memoria máxima de video por máquina virtual: 4 GB

### Limitaciones de rendimiento

En términos de rendimiento, la virtualización impone un costo en el trabajo adicional que debe realizar la CPU para virtualizar el hardware subyacente. Las instrucciones que realizan este trabajo adicional y otras actividades que requieren virtualización tienden a estar en las llamadas al sistema operativo. En un sistema operativo no modificado, las llamadas al sistema operativo introducen la mayor parte de los "gastos generales" de virtualización.
La paravirtualización u otras técnicas de virtualización pueden ayudar con estos problemas. VMware desarrolló la interfaz de máquina virtual para este propósito y los sistemas operativos seleccionados actualmente lo admiten. Una comparación entre la virtualización completa y la paravirtualización para el servidor ESX muestra que, en algunos casos, la paravirtualización es mucho más rápida.

### Limitaciones de red

Cuando se utilizan las capacidades de red avanzadas y extendidas mediante el conmutador virtual distribuido Cisco Nexus 1000v, se aplican las siguientes limitaciones relacionadas con la red:
   * 64 hosts ESX/ESXi por VSM (módulo supervisor virtual)
   * 2048 interfaces Ethernet virtuales por VMware vDS (conmutador distribuido virtual)
      * y un máximo de 216 interfaces virtuales por host ESX/ESXi
   * 2048 VLAN activas (una que se usará para la comunicación entre VEM y VSM)
   * 2048 perfiles de puerto
   * 32 NIC físicas por host ESX/ESXi (físico)
   * 256 canales de puerto por VMware vDS (conmutador distribuido virtual)
      * y un máximo de 8 canales de puerto por host ESX/ESXi

### Limitaciones de la estructura de canal de fibra

Independientemente del tipo de adaptador SCSI virtual utilizado, existen estas limitaciones:
* Máximo de 4 adaptadores SCSI virtuales, uno de los cuales debe estar dedicado al uso del disco virtual
* Máximo de 64 LUN SCSI por adaptador