У цьому посібнику докладно описано кроки, які необхідно виконати під час підготовки віддаленого доступу до віртуальних робочих столів за допомогою технології, яку пропонує компанія Citrix.
Воно буде корисним тим, хто нещодавно познайомився з технологією віртуалізації робочих столів, оскільки є збіркою корисних команд, зібраних з ~10 мануалів, багато з яких доступні на сайтах Citrix, Nvidia, Microsoft після авторизації.
Ця реалізація містить етапи підготовки віддаленого доступу до віртуальних машин (ВМ) з графічними прискорювачами Nvidia Tesla M60 та операційною системою Centos 7.
Тож почнемо.
Підготовка гіпервізора для хостингу віртуальних машин
Як завантажити та встановити XenServer 7.4?
Як додати XenServer у Citrix XenCenter?
Як завантажити та встановити Nvidia драйвер?
Як змінити режим Nvidia Tesla M60?
Як примонтувати сховище?
XenServer 7.4
посилання для скачування
Виконаємо установку 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.
У XenCenter, після натискання на ім'я доданого гіпервізора, буде доступна вкладка «Console». У меню виберемо "Remote Service Configuration" і включимо авторизацію по SSH - "Enable/Disable Remote Shell".
Драйвер Nvidia
Дам волю емоціям і скажу, що за весь час роботи з vGPU я жодного разу не зайшов на сайт
Скачаємо zip з vGPU, а також GPUMode Change Utility:
NVIDIA-GRID-XenServer-7.4-390.72-390.75-391.81.zip
NVIDIA-gpumodeswitch-2020-01.zip
Слідкуємо за версіями. У назві завантаженого архіву вказана версія відповідних драйверів 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
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".
Вибираємо необхідні параметри:
VM template - Other install media
Name - template
Install from ISO library — Centos 7 (
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. Посилання для скачування
$ 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 із сайту
За допомогою XenCenter створимо віртуальну машину. У вкладці "VM" натисніть "New VM".
Вибираємо необхідні параметри:
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. Зазначимо галочку "Перезавантажити автоматично".
Налаштування Active Directoy
Після перезавантаження ВМ, тиснемо "Підняти цей сервер до рівня контролера домену" і додамо новий ліс domain.ru.
Налаштування сервера DHCP
На верхній панелі диспетчера серверів натисніть на знак оклику, щоб зберегти зміни при установці DHCP сервера.
Перейдемо до налаштувань сервера DHCP.
Створимо нову область 192.168.1.120-130. Решту не міняємо. Виберемо «Налаштувати параметри DHCP зараз» та введемо IP адресу ws-ad (192.168.1.110) як шлюз та DNS, які будуть вказуватися в налаштуваннях мережних адаптерів віртуальних машин з каталогу.
Налаштування сервера DNS
Перейдемо до налаштувань сервера DNS.
Створимо нову зону прямого перегляду - primary zone, для всіх серверів DNS в домені domain.ru. Більше нічого не міняємо.
Створимо нову зону зворотного перегляду, обравши аналогічні параметри.
У властивостях DNS сервера, у вкладці "Додатково", встановимо галочку "Вимкнути рекурсію".
Створення тестового користувача
Перейдемо до «Центру адміністрування Active Directory»
У розділі "Users" праворуч натисніть "Створити". Введемо ім'я, наприклад, test, і внизу натиснемо «ОК».
Виберемо створеного користувача та у вертикальному меню праворуч виберемо «Скинути пароль». Залишимо галочку «Вимагати зміни пароля при наступному вході до систем».
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 із сайту
За допомогою XenCenter створимо віртуальну машину. У вкладці "VM" натисніть "New VM".
Вибираємо необхідні параметри:
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. посилання для скачування
Змонтуємо завантажений iso і запустимо. Виберемо "Citrix Virtual Apps and Desktops 7". Далі натиснемо "Get started". Можливо, буде потрібно перезавантаження.
У моєму випадку достатньо вибрати для встановлення такі компоненти:
Delivery Controller
Studio
Сервер ліцензій
StoreFront
Більше нічого не міняємо і тиснемо "Встановити". Неодноразово буде потрібно перезавантаження, після чого установка буде продовжена.
Як тільки установка буде завершена, запуститься Citrix Studio — середовище управління всім господарством Citrix.
Налаштування Citrix Site
Виберемо перший розділ із трьох - Site setup. При налаштуванні вкажемо Site Name - domain.
У розділі "Connection" вкажемо дані для підключення гіпервізора з GPU:
Connection address
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 виглядатиме приблизно так
Citrix license manager
Завантажуємо файл ліцензії через особистий кабінет на сайті
У вертикальному списку зліва виберемо All Licensing Tools (Legacy). Перейдемо на вкладку Activate and Allocate Licenses. Виберемо ліцензії Citrix VDA і натиснемо Continue. Вкажемо ім'я нашого Delivery Controllera – ws-dc.domain.ru та кількість ліцензій – 4. Тиснемо «Continue». Завантажуємо згенерований файл ліцензії на ws-dc.domain.ru.
У лівому вертикальному списку Citrix Studio виберемо розділ Licensing. У правому вертикальному списку натисніть "License Management Console". У вікні браузера введемо дані для авторизації доменного користувача DOMENAdministrator.
У Citrix Licensing Manager перейдемо на вкладку "Install License". Щоб додати файл ліцензії, потрібно вибрати «Use downloaded license file».
Установка компонентів 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 через особистий кабінет на сайті
Встановимо його на ws-dc. Для цього спочатку потрібно встановити
Створимо сервер, згенеруємо та завантажуємо файл ліцензії в особистому кабінеті на сайті
Використовуючи браузер, авторизуємось у веб-інтерфейсі менеджера ліцензій NVIDIA, доступному за адресою
Активні сесії, що використовують vGPU, можна переглянути в розділі Licensed Clients.
Віддалений доступ до Citrix machine catalog
Як встановити Citrix Receiver?
Як підключитись до віртуального робочого столу?
На робочому комп'ютері відкриємо браузер, у моєму випадку це Chrome, і перейдемо за адресою веб-інтерфейсу Citrix StoreWeb
http://192.168.1.111/Citrix/StoreWeb
Якщо Citrix Recever ще не встановлений, то натисніть "Виявити Receiver"
Уважно прочитаємо ліцензійну угоду, завантажимо та встановимо Citrix Receiver
Після встановлення, повернемося до браузера і натиснемо «Продовжити»
Далі, у браузері Chrome відкривається повідомлення, натисніть "Відкрити програму Citrix Receiver Launcher", а потім "Виявити знову" або "Вже встановлено"
При першому підключенні скористаємося даними тестового користувача test. Змінимо тимчасовий пароль на постійний.
Після авторизації перейдемо на вкладку «Додатки» та оберемо каталог «M60»
Завантажуємо пропонований файл із розширенням .ica. Після подвійного натискання по ньому відкриється вікно в Desktop Veiwer з робочим столом Centos 7
Джерело: habr.com