创建 GPU 加速的 Linux 虚拟工作站


本教程介绍如何创建具备以下特点的 Linux 虚拟工作站:运行 CentOS,且挂接了具备显示能力的 GPU。Google Cloud 提供四种具备显示能力的 GPU:NVIDIA L4、NVIDIA T4、NVIDIA P4 和 NVIDIA P100。

如需创建 Windows 工作站,请参阅有关创建 GPU 加速的 Windows 虚拟工作站的教程。

创建虚拟工作站后,您将学习如何使用 HP Anywhere(以前称为 Teradici CAS)和 PC-over-IP (PCoIP®) 技术远程访问该工作站。PCoIP 是广泛应用于媒体娱乐、游戏开发、架构和工程行业的远程桌面协议。PCoIP 提供了对这些类型的工作负载至关重要的功能,例如色彩精确度、对多个显示器的支持、无损显示以及平板电脑压力灵敏度。

本教程假定您熟悉 Linux 命令行。

目标

  • 创建带有 GPU 的 Compute Engine 实例。此实例是虚拟工作站的基础。
  • 在虚拟工作站上安装 NVIDIA 驱动程序。
  • 在虚拟工作站上安装 HP Anyware 软件。
  • 使用 PCoIP 软件客户端连接到虚拟工作站。

费用

本教程使用 Google Cloud 的以下收费组件:

您可以使用价格计算器根据您的预计使用情况来估算费用。截至 2023 年 10 月,本教程中显示的工作站配置的费用大约为每小时 US$1.08。

虚拟工作站的构成资源以及影响本教程中所述费用的因素包括:

互联网数据传输表示从虚拟工作站流向本地显示客户端的数据,按互联网出站数据传输费用计费。影响 PCoIP 会话期间数据传输的变量包括带宽、屏幕分辨率、显示器数量、使用的应用以及每个显示器上的活动类型。如需了解不同的工作负载要求,请参阅 HP Anyware 会话规划指南

准备工作

本教程使用 Google Cloud CLI,您可以从通过 Google Cloud 控制台启动的 Cloud Shell 实例运行它。如果您要在本地工作站上使用 gcloud CLI,请安装 Google Cloud CLI。本教程将向您介绍如何在 Cloud Shell 中运行命令;如果您在工作站上使用 gcloud CLI,请相应地调整指令。

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. Enable the Compute Engine API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. 确保您的 Google Cloud 项目已启用结算功能

  7. Enable the Compute Engine API.

    Enable the API

此外,请确保满足以下条件:

  • 一个 Google Cloud 项目,该项目在您所选可用区中拥有 NVIDIA L4 虚拟工作站 GPU 配额。您可以使用 gcloud compute accelerator-types list 命令获取 GPU 可用性信息列表。
  • Google Chrome 浏览器(用于访问 Google Cloud 控制台)。
  • Windows、Mac 或 Linux 版最新 PCoIP 客户端软件(用于访问虚拟工作站)。
  • help.teradici.com 上的账号(用于下载 HP Anyware 软件)。注册账号是免费的。
  • HP Anyware 软件许可。您可以申请试用许可,或联系您的 Teradici 代表索取此虚拟工作站的试用注册代码。

架构

下图显示了按照本教程部署单个虚拟工作站需要用到的组件。图中显示的可选组件包括用于连接到虚拟工作站、共享存储设备的几种不同方式,用于提供第三方许可的另外一个实例,以及代表渲染或计算场的其他基础架构。

虚拟工作站架构。

选择一个区域。

部署虚拟工作站时需要考虑的一项重要因素是您的位置与您创建的实例之间的延迟时间。延迟时间越短,体验越好。因此,您最好选择与您的地理位置最近的可用区。如需详细了解不同 GPU 的可用位置,请参阅 GPU 区域和可用区可用性

  1. 打开 Cloud Shell。(如果您使用的是 gcloud CLI,请在您的计算机上打开终端窗口。)

    转到 Cloud Shell

  2. 获取可使用 GPU 的可用区的列表:

    gcloud compute accelerator-types list

    记下距您的地理位置最近的区域和可用区。

  3. 设置您要使用的可用区:

    gcloud config set compute/zone ZONE

    ZONE 替换为您所使用的可用区的名称,例如 us-west1-b

