Дистанционен достъп до ВМ с GPU чрез Citrix

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

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

Тази реализация съдържа етапи за подготовка на отдалечен достъп до виртуални машини (VM) с графични ускорители 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 с 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

Монтиране на хранилище

Настройваме обща директория с 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 сокет с 4 ядра на сокет
Memory — 30 Gb
Тип GPU — GRID M60-4Q
Използван виртуален диск — 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 в раздел «Консоль» смонтируем 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-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 с контроллером домена

Как скачать и установить 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

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

Дистанционен достъп до ВМ с GPU чрез Citrix

Избираме необходимите параметри:

Шаблон ВМ — Windows Server 2016 (64-бита)
Имя — ws-ad.domain.ru
Установить из ISO библиотеки — WindowsServer2016.iso, выбираем из смонтированного хранилища NFS ISO.
Number of vCPUs — 4
Topology — 1 сокет с 4 ядра на сокет
Оперативная память — 20 Гб
Тип GPU — отсутствует
Использовать этот виртуальный диск — 100 Гб
Мрежа

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

Ще инсталираме XenTools на ВМ. С десния бутон върху ВМ, след това „Инсталирай 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 Directory

След рестартиране на ВМ, щракваме „Повиши този сървър до контролер на домейна“ и добавяме нова горичка 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

В раздела „Потребители“ отдясно щракваме на „Създай“. Въвеждаме име, например test, и в долната част щракваме „ОК“.

Дистанционен достъп до ВМ с GPU чрез Citrix

Избираме създадения потребител и в вертикалното меню отдясно избираме „Нулирай паролата“. Оставяме отметката „Изисква смяна на паролата при следващото влизане в системата“.

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

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

Дистанционен достъп до ВМ с GPU чрез Citrix

Избираме необходимите параметри:

Шаблон ВМ — Windows Server 2016 (64-бита)
Име — ws-dc
Установить из ISO библиотеки — WindowsServer2016.iso, выбираем из смонтированного хранилища NFS ISO.
Number of vCPUs — 4
Topology — 1 сокет с 4 ядра на сокет
Оперативная память — 20 Гб
Тип GPU — отсутствует
Использовать этот виртуальный диск — 100 Гб
Мрежа

След като създадете виртуалната машина, тя ще се появи във вертикалния списък отляво. Ще кликнем върху нея и ще преминем в раздела „Конзола“. Ще изчакаме да се зареди инсталаторът на Windows Server и ще изпълним необходимите стъпки за инсталиране на ОС.

Ще инсталираме XenTools на ВМ. С десния бутон върху ВМ, след това „Инсталирай 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 Virtual Apps and Desktops достъпна след авторизация на сайта Citrix.

Дистанционен достъп до ВМ с GPU чрез Citrix

Монтираме сваления iso и го стартираме. Избираме „Citrix Virtual Apps and Desktops 7“. След това натискаме „Започнете“. Може да е необходим рестарт.

Дистанционен достъп до ВМ с GPU чрез Citrix

В моя случай е достатъчно да изберем следните компоненти за инсталация:

Delivery Controller
Studio
License Server
StoreFront

Нищо повече не променяме и натискаме „Инсталирай“. Вероятно ще е необходим рестарт, след което инсталацията ще продължи.

След като инсталацията бъде завършена, ще се стартира Citrix Studio – среда за управление на всички аспекти на Citrix.

Дистанционен достъп до ВМ с GPU чрез Citrix

Настройка на Citrix Site

Избираме първия раздел от трите – Настройка на сайта. При настройка посочваме Site Name – domain.

В раздела „Свързване“ посочваме данни за свързване на хипервизора с GPU:

Connection address — 192.168.1.100
User name — root
Password — yourpassword
Connection Name — m60

Store management — Използвайте локално хранилище за хипервизора.

Име на тези ресурси — m60.

Избор на мрежи.

Изберете тип и група GPU — 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 — m60.

