Как восстановить дельта-файл (диск) на Vmware ESXi

Как восстановить дельта-файл (диск) на Vmware ESXi

Использование VMware Server ESXi (бесплатная версия)

У меня есть виртуальная машина (сервер Win 2k3 r2). Когда я впервые ее подготовил, я сделал ее снимок. Недавно я попытался клонировать основной диск, используя мой стандартный аппаратный метод для увеличения диска Windows. (используя knoppix, клонируйте диск на новый диск, сделайте его загрузочным, затем я намеревался расширить раздел через diskpart из Windows). Этот процесс не удался; я попытался установить клонированный диск (через графический интерфейс vmware) для замены исходного диска, загрузиться и все. Это не сработало так хорошо. Машина так и не загрузилась. Я проверил порядок загрузки, расположение диска и все основные действия, которые я обычно выполняю.

В качестве меры предосторожности я попытался вернуть все настройки обратно, чтобы машина загружалась с исходного диска, и я мог бы найти (что я в конечном итоге и сделал) лучший способ увеличения диска. Однако, когда я включил машину с исходным диском, она вернулась к тому изначальному снимку, который я создал; она потеряла все изменения с тех пор.

Я посмотрел в файловой системе и нашел несколько файлов, я думаю, что ключевой файл здесь называется "delta", и я предполагаю, что это тот диск, который мне нужен, но я не могу найти способ заставить виртуальную машину фактически использовать этот диск/файл. Он недоступен для добавления, когда я добавляю существующий диск.

Нужно ли мне как-то зафиксировать эту дельту на исходном диске, а затем снова загрузиться с него? Можете ли вы указать мне правильное направление?

С тех пор я обнаружил правильный способ увеличения дисков с помощью "vmkfstools", но мне нужно вернуться к исходному состоянию машины, чтобы попробовать это. Любая помощь будет высоко оценена.

решение1

Вам может не повезти, но если у вас нет резервной копии, возможно, стоит применить структурированный подход к этому вопросу.

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

Из оболочки SSH или с помощью утилиты SCP (Veeam FastSCP или Tunnellier удобны, если вы используете Windows) найдите папку VM и найдите все файлы с расширениями .vmdk. Должно быть два файла для базового диска (небольшой файл-дескриптор с именем VMname1.vmdk и гораздо больший файл, содержащий фактические данные диска, с именем VMname1-flat.vmdk) и аналогичная пара для каждого из ваших дельта-снимков (небольшой файл-дескриптор с именем VMname1-00001.vmdk и больший файл с именем VMname1-00001-delta.vmdk, содержащий изменения, внесенные в базовый диск за время существования этого снимка). Они также упоминаются в файле управления снимками (файл VMname.vmsd), который содержит все метаданные обо всех активных снимках на VM. Все настройки самой виртуальной машины хранятся в файле .VMX, включая (что важно) ссылку на местоположение текущего активного VMDK для ее диска(ов) — это будет указывать на последнюю дельту снимка.

Затем VMware использует внутренние идентификаторы (называемые CID) и параметр ParentFileNameHint в дескрипторе VMDK для рекурсивной привязки каждой дельты к ее родителю (который сам может быть дельтой) до тех пор, пока она не доберется до базового диска. Сама по себе -дельта не является полным диском, ее нужно привязать к неизмененной копии ее родителя, чтобы она работала. Если родительский файл был изменен, вам почти наверняка не повезло.

Вы можете вручную переместить файлы дельта и их связанный дескриптор и исправить сценарии, где что-то потерялось, но это сработает только в том случае, если не было внесено никаких изменений в базовые диски или любые промежуточные дельты. Все файлы дескрипторов можно редактировать с помощью текстового редактора.

Как только вы это поймете, вам следует прочитатьРуководство по ремонту цепи CID от SANBarrowэто поможет вам понять, как сшить вещи обратно, если их можно сшить обратно.

Наконец, никогда не полагайтесь на снимки в качестве резервных копий. Они не подходят для этой цели и вызывают существенные дополнительные накладные расходы ввода-вывода при активации.

решение2

Обычно файл delta — это файл, который создается при репликации диска и, возможно, при клонировании. Delta — это просто файл 1 off, который хранит все изменения, внесенные в работающую виртуальную машину, не выключенную, так как она копируется. После выхода из клона, репликации и т. д. дельта (изменения) записывается обратно в работающую виртуальную машину. Я не думаю, что вы можете вернуться к delta, так как это + изменения.

Примечание: Вы говорите о расширении диска также с помощью vmkfstools... но это не сработает с нединамическим диском, не так ли? Я почти уверен, что ваш diskpart и/или vmkfstools будут работать только с динамическим основным. Если вы можете просто создать новый диск и добавить его в систему.

решение3

Снимки VMware работают, записывая все изменения на диск с момента, когда вы сделали снимок, в новый файл, файл дельты. Когда вы возвращаетесь к снимку, система просто удаляет дельту ибац, вы возвращаетесь к точке до снимка. Если вы удалите снимок, то система объединит все изменения с исходным файлом, что может занять много времени, если снимок был сделан давно.

Ваш вопрос не совсем ясен относительно того, что вы сделали с файлами на хосте, но поскольку похоже, что система уже откатила снимок для вас, вам, вероятно, не повезло, поскольку хост больше не думает, что у виртуальной машины есть снимок. Вот что я бы попробовал:

  1. Внедрите политику создания резервных копий, не основанную на моментальных снимках.
  2. Выключите виртуальную машину.
  3. Скопируйте все файлы в безопасное место.
  4. Попробуйте удалить снимок.
  5. Посмотрите, что произойдет. Если шаг 3 не дал желаемого результата, переходите к шагу 5.
  6. Сделайте новый снимок.
  7. Скопируйте все дельта-файлы из резервной копии поверх дельта-файлов, созданных на шаге 5.
  8. Посмотрите, что произойдет. Если шаг 6 не дал того, чего вы хотели, примите судьбу и начните пытаться восстановить то, что вы потеряли.

Удачи, --Джед

Связанный контент