选择机器类型

NVIDIA L4 GPU 会挂接到 G2 机器类型。如果虚拟机挂接了一个或多个 GPU,那么您添加到实例的每个 GPU 都可以配备最多数量的 vCPU。例如,每个 NVIDIA L4 GPU 可让您为实例机器类型配备最多 32 个 vCPU 和高达 128 GB 的内存。要查看不同 GPU 配置的可用 vCPU 和内存范围,请参阅 GPU 列表

在本教程中的示例中,G2 虚拟工作站拥有 8 个 vCPU,远远低于单个 NVIDIA L4 GPU 可以有 32 个 vCPU 的限制。

创建虚拟工作站

  1. 在 Cloud Shell 中,创建 Compute Engine 虚拟工作站实例:

    gcloud compute instances create NAME \
        --zone=ZONE \
        --machine-type=MACHINE_TYPE \
        --accelerator=type=ACCELERATOR,count=NUM-GPUS \
        --maintenance-policy="TERMINATE" \
        --image-project=centos-cloud \
        --image-family=centos-7 \
        --boot-disk-size=SIZE \
        --boot-disk-type=TYPE \
        --network=NETWORK
    

    替换以下内容:

    • NAME 是工作站的名称。
    • ZONE 是要在其中创建虚拟机的可用区。
    • MACHINE_TYPE 是预定义或自定义机器配置。
    • ACCELERATOR 是您要挂接的 GPU 的类型,例如 nvidia-tesla-t4-vws
    • NUM-GPUS 是要挂接到虚拟机的 GPU 数量。
    • SIZE 是启动磁盘的大小(以 GB 为单位)。
    • TYPE 是启动磁盘的类型。如需获取可用磁盘类型的列表,请运行 gcloud compute disk-types list
    • NETWORK 是要在其中创建虚拟机的网络。

    例如:

    gcloud compute instances create test-workstation \
        --zone=us-west1-b \
        --machine-type=g2-standard-8 \
        --accelerator=type=nvidia-l4-vws,count=1 \
        --maintenance-policy="TERMINATE" \
        --image-project=centos-cloud \
        --image-family=centos-7 \
        --boot-disk-size=100 \
        --boot-disk-type=pd-ssd \
        --network=default
    

    创建虚拟工作站后,系统将显示机器状态。输出类似于以下内容:

    NAME: test-workstation
    ZONE: us-west1-b
    MACHINE_TYPE: g2-standard-8
    PREEMPTIBLE:
    INTERNAL_IP: 10.138.XX.XXX
    EXTERNAL_IP: XX.XXX.XXX.XXX
    STATUS: RUNNING
    

    记下虚拟工作站的外部 IP 地址。在本教程的后面部分,您将用到该地址。

    您随时可以使用 Google Cloud 控制台来检索虚拟工作站的外部 IP 地址。

登录虚拟工作站

创建虚拟工作站后,请登录机器来配置该工作站。

  1. 在 Cloud Shell 中,连接到新建的虚拟工作站:

    gcloud compute ssh NAME
  2. 设置账号密码。Teradici PCoIP 需要用户密码。

    sudo passwd `whoami`

    出现提示时,输入一个密码。在本教程的后面部分,当您通过 Teradici PCoIP 客户端登录您的虚拟工作站,将会用到这个密码。

安装图形库和窗口管理器

默认的 Google Cloud CentOS 7 映像是 CentOS 7.x 的极简安装。接下来,安装运行虚拟工作站(用作图形工作站)所必需的库。在本教程中,您还要安装 KDE 窗口管理器。

  1. 更新软件代码库:

    sudo yum -y update
  2. 安装所需的组件:

    sudo yum -y install \
      kernel-devel-$(uname -r) kernel-headers-$(uname -r)
    sudo yum -y groupinstall \
      "KDE desktop" "X Window System" "Fonts" \
      "Development Tools" "Server with GUI"
    
  3. 重新启动工作站:

    sudo reboot

    您通过 Cloud Shell 建立的连接关闭。

安装 NVIDIA 驱动程序

