Acesso remoto a VMs de GPU usando Citrix

Este guia detalha as etapas necessárias ao preparar o acesso remoto a áreas de trabalho virtuais usando a tecnologia oferecida pela Citrix.

Será útil para aqueles que se familiarizaram recentemente com a tecnologia de virtualização de desktop, pois é uma coleção de comandos úteis coletados de ~ 10 manuais, muitos dos quais estão disponíveis nos sites da Citrix, Nvidia, Microsoft, após autorização.

Esta implementação contém as etapas para preparar o acesso remoto a máquinas virtuais (VMs) com aceleradores gráficos Nvidia Tesla M60 e o sistema operacional Centos 7.

Então, vamos começar.

Preparando um 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 alterar o modo Nvidia Tesla M60?
Como montar o armazenamento?

XenServer 7.4

Link para download XenServer 7.4 disponível após o login Citrix.

Acesso remoto a VMs de GPU usando Citrix

Vamos instalar o XenServer.iso em um servidor com 4x NVIDIA Tesla M60 da maneira normal. No meu caso, o iso é montado via IPMI. Para servidores Dell, o BMC é gerenciado por meio do IDRAC. As etapas de instalação são quase as mesmas da instalação de sistemas operacionais semelhantes ao Linux.

Meu endereço para XenServer com GPU é 192.168.1.100

Instale o XenCenter.msi no computador local a partir do qual gerenciaremos hipervisores e máquinas virtuais. Vamos adicionar um servidor com GPU e XenServer clicando na aba "Server" e depois em "Add". Digite o nome de usuário e a senha root, especificados durante a instalação do XenServer.

Acesso remoto a VMs de GPU usando Citrix

No XenCenter, após clicar no nome do hypervisor adicionado, a aba "Console" estará disponível. No menu, selecione "Remote Service Configuration" e ative a autorização SSH - "Enable / Disable Remote Shell".

Driver nvidia

Vou dar vazão às minhas emoções e dizer que durante todo o tempo que trabalho com vGPU, nunca visitei o site nvidia.com na primeira tentativa. Se a autorização não funcionar, recomendo o Internet Explorer.

Baixe o zip do vGPU, bem como o GPUMode Change Utility:

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

Acesso remoto a VMs de GPU usando Citrix

Seguimos as versões. O nome do arquivo baixado indica a versão dos drivers NVIDIA apropriados que podem ser instalados em máquinas virtuais no futuro. No meu caso é 390.72.

Transfira os zips para o XenServer e descompacte.

Altere o modo GPU e instale 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

Acesso remoto a VMs de GPU usando Citrix

Montar armazenamento

Configure um diretório compartilhado usando NFS em qualquer computador da 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-server

No XenCenter, selecione XenServer e na aba "Storage", selecione "New SR". Especifique o tipo de armazenamento - NFS ISO. O caminho deve apontar para um diretório compartilhado NFS.

Citrix Master Image baseada em Centos 7

Como criar uma máquina virtual com o Centos 7?

Como preparar uma máquina virtual para criar um diretório?

imagem do Centos 7

Usando o XenCenter, criaremos uma máquina virtual com uma GPU. Na guia "VM", clique em "Nova VM".

Acesso remoto a VMs de GPU usando Citrix

Selecione as opções necessárias:

Modelo de VM - Outras mídias de instalação
modelo de nome
Instalar da biblioteca ISO - Centos 7 (baixar), selecione no 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
Use este disco virtual - 80 Gb
Network

Depois de criada, a máquina virtual aparecerá na lista vertical à esquerda. Clique nele e vá para a guia "Console". Vamos aguardar o carregamento do instalador do Centos 7 e seguir os passos necessários para instalar o SO com o shell GNOME.

Preparando a Imagem

Preparar a imagem com o Centos 7 me levou muito tempo. Posteriormente, foi obtido um conjunto de scripts que facilitam a configuração inicial do Linux e permitem criar um catálogo de máquinas virtuais usando o Citrix Machine Creation Services (MCS).

O servidor DHCP instalado no ws-ad atribuiu à nova máquina virtual um endereço IP de 192.168.1.129.

Abaixo estão as configurações básicas.

$ 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

No XenCenter, na guia "Console", monte guest-tools.iso no drive de DVD da máquina virtual e instale o XenTools for Linux.

