среда, 10 февраля 2010 г.

Citrix Licensing Cluster on WS2008 R2 x64

Если вам нужно сделать отказоустойчивым сервер лицензирования Citrix, можно пойти двумя путями, первый - это виртуализовать его, а второй - создать два сервера и объединить их в кластер. Если с первым способом все ясно, то со вторым у вас может возникнуть множество проблем.
Во-первых, инструкции по тому как это делать очень невнятные и не обновлялись со времен Windows 2003. Второе вытекает из первого, у вас с большой вероятностью ничего не получится настроить "с наскоку". Ну и в-третьих, как и где искать ошибки, и как от них избавляться - не понятно, нет внятных инструкций :)

Попробую рассказать более-менее внятно, как же все-таки настроить кластер для сервера лицензирования. Для примера возьму самый запущенный случай - установка на WS2008, да еще и R2, и что характерно - x64.
Все что нужно для начала - два сервера с WS Enerprise, в данном примере не настраивается quorum, поэтому где его размещать - выбор за вами.


1. Забудьте все инструкции по кластеризации сервера лицензирования, которые вы нашли на citrix.com, они не работают.
2. Спокойно, как обычно, и без всяких ключей установите сервер лицензирования на обе ноды будущего кластера.
3. Скопируйте файл CtxLSClustRes.dll из папки c:\program files (x86)\Citrix\Licensing\LS в папку  c:\windows\system32
4. Важно! Для x64 этот же файл скопируйте в c:\windows\sysWOW64
5. На обоих нодах установите Failover Cluseter feauture через Server Manager или командой servermanagercmd -install Failover-Clustering
6. Важно! в AD создаем учетку компьютера с именем будущего сервера лицензий и даем права на нее компьютерным учетным  записям обоих нод кластера.  

Все готово к созданию и настройке кластера. Все нижеописанное можно сделать и из GUI, но тогда у меня бы инструкция состояла из 50 скриншотов, поэтому рассмотрим более информативную командную строку. Запускается она через пуск -> выпо... ну вы знаете :) главное - не забывайте про UAC.
Итак, здесь и далее все выделенное красным, заменяем на свое:
Запускаем создание кластера:

C:\>cluster /cluster:ИМЯ-Кластера /create /nodes:"Имя-1ноды.domain.ru Имя-2ноды.domain.ru" /ipaddress:192.168.0.10/255.255.255.0 


В ответ, веселый мастер на расскажет о прогрессе создания:
  4% Initializing Cluster MSK-PVS.
  9% Validating cluster state on node MSK-pvs101.domain.ru.
 13% Searching the domain for computer object MSK-PVS 
 18% Creating a new computer object for MSK-PVS in the domain
 22% Configuring computer object MSK-PVS as cluster name object
 27% Validating installation of the Microsoft Failover Cluster Virtual Adapter on node MSK-pvs101.domain.ru.
 31% Validating installation of the Cluster Disk Driver on node MSK-pvs101.domain.ru.
 36% Configuring Cluster Service on node MSK-pvs101.domain.ru.
 40% Validating installation of the Microsoft Failover Cluster Virtual Adapter on node MSK-pvs102.domain.ru.
 45% Validating installation of the Cluster Disk Driver on node MSK-pvs102.domain.ru.
 50% Configuring Cluster Service on node MSK-pvs102.domain.ru.
 54% Starting Cluster Service on node MSK-pvs101.domain.ru.
 54% Starting Cluster Service on node MSK-pvs102.domain.ru.
 59% Forming cluster MSK-PVS.
 63% Adding cluster common properties to MSK-PVS.
 68% Creating resource types on cluster MSK-PVS.
 72% Creating group 'Cluster Group'.
 72% Creating group 'Available Storage'.
 77% Creating IP Address resource 'Cluster IP Address'.
 81% Creating Network Name resource 'MSK-PVS'.
 86% Searching the domain for computer object MSK-PVS 
 90% Verifying computer object MSK-PVS in the domain
 95% Configuring computer object MSK-PVS as cluster name object
100% Bringing resource group 'Cluster Group' online.

Если все успешно, переходим дальше, регистрируем библиотеку управления сервисом как ресурсный тип:
C:\>cluster resourcetype CtxLSClustRes /create /dllname:CtxLSClustRes.dll

ответ должен быть таким:
Resource type 'CtxLSClustRes' created

проверяем, на обоих ли нодах ресурсный тип стал доступен:
C:\>cluster resourcetype CtxLSClustRes /listowners
Правильный ответ похож на:

Listing possible owners of resource type 'CtxLSClustRes':
Resource Type                  Possible Owner Node
------------------------------ -----------------------------------------------
CtxLSClustRes                  msk-pvs101
CtxLSClustRes                  MSK-PVS102


