Удаленный доступ к ВМ с GPU с помощью Citrix

admintop.ru

instagram.com/admintop.ru

facebook.com/admintopru

vk.com/4dmintop

ok.ru/admintop


В данном руководстве подробно описаны шаги, которые необходимо выполнить при подготовке удаленного доступа к виртуальным рабочим столам с помощью технологии, которую предлагает компания Citrix.


Оно будет полезно тем, кто недавно познакомился с технологией виртуализации рабочих столов, так как является сборником полезных команд, собранных из ~10 мануалов, многие из которых доступны на сайтах Citrix, Nvidia, Microsoft, после авторизации.


Данная реализация содержит этапы подготовки удаленного доступа к виртуальным машинам (ВМ) с графическими ускорителями Nvidia Tesla M60 и операционной системой Centos 7.


Итак, начнём.


Подготовка гипервизора для хостинга виртуальных машин


Как скачать и установить XenServer 7.4?

Как добавить XenServer в Citrix XenCenter?

Как скачать и установить Nvidia драйвер?

Как изменить режим Nvidia Tesla M60?

Как примонтировать хранилище?


Установка XenServer 7.4


Ссылка для скачивания XenServer 7.4 доступна, после авторизации на сайте Citrix.

Удаленный доступ к ВМ с GPU с помощью Citrix Виртуализация, Администрирование, Citrix, Nvidia, Windows server, Centos, Длиннопост

Выполним установку XenServer.iso на сервер с 4x NVIDIA Tesla M60 штатным способом. В моем случае iso монтируется через IPMI. Для серверов Dell управление контроллером BMC выполняется через IDRAC. Этапы установки практически совпадают с установкой Linux подобных ОС.


Мой адрес XenServer c GPU — 192.168.1.100


Установим XenCenter.msi на локальный компьютер, с которого будем управлять гипервизорами и виртуальными машинами. Добавим туда сервер с GPU и XenServer, нажав по вкладке «Server», затем «Add». Введем логин и пароль root, указанный при установке XenServer.

Удаленный доступ к ВМ с GPU с помощью Citrix Виртуализация, Администрирование, Citrix, Nvidia, Windows server, Centos, Длиннопост

В XenCenter, после нажатия по имени добавленного гипервизора, будет доступна вкладка «Console». В меню выберем «Remote Service Configuration» и включим авторизацию по SSH — «Enable/Disable Remote Shell».


Установка дравера NVIDIA


Дам волю эмоциям и скажу, что за всё время работы с vGPU я ни разу не зашел на сайт nvid.nvidia.com с первой попытки. Если авторизация не будет работать, то рекомендую Internet Explorer.


Скачаем zip c vGPU, а так же GPUMode Change Utility:


NVIDIA-GRID-XenServer-7.4-390.72-390.75-391.81.zip

NVIDIA-gpumodeswitch-2020-01.zip

Удаленный доступ к ВМ с GPU с помощью Citrix Виртуализация, Администрирование, Citrix, Nvidia, Windows server, Centos, Длиннопост

Следим за версиями. В названии скаченного архива указана версия подходящих драйверов NVIDIA, которые можно в дальнейшем устанавливать на виртуальные машины. В моем случае это 390.72.


Перекидываем zip-ы на XenServer и распаковываем.

Поменяем режим GPU и установим драйвер vGPU


$ cd NVIDIA-gpumodeswitch-2020-01
$ gpumodeswitch --listgpumodes
$ gpumodeswitch --gpumode graphics
$ cd ../NVIDIA-GRID-XenServer-7.4-390.72-390.75-391.81
$ yum install NVIDIA-vGPU-xenserver-7.4-390.72.x86_64.rpm
$ reboot
Удаленный доступ к ВМ с GPU с помощью Citrix Виртуализация, Администрирование, Citrix, Nvidia, Windows server, Centos, Длиннопост

Настройка общей директории


Настроим общую директорию с помощью NFS на любом компьютере в сети.


