W tym przewodniku szczegółowo opisano kroki, które należy wykonać w celu przygotowania zdalnego dostępu do wirtualnych pulpitów z wykorzystaniem technologii oferowanej przez firmę Citrix.
Będzie to przydatne dla tych, którzy niedawno zapoznali się z technologią wirtualizacji pulpitów, ponieważ jest to zbiór użytecznych poleceń zebranych z około 10 podręczników, z których wiele dostępnych jest na stronach Citrix, Nvidia, Microsoft po zalogowaniu.
Ta realizacja zawiera etapy przygotowania zdalnego dostępu do maszyn wirtualnych (VM) z graficznymi akceleratorami Nvidia Tesla M60 i systemem operacyjnym Centos 7.
Zacznijmy.
Przygotowanie hipernadzorcy do hostingu maszyn wirtualnych
Jak pobrać i zainstalować XenServer 7.4?
Jak dodać XenServer do Citrix XenCenter?
Jak pobrać i zainstalować sterownik Nvidia?
Jak zmienić tryb Nvidia Tesla M60?
Jak zamontować magazyn?
XenServer 7.4
Link do pobrania dostępny po zalogowaniu na stronie .

Zainstalujemy XenServer.iso na serwerze z 4x NVIDIA Tesla M60 w standardowy sposób. W moim przypadku iso jest montowane przez IPMI. W przypadku serwerów Dell zarządzanie kontrolerem BMC odbywa się przez IDRAC. Etapy instalacji praktycznie pokrywają się z instalacją Linuxa i podobnych systemów.
Mój adres XenServer z GPU — 192.168.1.100
Zainstalujemy XenCenter.msi na lokalnym komputerze, z którego będziemy zarządzać hipernadzorcami i maszynami wirtualnymi. Dodamy tam serwer z GPU i XenServer, klikając zakładkę „Server”, a następnie „Add”. Wprowadzimy login i hasło root, które zostało podane podczas instalacji XenServer.

W XenCenter, po kliknięciu na nazwę dodanego hipernadzorcy, będzie dostępna zakładka „Console”. W menu wybierzemy „Remote Service Configuration” i włączymy autoryzację przez SSH — „Enable/Disable Remote Shell”.
Sterownik Nvidia
Daję wyraz emocjom i powiem, że przez cały czas pracy z vGPU ani razu nie udało mi się wejść na stronę z pierwszej próby. Jeśli autoryzacja nie działa, polecam Internet Explorer.
Pobierzemy zip z vGPU oraz narzędzie do zmiany trybu GPU:
NVIDIA-GRID-XenServer-7.4-390.72-390.75-391.81.zip
NVIDIA-gpumodeswitch-2020-01.zip

Śledzimy wersje. W nazwie pobranego archiwum znajduje się wersja odpowiednich sterowników NVIDIA, które można później zainstalować na maszynach wirtualnych. W moim przypadku jest to 390.72.
Przenosimy zip-y na XenServer i rozpakowujemy.
Zmienić tryb GPU i zainstalować sterownik 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 
Zamontowanie magazynu
Skonfigurujemy współdzielony katalog za pomocą NFS na każdym komputerze w sieci.
$ 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-serverW XenCenter wybieramy XenServer, a w zakładce „Storage” wybieramy „New SR”. Podajemy typ przechowywania — NFS ISO. Ścieżka powinna wskazywać na współdzielony katalog NFS.
Obraz Master Citrix na bazie Centos 7
Jak stworzyć maszynę wirtualną z Centos 7?
Jak przygotować maszynę wirtualną do stworzenia katalogu?
Obraz Centos 7
Za pomocą XenCenter stworzymy maszynę wirtualną z GPU. W zakładce „VM” klikamy „New VM”.

