Cómo solucionar el error Missing dependency VIBS error found huawei bootbank hio 2.0.0 expected… que se produce al actualizar un servidor hipervisor VMware ESXi de la versión 6.0 a la 6.7. Explicamos también cómo activar el acceso SSH, cambiar a modo mantenimiento un ESXi y reiniciarlo desde la línea de comandos.

Cuándo se produce el error Missing dependency VIBS error found

Cuando intentamos actualizar un host hipervisor VMware ESXi de la versión 6.0 a la versión 6.7 o superior, como se indica en el siguiente tutorial:

O bien mediante otro tipo de actualización (Update Manager, por comando, etc.), justo cuando va a iniciar la actualización muestra el siguiente error:

Cuándo se produce el error  Missing dependency VIBS error found

Error/warning found during system scan
The system enconuntered the following error
MISSING_DEPENDENCY_VIBS ERROR: Found=[HUAWEI_bootbank_hio_2.0.0.42-10EM.550.0.0.1331820, HUAWEI_bootbank_hio_2.0.0.42-10EM.550.0.0.1331820] Expected=[]
These vibs on the host are missing dependency if continue to upgrade. Remove these vibs before upgrade or use Image Builder to resolve this missing dependency issue.

En negrita se indica lo que puede variar del error, en función de la dependencia de driver VIBS que no encuentre, puede ser cualquier otro fabricante y versión.

Cuando se produce este error, de momento, volveremos a iniciar el ESXi. Retiraremos los medios de actualización (DVD, pendrive USB, …) y pulsaremos la tecla F11 para reiniciarlo y arrancarlo de forma normal.

Este error puede evitarse de varias formas, a continuación explicamos la más «sencilla».

Motivo por el que se suele producir el error Missing dependency VIBS error found

Pueden ser diversos los motivos por los que se puede producir este error, aunque el habitual es porque para la instalación del ESXi 6.0 (o bien 5.5) se usó una ISO específica de algún fabricante de servidores (Fujitsu, Dell, IBM, …) que incluyera determinados drivers para sus controladoras o hardware. Si para actualizar de la 6.0 a la 6.7 usamos una ISO estándar de VMware y ésta no incluye alguno de estos drivers, mostrará este mensaje de error.

En nuestro caso ha ocurrido con un servidor Fujitsu Primergy RX200, aunque el error puede producirse con cualquier otro fabricante y modelo de servidores.

Por ello, en el propio mensaje del error, nos indica que una forma de solucionarlo es «inyectando» los drivers de la dependencia que no ha encontrado en el ISO de actualización del ESXi 6.7, usando vSphere ESXi Image Builder. Aunque en este caso resolveremos el problema de una forma más sencilla, como indicamos a continuación.

Requisitos para solucionar el error Missing dependency VIBS error found al actualizar ESXi 6.0 a 6.7

Necesitaremos disponer del servidor que da el error de actualización encendido y correctamente iniciado el ESXi 6.0.

También deberemos tener un usuario y contraseña del entorno ESXi que permita acceder a la consola shell SSH y poder ejecutar comandos.

Es conveniente, como siempre que se realizan modificaciones en la configuración de cualquier host ESXi, tanto independiente como perteneciente a un clúster VMware vCenter Server, realizar copias de seguridad de todo el entorno antes de realizar cualquier intervención.

Si el host ESXi que queremos actualizar y que da error pertenece a un clúster vCenter Server deberemos vaciarlo de máquinas virtuales antes de realizar cualquier operación de modificación de sus parámetros. Si el host ESXi es independiente será conveniente apagar las máquinas virtuales que contenga. Por ello, este proceso conviene realizarlo cuando no haya carga de trabajo para un menor impacto en la disponibilidad de los servicios.

Por último, para solucionar el error, deberemos disponer de acceso SSH al servidor ESXi. A continuación explicamos cómo activarlo.

Habilitar acceso a la consola shell de comandos del host ESXi por SSH

Una vez iniciado el servidor ESXi de forma normal, en la versión 6.0, necesitaremos acceder a la consola SSH. Para ello, nos aseguraremos, desde el vSphere Web Client HTML5, que el servicio SSH en este host ESXi está iniciado.

Desde vSphere Client, pulsaremos sobre el servidor host ESXi que nos da el error al intentar actualizar [1], pulsaremos en «Configurar» [2], en «Sistema» [3] y en «Servicios» [4]. Seleccionaremos el servicio SSH [5], pulsaremos con el botón derecho del ratón y elegiremos «Iniciar» [6]:

Habilitar acceso a la consola shell de comandos del host ESXi por SSH

Además de iniciar el servicio, comprobaremos en el firewall del ESXi que el puerto está abierto. Lo haremos también desde «Sistema», seleccionando «Firewall» [1] y pulsando en «Editar» [2]:

Habilitar acceso a la consola shell de comandos del host ESXi por SSH

Marcaremos «SSH Server» y en «Direcciones IP permitidas» tendremos la opción de marcar «Permitir conexiones desde cualquier dirección IP» (no es recomendable por seguridad), o bien desmarcar esta opción e introducir las IP desde las que permitiremos el acceso, en nuestro caso únicamente la IP 192.168.1.100. Pulsaremos «ACEPTAR» para guardar los cambios:

Habilitar acceso a la consola shell de comandos del host ESXi por SSH

Con esto ya tendremos acceso vía SSH, por ejemplo usando un cliente como PuTTY. Necesitaremos, lógicamente, conocer un usuario y contraseña con permisos suficientes para acceder a la consola SSH y ejecutar comandos.

Habilitar acceso a la consola shell de comandos del host ESXi por SSH

Solución al error Missing dependency VIBS error found al actualizar ESXi 6.0 a 6.7

A continuación explicamos cómo solucionar este error que se produce al actualizar de la versión 6.0 a la 6.7 en un host ESXi. Si realizáramos una instalación limpia (desde cero), el error no se produciría, si bien tendríamos que configurar todo el host ESXi desde cero, asignándole una IP, agregándolo al clúster vCenter Server, asignándole un VDS, etc.. En nuestro caso lo solucionaremos respetando la configuración actual, realizando una actualización desde la versión 6.0 sin perder los datos de configuración.

Accederemos al shell de comandos mediante SSH, como hemos indicado anteriormente. En primer lugar revisaremos el texto del error, que es muy importante para extraer el nombre corto del driver que provoca el error, lo indicamos en la siguiente imagen en recuadro rojo:

Solución al error  Missing dependency VIBS error found  al actualizar ESXi 6.0 a 6.7

En nuestro caso, el nombre corto del driver es hio, anotaremos este dato que necesitaremos a continuación.

Para identificarlo en el sistema, ejecutaremos el siguiente comando desde el shell del ESXi:

esxcli software vib list | grep hio

Vemos que hemos usado «hio» en el grep para filtrar y mostrar el driver usando el nombre corto:

Solución al error  Missing dependency VIBS error found  al actualizar ESXi 6.0 a 6.7

Como es lógico, cambiaremos ese «hio» por el que os haya devuelto el error en nuestro entorno. Y hay que tener en cuenta que a veces son varios los drivers que dan error de dependencia, en nuestro caso únicamente ha sido el HUAWEI. Si son más tendremos que repetir el proceso por cada uno.

Tras obtener los datos del drivers que causa el error de dependencia, ahora vamos a asegurarnos de que el sistema NO lo usa, pues la solución será eliminarlo (si no lo usa).

Para comprobar que el driver conflictivo no está siendo usado por el ESXi, deberemos verificar que ni las NIC (adaptadores de red) ni las HBA (tarjetas de fibra) usan este driver. Para listar los adaptadores de red físicos del ESXi podremos ejecutar el comando:

esxcli network nic list

