使用 Citrix 远程访问 GPU VM

本指南详细介绍了使用 Citrix 提供的技术配置对虚拟桌面的远程访问所需执行的步骤。

它对于那些最近熟悉桌面虚拟化技术的人来说非常有用,因为它是从大约 10 份手册编译而来的有用命令的集合,其中许多在授权后可以在 Citrix、Nvidia、Microsoft 网站上找到。

此实施包含准备使用 Nvidia Tesla M60 图形加速器和 Centos 7 操作系统远程访问虚拟机 (VM) 的阶段。

所以,让我们开始吧。

准备用于托管虚拟机的虚拟机管理程序

如何下载并安装XenServer 7.4?
如何将XenServer添加到Citrix XenCenter?
如何下载并安装Nvidia驱动程序?
如何更改 Nvidia Tesla M60 模式?
如何挂载存储?

希恩服务器7.4

下载链接 希恩服务器7.4 登录网站后即可使用 思杰.

使用 Citrix 远程访问 GPU VM

让我们以标准方式在具有 4 个 NVIDIA Tesla M60 的服务器上安装 XenServer.iso。 就我而言,iso 是通过 IPMI 挂载的。 对于 Dell 服务器,BMC 通过 IDRAC 进行管理。 安装步骤与安装类Linux操作系统几乎相同。

我的 GPU XenServer 地址是 192.168.1.100

让我们在本地计算机上安装 XenCenter.msi,我们将在其中管理虚拟机管理程序和虚拟机。 让我们通过单击“服务器”选项卡,然后单击“添加”来添加带有 GPU 和 XenServer 的服务器。 输入安装XenServer时指定的root用户名和密码。

使用 Citrix 远程访问 GPU VM

在XenCenter中,单击添加的虚拟机管理程序的名称后,“控制台”选项卡将可用。 在菜单中,选择“远程服务配置”并通过 SSH 启用授权 - “启用/禁用远程 Shell”。

Nvidia驱动程序

我会发泄一下我的情绪,并说在我使用 vGPU 的所有时间里,我从未访问过该网站 nvid.nvidia.com 第一次尝试。 如果授权不起作用,我推荐 Internet Explorer。

从 vGPU 下载 zip 以及 GPUMode Change Utility:

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

使用 Citrix 远程访问 GPU VM

我们遵循版本。 下载的存档的名称表示合适的 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

使用 Citrix 远程访问 GPU VM

安装存储

让我们在网络上的任何计算机上使用 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,然后在“存储”选项卡上选择“新建 SR”。 让我们指定存储类型 - NFS ISO。 该路径必须指向 NFS 共享目录。

基于 Centos 7 的 Citrix 主映像

如何使用Centos 7创建虚拟机?

如何准备虚拟机来创建目录?

Centos 7 镜像

我们将使用 XenCenter 创建一个带有 GPU 的虚拟机。 在“虚拟机”选项卡中,单击“新建虚拟机”。

使用 Citrix 远程访问 GPU VM

选择必要的参数:

VM 模板 - 其他安装介质
名称 - 模板
从 ISO 库安装 - Centos 7 (下载),从挂载的 NFS ISO 存储中选择。
vCPU 数量 - 4
拓扑 - 1 个插槽,每个插槽 4 芯
内存 - 30 GB
GPU 类型 - GRID M60-4Q
使用此虚拟磁盘 - 80 Gb
商业网络

创建后,虚拟机将出现在左侧的垂直列表中。 单击它并转到“控制台”选项卡。 让我们等待 Centos 7 安装程序加载并按照必要的步骤使用 GNOME shell 安装操作系统。

准备图像

使用 Centos 7 准备镜像花了我很多时间。 结果是一组脚本,可促进 Linux 的初始设置,并允许您使用 Citrix Machine Creation Services (MCS) 创建虚拟机目录。

安装在 ws-ad 上的 DHCP 服务器将 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 for Linux。

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

设置XenServer时,我们使用了从NVIDIA网站下载的NVIDIA-GRID-XenServer-7.4-390.72-390.75-391.81.zip存档,其中除了XenServer的NVIDIA驱动程序之外,还包含我们vGPU所需的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

下载适用于 Centos 1811 的 Linux Virtual Delivery Agent 7 (VDA)。下载链接 Linux VDA 登录网站后即可使用 思杰.

$ 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 中,我们将创建一个计算机目录和交付组。 在此之前,您需要安装并配置Windows Server。

带有域控制器的 Windows Server

如何下载并安装Windows Server 2016?
如何安装 Windows Server 组件?
如何配置活动目录、DHCP 和 DNS?

视窗服务器 2016

由于 Windows Server 虚拟机 (VM) 不需要 GPU,因此我们将使用没有 GPU 的服务器作为虚拟机管理程序。 类推上面的描述,我们将安装另一台XenServer来托管系统虚拟机。

之后,我们将为带有 Active Directory 的 Windows Server 创建虚拟机。