Описание на Machine Catalog — m60.

След създаването на Machine Catalog с четири ВМ, те ще могат да бъдат намерени във вертикалния списък в XenCenter, отляво.

Citrix Delivery Group

Третият раздел започва с избор на броя на ВМ, до които трябва да предоставим достъп. Ще посоча всичките четири.

В раздела „Десктопи“ натискаме „Добави“, за да добавим група ВМ, до които ще предоставим достъп. Display name — m60.

Име на delivery group — m60.

След настройката на трите основни раздела, главният прозорец на Citrix Studio ще изглежда по следния начин

Дистанционен достъп до ВМ с GPU чрез Citrix

Citrix license manager

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

В лявата вертикална колона изберете Всички инструменти за лицензиране (Legacy). Преминете на раздела „Активиране и разпределение на лицензи“. Изберете лицензиите Citrix VDA и натиснете „Продължи“. Въведете името на нашия Delivery Controller — ws-dc.domain.ru и броя на лицензиите — 4. Натиснете „Продължи“. Свалете генерирания файл с лицензиите на ws-dc.domain.ru.

Дистанционен достъп до ВМ с GPU чрез Citrix

В лявата вертикална колона на Citrix Studio изберете раздела „Лицензиране“. В дясната вертикална колона натиснете „Конзола за управление на лицензиите“. В отворения прозорец на браузъра въведете данните за авторизация на домейн потребителя DOMENAdministrator.

В Citrix Licensing Manager преминете на раздела „Инсталиране на лиценз“. За добавяне на файла с лицензията изберете „Използвайте изтегления файл с лицензия“.

Дистанционен достъп до ВМ с 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 в една ВМ. След перезареждане не стартират всички услуги. Бе ми мързеливо да стартирам всяка от тях поотделно. Решението трудно се намери в Google, затова го публикувам тук — трябва да промените два параметъра в регистъра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
Име: ServicesPipeTimeout
Стойност: 240000

Име: WaitToKillServiceTimeout
Стойност: 20000

Nvidia license 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, достъпен на адрес localhost:8080/licserver и добавете файла с лицензията.

Дистанционен достъп до ВМ с GPU чрез Citrix

Активните сесии, които използват vGPU, могат да бъдат видяни в раздела „Лицензирани клиенти“.

Дистанционен достъп до каталог на Citrix machines

Как да инсталирам Citrix Receiver?
Как да се свържа с виртуален работен плот?

На работния си компютър отваряме браузъра, в моя случай това е Chrome, и отиваме на адреса на уеб интерфейса на Citrix StoreWeb

http://192.168.1.111/Citrix/StoreWeb

Ако Citrix Receiver все още не е инсталиран, натискаме „Открийте Receiver“

Дистанционен достъп до ВМ с GPU чрез Citrix

Внимателно прочитаме лицензионното споразумение, изтегляме и инсталираме Citrix Receiver

Дистанционен достъп до ВМ с GPU чрез Citrix

След инсталацията, връщаме се в браузъра и натискаме „Продължи“

Дистанционен достъп до ВМ с GPU чрез Citrix

След това в браузъра Chrome се отваря известие, натиснете „Отворете приложението Citrix Receiver Launcher“, а след това „Открийте отново“ или „Вече е инсталирано“

Дистанционен достъп до ВМ с GPU чрез Citrix

При първото свързване ще използваме данните на тестовия потребител test. Ще сменим временната парола с постоянна.

Дистанционен достъп до ВМ с GPU чрез Citrix

След авторизацията преминаваме на раздела „Приложения“ и избираме каталога „M60“

Дистанционен достъп до ВМ с GPU чрез Citrix

Сваляме предлагания файл с разширение .ica. След двойно кликване върху него, ще се отвори прозорец в Desktop Viewer с работния плот Centos 7

Дистанционен достъп до ВМ с GPU чрез Citrix

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster