Recuperando un datastore de ESXi puede ser un proceso delicado, y necesario a veces cuando tras un evento aleatorio, no voy a sorprender a nadie, pierdo el acceso a los datos. En este artículo, explicaré cómo recuperar un datastore de ESXi en caso de fallo como me ha pasado, desde un adaptador usb-c.
Aviso como siempre, no está soportado. Hazlo bajo tu propia responsabilidad, y si no sabes lo que estás haciendo, mejor no lo hagas. Y si quieres probarlo, hazlo en un entorno de pruebas, no en producción. Dicho esto, vamos al lío.
Un datastore es una partición de un disco con un sistema de ficheros VMFS, que es el sistema de ficheros que utiliza ESXi para almacenar las máquinas virtuales.
En la interfaz tengo esto:

Con acceso ssh, veo esto a un lsusb:
Bus 001 Device 001: ID 0e0f:8003 VMware, Inc. Root Hub
Bus 001 Device 003: ID 0951:1666 Kingston Technology DataTraveler 100 G3/G4/SE9 G2/50
Bus 001 Device 002: ID 0bda:9210 Realtek Semiconductor Corp. RTL9210 M.2 NVME Adapter
El caso es que lo detecta, pero no lo ve a nivel de vmware, porque hay un par de servicios que no lo permiten.
Para detener el servicio de gestión USB, simple.
/etc/init.d/usbArbitrator stop
Y conviene también desactivar el autoarranque del mismo si vamos a usar el acceso a datastore USB de forma habitual, para que no vuelva a arrancar el servicio y nos vuelva a bloquear el acceso al dispositivo ante un posible nuevo reinicio o corte o cualquier cosa que pueda pasar, de nuevo.
chkconfig usbArbitrator off
Tras eso, debería detectar tras rescanear el bus. Posiblemente tengamos que quitar el adaptador y enchufarlo de nuevo.
esxcli storage core adapter rescan --all ## También sirve con esxcfg-rescan -A en plan vieja escuela.
Tras esto, en la interfaz gráfica ya veo adaptador y disco, pero no el datastore.


El datastore que debería llamarse NVMe3 ahora pertenece a un disco nuevo por lo que no puede usar ese nombre. Pero esa no es la razón de por qué no lo muestra.