$ mount /dev/cdrom /mnt
$ /mnt/Linux/install.sh
$ reboot

Ao configurar o XenServer, usamos o arquivo NVIDIA-GRID-XenServer-7.4-390.72-390.75-391.81.zip baixado do site da NVIDIA, que, além do driver NVIDIA para XenServer, contém o driver NVIDIA necessário para clientes vGPU . Baixe e instale-o 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
$ reboot

Faça o download do Linux Virtual Delivery Agent 1811 (VDA) para Centos 7. Link para download LinuxVDA disponível após o login 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

Vamos criar um catálogo de máquinas e um grupo de entrega no Citrix Studio. Antes de fazer isso, você deve instalar e configurar o Windows Server.

Windows Server com controlador de domínio

Como baixar e instalar o Windows Server 2016?
Como instalar os componentes do Windows Server?
Como configurar o Active Directory, DHCP e DNS?

2016 servidor Windows

Como uma máquina virtual (VM) do Windows Server não precisa de uma GPU, usaremos um servidor sem GPU como hipervisor. Por analogia com a descrição acima, vamos instalar outro XenServer para hospedar as máquinas virtuais do sistema.

Depois disso, criaremos uma máquina virtual para Windows Server com Active Directory.

Baixe o Windows Server 2016 do site Microsoft. É melhor seguir o link usando o Internet Explorer.

Acesso remoto a VMs de GPU usando Citrix

Vamos criar uma máquina virtual usando o XenCenter. Na guia "VM", clique em "Nova VM".

Acesso remoto a VMs de GPU usando Citrix

Selecione as opções necessárias:

Modelo de VM - Windows Server 2016 (64 bits)
Nome - ws-ad.domain.ru
Instale a partir da biblioteca ISO - WindowsServer2016.iso, selecione no armazenamento 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
Use este disco virtual - 100 Gb
Network

Depois de criada, a máquina virtual aparecerá na lista vertical à esquerda. Clique nele e vá para a guia "Console". Vamos aguardar o carregamento do instalador do Windows Server e executar as etapas necessárias para instalar o sistema operacional.

Instale o XenTools na VM. Clique com o botão direito do mouse na VM e, em seguida, em "Instalar Citrix VM Tools ...". Depois disso, a imagem será montada, o que você precisa para executar e instalar o XenTools. No final da instalação, você precisará 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, nós o ativaremos. A chave pode ser obtida no mesmo local de onde a imagem foi baixada.

[PowerShell]$ slmgr -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx

Vamos definir o nome do computador. No meu caso é ws-ad.

Instalando componentes

No Gerenciador do servidor, selecione "Adicionar funções e recursos". Observe o servidor DHCP, o servidor DNC e os serviços de domínio do Active Directory a serem instalados. Marque a caixa de seleção "Reiniciar automaticamente".

Acesso remoto a VMs de GPU usando Citrix

Configurando o Active Directory

Depois de reiniciar a VM, clique em "Elevar este servidor ao nível de um controlador de domínio" e adicione uma nova floresta domain.ru.

Configurando um servidor DHCP

No painel superior do Server Manager, clique no ponto de exclamação para salvar as alterações ao instalar o servidor DHCP.

Vamos passar para as configurações do servidor DHCP.

Acesso remoto a VMs de GPU usando Citrix

Vamos criar uma nova área 192.168.1.120-130. Não mudamos o resto. Selecione "Definir configurações de DHCP agora" e insira o endereço IP ws-ad (192.168.1.110) como gateway e DNS, que serão especificados nas configurações dos adaptadores de rede das máquinas virtuais do catálogo.

Configurando um servidor DNS

Vamos passar para as configurações do servidor DNS.

Acesso remoto a VMs de GPU usando Citrix

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 inversa selecionando opções semelhantes.

Nas propriedades do servidor DNS, na guia "Avançado", marque a caixa de seleção "Desativar recursão".

Criar um usuário de teste

Vamos para o "Active Directory Administration Center"

Acesso remoto a VMs de GPU usando Citrix

Na seção "Usuários" à direita, clique em "Criar". Digite um nome, por exemplo teste, e clique em "OK" na parte inferior.

Acesso remoto a VMs de GPU usando Citrix

