
Eu executo o ESXI 5.1 e todas as minhas máquinas virtuais estão em um NAS mapeado pelo armazenamento de dados iSCI.
Meu roteador quebrou e obviamente todas as VMs foram cortadas de seus discos.
O que entendi é que quando tal evento ocorre, o esxi interrompe todas as E/S das VMs e tenta se reconectar ao armazenamento de dados. Se não conseguir depois de um certo tempo, desmonte o armazenamento de dados, pois ele pode ter desaparecido para sempre ...
Conectei um novo switch e reiniciei meu esxi. Posso ver que o armazenamento de dados aparece online na visualização do datacenter do vCenter (mas quando navego nada aparece, não consigo nem criar uma nova pasta ...) e na visualização de armazenamento do meu host o armazenamento de dados não aparece. Se eu tentar adicionar um novo armazenamento de dados ao host e selecionar iSCSI/LUN, nada aparecerá.
Além disso, no NAS (um Synology) posso ver que não há conexão ativa no meu LUN...
Portanto, a grande questão é: como recuperar meu armazenamento de dados e todas as minhas VMs?
Responder1
Conecte-se ao ESX usando SSH/console local e tente o seguinte:
esxcfg-volume -l
esxcfg-volume -m <datastorename>
o primeiro lista seus datastores e seus status, o segundo os monta
Responder2
Apesar da configuração de rede que levou à situação, esta permanece uma questão legítima: qual é a melhor maneira de fazer com que um host ESXi veja seu armazenamento iSCSI novamente sem reinicializar?
Observação: não consegui fazer isso funcionar porque toda a minha pilha de rede era FUBAR e eu precisava reiniciar o ESXi para recuperá-lo de qualquer maneira. Estou postando isso como uma resposta porque o que descobri pode ser útil para quem encontrar essa pergunta no futuro.
O link mais útil é este artigo da VMware KB intituladoNão é possível remontar um armazenamento de dados após uma perda permanente não planejada de dispositivo (PDL) (2014155)
O “não voltarei” parece ser um recurso destinado à proteção de dados. Quaisquer VMs que estavam usando o armazenamento que desapareceu serão eliminadas, por mais temporária que tenha sido a perda "permanente" do dispositivo.Quaisquer VMs que estavam usando o armazenamento que desapareceu devem ser desligadas (se possível) ou desligadas (mais provavelmente).
Antes de tentar fazer com que seu servidor ESXi veja o armazenamento novamente, certifique-se de que ele esteja realmente lá por meio do processo no artigo da base de conhecimento da VMware intituladoSolução de problemas de conectividade iSCSI LUN em hosts ESX/ESXi (1003681)Você pode descobrir que toda a sua pilha de rede sofre FUBAR no processo. eu sei que sim...
Do primeiro artigo da base de conhecimento da VMware:
(Observação: para iSCSI, os dispositivos podem não ter IDs "naa" e, em vez disso, parecerão "t10.IET_". Eu recomendo recortar e colar em vez de tentar digitar essas monstruosidades manualmente.)
O comando para encontrar os IDs foi enterrado no meio do artigo original - aqui está para sua conveniência, pois sem dúvida você precisará dele para encontrar o argumento adequado para a -d
opção em esxcli storage core device world list -d <ID>
:
#esxcfg-scsidevs --uids
Isso mostra os IDs "t10" assim:
UID principal Outro UID mpx.vmhba45:C0:T0:L0 vml.0005000000766d68626135353a313a31 naa.60022190becbe0003b3e818108cdf2d5 vml.0200000000600221c0becce0001b3b918108cdf2c550455e4320c6 t10.IET_____000100000000000000000000000000000000000000000 vml.010c00000020202020202020202020202020202020202020202020202020202 0202020626561663e30436e6e7f726f t10.IET_____000100010000000000000000000000000000000000000 vml.010001000020202020202020202020202020202020202020202020202020202 0202020626561693131464952545541
Execute este comando para ver o mundo que tem o dispositivo aberto para o LUN:
#
esxcli storage core device world list -d <t10_id>
Por exemplo:
#
esxcli storage core device world list -d t10.IET_____000100010000000000000000000000000000000000000000
Você vê uma saída semelhante a:
ID Mundial do Dispositivo Contagem Aberta Nome Mundial-------------------------------------------------- ---------- -------- ---------- ----------t10.IET_____000100010000000000000000000000000000000000000 2060 1 inativo0Se um volume VMFS estiver usando o dispositivo indiretamente, o nome mundial incluirá a cadeia de caracteres idle0. Se uma máquina virtual usar o dispositivo como um RDM, o World ID da máquina virtual será exibido. Se qualquer outro processo estiver usando o dispositivo bruto, as informações correspondentes serão exibidas.
Notas:
Se o host não estiver respondendo, execute o comando
esxcfg-scsidevs –-list
para obter o nome do armazenamento de dados correspondente. Certifique-se de que todas as máquinas virtuais registradas no volume em estado PDL não exijam nenhuma etapa adicional. Se você tiver uma máquina virtual nesse estado, tentar repetir ou cancelar uma operação não retornará o ID mundial da máquina virtual. Clique em Cancelar, pois a operação Repetir não poderá ser bem-sucedida, a menos que o volume seja remontado.Execute este comando para listar todas as máquinas virtuais em execução no host ESXi 5.x e identificar a máquina virtual registrada nesse LUN:
#
esxcli vm process list
Para eliminar o World ID da máquina virtual, execute este comando:
#
esxcli vm process kill --type=force --world-id=World ID
Por exemplo:
#
esxcli vm process kill --type=force --world-id=12131
Verifique novamente o armazenamento usando este comando:
#
esxcfg-rescan -u vmhba#
Execute este comando para ver o estado do dispositivo:
#
esxcli storage core device list -d <t10-id>
Se o problema persistir, reinicie o host ESXi 5.x onde a máquina virtual foi registrada.