Диск с нулевым размеров в ESXI 6.5
Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В прошлый раз мы с вами успешно установили гипервизор ESXI 6.5. Сегодня я вам покажу очень интересную ситуацию в которую я попал несколько дней назад. Потребовалось мне с мигрировать виртуальную машину с одного датастора на другой, вроде бы простая операция, но она у меня выскочила с ошибкой "Failed waiting for data. Error 195887107. Not found". Давайте я покажу причины и решение данной проблемы.
Описание проблемы
Как я и писал выше мне нужно было сделать storage migration, в результате мне мой vCenter Server 6.5 выдал сообщение:
Если зайти в свойства данной виртуальной машины, то вы увидите, что у вашего виртуального диска размер 0 МБ.
Я начал разбираться в данном вопросе в плане поиска причины и нашел несколько вариантов:
- У вас криво ранее смигрировались файлы виртуальной машины
- Причиной могла быть система резервного копирования Veeam Backup & Replication, которая не смогла удалить снапшот или криво его сделала. Простой пример у вас делалось задание резервного копирования, и в этот момент вы мигрировали ее, в результате Veeam может натворить дел
- Третья проблема, это ранее созданные ручные снапшоты, которые могли быть неправильно удалены или слиты, ниже я рассмотрю все варианты.
Методы решения
Первым делом вам нужно зайти на датастор на котором у вас лежит ваша виртуальная машина и сделать просмотр файлов. Для того, чтобы удостовериться, что виртуальная машина располагает виртуальные диски именно там, я вам советую проверить информацию в дополнительных свойствах виртуального диска и посмотреть поле "Disk File".
Открыв свой датастор я увидел, что у меня виртуальная машина имеет две папки, первая имеет просто название виртуальной машины, а вторая добавляет в название _1.
Папка с нормальным именем содержала виртуальный диск виртуальной машины.
А вот папка с префиксом _1 уже содержала остальные файлы, среди них конфиг vmx, своп файл и многое другое (Про структуру файлов виртуальной машины ESXI читайте по ссылке).
Согласитесь, что ситуация не правильная, не только исходя из того, что я не могу мигрировать виртуальную машину на другие диск, так еще и перестало работать задание по резервному копированию или я не могу на живую произвести расширение диска у виртуалки. При таком сценарии поправить все очень просто. Выключаем виртуальную машину. Нам необходимо вручную перенести конфигурационные файлы из папки с префиксом _1 в основную. Для этого на выключенной виртуалке щелкните правым кликом и выберите пункт "Remove from inventory", чтобы удалить именно из списка, а не с диска.
Далее вы переносите нужные файлы, после чего необходимо заново зарегистрировать виртуальную машину. Для этого кликаем по файлу с расширением vmx и выберите пункт "Register VM". Указываем нужный датастор и хост Vmware ESXI на котором будет зарегистрирована виртуалка.
В результате чего я получил работоспособную виртуальную машину у которой исчезла проблема с нулевым отображение размера ее виртуального диска и ошибка "Failed waiting for data. Error 195887107. Error encountered while unstunning the virtual machine for Storage vMotion" исчезла.
Когда есть остатки снапшотов
Снапшоты - это состояния системы на момент создания, хранятся в виде файлов flat.vmdk, это по сути дельты от основного виртуального диска. Бывают ситуации, что у вас по какой-то причине хост или vCenter может не видеть их в диспетчере снимков, но на уровне файлов виртуальной машины они есть, в таком случае вы можете попробовать так же выкрутиться, как я и показывал выше. Удалить виртуалку из списка, указав "Remove from inventory". После чего попробовать ее зарегистрировать и желательно на другом хосте. Все ваши снапшоты будут определены в менеджере снимков. Чтобы удостовериться, что виртуальная машина работает со снапшота, достаточно скачать из нее конфигурационный файл vmx, открыть его текстовым редактором и найти пункт, например scsi:0.fileName = "/vmfs/volumes/58c96930-c8f04/searcher/searcher-00010-flat.vmdk". Как видите тут диск имеет приписку -00010-flat.
Еще есть одна возможная операция, если у вас не получится после регистрации увидеть ваши снапшоты. Что вы делаете, включаете ssh у ESXI и подключаетесь через Putty или другую утилиту. Переходим в расположение вашей виртуальной машины.
Создадим в ней папку Temp
Теперь перечислите текущий контент вашей папки VM. использование
Находим ваш последний снапшот, я пометил его стрелкой.
перейдем в расположение TEMP
Создадим новый файл
Теперь скопируйте только что созданный файл .vmdk из папки TEMP и перепишите оригинал. Если вы хотите сделать резервную копию исходного файла, сначала переименуйте его.
cd ..
mv SLP-FT-APPS1.vmdk оригинальный файл.vmdk_original
cp temp/новый файл.vmdk
Наконец мы должны перезагрузить настройки машины. Сначала мы запустим команду, чтобы получить все виртуальные машины и записать VMid, а затем перезагрузим его.
Чтобы получить машины, выполните следующую команду
vim-cmd vmsvc/getallvms
Из команды я получил, что у моей машины есть ID 44, поэтому мы перезагрузим его сейчас
Данную информацию, о последнем методе я нашел на одном из сайтов комьюнити. Надеюсь, что вам удалось решить вашу проблему. С вами был Иван Семин, автор и создатель IT блога Pyatilistnik.org.