$ yum install epel-release
$ yum install nfs-utils libnfs-utils
$ systemctl enable rpcbind
$ systemctl enable nfs-server
$ systemctl enable nfs-lock
$ systemctl enable nfs-idmap
$ systemctl start rpcbind
$ systemctl start nfs-server
$ systemctl start nfs-lock
$ systemctl start nfs-idmap
$ firewall-cmd --permanent --zone=public --add-service=nfs
$ firewall-cmd --permanent --zone=public --add-service=mountd
$ firewall-cmd --permanent --zone=public --add-service=rpc-bind
$ firewall-cmd --reload
$ mkdir -p /nfs/store1
$ chmod -R 777 /nfs/store1
$ touch /nfs/store1/forcheck
$ cat /etc/exports
...
/nfs/store1 192.168.1.0/24(rw,async,crossmnt,no_root_squash,no_all_squash,no_subtree_check)
$ systemctl restart nfs-server

В XenCenter выберем XenServer и на вкладке «Storage» выберем «New SR». Укажем тип хранилища — NFS ISO. Путь должен указывать на общую директорию NFS.


Подготовка Master Image на основе Centos 7


Как создать виртуальную машину с Centos 7?

Как подготовить виртуальную машину для создания каталога?

Образ Centos 7


С помощью XenCenter создадим виртуальную машину с GPU. В вкладке «VM» нажмем «New VM».

Удаленный доступ к ВМ с GPU с помощью Citrix Виртуализация, Администрирование, Citrix, Nvidia, Windows server, Centos, Длиннопост

Выбираем необходимые параметры:

VM template — Other install media

Name — template

Install from ISO library — Centos 7 (скачать), выбираем из примонтированного хранилища NFS ISO.

Number of vCPUs — 4

Topology — 1 socket with 4 cores per socket

Memory — 30 Gb

GPU type — GRID M60-4Q

Use this virtual disk — 80 Gb

Network


После создания, виртуальная машина появится в вертикальном списке слева. Нажмём на нее и перейдём во вкладку «Console». Дождемся загрузки инсталятора Centos 7 и выполним необходимые шаги для установки ОС с оболочкой GNOME.


Подготовка образа


Подготовка образа с Centos 7 заняла у меня много времени. В последствии получился набор скриптов, который облегчает первичную настройку Linux и позволит создать каталог виртуальных машин с помощью Citrix Machine Creation Services (MCS).


DHCP сервер, установленный на ws-ad, присвоил новой виртуальной машине IP адрес 192.168.1.129.


Далее приведу основные настройки.

$ hostnamectl set-hostname template
$ yum install -y epel-release
$ yum install -y lsb mc gcc
$ firewall-cmd --permanent --zone=dmz --remove-service=ssh
$ firewall-cmd --permanent --zone=external --remove-service=ssh
$ firewall-cmd --permanent --zone=home --remove-service=ssh
$ firewall-cmd --permanent --zone=home --remove-service=mdns
$ firewall-cmd --permanent --zone=home --remove-service=samba-client
$ firewall-cmd --permanent --zone=home --remove-service=dhcpv6-client
$ firewall-cmd --permanent --zone=internal --remove-service=dhcpv6-client
$ firewall-cmd --permanent --zone=internal --remove-service=samba-client
$ firewall-cmd --permanent --zone=internal --remove-service=mdns
$ firewall-cmd --permanent --zone=internal --remove-service=ssh
$ firewall-cmd --permanent --zone=public --remove-service=ssh
$ firewall-cmd --permanent --zone=public --remove-service=dhcpv6-client
$ firewall-cmd --permanent --zone=work --remove-service=dhcpv6-client
$ firewall-cmd --permanent --zone=work --remove-service=ssh
$ firewall-cmd --permanent --zone=public --add-service=ssh
$ firewall-cmd --complete-reload

В XenCenter в вкладке «Console» смонтируем guest-tools.iso в DVD привод виртуальной машины и выполним установки XenTools для Linux.

$ mount /dev/cdrom /mnt
$ /mnt/Linux/install.sh
$ reboot