Selecione o usuário criado e selecione "Redefinir senha" no menu vertical à direita. Deixe a caixa de seleção "Exigir alteração de senha no próximo login".

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?

2016 servidor Windows

Como uma máquina virtual (VM) do Windows Server não precisa de uma GPU, usaremos um servidor sem GPU como hipervisor.

Baixe o Windows Server 2016 do site Microsoft. É melhor seguir o link usando o Internet Explorer.

Acesso remoto a VMs de GPU usando Citrix

Vamos criar uma máquina virtual usando o XenCenter. Na guia "VM", clique em "Nova VM".

Acesso remoto a VMs de GPU usando Citrix

Selecione as opções necessárias:

Modelo de VM - Windows Server 2016 (64 bits)
Nome-ws-dc
Instale a partir da biblioteca ISO - WindowsServer2016.iso, selecione no armazenamento 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
Use este disco virtual - 100 Gb
Network

Depois de criada, a máquina virtual aparecerá na lista vertical à esquerda. Clique nele e vá para a guia "Console". Vamos aguardar o carregamento do instalador do Windows Server e executar as etapas necessárias para instalar o sistema operacional.

Instale o XenTools na VM. Clique com o botão direito do mouse na VM e, em seguida, em "Instalar Citrix VM Tools ...". Depois disso, a imagem será montada, o que você precisa para executar e instalar o XenTools. No final da instalação, você precisará 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, nós o ativaremos. A chave pode ser obtida no mesmo local de onde a imagem foi baixada.

[PowerShell]$ slmgr -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx

Vamos definir o nome do computador. No meu caso é ws-dc.

Vamos adicionar uma VM ao domínio domen.ru, reiniciar e fazer login na conta de administrador do domínio DOMENAdministrator.

Controlador de entrega Citrix

Baixe Citrix Virtual Apps and Desktops 1811 em ws-dc.domain.ru. Link para Download Aplicativos e desktops virtuais Citrix disponível após o login Citrix.

Acesso remoto a VMs de GPU usando Citrix

Monte a iso baixada e execute. Selecione "Citrix Virtual Apps and Desktops 7". Em seguida, clique em "Começar". Uma reinicialização pode ser necessária.

Acesso remoto a VMs de GPU usando Citrix

No meu caso, basta selecionar os seguintes componentes para instalação:

Controlador de entrega
Studio
Servidor de Licença
Loja

Não alteramos mais nada e clicamos em "Instalar". Uma reinicialização será necessária mais de uma vez, após a qual a instalação continuará.

Quando a instalação estiver concluída, o Citrix Studio, o Citrix Enterprise Management Environment, será iniciado.

Acesso remoto a VMs de GPU usando Citrix

Configurando o Citrix Site

Vamos selecionar a primeira seção das três - Configuração do site. Ao configurar, especifique o Nome do site - domínio.

Na seção "Conexão", especifique os dados para conectar um hipervisor com uma GPU:

endereço de conexão - 192.168.1.100
Nome de usuário - raiz
Senha -suasenha
Nome da conexão - m60

Gerenciamento de armazenamento - Use o armazenamento local para o hypervisor.

O nome desses recursos é m60.

selecione as redes.

Selecione um tipo e grupo de GPU - GRID M60-4Q.

Configurando catálogos de máquinas Citrix

Ao configurar a segunda seção - Catálogos de máquinas, selecione SO de sessão única (SO de desktop).

Master Image - selecione a imagem preparada da máquina virtual e a versão do Citrix Virtual Apps and Desktops - 1811.

Selecione o número de máquinas virtuais no diretório, por exemplo, 4.

Especifique o esquema pelo qual as máquinas virtuais serão nomeadas, no meu caso é desktop##. Nesse caso, serão criadas 4 VMs denominadas desktop01-04.

Nome do catálogo da máquina - m60.

Descrição do Catálogo da Máquina - m60.

Depois de criar um catálogo de máquinas com quatro VMs, elas podem ser encontradas na lista vertical do XenCenter à esquerda.

Grupo de Entrega Citrix

A terceira seção começa escolhendo o número de VMs para conceder acesso. Vou listar todos os quatro.

Na seção "Desktops", clique em "Adicionar" para adicionar um grupo de VMs ao qual forneceremos acesso. Nome de exibição - m60.

