Как объединить vhdx и avhdx
Перейти к содержимому

Как объединить vhdx и avhdx

Как объединить vhdx и avhdx

При корректном удалении снимков виртуальной машины при её выключении снимки жёстких дисков должны объединяться автоматически. К сожалению, не всегда это получается и в силу разных причин папка со снимками может распухать и привести ко всяким неприятным последствиям. Инструмента по автоматическому объединению таких “бесхозных” снимков нет. Приходится делать объединение вручную. Для этого необходимо знать где находятся снимки жёстких дисков (находятся обычно в папке виртуальной машины в подпапке Snapshots) и где находится исходный vhd-файл, к которому эти снимки мы будем прикреплять. Так же необходимо понять в каком порядке объединять снимки. Сначала объединяем самый свежий снимок (дата изменения снимка при включённой виртуалке совпадает с текущей, например 20/05/2010) со снимком более старшим (дата изменения снимка меньше предыдущей, но больше остальных, например 15/05/2010). Получившийся в итоге снимок объединяем со следующим по старшинству. Процедуру повторяем до тех пор пока не остается один снимок, который объединяется с исходным vhd-файлом. Процедура получается следующая:

Объединяем снимки/snapshots/checkpoints Hyper-V вручную

Таких статей тысяча, но ну русском вики не видел (возможно ошибаюсь). На форумах очень часто поднимается вопрос "как мне объединить AVHD с VHD" , "что делать, если ВМ стала недоступна, но остались AVHD и VHD" и т.д. Ниже приводятся краткое и базовое описание действий в таких случаях на примере 1 AVHD и 1 VHD. Если у Вас более одного checkpoint/snapshot Вам необходимо определить какой из AVHD является последним в цепочке (смотрите свойства диска в ВМ) и начинать объединение начиная с него.

К примеру, имеется ВМ c VHD и Вы сделали 3 снимка вирт.машины. Итого получилась цепочка: VHD <> AVHD1<>AVHD2<>AVHD3.
Родительским диском для AVHD3 будет AVHD2 и так далее. И процесс слияния примет такой вид: AVHD3 в AVHD2 , AVHD2 в AVHD1, AVHD1 в VHD

На картинке ниже 1 VHD и 1 AVHD. Процесс слияния большего кол-ва снимков в vhd идентичен.

snapshots_merge_1

Измените расширение AVHD в VHD (Св-ва папки/view на панели инструментов -> file name extensions/показывать расширения..)

snapshots_merge_2
snapshots_merge_3

Перейдите в Hyper-V Manager , клик на Edit Disk на правой панельке , Browse и выберите Ваш снимок (.vhd)

snapshots_merge_4 snapshots_merge_5

snapshots_merge_6

Жмем Next и выбираем Merge

Слить изменения с родительским диском ( to the parent virtual disk)

snapshots_merge_7

Занудный клик на "Finish"

snapshots_merge_8

И наконец-то можно выпить чашечку кофе и отдохнуть

snapshots_merge_9

Кофе допит. VHD создан. Используем его при создании новой ВМ.

Разностные виртуальные диски в Hyper-V

Разностный, или дифференциальный (англ. differencing) виртуальный жесткий диск (VHD) является одним из трех типов виртуальных дисков, которые используются в Hyper-V. Разностный диск еще иногда называют «дочерним», так как он не является самостоятельным диском и в процессе работы полностью зависит от «родительского» диска. Разностный VHD содержит не полную копию данных, а только изменения связанного с ним родительского VHD. Родительский диск может быть любым из из трех типов VHD, в том числе и другим разностным. Можно даже создавать цепочку дисков, объединив несколько разностных VHD.

Принцип работы разностных дисков состоит в следующем: родительский диск содержит неизменный набор данных, а все изменения записываются на разностный диск. На этом принципе основана система создания моментальных снимков — снапшотов (или чекпойнтов в VMM). При создании снапшота как раз создается разностный диск, в который и продолжают писаться все изменения виртуальной машины, а основной диск становится родительским и уже не изменяется. При создании следующего снапшота создается еще один разностный диск, а предыдущий становится по отношению к нему родительским. Называется эта конструкция деревом снапшотов.

