воскресенье, 22 марта 2015 г.

Citrix PVS extending the vDisk or resize the VHD file block size to 16Mb.

Citrix PVS расширение vDisk’а или изменение объема VHD-файла с размером блока больше 16Mb.

Доброго времени суток, коллеги.
В данной статье рассмотрим возможность увеличения объема виртуального жесткого диска типа «.VHD» используемым Citrix PVS Service для доставки ОС целевым устройствам.
Для расширения виртуального диска Citrix рекомендует использовать Hyper-V, подробнее тут.
Но операционная система Windows 2008R2, ровно, как и Hyper-V, не поддерживает диски с размером блока больше чем 2Mb,подробнее тут и тут.
И при попытке подключения vDisk’а в Hyper-V возникает ошибка:
Unable to edit virtual disk
Failed to open attachment «.vhd». Error: “The file or directory is corrupted and unreadable”
Для решения нашей задачи воспользуемся планом:
  1. Преобразование размера блока файла виртуального жесткого диска в размер, поддерживаемый Hyper-V, т.е. 2Mb block size.
  2. Расширение объем жесткого диска при помощи Hyper-V
  3. Разметка файловой системы vDisk на целевом устройстве.

1. Преобразование размера блока «.VHD» файла


Предположим, что роли Hyper-V и Citrix Provisioning Service установлены на разных серверах.
Благодаря статье «Установка и настройка Citrix ProvisioningServices 7.1» мы уже знаем, что Citrix PVS позволяет смонтировать vDisk в понятный операционной системе Windows Server 2008R2 диск при помощи утилиты «CVHDMount.exe»
Для этого c сервера PVS копируем утилиту «CVHDMount.exe» из папки «C:\Program Files\Citrix\Provisioning Services\» на сервер Hyper-V, например, в папку «C:\CVHDMount»
А также копируем c сервера PVS папку «C:\Program Files\Citrix\Provisioning Services\drivers» на сервер Hyper-V в папку «C:\CVHDMount», тут находятся драйвера необходимые для корректной работы «CVHDMount.exe»
Установим драйвера на сервер Hyper-V.
Открываем «Device Manager», переходим в меню «Action», в выпадающем контекстном меню выбираем «Add legacy hardware».
В появившемся окне приветствия нажимаем «Next».
В окне «The wizard can help you install other hardware» выделяем «Install the hardware that I manually select from a list (Advanced)», нажимаем «Next».
В появившемся окне «From the list below, select the type of hardware you are installing» в разделе «Common hardware type» выбираем «Show All Devices», нажимаем «Next».
В окне «Select the device driver you want to install for this hardware» нажимаем на «Have Disk…»
В появившемся окне «Install From Disk» нажимаем «Browse», переходим в папку «C:\CVHDMount\drivers», выбираем файл «cfsdep2.inf» и нажимаем «Ок».  Далее нажимаем «Next».
В окне «Select the device driver you want to install for this hardware» в разделе «Model» выбираем «Citrix Virtual Hard Disk Enumerator PVS», нажимаем «Next».
В окне «The wizard is ready to install your hardware» нажимаем «Next»
Далее «Finish».
Аналогичную процедуру проделываем и для файла «cvhdbusp6.inf».
После успешной установки необходимых драйверов необходимо смонтировать виртуальный жесткий диск в систему, для этого в консоли CMD прописываем команду:

C:\Cvhdmount\CVhdMount.exe -p 1 \\VHD_Share\pvs$\Test\Test.vhd

где «\\VHD_Share\pvs$\Test\Test.vhd» - сетевой путь с тестовым виртуальным жестким диском «Test.vhd».
После успешного монтирования VHD, необходимо зайти в диспетчере дисков и выставить состояние диска на «Offline».
В командной строке вводим «diskmgmt.msc», нажимаем «Ok».
Щелкаем правой кнопкой мыши по диску, в контекстном меню нажимаем на «Offline», диск переходит в состояние «Вне сети».
Открываем консоль управление Hyper-V «Hyper-V Manager». Щелкаем правой кнопкой мыши по серверу, выбираем «New->Hard Disk».
В окне «Before You Begin» нажимаем «Next»
Так как в данном случае используемый виртуальный диск является динамически расширяемым, то в окне «Choose Disk Type» выбираем «Dynamically expanding». Это поможет сократить используемое место, занимаемое файлом VHD, так как размер файла растет по мере записи в него данных. Нажимаем «Next».
В окне «Specify Name and Location» в поле «Name» вводим имя конвертируемого виртуального жесткого диска, например, «Test_2MB.vhd». В поле «Location» указываем путь, например, «\\VHD_Share\pvs$\Test». Нажимаем «Next».
В окне «Configure Disk» выбираем «Copy the contents of the specified disk:», выделяем необходимый нам диск, нажимаем «Next».
В окне «Completing the New Virtual Hard Disk Wizard» нажимаем «Finish».
Начнется конвертирование диска «Test.vhd» с размером блока в 16Mb в диск «Test_2MB.vhd» с размером блока 2MB.
Хочу отметить, что при выборе типа жесткого диска в Hyper-V можно выбрать и параметр «Fix size», но данный тип занимает все размеченное место, вследствие чего файл «.VHD» изначально будет большим.
После завершения конвертирования необходимо отключить примапленный диск. Для этого в командной консоли CMD выполним:

C:\Cvhdmount\CVhdMount.exe -u 1 \\VHD_Share\pvs$\Test\Test.vhd


2. Расширение объем жесткого диска при помощи Hyper-V.


В консоли управления Hyper-V «Hyper-V Manager» щелкаем правой кнопкой мыши по серверу, выбираем «New->Edit Disk».
В окне «Before You Begin» нажимаем «Next»
В окне «Locate Virtual Hard Disk» в поле «Location» вводить путь до сконвертированного диска «\\VHD_Share\pvs$\Test\Test_2MB.vhd». Нажимаем «Next»
В окне «Chose Action» выбираем «Expand», нажимаем «Next».
В окне «Expand Virtual Hard Disk» в поле «New size» выставим значение «50», тем самым увеличим объем виртуального жесткого диска на 10Gb до 50Gb. Нажимаем «Next».
В окне «Completing the Edit Virtual Hard Disk Wizard» нажимаем «Finish».
Теперь можно добавить расширенный диск на PVS-сервер и назначить его целевому устройству.
Открываем консоль управления «Provisioning Service Console». Щелкаем правой кнопкой мыши по необходимому хранилищу, в нашем случае «Test», в контекстном меню выбираем «Add or Import Existing vDisks».
В появившемся окне нажимаем на кнопку «Search», далее выделяем необходимый виртуальный диск, в нашем случае «Test_2MB», нажимаем «Add», после чего - «Close».
Видим, что в хранилище образов добавился виртуальный жесткий диск размером в 50Gb

3. Разметка файловой системы vDisk на целевом устройстве.


Теперь переводим целевое устройство в режим обслуживания, назначаем ей vDisk с именем «Test_2MB» и загружаемся с него. На целевом устройстве запускаем консоль «Disk Management», щелкаем правой кнопкой по диску, выбираем «Extend Volume».
В окне «Select Disks» в поле «Available» выделяем все доступное и нажимаем «Add», далее «Next».
В окне «Complete the Extend Volume Wizard» нажимаем «Finish».
Диск успешно расширился до 50 Gb.
На этом предлагаю закончить.
Вопросы, замечания и предложения пишите в комментариях или на почту.
Удачного тестирования!