При настройке XenServer мы использовали архив NVIDIA-GRID-XenServer-7.4-390.72-390.75-391.81.zip, скаченный с сайта NVIDIA, в котором, помимо NVIDIA драйвера для XenServer, находится нужный нам драйвер NVIDIA для клиентов vGPU. Скачаем и установим его на ВМ.

$ cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rhgb quiet modprobe.blacklist=nouveau"
GRUB_DISABLE_RECOVERY="true"
$ grub2-mkconfig -o /boot/grub2/grub.cfg
$ wget http://vault.centos.org/7.6.1810/os/x86_64/Packages/kernel-d...
$ yum install kernel-devel-3.10.0-957.el7.x86_64.rpm
$ reboot
$ init 3
$ NVIDIA-GRID-XenServer-7.4-390.72-390.75-391.81/NVIDIA-Linux-x86_64-390.75-grid.run
$ cat /etc/nvidia/gridd.conf
ServerAddress=192.168.1.111
ServerPort=7070
FeatureType=1
$ reboot

Скачаем Linux Virtual Delivery Agent 1811 (VDA) для Centos 7. Ссылка для скачивания Linux VDA доступна, после авторизации на сайте Citrix.

$ yum install -y LinuxVDA-1811.el7_x.rpm
$ cat /var/xdl/mcs/mcs.conf
#!/bin/bash
dns1=192.168.1.110
NTP_SERVER=some.ntp.ru
AD_INTEGRATION=winbind
SUPPORT_DDC_AS_CNAME=N
VDA_PORT=80
REGISTER_SERVICE=Y
ADD_FIREWALL_RULES=Y
HDX_3D_PRO=Y
VDI_MODE=Y
SITE_NAME=domain.ru
LDAP_LIST=ws-ad.domain.ru
SEARCH_BASE=DC=domain,DC=ru
START_SERVICE=Y
$ /opt/Citrix/VDA/sbin/deploymcs.sh
$ echo "exclude=kernel* xorg*" >> /etc/yum.conf

В Citrix Studio создадим Machine Catalog и Delivery group. Перед этим необходимо установить и настроить Windows Server.


Windows Server с Domain Controller


Как скачать и установить Windows Server 2016?

Как установить компоненты Windows Server?

Как настроить Active Directory, DHCP и DNS?


Windows server 2016


Так как виртуальной машине (ВМ) с Windows Server не нужны GPU, мы будем использовать в качестве гипервизора сервер без GPU. По аналогии с описанием выше, установим еще один XenServer для хостинга системных виртуальных машин.


После этого создадим виртуальную машину для Windows Server с Active Directory.


Скачаем Windows Server 2016 с сайта Microsoft. Лучше пройти по ссылке с помощью Internet Explorer.

Удаленный доступ к ВМ с GPU с помощью Citrix Виртуализация, Администрирование, Citrix, Nvidia, Windows server, Centos, Длиннопост

С помощью XenCenter создадим виртуальную машину. В вкладке «VM» нажмем «New VM».

Удаленный доступ к ВМ с GPU с помощью Citrix Виртуализация, Администрирование, Citrix, Nvidia, Windows server, Centos, Длиннопост

Выбираем необходимые параметры:


VM template — Windows Server 2016 (64-bit)

Name — ws-ad.domain.ru

Install from ISO library — WindowsServer2016.iso, выбираем из примонтированного хранилища NFS ISO.

Number of vCPUs — 4

Topology — 1 socket with 4 cores per socket

Memory — 20 Gb

GPU type — none

Use this virtual disk — 100 Gb

Network


После создания, виртуальная машина появится в вертикальном списке слева. Нажмём на нее и перейдём во вкладку «Console». Дождем загрузки инсталятора Windows Server и выполним необходимые шаги для установки ОС.


Установим в ВМ XenTools. Правой кнопкой по ВМ, далее «Install Citrix VM Tools...». После этого будет примонтиван образ, который нужно запустить и установить XenTools. По окончанию установки потребуется перезагрузка ВМ.


Настроим сетевой адаптер:


IP адрес — 192.168.1.110

Маска — 255.255.255.0