Создаем новую кластерную группу, для простоты я ей дал имя будущего сервера лицензий MSK-LIC001 (именно на это имя должны быть выписаны файлы лицензий)
C:\>cluster group MSK-LIC001 /create
Creating resource group 'MSK-LIC001'...
Group                Node            Status
-------------------- --------------- ------
MSK-LIC001           MSK-PVS102      Offline

В кластерной группе создаем ресурс с типом IP Address, проще говоря виртуальный сетевой адаптер для будущего сервера
C:\>cluster resource ip-MSK-LIC001 /create /group:MSK-LIC001 /Type:"IP Address"
Creating resource 'ip-MSK-LIC001'...
Resource             Group                Node            Status
-------------------- -------------------- --------------- ------
ip-MSK-LIC001        MSK-LIC001           MSK-PVS102      Offline

Прописываем на этот ресурс IP адрес
C:\>cluster resource ip-MSK-LIC001 /priv Address=192.168.0.20 SubNetMask="255.255.255.0"

Создаем имя сервера лицензий:
C:\>cluster resource MSK-LIC001 /Create /group:msk-lic001 /type:"network name"
Creating resource 'MSK-LIC001'...
Resource             Group                Node            Status
-------------------- -------------------- --------------- ------
MSK-LIC001           MSK-LIC001           MSK-PVS102      Offline


C:\>cluster resource MSK-LIC001 /priv name=MSK-LIC001
C:\>cluster resource MSK-LIC001 /priv Dnsname=MSK-LIC001

Привязываем имя сервера к IP адресу
C:\>cluster res MSK-LIC001 /adddep:ip-MSK-LIC001
Making resource 'MSK-LIC001' depend on resource 'ip-MSK-LIC001'...

Создаем кластерный сервис службы лицензирования:
C:\>cluster resource "CitrixLicensing" /create /group:"MSK-LIC001" /type:"ctxlsclustres"
Creating resource 'CitrixLicensing'...
Resource             Group                Node            Status
-------------------- -------------------- --------------- ------
CitrixLicensing      MSK-LIC001           MSK-PVS102      Offline

Ставим его в зависимость от имени сервера, что значит что сервис не будет доступен, пока кластер не запустит ресурс имени и IP адреса
C:\>cluster resource "CitrixLicensing" /adddependency:"MSK-LIC001"
Making resource 'CitrixLicensing' depend on resource 'MSK-LIC001'...

Собственно говоря, сервер лицензирования уже кластеризован, следующие три сервиса нужны, чтобы работала Веб-консоль:
Создаем сервис Citrix Licensing WMI
C:\>cluster resource "WMI" /create /group:"MSK-LIC001" /type:"Generic Service"
Creating resource 'WMI'...
Resource             Group                Node            Status
-------------------- -------------------- --------------- ------
WMI                  MSK-LIC001           MSK-PVS102      Offline


C:\>cluster resource "WMI" /adddependency:"MSK-LIC001"
C:\>cluster resource "WMI" /adddependency:CitrixLicensing
C:\>cluster resource "WMI" /priv ServiceName=Citrix_GTLicensingProv
C:\>cluster resource "WMI" /priv UseNetworkName=1

то же самое делаем для WWW и Licensing Console:
C:\>cluster resource "W3SVC" /create /group:"MSK-LIC001" /type:"Generic Service"
C:\>cluster resource "W3SVC" /adddependency:"MSK-LIC001"
C:\>cluster resource "W3SVC" /adddependency:CitrixLicensing
C:\>cluster resource "W3SVC" /priv ServiceName=W3SVC
C:\>cluster resource "W3SVC" /priv UseNetworkName=1
C:\>cluster resource "LMC" /create /group:"MSK-LIC001" /type:"Generic Service"
C:\>cluster resource "LMC" /adddependency:"MSK-LIC001"
C:\>cluster resource "LMC" /adddependency:W3SVC
C:\>cluster resource "LMC" /priv ServiceName=CTXLMC
C:\>cluster resource "LMC" /priv UseNetworkName=1




И, наконец стартуем все, что мы только что насоздавали:
C:\>cluster resource "CitrixLicensing" /online /wait:4
C:\>cluster resource "WMI" /online /wait:4
C:\>cluster resource "W3SVC" /online /wait:4
C:\>cluster resource "LMC" /online /wait:4


на этом все, выписывайте лицензии на кластерное имя, кладите лицензии на обе ноды, радуйтесь жизни :)
Дальше уже можно лезть в GUI и настраивать готовый кластер как душе угодно :)


0 комментариев:

Отправить комментарий