дерево снапшотов в Hyper-V

Сохраняются снапшоты в виде файлов с расширением .AVHD, которые как раз и являются разностными VHD. Для примера, виртуальная машина test-pc-01 имеет основной VHD диск и два разностных AVHD, из которых первый является родительским для второго.

файлы снапшотов

Разностные диски можно объединять. Для этого достаточно кликнуть правой клавишей на снапшоте и выбрать пункт Delete Snapshot (удалить). При этом снапшот будет убран из списка, все изменения будут перенесены в родительский диск (операция Merging), а разностный AVHD удален.

операции со снапшотами

Кстати, при удалении снапшотов в Windows Server 2008 есть один нюанс. Если в данный момент виртуальная машина запущена, то AVHD, связанный с этим снапшотом остается, и запись в него продолжается. Объединение состоится только тогда, когда виртуальная машина будет остановлена. В зависимости от объемов данных операция объединения может занять определенное время, в течение которого запустить виртуалку нельзя. В Server 2012 эта проблема была решена, и снимки можно удалять при работающей виртуальной машине.

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

Например, у нас есть шаблон виртуальной машины — VHD с установленой на нем и подготовленой к переносу операционной системой (процесс создания шаблона ВМ описан в предыдущей статье). Используем его как родительский диск. Процесс этот выглядит следующим образом:

Создаем новую ВМ без жесткого диска — пункт «Attach a virtual hard disc later»

создание новой виртуальной машины

Идем в свойства машины и выбираем контроллер жестких дисков. Можно использовать как IDE, так и SCSI контроллер, особой разницы нет.

подключение контроллера дисков к виртуальной машине

Теперь к выбранному контроллеру необходимо подключить виртуальный жесткий диск. Для подключения идем в свойства контроллера и жмем кнопку «New», запуская мастер создания VHD.

создание нового VHD

Из предложенных мастером типов дисков выбираем разностный.

мастер создания виртуальных жестких дисков в Hyper-V

Указываем имя и месторасположение разностного диска.

указываем расположение разностного VHD

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

указываем расположение родительского диска

Смотрим суммарную информацию и подтверждаем создание нового диска кнопкой «Finish».

окончание создания разностного диска

Теперь в свойствах ВМ будет указан в качестве основного разностный диск.

свойства виртуальной машины

Если посмотреть свойства диска кнопкой «Inspect», в них указан не только его тип, но и расположение родительского диска.

свойства разностного диска

Таким образом можно создать много однотипных виртуалок, используя всего один родительский диск. При этом мы сэкономим не только время на развертывание, но и дисковое пространство. К примеру, одна установка Windows Server 2008 R2 занимает примерно 10Гб. Развернув 10 виртуалок с одним родительским диском мы сохраним 90 Гб места на диске.
Однако подобное решение ограничено возможностями дисковой подсистемы, ведь все 10 машин будут одновременно обращаться к одному диску, что отрицательно скажется на его производительности. Кроме того, у всех ВМ появляется единая точка отказа — жесткий диск, т.е. уменьшается надежность.

Как и в случае со снапшотами, с разностными дисками можно провести процедуру объединения. Для этого надо остановить виртуальную машину, зайти в ее свойства и на вкладке жесткого диска нажать на кнопку «Edit» (редактирование). В открывшемся окне выбираем пункт «Merge» (объединение).

объединение разностных дисков

Можно не только объединить разностный диск с родительским, но и создать отдельный новый диск со всеми изменениями. Очень полезная возможность в случае, если родительский диск используется несколькими виртуалками. Можно даже выбрать тип нового диска.

выбор режима объединения разностных дисков

И еще одно правило по работе с разностными дисками: не следует изменять родительский диск разностного виртуального жесткого диска. Если изменить родительский виртуальный жесткий диск или заменить его другим виртуальным жестким диском (даже с тем же именем файла), структура блоков между родительским диском и разностным виртуальным жестким диском будет нарушена, и разностный виртуальный жесткий диск будет поврежден.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *