
Я использую ESXI 5.1, и все мои виртуальные машины находятся на NAS, сопоставленном с хранилищем данных iSCI.
Мой маршрутизатор сломался, и, очевидно, все виртуальные машины были вырезаны из своих дисков.
Насколько я понимаю, когда происходит такое событие, esxi останавливает все операции ввода-вывода с виртуальных машин и пытается повторно подключиться к хранилищу данных. Если это не удается в течение определенного времени, он отключает хранилище данных, поскольку оно могло исчезнуть навсегда...
Я подключил новый коммутатор, а затем перезапустил свой esxi. Я вижу, что хранилище данных отображается в режиме онлайн в представлении центра обработки данных из vCenter (но когда я просматриваю его, ничего не появляется, я даже не могу создать новую папку ...) и в представлении хранилища моего хоста хранилище данных не отображается... Если я пытаюсь добавить новое хранилище данных на хост и выбираю iSCSI/LUN, ничего также не отображается.
Кроме того, на NAS (Synology) я вижу, что на моем LUN нет активного подключения...
Итак, главный вопрос: как вернуть мое хранилище данных и все мои виртуальные машины?
решение1
Подключитесь к ESX с помощью SSH/локальной консоли и попробуйте выполнить следующее:
esxcfg-volume -l
esxcfg-volume -m <datastorename>
первый выводит список ваших хранилищ данных и их статус, второй монтирует их
решение2
Несмотря на конфигурацию сети, которая привела к этой ситуации, остается законный вопрос: как лучше всего заставить хост ESXi снова увидеть свое хранилище iSCSI без перезагрузки?
Примечание: Мне не удалось заставить это работать, потому что весь мой сетевой стек был FUBAR, и мне нужно было перезагрузить ESXi, чтобы вернуть его обратно. Я публикую это как ответ, потому что то, что я нашел, может быть полезным для тех, кто найдет этот вопрос в будущем.
Самая полезная ссылка — это статья базы знаний VMware под названиемНевозможно перемонтировать хранилище данных после незапланированной постоянной потери устройства (PDL) (2014155)
"Не вернется", похоже, это функция, предназначенная для защиты данных. Любые виртуальные машины, которые использовали исчезнувшее хранилище, будут удалены, какой бы временной ни была "постоянная" потеря устройства.Все виртуальные машины, которые использовали исчезнувшее хранилище, должны быть выключены (если это возможно) или отключены от питания (что более вероятно)..
Прежде чем пытаться снова заставить сервер ESXi увидеть хранилище, убедитесь, что оно действительно там есть, выполнив процесс, описанный в статье базы знаний VMware под названиемУстранение неполадок с подключением iSCSI LUN на хостах ESX/ESXi (1003681)Вы можете обнаружить, что весь ваш сетевой стек в процессе FUBARed. Я знаю, что я это сделал...
Из первой статьи базы знаний VMware:
(Примечание: для iSCSI устройства могут не иметь идентификаторов «naa», а вместо этого будут выглядеть как «t10.IET_». Я настоятельно рекомендую копировать и вставлять вместо того, чтобы пытаться вводить эти чудовищные данные вручную.)
Команда для поиска идентификаторов была бесполезно спрятана в середине оригинальной статьи — вот она для вашего удобства, поскольку она вам, несомненно, понадобится, чтобы найти правильный аргумент для опции -d
в esxcli storage core device world list -d <ID>
:
#esxcfg-scsidevs --uids
Здесь показаны идентификаторы «t10» следующим образом:
Основной UID Другой UID mpx.vmhba45:C0:T0:L0 vml.0005000000766d68626135353a313a31 naa.60022190becbe0003b3e818108cdf2d5 vml.0200000000600221c0becce0001b3b918108cdf2c550455e4320c6 t10.IET_____000100000000000000000000000000000000000000000000000000000 vml.010c00000020202020202020202020202020202020202020202020202020202020626561663e30436e6e7f726f t10.IET_____00010001000000000000000000000000000000000000000000000000000 vml.01000100002020202020202020202020202020202020202020202020202020202020626561693131464952545541
Выполните эту команду, чтобы увидеть мир, в котором открыто устройство для LUN:
#
esxcli storage core device world list -d <t10_id>
Например:
#
esxcli storage core device world list -d t10.IET_____000100010000000000000000000000000000000000000000
Вы увидите вывод, похожий на:
Устройство Мировой ID Открытое количество Мировое имя------------------------------------------------------------ -------- ---------- ----------t10.IET_____00010001000000000000000000000000000000000000000000 2060 1 простаивает0Если том VMFS использует устройство косвенно, имя мира включает строку idle0. Если виртуальная машина использует устройство как RDM, отображается идентификатор мира виртуальной машины. Если какой-либо другой процесс использует необработанное устройство, отображается соответствующая информация.
Примечания:
Если хост не отвечает, выполните команду
esxcfg-scsidevs –-list
, чтобы получить соответствующее имя хранилища данных. Убедитесь, что все виртуальные машины, зарегистрированные на томе в состоянии PDL, не требуют дополнительных шагов. Если у вас есть виртуальная машина в этом состоянии, попытка повторить или отменить операцию не вернет идентификатор мира виртуальной машины. Нажмите кнопку «Отмена», так как операция повтора не может быть успешной, пока том не будет перемонтирован.Выполните эту команду, чтобы вывести список всех виртуальных машин, работающих на хосте ESXi 5.x, и определить виртуальную машину, зарегистрированную на этом LUN:
#
esxcli vm process list
Чтобы завершить работу виртуальной машины World ID, выполните следующую команду:
#
esxcli vm process kill --type=force --world-id=World ID
Например:
#
esxcli vm process kill --type=force --world-id=12131
Повторно просканируйте хранилище с помощью этой команды:
#
esxcfg-rescan -u vmhba#
Выполните эту команду, чтобы увидеть состояние устройства:
#
esxcli storage core device list -d <t10-id>
Если проблема не устранена, перезагрузите хост ESXi 5.x, на котором была зарегистрирована виртуальная машина.