从网站下载 Windows Server 2016 微软。 最好使用 Internet Explorer 访问该链接。

使用 Citrix 远程访问 GPU VM

让我们使用 XenCenter 创建虚拟机。 在“虚拟机”选项卡中,单击“新建虚拟机”。

使用 Citrix 远程访问 GPU VM

选择必要的参数:

VM 模板 - Windows Server 2016(64 位)
名称 - ws-ad.domain.ru
从 ISO 库安装 - WindowsServer2016.iso,从挂载的 NFS ISO 存储中选择。
vCPU 数量 - 4
拓扑 - 1 个插槽,每个插槽 4 芯
内存 - 20 GB
GPU 类型 - 无
使用此虚拟磁盘 - 100 Gb
商业网络

创建后,虚拟机将出现在左侧的垂直列表中。 单击它并转到“控制台”选项卡。 让我们等待 Windows Server 安装程序下载并完成安装操作系统所需的步骤。

让我们在 VM 中安装 XenTools。 右键单击 VM,然后“安装 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 域服务。 选中“自动重新启动”复选框。

使用 Citrix 远程访问 GPU VM

设置活动目录

重新启动虚拟机后,单击“将此服务器提升到域控制器级别”并添加新的domain.ru 林。

设置 DHCP 服务器

在服务器管理器的顶部面板上,单击感叹号以保存安装 DHCP 服务器时的更改。

让我们继续进行 DHCP 服务器设置。

使用 Citrix 远程访问 GPU VM

让我们创建一个新区域192.168.1.120-130。 其余的我们不改变。 选择“立即配置 DHCP 设置”并输入 ws-ad IP 地址 (192.168.1.110) 作为网关和 DNS,这将在目录中的虚拟机网络适配器的设置中指定。

设置 DNS 服务器

让我们继续进行 DNS 服务器设置。

使用 Citrix 远程访问 GPU VM

让我们为domain.ru 域中的所有DNS 服务器创建一个新的正向查找区域 - 主区域。 我们不改变任何其他东西。

让我们通过选择类似的选项来创建一个新的反向查找区域。

在 DNS 服务器属性的“高级”选项卡中,选中“禁用递归”复选框。

创建测试用户

我们去“Active Directory管理中心”

使用 Citrix 远程访问 GPU VM

在右侧的“用户”部分中,单击“创建”。 输入名称,例如 test,然后单击底部的“确定”。

使用 Citrix 远程访问 GPU VM

选择创建的用户,然后在右侧垂直菜单中选择“重置密码”。 保留“下次登录时需要更改密码”复选框。

带有 Citrix Delivery Controller 的 Windows Server

如何下载并安装Windows Server 2016?
如何下载并安装 Citrix Delivery Controller?
如何安装和配置 Citrix License Manager?
如何安装和配置 NVIDIA License Manager?

视窗服务器 2016

由于 Windows Server 虚拟机 (VM) 不需要 GPU,因此我们将使用没有 GPU 的服务器作为虚拟机管理程序。

从网站下载 Windows Server 2016 微软。 最好使用 Internet Explorer 访问该链接。

使用 Citrix 远程访问 GPU VM

让我们使用 XenCenter 创建虚拟机。 在“虚拟机”选项卡中,单击“新建虚拟机”。

使用 Citrix 远程访问 GPU VM

选择必要的参数:

VM 模板 - Windows Server 2016(64 位)
名称 - ws-dc
从 ISO 库安装 - WindowsServer2016.iso,从挂载的 NFS ISO 存储中选择。
vCPU 数量 - 4
拓扑 - 1 个插槽,每个插槽 4 芯
内存 - 20 GB
GPU 类型 - 无
使用此虚拟磁盘 - 100 Gb
商业网络

创建后,虚拟机将出现在左侧的垂直列表中。 单击它并转到“控制台”选项卡。 让我们等待 Windows Server 安装程序加载并完成安装操作系统所需的步骤。

让我们在 VM 中安装 XenTools。 右键单击 VM,然后“安装 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 交付控制器

从 ws-dc.domain.ru 下载 Citrix Virtual Apps and Desktops 1811。 下载链接 Citrix虚拟应用程序和桌面 登录网站后即可使用 思杰.

使用 Citrix 远程访问 GPU VM

让我们挂载下载的 iso 并运行它。 选择“Citrix Virtual Apps and Desktops 7”。 接下来,单击“开始”。 可能需要重新启动。

使用 Citrix 远程访问 GPU VM

就我而言,选择以下组件进行安装就足够了:

投放控制器
GOHAT STUDIO
许可服务器
店面

我们不更改任何其他内容,然后单击“安装”。 将需要多次重新启动,之后安装将继续。

安装完成后,Citrix Studio 将启动,这是整个 Citrix 业务的管理环境。

使用 Citrix 远程访问 GPU VM

设置 Citrix 站点

让我们选择三个部分中的第一部分 - 站点设置。 设置时,我们将指定站点名称 - 域。