对于可视化工作负载,Google Cloud 上的 NVIDIA L4、NVIDIA T4、NVIDIA P4 和 NVIDIA P100 GPU 仅当搭配符合条件的 NVIDIA RTX 虚拟工作站驱动程序时才能正常运行。您可以从公共 Google Cloud 存储桶下载这些驱动程序。

  1. 重启虚拟工作站后,在 Cloud Shell 中重新连接到该虚拟工作站:

    gcloud compute ssh NAME
  2. 验证系统是否已安装正确的内核标头:

    sudo yum -y install kernel-devel-$(uname -r) \
      kernel-headers-$(uname -r)
    
  3. 如需安装最新的 NVIDIA RTX 虚拟工作站驱动程序,请按照说明(仅限第 3 步)操作。

  4. 重新启动工作站:

    sudo reboot

安装 HP Anyware 软件

HP Anyware 软件提供了一个在虚拟工作站上运行的图形代理,可将桌面传输到硬件或软件客户端。

  1. 重启虚拟工作站后,在 Cloud Shell 中重新连接到该虚拟工作站:

    gcloud compute ssh NAME
  2. 添加 Teradici 软件代码库:

    curl -1sLf \
        https://dl.anyware.hp.com/TOKEN/pcoip-agent/cfg/setup/bash.rpm.sh \
        | sudo -E distro=el codename=7 bash
    

    替换以下内容:

  3. 更新软件代码库:

    sudo yum -y update
  4. 可选:如果您需要支持除键盘、鼠标和指控设备以外的 USB 设备,请安装 USB 依赖项。

    sudo yum -y install usb-vhci
  5. 安装 HP Anyware 软件:

    sudo yum -y install pcoip-agent-graphics
  6. 将显示状态设置为 graphical

    sudo systemctl set-default graphical.target
  7. 重新启动虚拟工作站:

    sudo reboot

注册 Anyware Graphics Agent

如需使用 Anyware Graphics Agent,您必须拥有 HP Anwyare 许可。

  1. 在 Cloud Shell 中,激活您的 HP Anyware 软件许可:

    pcoip-register-host --registration-code=REGISTRATION-CODE

    REGISTRATION-CODE 替换为 HP Teradici 以 ABCDEFGHIJKL@0123-4567-89AB-CDEF 的形式提供给您的代码。

  2. 重新启动虚拟工作站:

    sudo reboot

创建防火墙规则

PCoIP 客户端会使用多个端口与虚拟工作站通信。 您必须设置允许流量进入您的虚拟工作站的防火墙规则。

  • 在本地计算机(而非虚拟工作站)上的 Cloud Shell 中,创建用于打开所需端口的防火墙规则:

    gcloud compute firewall-rules create allow-pcoip \
        --action=ALLOW \
        --rules=tcp:443,tcp:4172,udp:4172 \
        --source-ranges=0.0.0.0/0
    

使用 PCoIP 客户端登录您的虚拟工作站

  1. 在本地计算机上,转到 HP Anyware 支持页面上的 PCoIP 客户端部分,然后下载、安装并启动适用于您的操作系统的 PCoIP 软件客户端应用。

  2. Host Address 或 Registration Code 字段中,输入虚拟工作站的外部 IP 地址。如果需要,可以输入连接名称。

  3. 连接后,输入之前为虚拟工作站创建的用户名和密码,以进行身份验证。

    几秒钟后,您会看到您的 Linux 桌面。

测试虚拟工作站

部署完虚拟工作站后,您可以使用多种工具来测试其性能和交互性:

您还可以详细了解基于您的工作负载的 PCoIP 性能优化

清理

为避免因本教程中使用的资源导致您的 Google Cloud 账号产生费用,请删除包含这些资源的项目,或者保留项目但删除各个资源。

完成本教程后,请清理您在 Google Cloud 上创建的资源,以免这些资源将来产生费用。

停用虚拟工作站

停用的虚拟工作站会产生永久性磁盘使用费。在停用虚拟工作站后,您随时可以重新启用。要停用虚拟工作站,请在 Cloud Shell 中运行以下命令:

gcloud compute instances stop test-vws

删除项目

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

删除所有组件

  1. 删除虚拟工作站
  2. 删除防火墙规则

后续步骤