Одно из наиболее ценных свойств виртуальных машин — возможность создания снимков, в которых сохраняется текущее состояние системы. Вы можете в любой момент вернуть состояние системы к сделанному ранее снимку виртуальной машины. Поддержка VHD в системах Server 2008 R2 и Windows 7 предоставляет возможность получения такого рода снимков, позволяя создавать диски VHD и подключать их как диски, содержимое которых можно моментально вернуть в предыдущее состояние, — своего рода виртуальный возврат назад. Реализация этого процесса требует применения команды Diskpart. Но потраченные усилия того стоят, ведь вы сможете распространить простоту, скорость и мощь снимков виртуальных машин на тома с данными и даже системные тома. Это действительно так — вы можете делать снимки не виртуальной, а физической системы.

Для работы с Diskpart необходимо знать технологию снимков Microsoft. Предположим, что у вас есть диск P, в действительности являющийся диском VHD, и вы хотите делать снимки этого диска. Для этого следует создать два диска VHD: один называемый родителем (или родительским VHD), а второй — потомком (или дочерним VHD).

В этой модели мы будем называть исходный VHD-диск P родительским VHD. Для создания снимков диска P не нужно ничего делать с родителем; вместо этого будет использоваться Diskpart для создания второго диска VHD, называемого дочерним VHD. Когда вы создадите второй VHD, необходимо сообщить Windows, что новый VHD — это потомок, и указать имя родительского VHD. Затем нужно указать, чтобы родительский диск не подключался более как диск P, так как для получения снимков следует подключить дочерний VHD, который автоматически станет диском P. В предположении, что родительский диск VHD имеет полное имя e:\parent.vhd, а дочерний — e:\child.vhd, необходимо выполнить следующие команды:

select vdisk file=e:\parent.vhd

detach vdisk

create vdisk file=e:\child.vhd parent=e:\parent.vhd

select vdisk file=e:\child.vhd

attach vdisk

Вначале вы отключаете родительский диск, так как нельзя создать дочерний диск для родительского VHD, если родитель в данный момент подключен к системе. Заметим, что синтаксис команд для создания дочернего VHD достаточно прост. Для ввода команд нужно знать две вещи. Во?первых, вы можете создать дочерний VHD только для расширяемого родительского диска; если ваш предполагаемый родительский VHD имеет фиксированный размер, вы не сможете создать для него дочерний диск. Во?вторых, не задавайте размер VHD-потомка: он не может расти сверх размера родителя.

Две следующие команды выбирают и подключают нового потомка. После этого диск P снова появляется в системе. Пользователь даже не заметит, что работает с потомком вместо родителя.

Теперь, когда у вас есть диск, который можно вернуть к предыдущему состоянию, я расскажу, как именно это сделать. Можно либо дать команду Windows вернуть диск P к предыдущему состоянию (то есть удалить все изменения), либо применить все изменения в child.vhd к диску parent.vhd (то есть принять все изменения). Чтобы Windows вернула все изменения, сделанные для диска P, просто отключите child.vhd и снова подключите parent.vhd:

select vdisk file=e:\child.vhd

detach vdisk

select vdisk file=e:\parent.vhd

attach vdisk

В данный момент child.vhd нигде не используется, и вы можете удалить его. Но если вас устраивают изменения, которые были сделаны для диска P при подключенном child.vhd, используйте команду Merge Vdisk. Для этого вначале необходимо отключить дочерний диск VHD, выбрать этот диск, выполнить команду Merge Vdisk для применения изменений к родительскому parent.vhd, после чего выбрать и заново подключить parent.vhd. Теперь вы опять можете удалить child.vhd, он больше не нужен. Синтаксис выполняемых команд:

select vdisk file=e:\child.vhd

detach vdisk

merge vdisk depth=1

select vdisk file=e:\parent.vhd

attach vdisk

При слиянии child.vhd и parent.vhd убедитесь, что и родитель, и потомок отключены, затем выберите потомка и выполните команду Merge Vdisk. Теперь можно работать с родительским диском.

Как использовать данную возможность? Скажем, вы хотите что-то протестировать без риска испортить систему, но вам не очень удобно развертывать виртуальную систему для тестирования. Используя возможность создания снимков, можно запускать приложения на физической системе, но данные хранить на виртуальном диске.

Марк Минаси (www.minasi.com/gethelp) — старший редактор журнала Windows IT Pro, сертифицированный системный инженер по продуктам Microsoft