Восстановление удаленной виртуальной машины hyper v
Восстановление удаленной виртуальной машины hyper v
Наткнулся на забавную статью решил ей поделиться.
В наличии папка с конфигурационными файлами виртуальной машины и снепшотов (xml) и файлы виртуальных дисков и снапшотов vhd и avhd.
Папка осталась после потери системного раздела или после копирования виртуальной машины вместо экспорта.
Цель: подключить виртуальную машину со всеми снепшотами.
Итак, для начала создаем новую виртуальную машину с именем DeleteMe в папке c:\VMs.
Рисунок 1. Создание виртуальной машины
Как восстановить виртуальные машины Hyper-V при копировании на другой хост в windows server 2008R2-01
Далее создаем через консоль Hyper-V Manager несколько снепшотов. Обратите внимание на имя файла для HDD на IDE Controller 0 и параметры сети.
Рисунок 2. Настройки виртуальной машины.
Как восстановить виртуальные машины Hyper-V при копировании на другой хост в windows server 2008R2-02
Посмотрим, что же мы получили с папке c:\VMs после выполнения этих операций.
Для новой виртуальной машины создана папка с именем виртуальной машины. Внутри этой папки расположены файлы жестких дисков и снепшотов и папки с конфигурацией виртуальной машины Virtual Machines и с конфигурацией снепшотов Snapshots.
Рисунок 3. Папка C:\VMs\DeleteMe.
Как восстановить виртуальные машины Hyper-V при копировании на другой хост в windows server 2008R2-03
Рисунок 4. Папка C:\VMs\DeleteMe\Snapshots.
Как восстановить виртуальные машины Hyper-V при копировании на другой хост в windows server 2008R2-04
Рисунок 5. Папка C:\VMs\DeleteMe\Virtual Machines.
Как восстановить виртуальные машины Hyper-V при копировании на другой хост в windows server 2008R2-05
Итак, исходная конфигурация готова.
Пора «терять» виртуальную машину.
Для простоты эксперимента остановим управляющий сервис гипервизора через консоль Hyper-V Manager и скопируем всю папку DeleteMe.
Дополнительно подстрахуемся при помощи Volume Shadow Copy. Использование Volume Shadow Copy для диска, на котором расположен файл конфигурации виртуальной машины и на системном разделе – неплохой вариант восстановления правильной конфигурации или всей виртуальной машины, которая была случайно удалена. Но вот по поводу использования Volume Shadow Copy для раздела, где расположены диски и снепшоты виртуальных машин – тут меня терзают сомнения. Copy on Write приведет к дополнительным издержкам при записи. Особенно, если для хранения Shadow Copy используется не отдельный выделенный диск, а свободное место на том же разделе.
Итак, подстелили соломку, включили управляющий сервис гипервизора и удаляем виртуальную машину через консоль Hyper-V Manager.
Рисунок 6. Удаление виртуальной машины DeleteMe.
Как восстановить виртуальные машины Hyper-V при копировании на другой хост в windows server 2008R2-06
После этого сравним содержимое папки C:\VMs\DeleteMe до и после операции.
Количество файлов уменьшилось. Ровно в 2 раза. It’s fantastic! Используя Hyper-V Manager Вы можете удалить половину файлов в сложной структуре папок одной командой.
Обратите внимание на значение полей Location и Contains.
Рисунок 7. Папка C:\VMs\DeleteMe до и после удаления виртуальной машины.
Как восстановить виртуальные машины Hyper-V при копировании на другой хост в windows server 2008R2-07
Почему удалена половина файлов? Почему файлов было 12? Не скажу. Жду Ваши предположения в комментариях J
Итак, пора приступать к восстановлению.
Вот и начинается самое интересное… Как объяснить службе гипервизора, что необходимо прочитать конфигурацию виртуальной машины из некоторого файла в файловой системы. За внутренности работы Hyper-V отвечает папка скрытая C:\ProgramData\Microsoft\Windows\Hyper-V. В ней содержится файл управления ролевым доступом к Hyper-V InitialStore.xml, а также папки Virtual Machines и Snapshots. Основной фокус в том, что при создании виртуальной машины через Hyper-V Manager в этих папках создаются NTFS hardlinks на соответствующие конфигурационные файлы. Таким образом, задача сводится к созданию hardlinks.
Создаем hardlink при помощи оманды mklink в административной командной строке.
Рисунок 8. Создание hardlink для конфигурационного файла виртуальной машины.
Как восстановить виртуальные машины Hyper-V при копировании на другой хост в windows server 2008R2-08
Запускаем управляющий сервис гипервизора и видим, что в консоли ничего не появилось…
Все пропало… Гипс сняли, а бриллиантов то там давно и нету…
Зато в журнале событий есть письмо от расстроенного гипервизора:
Рисунок 9. Ошибка загрузки конфигурации виртуальной машины.
Как восстановить виртуальные машины Hyper-V при копировании на другой хост в windows server 2008R2-09
Проверьте ACL объекта hardlink для виртуальной машины, созданной при помощи Hyper-V Manager. В нашем hardlink отсутствует SID виртуальной машины с разрешениями Full Control.
SID виртуальной машины по странному стечению обстоятельств подозрительно похож на GUID, из которого состоит имя конфигурационного файла виртуальной машины.
Останавливаем управляющий сервис гипервизора.
Модификацию ACL выполняем при помощи cacls.
Рисунок 10. Модификация ACL для hardlink конфигурационного файла виртуальной машины.
Как восстановить виртуальные машины Hyper-V при копировании на другой хост в windows server 2008R2-10
Открываем консоль Hyper-V Manager. О, чудо. Виртуальная машина тут.
Но без снепшотов и с потерянной сетью. Обратите внимание, что диск подключен к правильному avhd файлу. Т.е. виртуальная машина уже находится в последнем активном состоянии, но без возможности удалить или применить нужный снепшот.
Рисунок 11. Конфигурация виртуальной машины.
Как восстановить виртуальные машины Hyper-V при копировании на другой хост в windows server 2008R2-11
Заглянем снова в журнал событий.
Рисунок 12. Ошибка загрузки снапшотов.
Как восстановить виртуальные машины Hyper-V при копировании на другой хост в windows server 2008R2-12
И снова закинул старик свой невод…Потемнело синее море…Давно старик не стирал свой невод…
В смысле опять останавливаем управляющий сервис гипервизора.
Необходимо создать hardlink для каждого снепшота и добавить разрешение Full Control для SID виртуальной машины в каждый hardlink.
Рисунок 13. Создание hardlink и изменение ACL для снепшота.
Как восстановить виртуальные машины Hyper-V при копировании на другой хост в windows server 2008R2-13
Запускаем управляющий сервис гипервизора и о чудо…
Рисунок 14. Консоль Hyper-V Manager. Виртуальная машина с подключенными снапшотами.
Как восстановить виртуальные машины Hyper-V при копировании на другой хост в windows server 2008R2-14
Для того, чтобы счастье не только было видно в консоли, но и можно было использовать, осталось предоставить SID виртуальной машины доступ Full Control к папке с конфигурационными и дисковыми файлами виртуальной машины.
Рисунок 15. Изменение ACL папки DeleteMe
Как восстановить виртуальные машины Hyper-V при копировании на другой хост в windows server 2008R2-15
Вуаля. Теперь можно изменить конфигурацию виртуальной машины, сменить активный снепшот и начать поиск решения для автоматического выбора правильного сетевого интерфейса для виртуальной машины…
Резервное копирование и восстановление виртуальных машин
Hyper-V использует служба теневого копирования томов (VSS) для резервного копирования и восстановления виртуальных машин. Если службы интеграции резервного копирования (моментального снимка тома) установлены в операционной системе на виртуальной машине, то устанавливается инициатор запроса VSS, который позволит модулям записи VSS в гостевой операционной системе участвовать в резервной копии виртуальной машины. Дополнительные сведения см. в следующих разделах:
Резервное копирование виртуальных машин
Hyper-V использует один из двух механизмов резервного копирования каждой виртуальной машины. Механизм резервного копирования по умолчанию называется методом «сохраненное состояние», где виртуальная машина переводится в сохраненное состояние во время обработки события Препарефорснапшот, моментальные снимки берутся из соответствующих томов, а виртуальная машина возвращается в предыдущее состояние во время обработки события моментального снимка.
Другой механизм резервного копирования называется методом «моментальный снимок дочерней виртуальной машины», который использует VSS внутри дочерней виртуальной машины для участия в резервной копии. Для поддержки метода «моментальный снимок дочерней виртуальной машины» должны быть выполнены все следующие условия.
Как правило, процесс резервного копирования виртуальных машин аналогичен описанному в разделе Общие сведения об обработке резервной копии в VSS. Уникальное поведение возникает, когда модуль записи VSS Hyper-V (компонент службы управления виртуальными машинами Hyper-V) обрабатывает событие Препарефорснапшот. Если резервная копия была выполнена с помощью метода «моментальный снимок дочерней виртуальной машины», то выполняется дополнительная обработка, но она не видна дочерней виртуальной машине.
В следующей процедуре описывается, как выполнять резервное копирование виртуальных машин.
Архивация виртуальных машин
Частичные резервные копии не поддерживаются. Если какой-либо виртуальной машине не удается создать моментальный снимок, резервное копирование виртуальных машин не выполняется.
Диски с передаваемыми и iSCSI не видны операционной системе узла и, следовательно, не поддерживаются модулем записи VSS Hyper-V. Резервное копирование этих томов должно выполняться полностью на виртуальной машине.
Восстановление виртуальных машин
Восстановление виртуальных машин полностью выполняется операционной системой узла; модули записи VSS на дочерних виртуальных машинах не задействованы.
В следующей процедуре описывается восстановление виртуальных машин.
Восстановление виртуальных машин
Отказоустойчивая кластеризация и Hyper-V VSS
Модуль записи VSS Hyper-V не учитывает виртуальные машины, которые являются частью отказоустойчивого кластера. Во время резервного копирования метода «сохраненное состояние» и всех восстановлений виртуальная машина будет переведена в сохраненное состояние или полностью удалена. Это будет рассматриваться как сбой службы кластеров и привести к отработки отказа приложений на этих узлах на другие узлы. Чтобы избежать этого во время резервного копирования «сохраненного состояния», состояние виртуальной машины необходимо сохранить с помощью службы кластеризации. Чтобы избежать этой ситуации во время восстановления, необходимо перевести ресурсы виртуальной машины в автономный режим.
Сведения о модуле записи VSS Hyper-V
имя модуля записи: Microsoft Hyper-V модуль записи VSS
Идентификатор модуля записи: 66841CD4-6DED-4F4B-8F17-FD23F8DDC3DE
Восстановление виртуальных машин Hyper-V – часть 2
Итак, условия задачи:
В наличии папка с конфигурационными файлами виртуальной машины и снепшотов (xml) и файлы виртуальных дисков и снепшотов vhd и avhd.
Папка осталась после потери системного раздела или после копирования виртуальной машины вместо экспорта.
Цель: подключить виртуальную машину со всеми снепшотами.
Итак, для начала создаем новую виртуальную машину с именем DeleteMe в папке c:\VMs.
Рисунок 1. Создание виртуальной машины.
Далее создаем через консоль Hyper-V Manager несколько снепшотов. Обратите внимание на имя файла для HDD на IDE Controller 0 и параметры сети.
Рисунок 2. Настройки виртуальной машины.
Посмотрим, что же мы получили с папке c:\VMs после выполнения этих операций.
Для новой виртуальной машины создана папка с именем виртуальной машины. Внутри этой папки расположены файлы жестких дисков и снепшотов и папки с конфигурацией виртуальной машины Virtual Machines и с конфигурацией снепшотов Snapshots.
Рисунок 3. Папка C:\VMs\DeleteMe.
Рисунок 4. Папка C:\VMs\DeleteMe\Snapshots.
Рисунок 5. Папка C:\VMs\DeleteMe\Virtual Machines.
Итак, исходная конфигурация готова.
Пора «терять» виртуальную машину.
Для простоты эксперимента остановим управляющий сервис гипервизора через консоль Hyper-V Manager и скопируем всю папку DeleteMe.
Дополнительно подстрахуемся при помощи Volume Shadow Copy. Использование Volume Shadow Copy для диска, на котором расположен файл конфигурации виртуальной машины и на системном разделе – неплохой вариант восстановления правильной конфигурации или всей виртуальной машины, которая была случайно удалена. Но вот по поводу использования Volume Shadow Copy для раздела, где расположены диски и снепшоты виртуальных машин – тут меня терзают сомнения. Copy on Write приведет к дополнительным издержкам при записи. Особенно, если для хранения Shadow Copy используется не отдельный выделенный диск, а свободное место на том же разделе.
Итак, подстелили соломку, включили управляющий сервис гипервизора и удаляем виртуальную машину через консоль Hyper-V Manager.
Рисунок 6. Удаление виртуальной машины DeleteMe.
После этого сравним содержимое папки C:\VMs\DeleteMe до и после операции.
Количество файлов уменьшилось. Ровно в 2 раза. It’s fantastic! Используя Hyper-V Manager Вы можете удалить половину файлов в сложной структуре папок одной командой.
Обратите внимание на значение полей Location и Contains.
Рисунок 7. Папка C:\VMs\DeleteMe до и после удаления виртуальной машины.
Почему удалена половина файлов? Почему файлов было 12? Не скажу. Жду Ваши предположения в комментариях J
Итак, пора приступать к восстановлению.
Вот и начинается самое интересное… Как объяснить службе гипервизора, что необходимо прочитать конфигурацию виртуальной машины из некоторого файла в файловой системы. За внутренности работы Hyper-V отвечает папка скрытая C:\ProgramData\Microsoft\Windows\Hyper-V. В ней содержится файл управления ролевым доступом к Hyper-V InitialStore.xml, а также папки Virtual Machines и Snapshots. Основной фокус в том, что при создании виртуальной машины через Hyper-V Manager в этих папках создаются NTFS hardlinks на соответствующие конфигурационные файлы. Таким образом, задача сводится к созданию hardlinks.
Создаем hardlink при помощи оманды mklink в административной командной строке.
Рисунок 8. Создание hardlink для конфигурационного файла виртуальной машины.
Запускаем управляющий сервис гипервизора и видим, что в консоли ничего не появилось…
Все пропало… Гипс сняли, а бриллиантов то там давно и нету…
Зато в журнале событий есть письмо от расстроенного гипервизора:
Рисунок 9. Ошибка загрузки конфигурации виртуальной машины.
Проверьте ACL объекта hardlink для виртуальной машины, созданной при помощи Hyper-V Manager. В нашем hardlink отсутствует SID виртуальной машины с разрешениями Full Control.
SID виртуальной машины по странному стечению обстоятельств подозрительно похож на GUID, из которого состоит имя конфигурационного файла виртуальной машины.
Останавливаем управляющий сервис гипервизора.
Модификацию ACL выполняем при помощи cacls.
Рисунок 10. Модификация ACL для hardlink конфигурационного файла виртуальной машины.
Обратите внимание на имя Security Principal NT VIRTUAL MACHINE\ .
Запускаем управляющий сервис гипервизора.
Открываем консоль Hyper-V Manager. О, чудо. Виртуальная машина тут.
Но без снепшотов и с потерянной сетью. Обратите внимание, что диск подключен к правильному avhd файлу. Т.е. виртуальная машина уже находится в последнем активном состоянии, но без возможности удалить или применить нужный снепшот.
Рисунок 11. Конфигурация виртуальной машины.
Заглянем снова в журнал событий.
Рисунок 12. Ошибка загрузки снепшотов.
И снова закинул старик свой невод…Потемнело синее море…Давно старик не стирал свой невод…
В смысле опять останавливаем управляющий сервис гипервизора.
Необходимо создать hardlink для каждого снепшота и добавить разрешение Full Control для SID виртуальной машины в каждый hardlink.
Рисунок 13. Создание hardlink и изменение ACL для снепшота.
Запускаем управляющий сервис гипервизора и о чудо…
Рисунок 14. Консоль Hyper-V Manager. Виртуальная машина с подключенными снепшотами.
Для того, чтобы счастье не только было видно в консоли, но и можно было использовать, осталось предоставить SID виртуальной машины доступ Full Control к папке с конфигурационными и дисковыми файлами виртуальной машины.
Рисунок 15. Изменение ACL папки DeleteMe
Вуаля. Теперь можно изменить конфигурацию виртуальной машины, сменить активный снепшот и начать поиск решения для автоматического выбора правильного сетевого интерфейса для виртуальной машины…
P.S. Протестировано и отскриншотено внутри виртуальной машины.
P.P.S. Комментарии и отзывы приветствуются!
Share this:
Понравилось это:
Похожее
icacl имя_файла /grant:»ВИРТУАЛЬНАЯ МАШИНА NT\guid»:(F)
При запуске cacls в windows 2008 r2 выводится предупреждение, что cacls устаревший инструмент и лучше использовать icacls. Так что принципиальной разницы нет. Хотя ключи могут немного отличаться.
Отличное описание, Саня!Ключики для icacls:Icacls «C:\\ProgramData\\Microsoft\\Windows\\Hyper-V\\Virtual Machines\\xxxxxxxxxxxx.xml» /grant «NT VIRTUAL MACHINE\\xxxxxxxxxxxx»:(F) /L —- изменение линка на конфиг-файл виртуальной машиныIcacls C:\\vms\\deletme /T /grant «NT VIRTUAL MACHINE\\xxxxxxxxxxxx»:(F) —- Изменение ACL папкиIcacls yyyyyyyyyyyy.xml /grant «NT VIRTUAL MACHINE\\xxxxxxxxxxxx»:(F) /L—- Изменение ACL снепшота
Тоха, спасибо за ключики для icacls
А нельзя ли увеличить скриншоты?
Я бы с радостью. но так уж случилось, что у меня сейчас нет в наличии сервера, на котором можно сделать новые скриншоты.
Так что, пользуясь случаем, делаю предложение комюнити — кто может предоставить доступ на пару дней к виртуальной машине с Win 2008 R2 для обновления скриншотов?
Подскажите, на Рисунок 13, что написано во втором абзаце? На Рисунок 15 тоже не могу прочитать команду. Прошу подсказать.
kupchynetsky, буду очень признателен, если вы ответите на мой вопрос, который выше.
Работает только Mklink CD151E17-1BD0-4DAF-BBA9-3444360E00ED.xml \CD151E17-1BD0-4DAF-BBA9-3444360E00ED.xml
Не работают Cacls CD151E17-1BD0-4DAF-BBA9-3444360E00ED.xml /L /E /G “ВИРТУАЛЬНАЯ МАШИНА NT”\:F или Cacls CD151E17-1BD0-4DAF-BBA9-3444360E00ED.xml /L /E /G “NT VIRTUAL MACHINE”\:F
Cacls /T /E /G “NT VIRTUAL MACHINE”\:F
Что не правильно делаю?
1 SID? которому предоставляются разрешения состоит из 2 частей — постоянной «NT VIRTUAL MACHINE» и переменной — SID/GUID конкретной виртуальной машины(он же GUID-имя файла конфигурации ВМ). указывать SID виртуальной машины нужно так NT VIRTUAL MACHINE\\
2 Прочитайте внимательно текст статьи, чтобы понять для чего выполняются эти комманды. Ппробуйте использовать cacls для изменения разрешений на файлы и папки для обычной учетки юзера с последующей проверкой через стандартный контрол ACL — после этого намного проще и ошибки в синтаксисе этих комманд будет исправлять.
аналогичный случай с «Максим Март 4, 2011 14:32» вылетела одна из виртуальных машин на cacls выдает недопустимый аргумент, пробывал восстанавливать др виртуалки, без проблем, что посоветуете товарисчи?
советую проверить параметры комманды, которая выдает недопустимый аргумент. можно также запостить вопрос на форуме http://social.technet.microsoft.com/Forums/ru-RU/virtualizationru/threads и указать:
1. что произошло
2. GUID виртуальной машины
3. наличие снепшотов
4. выполняемые комманды и их результаты
Здравствуйте, коллеги!
Отличная статья.
Есть вопрос. Умирает Hyper-V Core, сама система на одном логическом томе, все ВМ на другом. Доступ к папке C:\ProgramData\Microsoft\Windows\Hyper-V имеется. Если я скопирую вышеуказанную папку в другое место, переустановлю гипервизор, и залью папку обратно, заработают ли без танцов с бубном ВМ? Все ВМ без снапшотов.
Спасибо!
Сам ответил на свой вопрос… Можно удалить…
Хочется пожелать автору и тем комментаторам, кто «правильно» продублировал команды автора, чтобы у вас так ширинка расстегивалась после 4х литров пива, как я их пытался разобрать и ввести…
Вот нормальный синтаксис для тех кто ещё попадет на эту страницу:
mklink 063E973A-28F7-4712-9012-3EA4429AD47A.xml “»G:\Hyper-V\ServerName\Virtual Machines»63E973A-28F7-4712-9012-3EA4429AD47A.xml”
icacls «C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines63E973A-28F7-4712-9012-3EA4429AD47A.xml» /grant «NT VIRTUAL MACHINE63E973A-28F7-4712-9012-3EA4429AD47A»:(F) /L
У меня не выполняется команда icacls … пишет invalid parametr «Machines9AC……xml»» Можно поподробнее «для особо одаренных» объяснить про команду эту и что за чем и куда водить надо.
Добрый день.
Возникла такая проблема: Есть сервер Виртуализации, на нем три виртуальных сервера, на одном файловом сервере закончилось место, поэтому что бы ему увеличить его я его выключил. Долее сделал снимок системы и запустил систему для проверки (система загрузилась со снимка все нормально, еще раз выключил) Затем в диспетчере Hyper-V делаю изменить диск выбираю родительский диск 123.vhd делаю развернуть и добавляю ему нужный размер виртуального диска. Затем в параметрах виртуальной машины меню диск на 123.vhd но там еще присутствует диск снимка 123_тутсивмолы.avhd, запускаю сервер и после загрузки обнаруживаю что на сервере хранятся старые данные (несколько месяцев назад и неактуальные сейчас). Выключаю сервер с параметрах выбираю жесткий диск уже снимка 123_тутсимволы.avhd начинаю загружать сервере и пошли ошибки (причем цепочка снимка исчезла сразу хотя когда сделал снимок она была):
«Цепочка разностных дисков повреждена.»
Не удалось открыть виртуальный диск «C:\VM\virtual hard disks\123_09d87b2f-f439-473e-bcb5-6657d12d0f6e.avhd»: Возникла проблема при открытии виртуального диска в цепочке разностных дисков, «C03A0012» (ссылка из «C:\VM\virtual hard disks\123.vhd»): «Неправильный размер виртуального жесткого диска.» (7864368).
Не удалось инициализировать «123». (ИД виртуальной машины 014ED980-F901-4789-9EA8-0EE9DB74318F)
123″ Microsoft Emulated IDE Controller (ИД экземпляра <83F8638B-8DCA-4152-9EDA-2CA8B33039B4>): Сбой включения, ошибка «Цепочка виртуальных жестких дисков повреждена. Размеры виртуальной памяти для родительского виртуального жесткого диска и разностного диска не совпадают.» (0xC03A0017). (ИД виртуальной машины 014ED980-F901-4789-9EA8-0EE9DB74318F)
«123»: не удалось открыть вложение «C:\VM\virtual hard disks\123_09d87b2f-f439-473e-bcb5-6657d12d0f6e.vhd». Ошибка: «Цепочка виртуальных жестких дисков повреждена. Размеры виртуальной памяти для родительского виртуального жесткого диска и разностного диска не совпадают.» (0xC03A0017). (ИД виртуальной машины 014ED980-F901-4789-9EA8-0EE9DB74318F)
«123»: Не удалось открыть виртуальный диск «C:\VM\virtual hard disks\123_09d87b2f-f439-473e-bcb5-6657d12d0f6e.avhd». Возникла проблема при открытии виртуального диска в цепочке разностных дисков, «C:\VM\virtual hard disks\123.vhd» (ссылка из «C:\VM\virtual hard disks\123_09d87b2f-f439-473e-bcb5-6657d12d0f6e.avhd»): «Неправильный размер виртуального жесткого диска.» (0xC03A0012). (ИД виртуальной машины 014ED980-F901-4789-9EA8-0EE9DB74318F)
Подскажи как мне загрузить это снимок что бы достать из него свежие данные сотрудников. или как мне вообще восстановить эту виртуальную машины?
Спасибо.
PS: Я еще думаю так, что в разрешения ntfs на жесткие диски виртуальной машины отсутствует сид самой виртуалки и поэтому не возможно открыть «123»: Не удалось открыть виртуальный диск «C:\VM\virtual hard disks\123_09d87b2f-f439-473e-bcb5-6657d12d0f6e.avhd» и еще то что сид родительского диска в xml фалике снимка не соответствует нынешнему, так вот как это соответствие восстановить?