Neste guia, são descritos detalhadamente os passos necessários para preparar o acesso remoto a áreas de trabalho virtuais usando a tecnologia oferecida pela Citrix.
Ele será útil para aqueles que recentemente conheceram a tecnologia de virtualização de áreas de trabalho, pois é uma coleção de comandos úteis reunidos de ~10 manuais, muitos dos quais estão disponíveis nos sites da Citrix, Nvidia, Microsoft, após autenticação.
Esta implementação contém as etapas de preparação do acesso remoto às máquinas virtuais (VMs) com aceleradores gráficos Nvidia Tesla M60 e o sistema operacional CentOS 7.
Então, vamos começar.
Preparação do hipervisor para hospedar máquinas virtuais
Como baixar e instalar o XenServer 7.4?
Como adicionar o XenServer ao Citrix XenCenter?
Como baixar e instalar o driver Nvidia?
Como mudar o modo da Nvidia Tesla M60?
Como montar o armazenamento?
XenServer 7.4
Link para download disponível após autenticação no site .

Vamos instalar o XenServer.iso no servidor com 4x NVIDIA Tesla M60 de forma padrão. No meu caso, o iso é montado através do IPMI. Para servidores Dell, o gerenciamento do controlador BMC é feito através do IDRAC. As etapas de instalação são praticamente iguais à instalação de sistemas operacionais Linux semelhantes.
Meu endereço do XenServer com GPU é 192.168.1.100
Instalaremos o XenCenter.msi no computador local, de onde gerenciaremos os hipervisores e máquinas virtuais. Adicionaremos lá o servidor com GPU e XenServer clicando na guia 'Server' e depois em 'Add'. Inserimos o login e a senha root fornecidos durante a instalação do XenServer.

No XenCenter, após clicar no nome do hipervisor adicionado, a guia 'Console' estará disponível. No menu, selecionamos 'Remote Service Configuration' e habilitamos a autenticação por SSH — 'Enable/Disable Remote Shell'.
Driver Nvidia
Vou me deixar levar e dizer que durante todo o tempo que trabalhei com vGPU, nunca consegui acessar o site na primeira tentativa. Se a autenticação não funcionar, recomendo o Internet Explorer.
Baixaremos o zip com vGPU, bem como o GPUMode Change Utility:
NVIDIA-GRID-XenServer-7.4-390.72-390.75-391.81.zip
NVIDIA-gpumodeswitch-2020-01.zip

Fique atento às versões. No nome do arquivo zip baixado, está indicada a versão dos drivers NVIDIA compatíveis que podem ser instalados posteriormente nas máquinas virtuais. No meu caso, é 390.72.
Transferimos os zips para o XenServer e extraímos.
Mudaremos o modo da GPU e instalaremos o driver 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 
Montar armazenamento
Vamos configurar um diretório compartilhado usando NFS em qualquer computador na rede.
$ 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-serverNo XenCenter, selecione o XenServer e na aba "Storage" escolha "New SR". Indique o tipo de armazenamento – NFS ISO. O caminho deve apontar para o diretório compartilhado NFS.
Imagem Mestre Citrix baseada em Centos 7
Como criar uma máquina virtual com Centos 7?
Como preparar a máquina virtual para a criação do diretório?
Imagem Centos 7
Usando o XenCenter, criaremos uma máquina virtual com GPU. Na aba "VM", clique em "New VM".

Escolha as opções necessárias:
Modelo de VM — Outros meios de instalação
Nome — template
Instalar a partir da biblioteca ISO — Centos 7 (), selecione do armazenamento NFS ISO montado.
Número de vCPUs — 4
Topologia — 1 soquete com 4 núcleos por soquete
Memória — 30 Gb
Tipo de GPU — GRID M60-4Q
Usar este disco virtual — 80 Gb
Rede
Após a criação, a máquina virtual aparecerá na lista vertical à esquerda. Clique nela e vá para a aba "Console". Aguarde o carregamento do instalador do Centos 7 e siga os passos necessários para instalar o sistema operacional com a interface GNOME.
Preparação da imagem
A preparação da imagem com Centos 7 levou muito tempo. Posteriormente, resultou em um conjunto de scripts que facilitam a configuração inicial do Linux e permitem a criação de um diretório de máquinas virtuais usando os Serviços de Criação de Máquinas Citrix (MCS).
O servidor DHCP, instalado no ws-ad, atribuiu o endereço IP 192.168.1.129 à nova máquina virtual.
A seguir, apresentarei as principais configurações.
$ 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-reloadNo XenCenter, na aba "Console", montamos o guest-tools.iso na unidade de DVD da máquina virtual e executamos a instalação do XenTools para Linux.
$ mount /dev/cdrom /mnt
$ /mnt/Linux/install.sh
$ rebootAo configurar o XenServer, usamos o arquivo NVIDIA-GRID-XenServer-7.4-390.72-390.75-391.81.zip, baixado do site da NVIDIA, que contém não apenas o driver NVIDIA para XenServer, mas também o driver NVIDIA necessário para os clientes vGPU. Vamos baixá-lo e instalá-lo na VM.
$ 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
$ rebootBaixaremos o Linux Virtual Delivery Agent 1811 (VDA) para o CentOS 7. Link para download: disponível após autenticação no site .
$ 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.confNo Citrix Studio, criaremos um Catálogo de Máquinas e um Grupo de Entrega. Antes disso, é necessário instalar e configurar o Windows Server.
Windows Server com Controlador de Domínio
Como baixar e instalar o Windows Server 2016?
Como instalar componentes do Windows Server?
Como configurar o Active Directory, DHCP e DNS?
Windows Server 2016
Como a máquina virtual (VM) com Windows Server não precisa de GPU, usaremos como hipervisor um servidor sem GPU. Seguindo a descrição acima, instalaremos mais um XenServer para hospedar as máquinas virtuais do sistema.
Depois disso, criaremos uma máquina virtual para o Windows Server com Active Directory.
Baixaremos o Windows Server 2016 do site. É melhor abrir o link usando o Internet Explorer.

Usando o XenCenter, criaremos uma máquina virtual. Na aba 'VM', clique em 'Nova VM'.

Escolha as opções necessárias:
Modelo de VM — Windows Server 2016 (64 bits)
Nome — ws-ad.domain.ru
Instalar a partir da biblioteca ISO — WindowsServer2016.iso, escolhendo do repositório NFS ISO montado.
Número de vCPUs — 4
Topologia — 1 soquete com 4 núcleos por soquete
Memória — 20 Gb
Tipo de GPU — nenhum
Usar este disco virtual — 100 Gb
Rede
Após a criação, a máquina virtual aparecerá na lista vertical à esquerda. Clique nela e vá para a aba 'Console'. Aguarde o carregamento do instalador do Windows Server e siga os passos necessários para instalar o sistema operacional.
Instalaremos o XenTools na VM. Clique com o botão direito na VM, depois em 'Instalar Citrix VM Tools...'. Após isso, uma imagem será montada, que você precisa iniciar e instalar o XenTools. Após a instalação, será necessário reiniciar a VM.
Vamos configurar o adaptador de rede:
Endereço IP — 192.168.1.110
Máscara — 255.255.255.0
Gateway — 192.168.1.1
DNS1 — 8.8.8.8
DNS2 — 8.8.4.4
Se o Windows Server não estiver ativado, vamos fazer a ativação. Você pode pegar a chave de onde baixou a imagem.
[PowerShell]$ slmgr -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxxVamos configurar o nome do computador. No meu caso, é ws-ad.
Instalação de componentes
No Gerenciador do Servidor, selecionaremos 'Adicionar funções e recursos'. Marcaremos para instalar o servidor DHCP, o servidor DNC e os Serviços de Domínio Active Directory. Marcaremos a opção 'Reiniciar automaticamente'.

Configuração do Active Directory
Após reiniciar a VM, clicamos em 'Atualizar este servidor para o nível de controlador de domínio' e adicionamos uma nova floresta domain.ru.
Configuração do servidor DHCP
Na parte superior do Gerenciador do Servidor, clique no sinal de exclamação para salvar as alterações ao instalar o servidor DHCP.
Vamos para as configurações do servidor DHCP.

Vamos criar um novo intervalo 192.168.1.120-130. Não mudamos mais nada. Escolha 'Configurar opções DHCP agora' e insira o endereço IP ws-ad (192.168.1.110) como gateway e DNS, que serão indicados nas configurações dos adaptadores de rede das máquinas virtuais do diretório.
Configuração do servidor DNS
Vamos para as configurações do servidor DNS.

Vamos criar uma nova zona de pesquisa direta — zona primária, para todos os servidores DNS no domínio domain.ru. Não mudamos mais nada.
Vamos criar uma nova zona de pesquisa reversa, escolhendo parâmetros semelhantes.
Nas propriedades do servidor DNS, na aba 'Avançado', marque a opção 'Desativar recursão'.
Criação de um usuário de teste
Vamos para o 'Centro de Administração do Active Directory'

