
Ejecuto ESXI 5.1 y todas mis máquinas virtuales están en un NAS asignado por el almacén de datos iSCI.
Mi enrutador se rompió y obviamente todas las máquinas virtuales fueron cortadas de sus discos.
Lo que entiendo es que cuando ocurre tal evento, esxi detiene todas las E/S de las máquinas virtuales e intenta volver a conectarse al almacén de datos. Si no puede después de un cierto tiempo, desmonta el almacén de datos, ya que es posible que haya desaparecido para siempre...
Conecté un nuevo interruptor y luego reinicié mi esxi. Puedo ver que el almacén de datos aparece en línea en la vista del centro de datos de vCenter (pero cuando lo navego no aparece nada, ni siquiera puedo crear una nueva carpeta...) y en la vista de almacenamiento de mi host el almacén de datos no aparece. Si intento agregar un nuevo almacén de datos al host y selecciono iSCSI/LUN, tampoco aparece nada.
Además, en el NAS (un Synology) puedo ver que no hay ninguna conexión activa en mi LUN...
Entonces, la gran pregunta es: ¿Cómo recuperar mi almacén de datos y todas mis máquinas virtuales?
Respuesta1
Conéctese a ESX usando SSH/consola local e intente lo siguiente:
esxcfg-volume -l
esxcfg-volume -m <datastorename>
el primero enumera sus almacenes de datos y su estado, el segundo lo monta
Respuesta2
A pesar de la configuración de red que provocó esta situación, esta sigue siendo una pregunta legítima: ¿cuál es la mejor manera de hacer que un host ESXi vuelva a ver su almacenamiento iSCSI sin reiniciar?
Nota: No pude hacer que esto funcionara porque toda mi pila de red era FUBAR y necesitaba reiniciar ESXi para recuperarlo de todos modos. Estoy publicando esto como respuesta porque lo que encontré podría ser útil para quienes encuentren esta pregunta en el futuro.
El enlace más útil es este artículo de VMware KB tituladoNo se puede volver a montar un almacén de datos después de una pérdida permanente de dispositivo (PDL) no planificada (2014155)
El "no volverá" parece ser una característica destinada a la protección de datos. Todas las máquinas virtuales que estaban usando el almacenamiento que desapareció están listas, sin importar cuán temporal haya sido la pérdida "permanente" del dispositivo.Cualquier máquina virtual que estuviera usando el almacenamiento que desapareció debe apagarse (si es posible) o apagarse (lo más probable)..
Antes de intentar que su servidor ESXi vuelva a ver el almacenamiento, asegúrese de que realmente esté allí mediante el proceso descrito en el artículo de VMware KB tituladoSolución de problemas de conectividad de iSCSI LUN en hosts ESX/ESXi (1003681)Es posible que descubra que toda su pila de red está FUBAR en el proceso. Sé que lo hice...
Del primer artículo de VMware KB:
(Nota: para iSCSI los dispositivos pueden no ser ID "naa" y en su lugar se verán como "t10.IET_". Recomiendo encarecidamente cortar y pegar en lugar de intentar escribir esas monstruosidades a mano).
El comando para encontrar los ID fue inútilmente enterrado en el medio del artículo original; aquí está para su conveniencia, ya que sin duda lo necesitará para encontrar el argumento adecuado para la -d
opción en esxcli storage core device world list -d <ID>
:
#esxcfg-scsidevs --uids
Esto muestra los ID "t10" como este:
UID principal Otro UID mpx.vmhba45:C0:T0:L0 vml.0005000000766d68626135353a313a31 naa.60022190becbe0003b3e818108cdf2d5 vml.0200000000600221c0becce0001b3b918108cdf2c550455e4320c6 t10.IET_____000100000000000000000000000000000000000000000000 vml.010c00000020202020202020202020202020202020202020202020202020202 0202020626561663e30436e6e7f726f t10.IET_____000100010000000000000000000000000000000000000000 vml.010001000020202020202020202020202020202020202020202020202020202 0202020626561693131464952545541
Ejecute este comando para ver el mundo que tiene el dispositivo abierto para el LUN:
#
esxcli storage core device world list -d <t10_id>
Por ejemplo:
#
esxcli storage core device world list -d t10.IET_____000100010000000000000000000000000000000000000000
Verá un resultado similar a:
Dispositivo ID mundial Conteo abierto Nombre mundial-------------------------------------------------- ---------- -------- ---------- ----------t10.IET_____000100010000000000000000000000000000000000000000 2060 1 inactivo0Si un volumen VMFS utiliza el dispositivo indirectamente, el nombre mundial incluye la cadena idle0. Si una máquina virtual utiliza el dispositivo como RDM, se muestra el ID mundial de la máquina virtual. Si algún otro proceso utiliza el dispositivo sin formato, se muestra la información correspondiente.
Notas:
Si el host no responde, ejecute el comando
esxcfg-scsidevs –-list
para obtener el nombre del almacén de datos correspondiente. Asegúrese de que todas las máquinas virtuales registradas en el volumen en estado PDL no requieran ningún paso adicional. Si tiene una máquina virtual en ese estado, intentar Reintentar o Cancelar una operación no devolverá el ID mundial de la máquina virtual. Haga clic en Cancelar ya que la operación de reintento no puede tener éxito a menos que se vuelva a montar el volumen.Ejecute este comando para enumerar todas las máquinas virtuales que se ejecutan en el host ESXi 5.x e identificar la máquina virtual registrada en ese LUN:
#
esxcli vm process list
Para eliminar la máquina virtual World ID, ejecute este comando:
#
esxcli vm process kill --type=force --world-id=World ID
Por ejemplo:
#
esxcli vm process kill --type=force --world-id=12131
Vuelva a escanear el almacenamiento usando este comando:
#
esxcfg-rescan -u vmhba#
Ejecute este comando para ver el estado del dispositivo:
#
esxcli storage core device list -d <t10-id>
Si el problema persiste, reinicie el host ESXi 5.x donde se registró la máquina virtual.