Я запускаю ESXI 5.1, и все мои виртуальные машины находятся в NAS, подключенном к хранилищу данных iSCI.
Мой маршрутизатор сломался и, очевидно, все виртуальные машины были вырезаны из своих дисков.
Я понимаю, что при возникновении такого события esxi останавливает все операции ввода-вывода от виртуальных машин и trie для повторного подключения к хранилищу данных. Если он не может по прошествии определенного времени, он отключит хранилище данных, поскольку он, возможно, исчез навсегда ...
Я подключил новый коммутатор и перезапустил свой esxi. Я вижу, что хранилище данных отображается онлайн в представлении центра обработки данных из vCenter (но когда я его просматриваю, ничего не появляется, я даже не могу создать новую папку ...), а в представлении хранилища моего хоста хранилище данных не отображается .. Если я попытаюсь добавить новое хранилище данных к хосту и выберу iSCSI / LUN, ничего не появится.
Кроме того, на NAS (Synology) я вижу, что на моем LUN нет активного подключения ...
Итак, большой вопрос: как вернуть мое хранилище данных и все мои виртуальные машины?
Подключитесь к ESX с помощью SSH / локальной консоли и попробуйте следующее:
esxcfg-volume -l
esxcfg-volume -m <datastorename>
первая перечисляет ваши хранилища данных и их статус, вторая монтирует их
Несмотря на конфигурацию сети, которая привела к этой ситуации, остается закономерный вопрос: как лучше всего заставить хост 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" следующим образом:
Primary UID Other UID mpx.vmhba45:C0:T0:L0 vml.0005000000766d68626135353a313a31 naa.60022190becbe0003b3e818108cdf2d5 vml.0200000000600221c0becce0001b3b918108cdf2c550455e4320c6 t10.IET_____000100000000000000000000000000000000000000000000 vml.010c000000202020202020202020202020202020202020202020202020202020202020626561663e30436e6e7f726f t10.IET_____000100010000000000000000000000000000000000000000 vml.0100010000202020202020202020202020202020202020202020202020202020202020626561693131464952545541
Выполните эту команду, чтобы увидеть мир, в котором устройство открыто для LUN:
#
esxcli storage core device world list -d <t10_id>
Например:
#
esxcli storage core device world list -d t10.IET_____000100010000000000000000000000000000000000000000
Вы видите результат, похожий на:
Device World ID Open Count World Name------------------------------------------------------------ -------- ---------- ----------t10.IET_____000100010000000000000000000000000000000000000000 2060 1 idle0Если том VMFS использует устройство косвенно, мировое имя включает строку idle0. Если виртуальная машина использует устройство как RDM, отображается World ID виртуальной машины. Если какой-либо другой процесс использует необработанное устройство, отображается соответствующая информация.
Ноты:
Если хост не отвечает, запустите команду
esxcfg-scsidevs –-list
чтобы получить соответствующее имя хранилища данных. Убедитесь, что все виртуальные машины, зарегистрированные на томе в состоянии PDL, не требуют дополнительных действий. Если у вас есть виртуальная машина в этом состоянии, попытка повторить или отменить операцию не вернет идентификатор мира виртуальной машины. Нажмите «Отмена», так как операция «Повтор» не может быть успешной, если том не будет повторно подключен.Выполните эту команду, чтобы вывести список всех виртуальных машин, работающих на хосте ESXi 5.x, и определить виртуальную машину, зарегистрированную на этом LUN:
#
esxcli vm process list
Чтобы убить идентификатор мира виртуальной машины, выполните эту команду:
#
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, на котором была зарегистрирована виртуальная машина.