A nivel de shell, todo es más texto, y se ve así
esxcli storage core device list | grep -E 'mpx|usb'
mpx.vmhba36:C0:T0:L0
Display Name: Local USB Direct-Access (mpx.vmhba36:C0:T0:L0)
Devfs Path: /vmfs/devices/disks/mpx.vmhba36:C0:T0:L0
mpx.vmhba32:C0:T0:L0
Display Name: Local USB Direct-Access (mpx.vmhba32:C0:T0:L0)
Devfs Path: /vmfs/devices/disks/mpx.vmhba32:C0:T0:L0
esxcli storage filesystem list
Mount Point Volume Name UUID Mounted Type Size Free
------------------------------------------------- ------------------------------------------ ----------------------------------- ------- ------ ------------ ------------
/vmfs/volumes/67a3aff5-c5ec6de1-1aa3-00be43d5c6ff NVMe1 67a3aff5-c5ec6de1-1aa3-00be43d5c6ff true VMFS-6 255818989568 119330045952
/vmfs/volumes/688a50db-bc99410d-7cfc-00be43d5c6ff NVMe2 688a50db-bc99410d-7cfc-00be43d5c6ff true VMFS-6 255818989568 129000013824
/vmfs/volumes/69ea8a02-14161f67-c4eb-00be43d5c6ff NVMe3 69ea8a02-14161f67-c4eb-00be43d5c6ff true VMFS-6 255818989568 245153923072
/vmfs/volumes/68bb129b-9e00d607-dbf7-00be43d5c6ff LOCKER-68bb129b-9e00d607-dbf7-00be43d5c6ff 68bb129b-9e00d607-dbf7-00be43d5c6ff true VMFSOS 13153337344 11677990912
/vmfs/volumes/19fdb9cf-af4a234b-aea2-eabe3d6105c3 NO NAME 19fdb9cf-af4a234b-aea2-eabe3d6105c3 true vfat 1073577984 804028416
/vmfs/volumes/5fc4eafa-33404981-91b3-4bed03886edd NO NAME 5fc4eafa-33404981-91b3-4bed03886edd true vfat 1073577984 1073545216
La primera probabilidad de que no se muestre sea porque se ha quedado en modo snapshot.
esxcli storage vmfs snapshot list
688a7dae-bc5aa958-a12a-00be43d5c6ff
Volume Name: NVMe3
VMFS UUID: 688a7dae-bc5aa958-a12a-00be43d5c6ff
Can mount: true
Reason for un-mountability:
Can resignature: true
Reason for non-resignaturability:
Unresolved Extent Count: 1
Así que a montar se ha dicho, al menos lo ve. Eso no descarta corrupción o cualquier otro evento, pero por lo menos vamos a sacar algo en claro.
esxcli storage vmfs snapshot mount -u 688a7dae-bc5aa958-a12a-00be43d5c6ff
Tras esto, ya lo tengo montado, y debería aparecer en la interfaz gráfica. Por comandos lo ve y me da que lo mismo tengo lío con los nombres, porque el que se ha montado es el que se llama NVMe3 de nuevo, aun con otro ID.
/vmfs/volumes/688a7dae-bc5aa958-a12a-00be43d5c6ff NVMe3 688a7dae-bc5aa958-a12a-00be43d5c6ff true VMFS-6 255818989568 206052524032
En la interfaz tengo esto ahora, he tenido que renombrar NVMe3 a NVMe4nuevo para que lo muestre puesto que aunque hay 2 puntos de montaje, parece ser que no se llevan bien cuando el enláce simbólico del datastore apunta a un mismo nombre, aunque el UUID sea diferente.

Y esto es lo de los enlaces simbólicos actuales.
drwxr-xr-x 1 root root 8 Jan 1 1970 19fdb9cf-af4a234b-aea2-eabe3d6105c3
drwxr-xr-x 1 root root 8 Jan 1 1970 5fc4eafa-33404981-91b3-4bed03886edd
drwxr-xr-t 1 root root 77824 Jan 29 22:27 67a3aff5-c5ec6de1-1aa3-00be43d5c6ff
drwxr-xr-t 1 root root 73728 Apr 24 22:12 688a50db-bc99410d-7cfc-00be43d5c6ff
drwxr-xr-t 1 root root 73728 Sep 26 2025 688a7dae-bc5aa958-a12a-00be43d5c6ff
drwxr-xr-t 1 root root 73728 Sep 5 2025 68bb129b-9e00d607-dbf7-00be43d5c6ff
drwxr-xr-t 1 root root 73728 Apr 24 19:55 69ea8a02-14161f67-c4eb-00be43d5c6ff
lrwxr-xr-x 1 root root 35 May 5 22:08 LOCKER-68bb129b-9e00d607-dbf7-00be43d5c6ff -> 68bb129b-9e00d607-dbf7-00be43d5c6ff
lrwxr-xr-x 1 root root 35 May 5 22:08 NO NAME -> 19fdb9cf-af4a234b-aea2-eabe3d6105c3
lrwxr-xr-x 1 root root 35 May 5 22:08 NO NAME -> 19fdb9cf-af4a234b-aea2-eabe3d6105c3
lrwxr-xr-x 1 root root 35 May 5 22:08 NVMe1 -> 67a3aff5-c5ec6de1-1aa3-00be43d5c6ff
lrwxr-xr-x 1 root root 35 May 5 22:08 NVMe2 -> 688a50db-bc99410d-7cfc-00be43d5c6ff
lrwxr-xr-x 1 root root 35 May 5 22:08 NVMe3 -> 688a7dae-bc5aa958-a12a-00be43d5c6ff
lrwxr-xr-x 1 root root 35 May 5 22:08 NVMe3nuevo -> 69ea8a02-14161f67-c4eb-00be43d5c6ff
Así que a copiar, que se hace tarde.
El rendimiento es un poco meh, pero es lo que toca con USB3. Con rescatar datos, suficiente.
Los datos por cp y los discos con vmkfstools.

