Віддалений доступ до ВМ з GPU за допомогою Citrix

У цьому посібнику докладно описано кроки, які необхідно виконати під час підготовки віддаленого доступу до віртуальних робочих столів за допомогою технології, яку пропонує компанія 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

Виконаємо установку 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

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

Драйвер Nvidia

Дам волю емоціям і скажу, що за весь час роботи з vGPU я жодного разу не зайшов на сайт nvid.nvidia.com з першої спроби. Якщо авторизація не працюватиме, то рекомендую Internet Explorer.

Скачаємо zip з vGPU, а також GPUMode Change Utility:

NVIDIA-GRID-XenServer-7.4-390.72-390.75-391.81.zip
NVIDIA-gpumodeswitch-2020-01.zip

Віддалений доступ до ВМ з GPU за допомогою Citrix

Слідкуємо за версіями. У назві завантаженого архіву вказана версія відповідних драйверів 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

Mount storage

Налаштуємо загальну директорію за допомогою 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.

Citrix Master Image на основі Centos 7

Як створити віртуальну машину із Centos 7?

Як підготувати віртуальну машину для створення каталогу?

Образ Centos 7

За допомогою XenCenter створимо віртуальну машину з GPU. У вкладці "VM" натисніть "New VM".

Віддалений доступ до ВМ з GPU за допомогою Citrix

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

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
мережу

Після створення віртуальна машина з'явиться у вертикальному списку зліва. Натисніть на неї і перейдемо у вкладку "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 для клієнтів. Скачаємо та встановимо його на ВМ.

$ 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-devel-3.10.0-957.el7.x86_64.rpm
$ 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 2016

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

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

Завантажуємо Windows Server 2016 із сайту Microsoft. Найкраще пройти за посиланням за допомогою Internet Explorer.

Віддалений доступ до ВМ з GPU за допомогою Citrix

За допомогою XenCenter створимо віртуальну машину. У вкладці "VM" натисніть "New VM".

Віддалений доступ до ВМ з GPU за допомогою Citrix

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

VM template - Windows Server 2016 (64-bit)
Name - ws-ad.domain.ru
Install from ISO library — Windows Server2016.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
мережу

Після створення віртуальна машина з'явиться у вертикальному списку зліва. Натисніть на неї і перейдемо у вкладку "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

Налаштування Active Directoy

Після перезавантаження ВМ, тиснемо "Підняти цей сервер до рівня контролера домену" і додамо новий ліс domain.ru.

Налаштування сервера DHCP

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

Перейдемо до налаштувань сервера DHCP.

Віддалений доступ до ВМ з GPU за допомогою Citrix

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

Налаштування сервера DNS

Перейдемо до налаштувань сервера DNS.

Віддалений доступ до ВМ з GPU за допомогою Citrix

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

Створимо нову зону зворотного перегляду, обравши аналогічні параметри.

У властивостях DNS сервера, у вкладці "Додатково", встановимо галочку "Вимкнути рекурсію".

Створення тестового користувача

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

Віддалений доступ до ВМ з GPU за допомогою Citrix

У розділі "Users" праворуч натисніть "Створити". Введемо ім'я, наприклад, test, і внизу натиснемо «ОК».

Віддалений доступ до ВМ з GPU за допомогою Citrix

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

Windows Server з Citrix Delivery Controller

Як завантажити та інсталювати Windows Server 2016?
Як завантажити та встановити Citrix Delivery Controller?
Як встановити та налаштувати Citrix License Manager?
Як встановити та настроїти NVIDIA License Manager?

Сервер Windows 2016

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

Завантажуємо Windows Server 2016 із сайту Microsoft. Найкраще пройти за посиланням за допомогою Internet Explorer.

Віддалений доступ до ВМ з GPU за допомогою Citrix

За допомогою XenCenter створимо віртуальну машину. У вкладці "VM" натисніть "New VM".

Віддалений доступ до ВМ з GPU за допомогою Citrix

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

VM template - Windows Server 2016 (64-bit)
Name - ws-dc
Install from ISO library — Windows Server2016.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
мережу

