Восстановление отсутствующего файла дескриптора диска виртуальной машины VMware (.vmdk) (1002511)

В дальнейшем используя интернет страницу cloudhosting.lv, вы соглашаетесь с правилами пользования Куки. Узнай больше. Согласен

Восстановление отсутствующего файла дескриптора диска виртуальной машины VMware (.vmdk) (1002511)

Узнайте, как VMware Skyline Advisor и Skyline Health Diagnostics работают вместе, чтобы обеспечить упреждающий анализ и анализ журналов самообслуживания:

  • Используйте Skyline Advisor, чтобы избежать проблем до того, как они возникнут в VCF, vSphere, vSAN, NSX, vROps и Horizon. Результаты Skyline основаны на лучших базах знаний, VMSA / CVE и передовых методах проектирования
  • Используйте Skyline Health Diagnostics для определения первопричины журналов vSphere и vSAN при возникновении проблемы. Результаты диагностики Skyline Health основаны на ведущих KB и VMSA / CVE. Вы можете использовать инструмент Skyline Health Diagnostics в интерактивном или автономном режиме
  • Если вам требуется дополнительная помощь от службы технической поддержки, используйте Skyline Advisor, чтобы запустить Log Assist, чтобы сократить время загрузки журналов. TSE также могут инициировать журналы, чтобы уменьшить усилия
  • Подробнее

    В этой статье описаны действия по воссозданию потерянного файла дескриптора виртуального диска (.vmdk). Вам может потребоваться воссоздать отсутствующие файлы заголовков / дескрипторов, если:

  • Дисковый файл виртуальной машины, указанный в браузере хранилища данных, является плоским файлом вашей виртуальной машины и не имеет значка
  • При включении виртуальной машины вы видите ошибку «Файл не найден»
  • Плоский файл существует при просмотре каталога виртуальной машины
  • Файл дескриптора диска виртуальной машины не существует или поврежден
  • Решение:

    Как восстановить потерянный / отсутствующий файл дескриптора виртуального диска (.vmdk):

    Примечание. В видеоролике используется параметр vmkfstools -a. Начиная с версии ESXi 6.5 и более поздних эта опция устарела и будет проигнорирована следующим сообщением: «--adaptertype устарел и, следовательно, будет проигнорирован».

    Важная заметка:

  • VMware рекомендует регулярно выполнять резервное копирование полного образа критически важных виртуальных машин для упрощения восстановления в таких ситуациях
  • VMware также рекомендует попытаться восстановить отсутствующий файл дескриптора из резервной копии. Этот метод нельзя использовать для воссоздания зашифрованного файла дескриптора диска
  • Если на затронутой виртуальной машине нет полной резервной копии, обязательно скопируйте или сделайте резервную копию неструктурированного файла в отдельном месте
  • Доступность этой статьи ориентирована только на воссоздание файла дескриптора для виртуальной машины. Не редактируйте и не изменяйте содержимое плоского файла, так как это может привести к потере данных
  • Примечание. Эта процедура не будет работать на виртуальных дисках, настроенных с паравиртуализированным контроллером SCSI на виртуальной машине, поскольку виртуальная машина может не загружаться.

    Однако, если используется паравиртуализированный контроллер SCSI, новый файл дескриптора также можно обновить с помощью ddb.adapterType = pvscsi, заменив ddb.adapterType = lsilogic в файле.

    Шаги по созданию файла дескриптора диска виртуальной машины:

    1. Подключитесь к хосту ESXi как root через SSH или DCUI.

    2. Перейдите в каталог, содержащий диск виртуальной машины с отсутствующим файлом дескриптора, используя команду:

    cd /vmfs/volumes/DATASTORE_NAME/VM_NAME

    3. Определите тип контроллера SCSI, который использует виртуальный диск, проверив файл конфигурации виртуальной машины (.vmx). Контроллер идентифицируется строкой scsi # .virtualDev, где # - номер контроллера.

    В этом примере используется lsilogic:

    scsi0.present = "true"
    scsi0.sharedBus = "none"
    scsi1.present = "true"
    scsi1.sharedBus = "virtual"
    scsi1.virtualDev = "lsilogic"

    4. Определите и запишите точный размер файла -flat с помощью этой команды:

    ls -l vmdisk0-flat.vmdk
    -rw------- 1 root root 4294967296 Oct 11 12:30 vmdisk0-flat.vmdk

    5. Используйте команду vmkfstools, чтобы создать новый временный виртуальный диск:

    # vmkfstools -c 4294967296 -d thin temp.vmdk

    Команда использует эти флаги:

    -c size

    Это размер виртуального диска.

    -d thin 

    Это создает диск в формате с тонким выделением ресурсов.В результате создаются файлы temp.vmdk и temp-flat.vmdk.

    Примечание. Чтобы сэкономить место на диске, мы создаем диск в формате с тонким предоставлением, используя тип thin. Единственное последствие, однако, заключается в том, что файл дескриптора содержит дополнительную строку, которую необходимо вручную удалить на более позднем этапе, если исходный диск не является тонким.

    6. Удалите temp-flat.vmdk, так как он не нужен. Запустите эту команду.

    rm -i temp-flat.vmdk

    7. Переименуйте temp.vmdk в имя, которое необходимо для соответствия потерянному файлу -flat (или vmdisk0.vmdk в этом примере):

    mv -i temp.vmdk vmdisk0.vmdk

    8. Отредактируйте файл дескриптора с помощью текстового редактора vi (в данном примере vi vmdisk0.vmdk):

    В разделе "Описание экстента", используйте команду «Вставить», чтобы разрешить изменения в файле дескриптора. Найдите и измените имя файла -flat, чтобы оно соответствовало потерянному -flat. После завершения - нажмите «Esc», чтобы выйти из этого режима. Найдите и удалите строку ddb.thinProvisioned = "1", если исходный .vmdk не был тонким диском. Если да, сохраните эту строку. Используйте команду ": wq!" для сохранения и выхода из редактора vi. Пример

    # Disk DescriptorFile
    version=1
    CID=fb183c20
    parentCID=ffffffff
    createType="vmfs"
    
    # Extent description
    RW 8388608 VMFS "vmdisk0-flat.vmdk"
    
    # The Disk Data Base
    #DDB
    
    ddb.virtualHWVersion = "4"
    ddb.geometry.cylinders = "522"
    ddb.geometry.heads = "255"
    ddb.geometry.sectors = "63"
    ddb.adapterType = "lsilogic"
    ddb.thinProvisioned = "1"
    

    Теперь виртуальная машина готова к включению. Перед запуском виртуальной машины проверьте свои изменения и убедитесь, что цепочка дисков согласована.

    9. Чтобы проверить последовательность дисков, запустите эту команду для файла дескриптора диска:

    vmkfstools -e filename.vmdk

    Для полной цепочки вы увидите результат, подобный следующему:

    Дисковая цепочка последовательна

  • Для разорванной цепочки вы видите сводку цепочки снимков, а затем вывод, аналогичный следующему:
  • Дисковая цепочка несовместима: родительский виртуальный диск был изменен с момента создания дочернего. Идентификатор содержимого родительского виртуального диска не соответствует соответствующему идентификатору родительского содержимого в дочернем
  • Дополнительная информация
  • Каждый диск виртуальной машины состоит из пары файлов .vmdk. Один - это текстовый файл, содержащий описательные данные о виртуальном жестком диске, а второй - фактическое содержимое этого диска. Например, к виртуальной машине с именем examplevm подключен один диск емкостью 10 ГБ. Этот диск состоит из файла дескриптора examplevm.vmdk размером менее 1 КБ и плоского файла examplevm-flat.vmdk размером 10 ГБ, который содержит содержимое виртуальной машины.