воскресенье, 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.
На этом предлагаю закончить.
Вопросы, замечания и предложения пишите в комментариях или на почту.
Удачного тестирования!

вторник, 9 декабря 2014 г.

Настройка высокой доступности и балансировки нагрузки StoreFront без использования Citrix NetsCaler.

Доброго времени суток, коллеги.
С выходом новой версии XenDesktop 7.x компания Citrix представила новый продукт для централизованного доступа к приложениям – «Citrix StoreFront», взамен устаревшего «Citrix Web Interface». «Citrix StoreFront» предоставляет единую согласованно функционирующую точку доступа к рабочим столам и приложениям пользователей. Подробнее тут.
В стандартной конфигурации (2CPU, 8GbRAM) один инстанс StoreFront способен обеспечить до 25000 подключений пользователей в час в облегченном режиме (логон, нумерация приложений, доступ к существующим опубликованным ресурсам), и до 6000 подключений в час в интенсивном режиме (логон, нумерация приложения, подключение и отключение опубликованных ресурсов). Подробнее тут.
Чтобы избежать отказа в обслуживании данного сервиса при выходе из строя сервера StoreFront, а также нивелировать высокую нагрузку на сервер StoreFront в моменты пиковой активности пользователей, необходимо развернуть несколько серверов StoreFront, обеспечив высокую доступность и балансировку нагрузки между ними.
Citrix рекомендует использовать «Netscaler» в качестве балансировщика нагрузки между сервисами Storefront, а также в качестве решения отказоустойчивого кластера серверов Citrix StoreFront.
Но в сценариях до 1000 пользователей можно отказаться от использования дорогостоящего Citrix Netscaler в пользу стандартного «Windows Network Load Balancing Cluster (Windows NLB)». Сразу хочу отметить, что данный метод (Windows NLB) не позволяет определять нагрузку сервисов StoreFtont и осуществлять балансировку на основании этих данных, как это делает Citrix Netscaler. Windows NLB обеспечивает примитивную балансировку путем распределения клиентских IP-запросов среди нескольких серверов в кластере.
В данной статье рассмотрим настройку «Network Load Balancing» и «High Availability» Citrix StoreFront без использования «Citrix Netsсaler».
Рассмотрим сценарий с двумя серверами StoreFront.
Установим и настроим службу «Windows Network Load Balancing» на сервер «sf01.test.ru».
Запускаем «Server Manager», в левом меню выбираем «Features». В появившемся окне нажимаем на «Add Features»
В окне «Add Features Wizard» выделяем необходимую службу «Network Load Balancing», нажимаем «Next».
В следующем окне подтверждаем установку службы, нажимаем «Install».
Начнется установка службы.
После успешной установки нажимаем «Close».
Открываем консоль управления «Network Load Balancing Manager».
Создадим NLB-кластер. Для этого щелкаем правой кнопкой мыши по «Network Load Balancing Clusters», в появившемся контекстном меню нажимаем на «New Cluster»
В окне «New Cluster: Connect» в разделе «Host» вводим имя сервера с установленным Citrix StoreFront, нажимаем «Connect». Выбираем необходимый сетевой интерфейс, нажимаем «Next».
В окне «New Cluster: Host Parameters» оставляем значения по умолчанию, нажимаем «Next».
В окне «New Cluster: Cluster IP Addresses» добавляем адрес NLB-кластера. Нажимаем «Add…», в появившемся окне вводим IP-адрес, нажимаем «Ок». Далее нажимаем «Next».
В окне «New Cluster: Cluster Parameters» в строке «Full Internet name» вводим FQDN-имя NLB-кластера, в нашем случае «nlb.test.ru». Нажимаем «Next»
В окне «New Cluster: Port Rules» нажимаем «Edit», в появившемся окне «Add/Edit Port Rule» проставляем значения «443» в полях «From» и «To» раздела «Port range». В поле «Protocols» выбираем «TCP». Нажимаем «Ok», далее «Finish».
Кластер успешно настроен.
По аналогии установим службу «Windows Network Load Balancing» на сервере «sf02.test.ru».
После успешной установки службы, необходимо перейти на первый сервер «sf01.test.ru» и добавить сервер «sf02.test.ru» в кластер «nlb.test.ru». Для этого в консоли «Network Load Balancing Manager» нажимаем правой кнопкой мыши по кластеру и выбрать «Add Host To Cluster»
В появившемся окне в поле «Host» добавляем имя второго сервера «sf02.test.ru», нажимаем «Connect». Далее, выбрав необходимый сетевой интерфейс, нажимаем «Next».
В окне «Add Host to Cluster: Host Parameters» оставляем значения по умолчанию, нажимаем «Next».
В окне «Add Host to Cluster: Port Rules», оставляем значения по умолчанию, нажимаем «Finish».
Хост «sf02.test.ru» успешно добавлен в кластер «nlb.test.ru».
Установим Citrix StoreFront на сервер «sf01.test.ru». Скачиваем с официального сайта дистрибутив и запускаем его.
Начнется установка необходимых компонентов.
Далее в появившемся окне «License agreement» соглашаемся с лицензионным соглашением и нажимаем «Next».
В окне «Review prerequisites» убеждаемся, что роль «Internet Information Services (IIS)» будет установлена автоматически до установки «Citrix StoreFront». Нажимаем «Next».
В окне «Ready to Install» нажимаем «Install».
Начнется установка роли «IIS».
Далее установка Citrix StoreFront. После успешной установки, нажимаем «Finish».
По аналогии устанавливаем Citrix StoreFront на второй сервер «sf02.test.ru».
Теперь сформируем запрос на получение SSL-сертификата (CSR) на одном из хостов NLB-кластера, например, на «sf01.test.ru». После получения сертификата, необходимо установить его на каждый хост NLB-кластера.
Для генерации запроса на получение SSL-сертификата, необходимо установить консоль управления IIS «Internet Information Services (IIS) Manager». Для этого в консоли управления сервера «Server Manager» в разделе «Roles» щелкаем правой кнопкой мыши по роли «Web Server (IIS)». Выбираем «Add Role Services».
В появившемся окне «Select Role Services» выделяем «Management Service», нажимаем «Next».
В окне «Confirm Installation Selections» соглашаемся с установкой консоли управления IIS, нажимаем «Install».
После успешной установки консоли, нажимаем «Close»
Аналогичную процедуру необходимо проделать на втором сервере «sf02.test.ru».
Сформируем запрос на сертификат на первом сервере «sf01.test.ru».
В диалоговом окне «Run» вводим «InetMgr.exe», нажимаем «Ok».
Откроется консоль управления ролью IIS. В окне «IIS» переходим в раздел управления сертификатами, нажав на «Server Certificates».
В окне «Server Certificates» в правом контекстном меню нажимаем на «Create Certificate Request». В появившемся окне «Distinguished Name Properties» заполняем необходимые поля:
  • Common name: nlb.test.ru
  • Organization: Test
  • Organizational unit: Test_OU
  • City/locally: City
  • State/province: Test
  • Country/region: RU