Шлюз — 192.168.1.1

DNS1 — 8.8.8.8

DNS2 — 8.8.4.4


Если Windows Server не активирован, то выполним активацию. Ключ можно взять там же, откуда скачивали образ.

[PowerShell]$ slmgr -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx

Настроим имя компьютера. В моем случае это ws-ad.


Установка компонентов


В диспетчере серверов выберем «Добавить роли и компоненты». Отметим для установки DHCP-сервер, DNC-сервер и Доменные службы Active Directory. Отметим галочку «Перезагрузить автоматически».

Удаленный доступ к ВМ с GPU с помощью Citrix Виртуализация, Администрирование, Citrix, Nvidia, Windows server, Centos, Длиннопост

Настройка Active Directoy


После перезагрузки ВМ, жмем «Поднять этот сервер до уровня контроллера домена» и добавим новый лес domain.ru.


Настройка DHCP сервера


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


Перейдем к настройкам DHCP сервера.

Удаленный доступ к ВМ с GPU с помощью Citrix Виртуализация, Администрирование, Citrix, Nvidia, Windows server, Centos, Длиннопост

Создадим новую область 192.168.1.120-130. Остальное не меняем. Выберем «Настроить параметры DHCP сейчас» и введем IP адрес ws-ad (192.168.1.110) в качестве шлюза и DNS, которые будут указываться в настройках сетевых адаптеров виртуальных машин из каталога.


Настройка DNS сервера


Перейдем к настройкам DNS сервер.

Удаленный доступ к ВМ с GPU с помощью Citrix Виртуализация, Администрирование, Citrix, Nvidia, Windows server, Centos, Длиннопост

Создадим новую зону прямого просмотра — primary zone, для всех DNS серверов в домене domain.ru. Больше ничего не меняем.


Создадим новую зону обратного просмотра, выбрав аналогичные параметры.

В свойствах DNS сервера, во вкладке «Дополнительно», установим галочку «Отключить рекурсию».


Создание тестового пользователя


Перейдем в «Центр администрирования Active Directory»

Удаленный доступ к ВМ с GPU с помощью Citrix Виртуализация, Администрирование, Citrix, Nvidia, Windows server, Centos, Длиннопост

В разделе «Users» справа нажмем «Создать». Введем имя, например test, и внизу нажмем «ОК».

Удаленный доступ к ВМ с GPU с помощью Citrix Виртуализация, Администрирование, Citrix, Nvidia, Windows server, Centos, Длиннопост

Выберем созданного пользователя и в вертикальном меню справа выберем «Сбросить пароль». Оставим галочку «Требовать смены пароля при следующем входе в систем».


Windows Server с Citrix Delivery Controller


Как скачать и установить Windows Server 2016?

Как скачать и установить Citrix Delivery Controller?

Как установить и настроить Citrix License Manager?

Как установить и настроить NVIDIA License Manager?


Windows server 2016


Так как виртуальной машине (ВМ) с Windows Server не нужны GPU, мы будем использовать в качестве гипервизора сервер без GPU.


Скачаем Windows Server 2016 с сайта Microsoft. Лучше пройти по ссылке с помощью Internet Explorer.

Удаленный доступ к ВМ с GPU с помощью Citrix Виртуализация, Администрирование, Citrix, Nvidia, Windows server, Centos, Длиннопост

С помощью XenCenter создадим виртуальную машину. В вкладке «VM» нажмем «New VM».

Удаленный доступ к ВМ с GPU с помощью Citrix Виртуализация, Администрирование, Citrix, Nvidia, Windows server, Centos, Длиннопост

Выбираем необходимые параметры:


VM template — Windows Server 2016 (64-bit)

Name — ws-dc

Install from ISO library — WindowsServer2016.iso, выбираем из примонтированного хранилища NFS ISO.

Number of vCPUs — 4

Topology — 1 socket with 4 cores per socket

Memory — 20 Gb

GPU type — none

Use this virtual disk — 100 Gb

Network