Wybieramy wymagane parametry:
Szablon VM — Inne nośniki instalacyjne
Nazwa — template
Instaluj z biblioteki ISO — Centos 7 (), wybieramy z zamontowanego magazynu NFS ISO.
Liczba vCPU — 4
Topologia — 1 gniazdo z 4 rdzeniami na gniazdo
Pamięć — 30 Gb
Typ GPU — GRID M60-4Q
Użyj tego dysku wirtualnego — 80 Gb
Sieć
Po utworzeniu maszyna wirtualna pojawi się w pionowej liście po lewej stronie. Klikamy na nią i przechodzimy do zakładki „Console”. Czekamy na załadowanie instalatora Centos 7 i wykonujemy niezbędne kroki do instalacji systemu operacyjnego z interfejsem GNOME.
Przygotowanie obrazu
Przygotowanie obrazu z Centos 7 zajęło mi dużo czasu. W rezultacie powstał zestaw skryptów, który ułatwia wstępną konfigurację Linuxa i pozwala stworzyć katalog maszyn wirtualnych za pomocą Citrix Machine Creation Services (MCS).
Serwer DHCP, zainstalowany na ws-ad, przypisał nowej maszynie wirtualnej adres IP 192.168.1.129.
Następnie przedstawiam główne ustawienia.
$ 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-reloadW XenCenter w zakładce „Konsola” zamontujemy guest-tools.iso w napędzie DVD maszyny wirtualnej i przeprowadzimy instalację XenTools dla systemu Linux.
$ mount /dev/cdrom /mnt
$ /mnt/Linux/install.sh
$ rebootPodczas konfiguracji XenServer użyliśmy archiwum NVIDIA-GRID-XenServer-7.4-390.72-390.75-391.81.zip, pobranego ze strony NVIDIA, które zawiera nie tylko sterownik NVIDIA dla XenServer, ale także odpowiedni sterownik NVIDIA dla klientów vGPU. Pobierzemy i zainstalujemy go na maszynie wirtualnej.
$ 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
$ rebootPobierzemy Linux Virtual Delivery Agent 1811 (VDA) dla CentOS 7. Link do pobrania. dostępny po zalogowaniu na stronie .
$ 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.confW Citrix Studio utworzymy katalog maszyn i grupę dostawczą. Przed tym należy zainstalować i skonfigurować Windows Server.
Windows Server z kontrolerem domeny
Jak pobrać i zainstalować Windows Server 2016?
Jak zainstalować komponenty Windows Server?
Jak skonfigurować Active Directory, DHCP i DNS?
Windows Server 2016
Ponieważ maszynie wirtualnej (VM) z Windows Server nie są potrzebne GPU, będziemy używać jako hypervisora serwera bez GPU. Analogicznie do powyższego opisu, zainstalujemy kolejny XenServer do hostowania systemowych maszyn wirtualnych.
Po tym utworzymy maszynę wirtualną dla Windows Server z Active Directory.
Pobierzemy Windows Server 2016 ze strony. . Lepiej przejść do linku za pomocą Internet Explorer.

Za pomocą XenCenter utworzymy maszynę wirtualną. W zakładce „VM” klikniemy „Nowa VM”.

Wybieramy wymagane parametry:
Szablon VM — Windows Server 2016 (64-bitowy)
Nazwa — ws-ad.domain.ru
Instalacja z biblioteki ISO — WindowsServer2016.iso, wybieramy z zamontowanego repozytorium NFS ISO.
Liczba vCPU — 4
Topologia — 1 gniazdo z 4 rdzeniami na gniazdo
Pamięć — 20 Gb
Typ GPU — brak
Użyj tego wirtualnego dysku — 100 Gb
Sieć
Po utworzeniu maszyna wirtualna pojawi się w pionowej liście po lewej. Kliknij na nią i przejdź do zakładki „Konsola”. Czekamy na załadowanie instalatora Windows Server i wykonujemy niezbędne kroki do instalacji systemu operacyjnego.
Zainstalujemy XenTools na VM. Kliknij prawym przyciskiem na VM, a następnie „Zainstaluj narzędzia Citrix VM…”. Po tym zostanie zamontowany obraz, który trzeba uruchomić i zainstalować XenTools. Po zakończeniu instalacji będzie wymagana ponowna uruchomienie VM.
Skonfigurujemy adapter sieciowy:
Adres IP — 192.168.1.110
Maska — 255.255.255.0
Brama — 192.168.1.1
DNS1 — 8.8.8.8
DNS2 — 8.8.4.4
Jeśli Windows Server nie jest aktywowany, to przeprowadzimy aktywację. Klucz można wziąć stamtąd, skąd pobierano obraz.
[PowerShell]$ slmgr -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxxSkonfigurujemy nazwę komputera. W moim przypadku to ws-ad.
Instalacja komponentów
W menedżerze serwera wybierzemy „Dodaj role i komponenty”. Zaznaczymy do zainstalowania serwer DHCP, serwer DNC oraz Usługi aktywnego katalogu. Zaznaczymy opcję „Ponownie uruchom automatycznie”.