Na seção 'Usuarios', à direita, clique em 'Criar'. Digite o nome, por exemplo, test, e embaixo clique em 'OK'.

Selecionamos o usuário criado e, no menu vertical à direita, escolhemos «Redefinir senha». Mantemos marcada a opção «Exigir troca de senha no próximo login no sistema».
Windows Server com Citrix Delivery Controller
Como baixar e instalar o Windows Server 2016?
Como baixar e instalar o Citrix Delivery Controller?
Como instalar e configurar o Citrix License Manager?
Como instalar e configurar o NVIDIA License Manager?
Windows Server 2016
Como a máquina virtual (VM) com Windows Server não precisa de GPU, usaremos como hiperconvergente um servidor sem GPU.
Baixaremos o Windows Server 2016 do site. É melhor abrir o link usando o Internet Explorer.

Usando o XenCenter, criaremos uma máquina virtual. Na aba 'VM', clique em 'Nova VM'.

Escolha as opções necessárias:
Modelo de VM — Windows Server 2016 (64 bits)
Nome — ws-dc
Instalar a partir da biblioteca ISO — WindowsServer2016.iso, escolhendo do repositório NFS ISO montado.
Número de vCPUs — 4
Topologia — 1 soquete com 4 núcleos por soquete
Memória — 20 Gb
Tipo de GPU — nenhum
Usar este disco virtual — 100 Gb
Rede
Após a criação, a máquina virtual aparecerá na lista vertical à esquerda. Vamos clicar nela e acessar a aba «Console». Aguardaremos o carregamento do instalador do Windows Server e seguiremos os passos necessários para a instalação do SO.
Instalaremos o XenTools na VM. Clique com o botão direito na VM, depois em 'Instalar Citrix VM Tools...'. Após isso, uma imagem será montada, que você precisa iniciar e instalar o XenTools. Após a instalação, será necessário reiniciar a VM.
Vamos configurar o adaptador de rede:
Endereço IP — 192.168.1.111
Máscara — 255.255.255.0
Gateway — 192.168.1.1
DNS1 — 8.8.8.8
DNS2 — 8.8.4.4
Se o Windows Server não estiver ativado, vamos fazer a ativação. Você pode pegar a chave de onde baixou a imagem.
[PowerShell]$ slmgr -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxxVamos configurar o nome do computador. No meu caso, este é ws-dc.
Adicionaremos a VM ao domínio domen.ru, reiniciaremos e nos autenticaremos com a conta de administrador do domínio DOMENAdministrator.
Citrix Delivery Controller
Baixaremos o Citrix Virtual Apps and Desktops 1811 em ws-dc.domain.ru. Link para download disponível após autenticação no site .

Vamos montar o ISO baixado e iniciá-lo. Escolheremos «Citrix Virtual Apps and Desktops 7». Em seguida, clicaremos em «Começar». Pode ser necessária uma reinicialização.

No meu caso, é suficiente escolher para a instalação os seguintes componentes:
Delivery Controller
Studio
License Server
StoreFront
Não mudamos mais nada e clicamos em «Instalar». Pode ser necessária a reinicialização várias vezes, após o que a instalação continuará.
Assim que a instalação for concluída, o Citrix Studio será iniciado — ambiente de gerenciamento de toda a infraestrutura Citrix.

Configuração do Citrix Site
Escolhemos a primeira seção de três — Configuração do site. Ao configurar, indicaremos o nome do site — domain.
Na seção «Conexão», forneceremos os dados para conectar o hiperconvergente com GPU:
Endereço da conexão —
Nome de usuário — root
Senha — yourpassword
Nome da conexão — m60
Gerenciamento de armazenamento — Usar armazenamento local ao hiperconvergente.
Nome para esses recursos — m60.
Selecionar redes.
Selecionar um tipo de GPU e grupo — GRID M60-4Q.
Configuração dos Catálogos de Máquinas Citrix
Ao configurar a segunda seção — Catálogos de Máquinas, escolheremos SO de sessão única (Desktop OS).
Imagem Mestre — escolheremos a imagem virtual preparada e a versão Citrix Virtual Apps and Desktops — 1811.
Escolheremos a quantidade de máquinas virtuais no catálogo, por exemplo, 4.
Indicaremos o esquema pelo qual as máquinas virtuais receberão nomes, no meu caso é desktop##. Assim, serão criadas 4 VMs com os nomes desktop01-04.
Nome do Catálogo de Máquinas — m60.
Descrição do Catálogo de Máquinas — m60.
Após a criação do Catálogo de Máquinas com quatro VMs, elas poderão ser encontradas na lista vertical XenCenter, à esquerda.
Citrix Delivery Group
A terceira seção começa com a escolha do número de VMs às quais deve ser concedido acesso. Vou indicar todas as quatro.
Na seção "Desktops", clique em "Add" para adicionar um grupo de VMs ao qual concederemos acesso. O nome de exibição é m60.
O nome do grupo de entrega é m60.
Após configurar as três seções principais, a janela principal do Citrix Studio ficará assim.

Gerenciador de Licenças Citrix
Faremos o download do arquivo de licença através do portal pessoal no site. .
Na lista vertical à esquerda, selecione All Licensing Tools (Legacy). Vamos para a guia "Activate and Allocate Licenses". Selecionaremos as licenças Citrix VDA e clicaremos em "Continue". Indique o nome do nosso Delivery Controller — ws-dc.domain.ru e a quantidade de licenças — 4. Clicamos em "Continue". Baixaremos o arquivo de licença gerado em ws-dc.domain.ru.

Na lista vertical à esquerda do Citrix Studio, selecione a seção "Licensing". Na lista vertical à direita, clique em "License Management Console". Na janela do navegador que se abre, insira os dados de autenticação do usuário de domínio DOMENAdministrator.
No Citrix Licensing Manager, vá para a guia "Install License". Para adicionar o arquivo de licença, selecione "Use downloaded license file".

A instalação dos componentes Citrix envolve o uso de várias máquinas virtuais, um componente por VM. No meu caso, todos os serviços do sistema Citrix funcionam dentro de uma única VM. Devido a isso, destacarei um bug que foi particularmente difícil de corrigir.
Se após reiniciar o ws-dc surgirem problemas de vários tipos, recomendo verificar primeiro os serviços em execução. Aqui está a lista dos serviços Citrix que devem iniciar automaticamente após a reinicialização da 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 -nvidiaEnfrentei um problema que ocorre ao instalar vários serviços Citrix em uma única VM. Após a reinicialização, nem todos os serviços são iniciados. Lançá-los um a um era tedioso. A solução foi difícil de encontrar no Google, então eu a coloco aqui: é preciso mudar dois parâmetros no registro:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
Name: ServicesPipeTimeout
Value: 240000
Name: WaitToKillServiceTimeout
Value: 20000Gerenciador de Licenças Nvidia
Faremos o download do gerenciador de licenças NVIDIA para Windows através do portal pessoal no site. . É melhor acessar através do Internet Explorer.

Vamos instalá-lo no ws-dc. Para isso, primeiro será necessário instalar e adicionar a variável de ambiente JAVA_HOME. Depois disso, você pode iniciar o setup.exe para instalar o NVIDIA License Manager.

Vamos criar um servidor, gerar e baixar o arquivo de licença na área pessoal do site . Vamos transferir o arquivo de licença para o ws-dc.

Usando o navegador, iremos fazer login na interface web do gerenciador de licenças NVIDIA, disponível em :8080/licserver e adicionaremos o arquivo de licença.

As sessões ativas que utilizam vGPU podem ser vistas na seção "Licensed Clients".
Acesso remoto ao catálogo de máquinas Citrix
Como instalar o Citrix Receiver?
Como conectar-se à área de trabalho virtual?
No computador de trabalho, abriremos o navegador, no meu caso é o Chrome, e iremos para o endereço da interface web Citrix StoreWeb
http://192.168.1.111/Citrix/StoreWebSe o Citrix Receiver ainda não estiver instalado, clique em "Detectar Receiver"

Leia atentamente o contrato de licença, baixe e instale o Citrix Receiver

Após a instalação, voltaremos ao navegador e clicaremos em "Continuar"

Em seguida, no navegador Chrome, abrirá uma notificação, clique em "Abrir aplicativo Citrix Receiver Launcher", e depois em "Detectar novamente" ou "Já instalado"

Na primeira conexão, usaremos os dados do usuário de teste test. Trocaremos a senha temporária por uma permanente.

Após o login, iremos para a aba "Aplicativos" e selecionaremos o catálogo "M60"

Baixaremos o arquivo proposto com a extensão .ica. Após clicar duas vezes nele, uma janela no Desktop Viewer com a área de trabalho CentOS 7 será aberta.

Fonte: habr.com