После создания, виртуальная машина появится в вертикальном списке слева. Нажмём на нее и перейдём во вкладку «Console». Дождемся загрузки инсталятора Windows Server и выполним необходимые шаги для установки ОС.


Установим в ВМ XenTools. Правой кнопкой по ВМ, далее «Install Citrix VM Tools...». После этого будет примонтиван образ, который нужно запустить и установить XenTools. По окончанию установки потребуется перезагрузка ВМ.


Настроим сетевой адаптер:


IP адрес — 192.168.1.111

Маска — 255.255.255.0

Шлюз — 192.168.1.1

DNS1 — 8.8.8.8

DNS2 — 8.8.4.4


Если Windows Server не активирован, то выполним активацию. Ключ можно взять там же, откуда скачивали образ.

[PowerShell]$ slmgr -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx

Настроим имя компьютера. В моем случае это ws-dc.


Добавим ВМ в домен domen.ru, перезагрузим и авторизуемся под доменной учетной записью администратора DOMEN\Administrator.


Citrix delivery controller


Скачаем Citrix Virtual Apps and Desktops 1811 на ws-dc.domain.ru. Ссылка для скачивания Citrix Virtual Apps and Desktops доступна, после авторизации на сайте Citrix.

Удаленный доступ к ВМ с GPU с помощью Citrix Виртуализация, Администрирование, Citrix, Nvidia, Windows server, Centos, Длиннопост

Смонтируем скаченный iso и запустим. Выберем «Citrix Virtual Apps and Desktops 7». Далее нажмем «Get started». Возможно потребуется перезагрузка.

Удаленный доступ к ВМ с GPU с помощью Citrix Виртуализация, Администрирование, Citrix, Nvidia, Windows server, Centos, Длиннопост

В моем случае достаточно выбрать для установки следующие компоненты:


Delivery Controller

Studio

License Server

StoreFront


Больше ничего не меняем и жмем «Установить». Не однократно потребуется перезагрузка, после чего установка будет продолжена.


Как только установка будет завершена запустится Citrix Studio — среда управления всем хозяйством Citrix.

Удаленный доступ к ВМ с GPU с помощью Citrix Виртуализация, Администрирование, Citrix, Nvidia, Windows server, Centos, Длиннопост

Настройка Citrix Site


Выберем первый раздел из трёх — Site setup. При настройке укажем Site Name — domain.


В разделе «Connection» укажем данные для подключения гипервизора с GPU:


Connection address — 192.168.1.100

User name — root

Password — yourpassword

Connection Name — m60

Store management — Use storage local to the hypervisor.

Name for these resources — m60.

Select networks.

Select a GPU type and group — GRID M60-4Q.


Настройка Citrix Machine Catalogs


При настройке второго раздела — Machine Catalogs, выберем Single-session OS (Desktop OS).


Master Image — выберем подготовленный образ виртуальной машины и версию Citrix Virtual Apps and Desktops — 1811.


Выберем количество виртуальных машин каталоге, например 4.


Укажем схему, по которой виртуальным машинам будут присваиваться имена, в моем случае это desktop##. В этом случае будут созданы 4 ВМ с именами desktop01-04.


Machine Catalog name — m60.


Machine Catalog description — m60.


После создания Machine Catalog-а с четыремя ВМ, их можно будет найти в вертикальном списке XenCenter, слева.


Настройка Citrix Delivery Group


Третий раздел начинается с выбора количества ВМ, к которым следует предоставить доступ. Я укажу все четыре.


В разделе «Desktops» нажмем «Add», чтобы добавить группу ВМ, к которым мы предоставим доступ. Display name — m60.


Delivery group name — m60.


После настройки трех основных разделов, главное окно Citrix Studio будет выглядеть примерно так

Удаленный доступ к ВМ с GPU с помощью Citrix Виртуализация, Администрирование, Citrix, Nvidia, Windows server, Centos, Длиннопост

Citrix license manager


Скачаем файл лицензии через личный кабинет на сайте Citrix.