Нажимаем «Next»
В окне «Cryptographic Service Provider Properties» в разделе «Cryptographic service provider» выбираем «Microsoft RSA SChanel Cryptographic Provider», в разделе «Bit length» выбираем «2048»
В окне «File Name» выбираем место хранения запроса на сертификат, например, «C:\Req_Cert.txt», нажимаем «Finish».
После получения сертификата, необходимо его установить на каждый IIS-сервер кластера NLB. В консоли управления IIS сервера «fs01.test.ru» переходим в раздел «Server Certificates». В правом контекстном меню нажимаем на «Complete Certificate Request». В появившемся окне «Specify Certificate Authority Response» выбираем место расположения сертификата, например, «C:\nlb.test.ru.cer», в поле «Friendly name» вводим любое имя, например, «nlb.test.ru». Нажимаем «Ok». Установка SSL-сертификата на вебсервер IIS закончена.
После успешной установки сертификата на вебсервер, необходимо установить его на соответствующий сайт, который будет использовать «Citrix StoreFront». Для этого в консоли управления IIS в разделе «Sites» выбираем необходимый сайт, в нашем случае «Default Web Site». В правом контекстном меню нажимаем на «Bildings».
В окне «Site Bildings» нажимаем на «Add».
В появившемся окне «Add Site Bilding» выбираем:
  • В поле «Type» - «https»
  • В поле «IP address» - «All Unassigned»
  • В поле «Port» - «443»
  • В поле «SSL certificate» - «nlb.test.ru»