Para volver a tener los accesos USB y poder hacer usb-passtrough, hay que volver a arrancar el servicio de gestión USB.
chkconfig usbarbitrator on
/etc/init.d/usbarbitrator start
O bien reiniciar, y no queremos reiniciar.
El resto de los eventos se podrían sacar del /var/run/log/vmkernel.log, peo todo ha ido como esperaba, así que hoy no toca hacer nada más.
Una muestra estadística del rendimnto, o de su falta de rendimiento, para que os hagáis una idea.
| Name | Unit | Average | Maximum | Minimum | Latest |
|---|---|---|---|---|---|
| Total disk usage | MB/s | 36.78 | 429.47 | 0.04 | 240.8 |
| Total read rate | MB/s | 12.13 | 142.13 | 0 | 80.42 |
| Total write rate | MB/s | 24.65 | 287.33 | 0.04 | 160.38 |
| Maximum latency | ms | 0.43 | 37 | 0 | 1 |
| Read rate - mpx.vmhba32:C0:T0:L0 | MB/s | 0.01 | 0.98 | 0 | 0 |
| Read rate - mpx.vmhba36:C0:T0:L0 | MB/s | 12.02 | 141.68 | 0 | 80.07 |
| Read rate - t10.NVMe____CL42D3D2562DQ41_NVMe_SED_SSSTC_256GB | MB/s | 0.07 | 0.94 | 0 | 0.33 |
| Read rate - t10.NVMe____PC_SN740_NVMe_WD_256GB | MB/s | 0.03 | 0.56 | 0 | 0.02 |
| Read rate - t10.NVMe____PM9B1_NVMe_Samsung_256GB | MB/s | 0.01 | 0.54 | 0 | 0 |
| Write rate - mpx.vmhba32:C0:T0:L0 | MB/s | 0 | 0.2 | 0 | 0 |
| Write rate - mpx.vmhba36:C0:T0:L0 | MB/s | 0 | 0.2 | 0 | 0 |
| Write rate - t10.NVMe____CL42D3D2562DQ41_NVMe_SED_SSSTC_256GB | MB/s | 24.2 | 287.22 | 0 | 159.84 |
| Write rate - t10.NVMe____PC_SN740_NVMe_WD_256GB | MB/s | 0.29 | 1.14 | 0 | 0.42 |
| Write rate - t10.NVMe____PM9B1_NVMe_Samsung_256GB | MB/s | 0.15 | 0.96 | 0.04 | 0.11 |
Ah, y para desmontarlo, más simple aún.

YoVirtualizador en formato podcast. Ahora también en Sospechosos Habituales: https://wt.territoriolinux.es/rss/short.xml
Y sin más, os dejo los enlaces:
Web: https://www.yovirtualizador.com
Grupo de telegram: https://t.me/grupovirtualizador
Podcast: https://feeds.ivoox.com/feed_fg_f1563806_filtro_1.xml y YouTube https://www.youtube.com/playlist?list=PLrnymu_aoVL6nk1-FcZ220P65tyHV6djV Canal de YouTube: https://youtube.com/@yovirtualizador
Enlaces afiliados:
Amazon: https://amzn.to/3gX3HmK
Asociación Podcast: https://www.asociacionpodcast.es/registrarse/socio/?coupon=SB6A70
iVoox Plus: https://www.ivoox.vip/plus?affiliate-code=323d07d8569f044513746a1be4724b40
iVoox Premium: https://www.ivoox.vip/premium?affiliate-code=03d0efe2be3b55e4cd6df6dc3f6a6dbc
iVoox Premium anual: https://www.ivoox.vip/premium?affiliate-code=9feb8e44ecb4c97148e227100af9223b