Nome do grupo de entrega - m60.

Depois de configurar as três seções principais, a janela principal do Citrix Studio ficará mais ou menos assim

Acesso remoto a VMs de GPU usando Citrix

gerenciador de licença Citrix

Baixe o arquivo de licença através de sua conta pessoal no site Citrix.

Na lista vertical à esquerda, selecione Todas as ferramentas de licenciamento (herdadas). Vamos para a guia "Ativar e alocar licenças". Selecione licenças Citrix VDA e clique em Continuar. Vamos especificar o nome do nosso controlador de entrega - ws-dc.domain.ru e o número de licenças - 4. Clique em "Continuar". Baixe o arquivo de licença gerado para ws-dc.domain.ru.

Acesso remoto a VMs de GPU usando Citrix

Na lista vertical esquerda do Citrix Studio, selecione a seção "Licenciamento". Na lista vertical à direita, clique em "License Management Console". Na janela do navegador que se abre, insira os dados para autorização do usuário do domínio DOMENAdministrator.

No Citrix Licensing Manager, vá para a guia "Instalar licença". Para adicionar um arquivo de licença, selecione "Usar arquivo de licença baixado".

Acesso remoto a VMs de GPU usando Citrix

A instalação de 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 operam na mesma VM. A esse respeito, observarei um bug, cuja correção foi especialmente difícil para mim.

Se, após a reinicialização do ws-dc, houver problemas de natureza diferente, recomendo que você verifique primeiro os serviços em execução. Aqui está uma lista de 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 -nvidia

Encontrei um problema que ocorre ao instalar diferentes serviços Citrix na mesma VM. Após a reinicialização, nem todos os serviços são iniciados. Foi com preguiça de lançar toda a cadeia uma a uma. A solução foi difícil de pesquisar no Google, então trago aqui - você deve alterar dois parâmetros no registro:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl
Name : ServicesPipeTimeout
Value :240000

Name : WaitToKillServiceTimeout
Value : 20000

Gerenciador de licenças Nvidia

Baixe o gerenciador de licenças NVIDIA para Windows através de sua conta pessoal no site nvidia.com. É melhor usar o Internet Explorer.

Acesso remoto a VMs de GPU usando Citrix

Vamos instalá-lo no ws-dc. Para fazer isso, primeiro você precisa instalar JAVA e adicione a variável de ambiente JAVA_HOME. Você pode então executar setup.exe para instalar o NVIDIA License Manager.

Acesso remoto a VMs de GPU usando Citrix

Vamos criar um servidor, gerar e baixar um arquivo de licença em sua conta pessoal no site nvidia.com. Vamos transferir o arquivo de licença para ws-dc.

Acesso remoto a VMs de GPU usando Citrix

Usando um navegador, faça login na interface da Web do gerenciador de licenças da NVIDIA, disponível em localhost:8080/licserver e adicione o arquivo de licença.

Acesso remoto a VMs de GPU usando Citrix

Sessões ativas usando vGPU podem ser visualizadas na seção "Clientes licenciados".

Acesso remoto ao catálogo de máquinas Citrix

Como instalar o Citrix Receiver?
Como faço para conectar a uma área de trabalho virtual?

Em um computador em funcionamento, abra um navegador, no meu caso é o Chrome, e vá para o endereço da interface da web Citrix StoreWeb

http://192.168.1.111/Citrix/StoreWeb

Se o Citrix Receiver ainda não estiver instalado, clique em "Detect Receiver"

Acesso remoto a VMs de GPU usando Citrix

Leia o contrato de licença com atenção, baixe e instale o Citrix Receiver

Acesso remoto a VMs de GPU usando Citrix

Após a instalação, volte ao navegador e clique em "Continuar"

Acesso remoto a VMs de GPU usando Citrix

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

Acesso remoto a VMs de GPU usando Citrix

Ao conectar pela primeira vez, usaremos os dados do teste do usuário de teste. Altere a senha temporária para permanente.

Acesso remoto a VMs de GPU usando Citrix

Após a autorização, vá para a guia "Aplicativos" e selecione o diretório "M60"

Acesso remoto a VMs de GPU usando Citrix

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

Acesso remoto a VMs de GPU usando Citrix

Fonte: habr.com

Adicionar um comentário