Нажимаем «Ok»
Нажимаем «Close». Установка сертификата на сайт сервера «fs01.test.ru» закончена.
Для установки сертификата на сайт второго сервера «sf02.test.ru», необходимо произвести его импорт с первого сервера «fs01.test.ru».
В консоли управления IIS сервера «fs01.test.ru» переходим в раздел «Server Certificates», выделяем сертификат «nlb.test.ru», в правом контекстном меню нажимаем на «Export».
В появившемся окне указываем место экспорта сертификата и пароль, нажимаем «Ok». Экспорт сертификата успешно завершен.
В консоли управления IIS сервера «fs02.test.ru» переходим в раздел «Server Certificates», в правом контекстном меню нажимаем на «Import». В появившемся окне указываем расположение сертификата и вводим пароль. Нажимаем «Ok».
Импорт сертификата завершен. Сертификат «nlb.test.ru» успешно установлен на сервер IIS.
Далее по аналогии необходимо установить SSL-сертификат на сайт, который будет использовать «Citrix StoreFront» сервера «fs02.test.ru».
Теперь необходимо настроить Citrix StoreFront на сервере «fs01.test.ru».
Для этого запускаем консоль «Citrix StoreFront», нажимаем на «Create a new deployment»
В разделе «Base URL» вводим «nlb.test.ru», нажимаем «Next».
В разделе «Store Name» необходимо указать имя хранилища, например, «Remote». Нажимаем «Next».
В разделе «Delivery Controllers» добавим необходимые контроллеры доставки, нажав «Add».
В появившемся окне в строке «Display name» вводим отображаемое имя, например, «Controller». В поле «Type» выбираем «XenApp 7.5 (or later), or XenDesktop». В поле «Server (load balanced)» нажимаем «Add» и вводим имя соответствующего контроллера доставки, например, «ddc.test.ru». Нажимаем «Ok».
Далее нажимаем «Next».
В разделе «Remote Access» выбираем «None», нажимаем «Create».
StoreFront успешно сконфигурирован, нажимаем «Finish».
Для того, чтобы добавить второй сервер StoreFront необходимо получить авторизационную информацию с первого сервера «sf01.test.ru». Открываем консоль «Citrix StoreFront».
Переходим в раздел «Server Group» и в правом контекстном меню нажимаем на «Add Server». В появившемся окне можно увидеть всю необходимую информацию для авторизации второго сервера.
Запускаем консоль «Citrix StoreFront» на сервере «sf02.test.ru», нажимаем на «Join existing server group».
В появившемся окне «Join Server Group» в поля «Authorizing server» и «Authorization code» вводим имя сервера «sf01.test.ru» и код «54671210» соответственно. Нажимаем «Join».
Начнется процесс добавления сервера «sf02.test.ru» в группу серверов «nlb.test.ru».
После успешного добавления сервера, нажимаем «Ok».
Готово!
Теперь можно вносить необходимые пользовательские настройки для вашего окружения на одном сервере и распространять их на второй.
На этом предлагаю закончить.
Вопросы, замечания и предложения пишите в комментариях или на почту.
Удачного тестирования!