Konfiguracja Active Directory
Po ponownym uruchomieniu VM, klikamy „Podnieś ten serwer do roli kontrolera domeny” i dodamy nowy las domain.ru.
Konfiguracja serwera DHCP
Na górnym pasku menedżera serwera klikniemy na wykrzyknik, aby zapisać zmiany podczas instalacji serwera DHCP.
Przejdziemy do ustawień serwera DHCP.

Utworzymy nowy zakres 192.168.1.120-130. Reszty nie zmieniamy. Wybierzemy „Skonfiguruj parametry DHCP teraz” i wpiszemy adres IP ws-ad (192.168.1.110) jako bramę i DNS, które będą wskazywane w ustawieniach adapterów sieciowych maszyn wirtualnych z katalogu.
Konfiguracja serwera DNS
Przejdziemy do ustawień serwera DNS.

Utworzymy nową strefę wyszukiwania bezpośredniego — primary zone, dla wszystkich serwerów DNS w domenie domain.ru. Nic więcej nie zmieniamy.
Utworzymy nową strefę wyszukiwania odwrotnego, wybierając podobne parametry.
W właściwościach serwera DNS, w zakładce „Zaawansowane”, zaznaczymy opcję „Wyłącz rekursję”.
Tworzenie użytkownika testowego
Przejdziemy do „Centrum administracyjnego Active Directory”

W sekcji „Użytkownicy” po prawej klikniemy „Utwórz”. Wprowadzimy imię, na przykład test, a na dole klikniemy „OK”.

Wybierz utworzonego użytkownika i w pionowym menu po prawej wybierz „Zresetuj hasło”. Zaznaczymy opcję „Wymagaj zmiany hasła przy następnej próbie logowania”.
Windows Server z Citrix Delivery Controller
Jak pobrać i zainstalować Windows Server 2016?
Jak pobrać i zainstalować Citrix Delivery Controller?
Jak zainstalować i skonfigurować Citrix License Manager?
Jak zainstalować i skonfigurować NVIDIA License Manager?
Windows Server 2016
Ponieważ maszyna wirtualna (VM) z Windows Server nie potrzebuje GPU, będziemy używać jako hypervisora serwera bez GPU.
Pobierzemy Windows Server 2016 ze strony. . Lepiej przejść do linku za pomocą Internet Explorer.

Za pomocą XenCenter utworzymy maszynę wirtualną. W zakładce „VM” klikniemy „Nowa VM”.