El comando anterior nos mostrará todos los NIC (tarjetas de red físicas) del servidor. Recuadramos en rojo el nombre corto del driver de cada NIC, en nuestro caso todas igb, que vemos que NO coincide con el que da error de dependencia, en nuestro caso hio. Por lo tanto así descartamos que el driver conflictivo esté siendo usado por las NIC del servidor.

Solución al error  Missing dependency VIBS error found  al actualizar ESXi 6.0 a 6.7

Ahora realizaremos la misma operación para el caso de las HBA (tarjetas de fibra), ejecutando el comando:

esxcfg-scsidevs -a

Al igual que para las NIC, la segunda columna de lo que devuelve el comando anterior será el nombre corto del driver, que en nuestro caso tenemos ahci, lpfc y megaraid_sas, que tampoco coinciden con el hio conflictivo:

Solución al error  Missing dependency VIBS error found  al actualizar ESXi 6.0 a 6.7

Por lo tanto así hemos descargado que el driver conflictivo esté siendo usado por el sistema ESXi, por ello podremos eliminarlo. Para eliminarlo ejecutaremos:

esxcli software vib remove -n «hio»

(Cambiaremos hio por el nombre corto del driver de nuestro entorno)

Tardará unos segundos y nos mostrará el resultado de la ejecución del comando para eliminar el driver, en nuestro caso:

Removal Result
Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
Reboot Required: true
VIBs Installed:
VIBs Removed: HUAWEI_bootbank_hio_2.0.0.42-1OEM.550.0.0.1331820
VIBs Skipped:

Solución al error  Missing dependency VIBS error found  al actualizar ESXi 6.0 a 6.7

Indicando que hemos de reiniciar el servidor ESXi para que los cambios se hagan efectivos.

Reiniciar el servidor ESXi desde la línea de comandos, activar el modo mantenimiento

Nos aseguraremos de que el servidor ESXi no tiene máquinas virtuales iniciadas, de tenerlas, las apagaremos de forma controlada (si es un servidor independiente) o bien las migraremos a otros hosts (si es un servidor perteneciente a un clúster VMware vCenter Server). Una vez apagadas o migradas a otro host ESXi, para reiniciar el servidor, lo pasaremos a modo mantenimiento, o bien desde la consola web o bien desde la línea de comandos. Explicamos cómo hacerlo a continuación.

Para consultar el estado actual del servidor podremos ejecutar el comando:

esxcli system maintenanceMode get

Si el servidor está en modo normal nos devolverá «Disabled», si ya está en modo mantenimiento nos devolverá «Enabled». En caso de devolvernos «Disabled» ejecutaremos el siguiente comando para pasar el servidor a modo mantenimiento:

esxcli system maintenanceMode set –enable=1

Y volveremos a comprobar que, efectivamente, ahora devuelve «Enabled» el comando:

esxcli system maintenanceMode get

Reiniciar el servidor ESXi desde la línea de comandos, activar el modo mantenimiento

Desde el modo gráfico también nos mostrará que el servidor ha pasado a modo mantenimiento:

Reiniciar el servidor ESXi desde la línea de comandos, activar el modo mantenimiento

Ahora podremos reiniciar el servidor desde la línea de comandos, ejecutando:

esxcli system shutdown reboot -d 10 -r «Para quitar dependencia VIBS»

Donde 10 serán los segundos de espera antes de reiniciar y «Para quitar dependencias VIBS» será el texto que se guarde en la tarea, como motivo de reinicio.

Durante el reinicio, como es lógico, se perderá la conexión con el servidor ESXi:

Reiniciar el servidor ESXi desde la línea de comandos, activar el modo mantenimiento

Esperaremos a que el sistema arranque. Seguirá en modo mantenimiento, podremos cambiarlo al modo normal ejecutando:

esxcli system maintenanceMode set –enable=0

Comprobaremos que tiene conectividad y funciona correctamente. Si es así, ahora podremos ejecutar el proceso de actualización de la 6.0 a la 6.7, como indicamos en el siguiente artículo: