Использование VHD в ОС Windows 7-Server2008R2


Введение

Как известно, одним из нововведений системы Windows 7\Server 2008R2 является поддержка VHD(файлов виртуального жесткого диска)

Формат VHD используются в виртуальных машинах для хранения данных. Был выкуплен Microsoft у корпорации Connectix вместе в программой Virtual PC. В 2005 году его спецификация стала доступной 3 лицам.

VHD – формат файлового образа, содержащий полную структуру физического жесткого диска. Таким образом, виртуальный жесткий диск может быть разбит на разделы, как и физический жесткий диск. VHD используется в программах виртуализации Virtual PC, Virtual Server 2005, Hyper-V, VirtualBox, Xen, VMWare.

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

· Удобство хранения данных, данные одной виртуальной машины хранятся в одном файле

· Удобство ограничения дискового пространства – теперь не нужно настраивать дисковые квоты – стоит просто изменить размер VHD

· Экономия физического дискового пространства – можно создать динамически расширяющийся VHD, который увеличивает свой размер соразмерно с увеличением хранящейся на нем информации. То есть только что созданный расширяемый VHD почти не занимает места.

· Удобство резервного копирования –теперь для резервного копирования данных, хранящихся в VHD вы можете просто скопировать его. Естественно, что поддерживаются сценарии.

Архитектура VHD

Виртуальные жесткие диски бывают нескольких типов:

· Фиксированного размера
VHD занимает ровно столько места, сколько указано при его создании, не в зависимости от хранящегося там объема информации. Его размер может быть изменен путем утилиты VhdResizer.

· Динамически расширяющиеся
VHD при своем создании почти не занимает место, его размер расширяется при наполнении информацией. Однако удаление информации из VHD не уменьшает его размер.

· Дифференциальные
Это диски, которые связаны с уже существующим по связи «ребенок-родитель». Таким образом, дифференциальный диск хранит в себе лишь изменения по сравнению с родительским диском

Графические средства работы с VHD

До выхода Windows 7 работа с VHD осуществлялась при помощи ПО для виртуализации: Virtual PC и Virtual Server 2005.

Данное ПО позволяло вам подключить виртуальный диск к виртуальной машине и работать с ним из ВМ.

Virtual Server 2005 имеет средства для подключения VHD к операционной системе, однако с выходом Windows 7 средства для работы с VHD значительно расширились.

Теперь система имеет возможность создать и подключить VHD, из графического интерфейса и командной строки.

Графические средства реализованы при помощи консоли ММС diskmgmt.msc. 

Чтобы создать виртуальный жесткий диск, необходимо вызвать команду «Создать виртуальный жесткий диск» из меню «Действие» консоли ММС.


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

После присоединения только что созданный виртуальный диск должен быть проинициализирован.

В окне diskmgmt.msc виртуальные диски отличаются от физических цветом значка диска

Консольные средства работы с VHD

Однако работа с VHD с использованием графических средств, неполностью функциональна. Гораздо более эффективно использовать средство командной строки diskpart.exe

Для создания VHD из diskpart.exe существует команда

Create vdisk file=<путь> maximum=<Размер в МБ> type=FIXED|EXPANDABLE SD=<строка SDDL> parent=< путь > source=< путь >

Параметр file указывает путь к создаваемому файлу VHD

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

Параметр type указывает тип VHD – фиксированный либо динамически расширяющийся.

SD указывает строку SDDL, предназначенную для настройки безопасности. Этот параметр необязателен.

Указание параметра parent создает дифференциальный VHD. Указывается путь к родительскому VHD. При этом нельзя указывать параметры type и maximum.

Параметр source указывает на создание виртуального жесткого диска на основе другого VHD.

После создания VHD, для возможности работы с ним, необходимо выбрать его в программе dikspart

Для этого существует команда

Select vdisk file=<путь>
После того, как файл VHD выбран с ним можно выполнить следующие действия:

1. Получить сведения о VHD

2. Подключитть VHD

3. Уменьшить размер динамически расширяющегося VHD

4. Выполнить слияние VHD с родительским

5. Отсоединить VHD

Для получения сведений о VHD существует команда

detail vhd

Она выводит информацию о файле виртуального жесткого диска

Подключить VHD для работы с ним можно путем ввода команды

attach vdisk [readonly] [{sd=<строка SDDL>|usefilesd}]

Необязательный параметр readonly показывает, что подключенный VHD будет доступен только для чтения.

Параметр sd указывает на дескриптор безопасности, используемы VHD, либо же при использовании параметра usefilesd указывает использовать дескриптор безопасности самого VHD. Как вы уже поняли, по умолчанию используется usefilesd

Как говорилось выше, динамически расширяющийся VHD увеличивает свой размер соразмерно наполнению его данными. Однако при удалении данных, размер VHD не уменьшается. Так вот, для оптимизации размера HD используется команда

compact vdisk

Также существует специальная команда, предназначенная для слияния дочернего VHD с родительским.

merge vdisk depth=<число родительских дисков для слияния>

Подразумевается, что в данным момент выбран дифференцированный VHD.

Если работа с виртуальным жестким диском закончена, то его необходимо отсоединить при помощи команды

detach vdisk

Помимо этого, вы можете вывести список всех подключенных VHD командой

list vdisk

На этом были рассмотрены стандартные средства для работы с виртуальными жесткими дисками

Преимущества загрузки ОС Windows 7\Server2008R2 с VHD

Как уже говорилось, Windows 7\Server2008R2 имеют в своем составе средства для работы с виртуальными жесткими дисками.

Таким образом, администратор имеет возможность создавать VHD для хранения пользовательских данных – таким образом архивация и восстановление данных решалось бы при помощи подобного bat-файла:

Net use Z: \\server\share {для использования в качестве хранилища архива сетевого размещения}

del Z:\<computername>_data.vhd

copy C:\<computername>_data.vhd Z:\

echo Архивация завершена!

Согласитесь, довольно удобно, не так ли?

Таким образом, рано или поздно встает вопрос о использовании VHD в качестве хранилища системного диска. Благодаря преимуществам, предоставляемым VHD, в разы повышается легкость архивации и восстановления.

Если раньше для архивации образа системы с диска С: вам приходилось выполнять следующие операции:

1. Загрузиться с Windows PE с включенным инструментом архивации(imagex)

2. Выполнить команды
net use M: \\server\share {для использования в качестве хранилища архива сетевого размещения}
imagex /capture C: M:\<computername>_system.wim “BACKUP”
wpeutil reboot

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

Если хранить системный диск в VHD, то это дает следующие преимущества:

1. Для каждой ОС не требуется отдельный раздел, например на компьютере может быть установлено 10 ОС в 10 VHD, которые будут храниться на одном физическом диске С:

2. Идеально для тестирования. Например, вам необходимо выполнить тестирование в физической среде какого либо приложения. Для этого установите операционную систему в VHD и выполните тестирование. При этом основная ОС не будет затронута.

3. Возможна архивация VHD “на ходу”

4. Легко выполнить перенос системы в виртуальную среду.

Также стоит отметить, что возможность загрузки с VHD поддерживается загрузчиком bootmgr той же версии, что и в Windows 7\Server 2008R2, а также операционными системами, не ниже вышеуказанных версий

Установка Windows 7 в VHD

Если установить систему на виртуальный жесткий диск, это будет выглядеть следующим образом. Физический жесткий диск будет содержать один (или несколько) разделов. При том на одном из них будет располагаться загрузчик и файл виртуального жесткого диска, на котором храниться системный раздел.

Таким образом, чтобы заархивировать текущее состояние ОС, достаточно лишь скопировать файл VHD.Для повышения быстродействия операционной системы рекомендуется использовать виртуальные жесткие диски фиксированного размера.

Для того, чтобы установить ОС Windows 7\Server2008R2 на виртуальный жесткий диск, необходимо выполнить следующие операции:

· Загрузиться с установочного диска системы

· Нажать комбинацию клавиш Shift+F10, чтобы открыть командную строку:

· В командной строке выполнить следующие команды(подразумевается наличие жесткого достаточного размера, без разделов)
diskpart
select disk 0 {Выбираем физический диск}
create partition primary
format fs=ntfs quick
active
assign letter=C {Создаем основной раздел и соответствующим образом готовим его к работе}
create vdisk file=”C:\os.vhd” type=fixed maximum=20480 {Создаем VHD фиксированного размера в 20Гб.}
select vdisk file=”C:\os.vhd” {Выбираем только что созданный VHD}
attach vdisk {Подключаем VHD}
exit
exit

· Далее выполняется работа с программой установки: выбор языка, принятие лицензионного соглашения, выбор редакции ОС для установки.

· На этапе выбора диска для установки выбрать только что созданный VHD
Его легко опознать по размеру, а также по предупреждению, что Windows не может быть установлена на этот диск.


Проигнорируйте это предупреждение. Нажав кнопку «Далее». Начнется установка ОС.

· После перезагрузки и завершения работы с OOBE, система готова к работе. В окне Мой компьютер будет отображаться 2 жестких диска – один из них физический, а другой – виртуальный. Сделать резервную копию ОС можно очень легко – для этого нужно всего лишь скопировать файл os.vhd.

Заключение

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