Удаление снимков в Hyper-V 3.0

  • Михаил
  • 12 мин. на прочтение
  • 138
  • 12 Dec 2014
  • 12 Dec 2014

Предыдущие версии гипервизора от MS (идущие в комплекте с Windows 2008 и Windows 2008 R2) обрабатывали удаление снимков виртуальных машин достаточно криво – необходимо было сразу после удаления снимка выключать виртуальную машину. В процессе выключения данные из снимка объединялись с родительским файлом vhd или avhd. Понятно, что после удаления снимка выключать виртуальную машину не всегда было возможно. В итоге могло быть несколько удалённых снимков, которые так и не были объединены в родительский файл. И вот в этот момент слияние всех этих оставшихся файлов превращалось в настоящий квест.

Относительно недавно стал доступен дистрибутив для разработчиков следующей версии Windows Server со следующей версией гипервизора на борту. В комментариях Александр Станкевич задал интересный вопрос – “Раз уж появились различные “живые сценарии”, то и слияние (Merge) дисков, после удаления Snapshot’ов, теперь будет выполняться без необходимости выключения виртуальной машины?”

Вроде бы пока я не видел чтобы это утверждение кто-то проверил – так что, возможно, буду первым.

Что у нас имеется – свежеустановленная операционная система Windows Server 8 Developer Preview с ролью Hyper-V. Далее подключаем её в качестве хоста к VMM 2008 R2 (подключается!) и заливаем из библиотеки виртуальную машину. Так получилось, что это оказалась Windows 2003. Далее ставим разное ПО чтобы можно было сделать пару снимков, которые бы друг от друга немного отличались. В итоге получаем следующее. Имеется 2 снимка:

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

Первый файл – 2003std86.vhd – представляет собой состояние виртуальной машины на момент создания снимка “with Outlook”, второй файл представляет собой изменение состояния виртуальной машины на момент создания снимка “win2003test”, ну и в третьем файле находится изменение состояния виртуальной машины на текущий момент со времени предыдущего снимка.

Логично предположить, что если мы будем удалять второй снимок – то в его файл должно вставиться изменение состояния виртуальной машины из третьего файла. Если будем удалять только первый снимок – то второй файл будет объединён с первым. Попробуем удалить снимок “win2003test”. После удаления в поле статуса виртуальной машины появится текст “Merge in Progress”:

По завершении объединения в папке виртуальной машины у нас будут находиться следующие файлы:

Видно, что третий файл был объединён со вторым, за счёт чего последний стал чуть больше. Ну и для закрепления удалим оставшийся первый снимок “with Outlook”. Опять в поле статуса виртуальной машины появится “Merge in Progress” и по завершении у нас останется только один файл:

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