Після створення віртуальна машина з'явиться у вертикальному списку зліва. Натисніть на неї і перейдемо у вкладку "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, перезавантажимо і авторизуємося під доменним обліковим записом адміністратора DOMENAdministrator.

Citrix delivery controller

Скачаємо Citrix Virtual Apps and Desktops 1811 на ws-dc.domain.ru. посилання для скачування Віртуальні програми та настільні комп’ютери Citrix доступна після авторизації на сайті Citrix.

Віддалений доступ до ВМ з GPU за допомогою Citrix

Змонтуємо завантажений iso і запустимо. Виберемо "Citrix Virtual Apps and Desktops 7". Далі натиснемо "Get started". Можливо, буде потрібно перезавантаження.

Віддалений доступ до ВМ з GPU за допомогою Citrix

У моєму випадку достатньо вибрати для встановлення такі компоненти:

Delivery Controller
Studio
Сервер ліцензій
StoreFront

Більше нічого не міняємо і тиснемо "Встановити". Неодноразово буде потрібно перезавантаження, після чого установка буде продовжена.

Як тільки установка буде завершена, запуститься Citrix Studio — середовище управління всім господарством Citrix.

Віддалений доступ до ВМ з GPU за допомогою Citrix

Налаштування 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 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 Studio виберемо розділ Licensing. У правому вертикальному списку натисніть "License Management Console". У вікні браузера введемо дані для авторизації доменного користувача DOMENAdministrator.

У Citrix Licensing Manager перейдемо на вкладку "Install License". Щоб додати файл ліцензії, потрібно вибрати «Use downloaded license file».

Віддалений доступ до ВМ з GPU за допомогою Citrix

Установка компонентів 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_MACHINESYSTEMCurrentControlSetControl
Name : ServicesPipeTimeout
Value :240000

Name : WaitToKillServiceTimeout
Value : 20000

Nvidia licenci manager

Завантажуємо менеджер ліцензій NVIDIA для Windows через особистий кабінет на сайті nvid.nvidia.com. Найкраще заходити через Internet Explorer.

Віддалений доступ до ВМ з GPU за допомогою Citrix

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

Віддалений доступ до ВМ з GPU за допомогою Citrix

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

Віддалений доступ до ВМ з GPU за допомогою Citrix

Використовуючи браузер, авторизуємось у веб-інтерфейсі менеджера ліцензій NVIDIA, доступному за адресою локальний:8080/licserver та додамо файл ліцензії.

Віддалений доступ до ВМ з GPU за допомогою Citrix

Активні сесії, що використовують vGPU, можна переглянути в розділі Licensed Clients.

Віддалений доступ до Citrix machine catalog

Як встановити Citrix Receiver?
Як підключитись до віртуального робочого столу?

На робочому комп'ютері відкриємо браузер, у моєму випадку це Chrome, і перейдемо за адресою веб-інтерфейсу Citrix StoreWeb

http://192.168.1.111/Citrix/StoreWeb

Якщо Citrix Recever ще не встановлений, то натисніть "Виявити Receiver"

Віддалений доступ до ВМ з GPU за допомогою Citrix

Уважно прочитаємо ліцензійну угоду, завантажимо та встановимо Citrix Receiver

Віддалений доступ до ВМ з GPU за допомогою Citrix

Після встановлення, повернемося до браузера і натиснемо «Продовжити»

Віддалений доступ до ВМ з GPU за допомогою Citrix

Далі, у браузері Chrome відкривається повідомлення, натисніть "Відкрити програму Citrix Receiver Launcher", а потім "Виявити знову" або "Вже встановлено"

Віддалений доступ до ВМ з GPU за допомогою Citrix

При першому підключенні скористаємося даними тестового користувача test. Змінимо тимчасовий пароль на постійний.

Віддалений доступ до ВМ з GPU за допомогою Citrix

Після авторизації перейдемо на вкладку «Додатки» та оберемо каталог «M60»

Віддалений доступ до ВМ з GPU за допомогою Citrix

Завантажуємо пропонований файл із розширенням .ica. Після подвійного натискання по ньому відкриється вікно в Desktop Veiwer з робочим столом Centos 7

Віддалений доступ до ВМ з GPU за допомогою Citrix

Джерело: habr.com

Додати коментар або відгук