Wybieramy wymagane parametry:
Szablon VM — Windows Server 2016 (64-bitowy)
Nazwa — ws-dc
Instalacja z biblioteki ISO — WindowsServer2016.iso, wybieramy z zamontowanego repozytorium NFS ISO.
Liczba vCPU — 4
Topologia — 1 gniazdo z 4 rdzeniami na gniazdo
Pamięć — 20 Gb
Typ GPU — brak
Użyj tego wirtualnego dysku — 100 Gb
Sieć
Po utworzeniu, maszyna wirtualna pojawi się w pionowej liście po lewej stronie. Naciśniemy na nią i przejdziemy do zakładki „Konsola”. Poczekamy na załadowanie instalatora Windows Server i wykonamy niezbędne kroki do zainstalowania systemu operacyjnego.
Zainstalujemy XenTools na VM. Kliknij prawym przyciskiem na VM, a następnie „Zainstaluj narzędzia Citrix VM…”. Po tym zostanie zamontowany obraz, który trzeba uruchomić i zainstalować XenTools. Po zakończeniu instalacji będzie wymagana ponowna uruchomienie VM.
Skonfigurujemy adapter sieciowy:
Adres IP — 192.168.1.111
Maska — 255.255.255.0
Brama — 192.168.1.1
DNS1 — 8.8.8.8
DNS2 — 8.8.4.4
Jeśli Windows Server nie jest aktywowany, to przeprowadzimy aktywację. Klucz można wziąć stamtąd, skąd pobierano obraz.
[PowerShell]$ slmgr -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxxSkonfigurujemy nazwę komputera. W moim przypadku to ws-dc.
Dodamy VM do domeny domen.ru, uruchomimy ponownie i zalogujemy się za pomocą konta administratora domeny DOMENAdministrator.
Citrix delivery controller
Pobierzemy Citrix Virtual Apps and Desktops 1811 na ws-dc.domain.ru. Link do pobrania dostępny po zalogowaniu na stronie .

Zamontujemy pobrany iso i uruchomimy. Wybierzemy „Citrix Virtual Apps and Desktops 7”. Następnie klikniemy „Rozpocznij”. Może być konieczne ponowne uruchomienie.

W moim przypadku wystarczy wybrać do instalacji następujące komponenty:
Delivery Controller
Studio
License Server
StoreFront
Nie zmieniamy nic więcej i klikamy „Zainstaluj”. Może być konieczne ponowne uruchomienie, po czym instalacja będzie kontynuowana.
Gdy instalacja zostanie zakończona, uruchomi się Citrix Studio — środowisko zarządzania całym systemem Citrix.

Konfiguracja Citrix Site
Wybierzemy pierwszy dział z trzech — Konfiguracja strony. Przy konfiguracji podamy nazwę strony — domena.
W sekcji „Połączenie” podamy dane do połączenia z hypervisorem z GPU:
Adres połączenia —
Nazwa użytkownika — root
Hasło — twojehasło
Nazwa połączenia — m60
Zarządzanie magazynem — Użyj pamięci lokalnej do hypervisora.
Nazwa tych zasobów — m60.
Wybierz sieci.
Wybierz typ i grupę GPU — GRID M60-4Q.
Konfiguracja katalogów maszyn Citrix
Podczas konfigurowania drugiego działu — Katalogi maszyn, wybierzemy OS z pojedynczą sesją (Desktop OS).
Obraz główny — wybierzemy przygotowany obraz maszyny wirtualnej i wersję Citrix Virtual Apps and Desktops — 1811.
Wybierzemy liczbę maszyn wirtualnych w katalogu, na przykład 4.
Podamy schemat, według którego maszynom wirtualnym będą przypisywane nazwy, w moim przypadku to desktop##. W tym przypadku zostaną utworzone 4 VM z nazwami desktop01-04.
Nazwa katalogu maszyn — m60.
Opis katalogu maszyn — m60.
Po utworzeniu katalogu maszyn z czterema VM, będą one widoczne w pionowej liście XenCenter, po lewej.
Citrix Delivery Group
Trzeci dział rozpoczyna się od wyboru liczby VM, do których należy przyznać dostęp. Wskaźnikuję wszystkie cztery.
W sekcji „Desktopy” klikamy „Dodaj”, aby dodać grupę VM, do której przyznamy dostęp. Nazwa wyświetlana — m60.
Nazwa grupy dostarczania — m60.
Po skonfigurowaniu trzech głównych działów, główne okno Citrix Studio będzie wyglądać mniej więcej tak

Citrix license manager
Pobierzemy plik licencji przez osobiste konto na stronie .
W lewym pionowym menu wybieramy „Wszystkie narzędzia licencyjne (Legacy)”. Przechodzimy do zakładki „Aktywuj i przydziel licencje”. Wybieramy licencje Citrix VDA i klikamy „Kontynuuj”. Podajemy nazwę naszego Delivery Controller, czyli ws-dc.domain.pl, oraz liczbę licencji — 4. Klikamy „Kontynuuj”. Pobieramy wygenerowany plik licencji na ws-dc.domain.pl.