В вертикальном списке слева выберем All Licensing Tools (Legacy). Перейдем на вкладку «Activate and Allocate Licenses». Выберем лицензии Citrix VDA и нажмем «Continue». Укажем имя нашего Delivery Controllera — ws-dc.domain.ru и количество лицензий — 4. Жмем «Continue». Скачаем сгенерированный файл лицензии на ws-dc.domain.ru.

Удаленный доступ к ВМ с GPU с помощью Citrix Виртуализация, Администрирование, Citrix, Nvidia, Windows server, Centos, Длиннопост

В левом вертикальном списке Citrix Studio выберем раздел «Licensing». В правом вертикальном списке нажмем «License Management Console». В открывшимся окне браузера введем данные для авторизации доменного пользователя DOMEN\Administrator.


В Citrix Licensing Manager перейдем на вкладку «Install License». Для добавления файла лицензии нужно выбрать «Use downloaded license file».

Удаленный доступ к ВМ с GPU с помощью Citrix Виртуализация, Администрирование, Citrix, Nvidia, Windows server, Centos, Длиннопост

Установка компонентов Citrix подразумевает использование нескольких виртуальных машин, один компонент — одна ВМ. В моем случае, все системные сервисы Citrix функционируют в пределах одной ВМ. В связи с этим отмечу один баг, исправление которого далось мне особенно сложно.


Если после перезагрузки ws-dc возникают проблемы различного характера, то рекомендую первым делом проверить запущенные сервисы. Привожу список сервисов Citrix, которые должны автоматически запускаться, после перезагрузки ВМ:


SQL Server (SQLEXPRESS)

Citrix Configuration Service

Citrix Delegated Administration Service

Citrix Analytics

Citrix Broker Service

Citrix Configuration Logging Service

Citrix AD Identity Service

Citrix Host Service

Citrix App Library

Citrix Machine Creation Service

Citrix Monitor Service

Citrix Storefront Service

Citrix Trust Service

Citrix Environment Test Service

Citrix Orchestration Service

FlexNet License Server -nvidia


Я столкнулся с проблемой, которая возникает при установки различных сервисов Citrix на одну ВМ. После перезагрузки стартуются не все сервисы. По одному запускать всю цепочку было лень. Решение тяжело гуглилось, поэтому привожу его тут — следует поменять в реестре два параметра:


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control

Name : ServicesPipeTimeout

Value :240000

Name : WaitToKillServiceTimeout

Value : 20000


Nvidia licence manager


Скачаем менеджер лицензий NVIDIA для Windows, через личный кабинет на сайте nvid.nvidia.com. Лучше заходить через Internet Explorer.

Удаленный доступ к ВМ с GPU с помощью Citrix Виртуализация, Администрирование, Citrix, Nvidia, Windows server, Centos, Длиннопост

Установим его на ws-dc. Для этого сначала потребуется установить JAVA и добавить переменную окружения JAVA_HOME. После этого можно запустить setup.exe для установки NVIDIA License Manager.

Удаленный доступ к ВМ с GPU с помощью Citrix Виртуализация, Администрирование, Citrix, Nvidia, Windows server, Centos, Длиннопост

Создадим сервер, сгенерируем и скачаем файл лицензии в личном кабинете на сайте nvid.nvidia.com. Перекинем файл лицензии на ws-dc.

Удаленный доступ к ВМ с GPU с помощью Citrix Виртуализация, Администрирование, Citrix, Nvidia, Windows server, Centos, Длиннопост

Используя браузер, авторизуемся в веб-интерфейсе менеджера лицензий NVIDIA, доступном по адресу http://localhost:8080/licserver и добавим файл лицензии.

Удаленный доступ к ВМ с GPU с помощью Citrix Виртуализация, Администрирование, Citrix, Nvidia, Windows server, Centos, Длиннопост

Активные сессии, использующие vGPU, можно посмотреть в разделе «Licensed Clients».


Удаленный доступ к Citrix Machine Catalog


Как установить Citrix Receiver?

Как подключиться к виртуальному рабочему столу?


Ограничения pikabu не позволяют мне добавить больше информации в один пост. Продолжение следует.