在“连接”部分中,我们指示用于连接虚拟机管理程序与 GPU 的数据:

连接地址- 192.168.1.100
用户名 - root
密码 - 你的密码
连接名称 - m60

存储管理——使用虚拟机管理程序本地的存储。

这些资源的名称 - m60。

选择网络。

选择 GPU 类型和组 - GRID M60-4Q。

设置 Citrix 计算机目录

设置第二部分 - 计算机目录时,选择单会话操作系统(桌面操作系统)。

主映像 - 选择准备好的虚拟机映像以及 Citrix Virtual Apps and Desktops - 1811 的版本。

我们选择目录中虚拟机的数量,例如 4。

我们将指示为虚拟机分配名称的方案,在我的例子中是桌面##。 在本例中,将创建 4 个虚拟机,名称为desktop01-04。

机器目录名称 - m60。

机器目录描述 - m60。

创建包含四个虚拟机的计算机目录后,可以在左侧的 XenCenter 垂直列表中找到它们。

Citrix 交付组

第三部分首先选择要提供访问的虚拟机数量。 我将列出所有四个。

在“桌面”部分中,单击“添加”以添加我们将提供访问权限的一组虚拟机。 显示名称 - m60。

交付组名称 - m60。

设置三个主要部分后,Citrix Studio 主窗口将如下所示

使用 Citrix 远程访问 GPU VM

Citrix 许可证管理器

通过网站上的个人帐户下载许可证文件 思杰.

在左侧的垂直列表中,选择所有许可工具(旧版)。 让我们转到“激活和分配许可证”选项卡。 选择 Citrix VDA 许可证并单击“继续”。 让我们指定 Delivery Controller 的名称 - ws-dc.domain.ru 和许可证数量 - 4. 单击“继续”。 将生成的许可证文件下载到 ws-dc.domain.ru。

使用 Citrix 远程访问 GPU VM

在 Citrix Studio 的左侧垂直列表中,选择“许可”部分。 在右侧垂直列表中,单击“许可证管理控制台”。 在打开的浏览器窗口中,输入域用户 DOMENAdministrator 的授权数据。

在 Citrix Licensing Manager 中,转到“安装许可证”选项卡。 要添加许可证文件,请选择“使用下载的许可证文件”。

使用 Citrix 远程访问 GPU VM

安装 Citrix 组件涉及使用多个虚拟机,每个虚拟机一个组件。 就我而言,所有 Citrix 系统服务都在一台虚拟机中运行。 在这方面,我将指出一个错误,该错误的纠正对我来说特别困难。

如果重新启动 ws-dc 后出现各种问题,那么我建议您首先检查正在运行的服务。 以下是 VM 重新引导后应自动启动的 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 许可证管理器

通过您在网站上的个人帐户下载适用于 Windows 的 NVIDIA 许可证管理器 nvid.nvidia.com。 最好通过 Internet Explorer 登录。

使用 Citrix 远程访问 GPU VM

让我们将其安装在 ws-dc 上。 为此,您首先需要安装 JAVA 并添加JAVA_HOME环境变量。 然后,您可以运行 setup.exe 来安装 NVIDIA License Manager。

使用 Citrix 远程访问 GPU VM

让我们创建一个服务器,在网站上的个人帐户中生成并下载许可证文件 nvid.nvidia.com。 让我们将许可证文件传输到 ws-dc。

使用 Citrix 远程访问 GPU VM

使用浏览器登录 NVIDIA 许可证管理器 Web 界面,网址为 本地:8080/licserver 并添加许可证文件。

使用 Citrix 远程访问 GPU VM

可以在“许可客户端”部分查看使用 vGPU 的活动会话。

远程访问 Citrix 计算机目录

如何安装 Citrix 接收器?
如何连接到虚拟桌面?

在工作计算机上,打开浏览器(在我的例子中是 Chrome),然后转到 Citrix StoreWeb Web 界面的地址

http://192.168.1.111/Citrix/StoreWeb

如果尚未安装 Citrix Receiver,请单击“检测 Receiver”

使用 Citrix 远程访问 GPU VM

仔细阅读许可协议,下载并安装Citrix Receiver

使用 Citrix 远程访问 GPU VM

安装完成后,返回浏览器,点击“继续”

使用 Citrix 远程访问 GPU VM

接下来,Chrome 浏览器中将打开一条通知,单击“打开 Citrix Receiver Launcher”,然后单击“再次检测”或“已安装”

使用 Citrix 远程访问 GPU VM

第一次连接时,我们将使用测试用户test的数据。 让我们将临时密码更改为永久密码。

使用 Citrix 远程访问 GPU VM

授权后,进入“应用程序”选项卡,选择“M60”目录

使用 Citrix 远程访问 GPU VM

让我们下载建议的扩展名为 .ica 的文件。 双击后,将在 Desktop Veiwer 中打开一个带有 Centos 7 桌面的窗口

使用 Citrix 远程访问 GPU VM

来源: habr.com

添加评论