W lewym pionowym menu Citrix Studio wybieramy sekcję „Licencjonowanie”. W prawym pionowym menu klikamy „Konsola zarządzania licencjami”. W otwartym oknie przeglądarki wprowadzamy dane do logowania dla użytkownika domeny DOMENAdministrator.
W Citrix Licensing Manager przechodzimy do zakładki „Zainstaluj licencję”. Aby dodać plik licencji, należy wybrać „Użyj pobranego pliku licencji”.

Instalacja komponentów Citrix zakłada użycie kilku maszyn wirtualnych, jeden komponent — jedna VM. W moim przypadku, wszystkie systemowe usługi Citrix działają w ramach jednej VM. W związku z tym, zaznaczam jeden błąd, którego naprawa sprawiła mi szczególnie dużo trudności.
Jeśli po ponownym uruchomieniu ws-dc występują różne problemy, zalecam w pierwszej kolejności sprawdzić uruchomione usługi. Podaję listę usług Citrix, które powinny automatycznie uruchamiać się po ponownym uruchomieniu VM:
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 -nvidiaNaprawdę problem z pojawiającym się podczas instalacji różnych usług Citrix na jednej VM. Po restarcie nie uruchamiają się wszystkie usługi. Nie chciało mi się uruchamiać całego łańcucha pojedynczo. Rozwiązanie było trudne do znalezienia w Internecie, dlatego podaję je tutaj — należy zmienić dwa parametry w rejestrze:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
Nazwa : ServicesPipeTimeout
Wartość : 240000
Nazwa : WaitToKillServiceTimeout
Wartość : 20000Menadżer licencji Nvidia
Pobieramy menedżera licencji NVIDIA dla systemu Windows, przez nasze konto na stronie . Lepiej wchodzić przez Internet Explorer.

Zainstalujemy go na ws-dc. W tym celu najpierw trzeba zainstalować i dodać zmienną środowiskową JAVA_HOME. Następnie można uruchomić setup.exe do instalacji NVIDIA License Manager.

Utworzymy serwer, wygenerujemy i pobierzemy plik licencji na naszym koncie na stronie . Przeniesiemy plik licencji na ws-dc.

Używając przeglądarki, logujemy się do interfejsu webowego menedżera licencji NVIDIA, dostępnego pod adresem :8080/licserver i dodamy plik licencji.

Aktywne sesje korzystające z vGPU można zobaczyć w sekcji „Licensed Clients”.
Zdalny dostęp do katalogu maszyn Citrix
Jak zainstalować Citrix Receiver?
Jak połączyć się z wirtualnym pulpitem?
Na komputerze roboczym otworzymy przeglądarkę, w moim przypadku jest to Chrome, i przejdziemy pod adres interfejsu webowego Citrix StoreWeb
http://192.168.1.111/Citrix/StoreWebJeśli Citrix Receiver nie jest jeszcze zainstalowany, kliknij „Obdiscover Receiver”

Dokładnie przeczytamy umowę licencyjną, pobierzemy i zainstalujemy Citrix Receiver.

Po instalacji wrócimy do przeglądarki i klikniemy „Kontynuuj”

Następnie w przeglądarce Chrome pojawia się powiadomienie, kliknij „Otwórz aplikację Citrix Receiver Launcher”, a następnie „Obdiscover ponownie” lub „Już zainstalowano”

Podczas pierwszego logowania skorzystamy z danych testowego użytkownika test. Zmienimy tymczasowe hasło na stałe.

Po autoryzacji przejdź do zakładki „Aplikacje” i wybierz katalog „M60”

Pobierz proponowany plik z rozszerzeniem .ica. Po podwójnym kliknięciu na niego otworzy się okno w Desktop Viewer z pulpitem Centos 7.

Źródło: habr.com
