如果虚拟机实例上的应用需要显示设备,但并不需要 GPU 的全部功能或不想承担相应购买成本,则可以将您的实例配置为使用虚拟显示设备。利用这些虚拟显示设备,您就可以运行需要显示设备的远程系统管理工具和远程桌面软件。
在新建实例时配置虚拟显示设备,或在现有实例处于停止的状态下为其添加虚拟显示设备。为您的实例启用虚拟显示设备无需支付任何费用。
准备工作
-
设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。
选择标签页以了解您打算如何使用本页面上的示例:
控制台
当您使用 Google Cloud 控制台访问 Google Cloud 服务和 API 时,无需设置身份验证。
gcloud
-
安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:
gcloud init
- 设置默认区域和可用区。
Terraform
如需从本地开发环境使用本页面上的 Terraform 示例,请安装并初始化 gcloud CLI,然后使用用户凭据设置应用默认凭据。
- 安装 Google Cloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init
-
为您的 Google 账号创建本地身份验证凭据:
gcloud auth application-default login
如需了解详情,请参阅 为本地开发环境设置身份验证。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
-
所需的角色
如需获得修改虚拟机上的虚拟显示所需的权限,请让您的管理员为您授予项目的 Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1
) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限。
此预定义角色可提供修改虚拟机上的虚拟显示所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
修改虚拟机上的虚拟显示需要以下权限:
-
在现有虚拟机上添加或移除虚拟显示:针对虚拟机的
compute.instances.updateDisplayDevice
权限 -
创建具有虚拟显示设备的虚拟机:
- 针对项目的
compute.instances.create
权限 - 使用自定义映像创建虚拟机:针对映像的
compute.images.useReadOnly
权限 - 使用快照创建虚拟机:针对快照的
compute.snapshots.useReadOnly
权限 - 使用实例模板创建虚拟机:针对实例模板的
compute.instanceTemplates.useReadOnly
权限 - 为虚拟机分配旧版网络:针对项目的
compute.networks.use
权限 - 为虚拟机指定静态 IP 地址:针对项目的
compute.addresses.use
权限 - 使用旧版网络时为虚拟机分配外部 IP 地址:针对项目的
compute.networks.useExternalIp
权限 - 为虚拟机指定子网:针对项目或所选子网的
compute.subnetworks.use
权限 - 在使用 VPC 网络时为虚拟机分配外部 IP 地址:针对项目或所选子网的
compute.subnetworks.useExternalIp
权限 - 为虚拟机设置虚拟机实例元数据:针对项目的
compute.instances.setMetadata
权限 - 为虚拟机设置标记:针对虚拟机的
compute.instances.setTags
权限 - 为虚拟机设置标签:针对虚拟机的
compute.instances.setLabels
权限 - 为虚拟机设置要使用的服务账号:针对虚拟机的
compute.instances.setServiceAccount
权限 - 为虚拟机创建新磁盘:针对项目的
compute.disks.create
权限 - 以只读或读写模式挂接现有磁盘:针对磁盘的
compute.disks.use
权限 - 以只读模式挂接现有磁盘:针对磁盘的
compute.disks.useReadOnly
权限
- 针对项目的
限制
- Google 支持在 Linux 实例和使用任何基于 x64 的 Windows 映像 v20190312 或更高版本的 Windows 实例上使用虚拟显示设备。
- 如果您的虚拟机实例正在运行 v20190312 之前的 Windows 映像,则为实例启用虚拟显示设备之后,还必须手动安装设备驱动程序。设备驱动程序中预安装了比 v20190312 更新的映像。
- 只有在客机操作系统完成虚拟显示驱动程序的启动和初始化之后,虚拟显示设备才能正常工作。在 POST 期间或客机操作系统启动期间,您无法使用虚拟显示设备。
- 虚拟显示设备与运行 Sandy Bridge CPU 平台的实例不兼容。
- 虚拟显示设备与 T2A Arm 虚拟机不兼容。
创建使用虚拟显示设备的实例
创建新实例时,在实例上启用虚拟显示设备。或者,您也可以将虚拟显示设备添加到现有实例。
控制台
gcloud
在 Google Cloud CLI 中,使用 compute instances create
命令并添加 --enable-display-device
标志:
gcloud compute instances create [INSTANCE_NAME] --enable-display-device
其中 [INSTANCE_NAME]
是您要创建的实例的名称。
Terraform
您可以使用 Terraform 资源创建实例,并通过将 enable_display
参数设置为 true
来启用虚拟显示。
REST
在 API 中,构建对 compute.instances.insert
方法的 POST
请求。
在请求正文中,包含实例属性以及将 enableDisplay
设置为 true
的 displayDevice
属性。
POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances
{
"name": "[INSTANCE_NAME]",
"machineType": "zones/[ZONE]/machineTypes/[MACHINE_TYPE]",
"displayDevice": {
"enableDisplay": true
},
⋮
}]
其中:
[INSTANCE_NAME]
是实例的名称。[PROJECT_ID]
是您的项目 ID。[ZONE]
是实例所在的地区。
创建使用虚拟显示设备的实例后,您可以配置远程桌面来远程管理您的 Windows 实例。
在现有实例上添加或移除虚拟显示设备
您可以在现有实例上启用虚拟显示设备。此外,您还可以在新建实例时启用虚拟显示设备。
在正在运行的实例上启用或停用虚拟显示设备之前,必须先停止该实例。
控制台
转到虚拟机实例页面。
在名称列中,点击要在其中添加或移除虚拟显示设备的实例的名称。
在虚拟机实例详情页面的顶部,点击停止。
在虚拟机实例详情页面的顶部,点击修改。
在显示设备下方,点击启用显示设备以为此实例启用或停用虚拟显示设备。
在实例创建设置的底部,点击保存。
gcloud
如需添加虚拟显示设备,请在 Google Cloud CLI 中使用 compute instances update
命令并添加 --enable-display-device
标志:
gcloud compute instances update [INSTANCE_NAME] --enable-display-device
其中 [INSTANCE_NAME]
是您要创建的实例的名称。
如需移除虚拟显示设备,请在 gcloud CLI 中使用 compute instances update
命令并添加 --no-enable-display-device
标志:
gcloud compute instances update [INSTANCE_NAME] --no-enable-display-device
其中 [INSTANCE_NAME]
是您要创建的实例的名称。
REST
在 API 中,构建对 compute.instances.updateDisplayDevice
方法的 POST
请求。在请求正文中,包含 enableDisplay
属性。要在此实例上启用虚拟显示设备,请将 enableDisplay
设置为 true
。要停用实例上的虚拟显示设备,请将 enableDisplay
设置为 false
。
POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/updateDisplayDevice
{
"enableDisplay": [ENABLE_DISPLAY]
}
其中:
[INSTANCE_NAME]
是要在其中启用或停用虚拟显示设备的实例的名称。[PROJECT_ID]
是您的项目 ID。[ZONE]
是实例所在的地区。[ENABLE_DISPLAY]
可以为true
,以在实例上启用虚拟显示设备;也可以为false
,以在实例上停用虚拟显示设备。
创建使用虚拟显示设备的实例后,您可以配置远程桌面来远程管理您的 Windows 实例。
安装虚拟显示驱动程序
Google 提供了一种显示驱动程序,让 Windows 实例可以正确使用虚拟显示设备。Compute Engine 的多项功能要求具有该驱动程序。Google 仅为 Windows 实例提供此显示驱动程序和相应支持。
创建使用虚拟显示设备的实例后,或者将虚拟显示设备添加到现有实例后,您可以通过以下过程在实例上安装虚拟显示设备:
- 连接到已启用虚拟显示设备的 Windows 实例。
- 以管理员身份打开 PowerShell 终端。
运行
googet
安装程序以安装google-compute-engine-driver-gga
组件:googet install google-compute-engine-driver-gga
重启该实例。
重启实例后,请按照以下说明确认已安装驱动程序。
验证虚拟显示驱动程序的安装情况
如果您必须手动安装设备驱动程序,请按照以下说明验证安装是否成功。
- 连接到已启用虚拟显示设备的 Windows 实例。
- 打开运行工具并运行
devmgmt.msc
计算机管理工具。 - 在计算机管理工具的导航菜单中,点击设备管理器以查看设备列表。
- 检查显示适配器列表,确保其中列出了 Google Graphics Array 驱动程序。
- 如果此处列出的显示适配器是 Microsoft 基本显示适配器,而非 Google Graphics Array,请重复执行一次驱动程序安装过程,然后再次检查驱动程序。
后续步骤
- 查看在 Compute Engine 上设置适用于 Linux 的 Chrome 远程桌面教程。
- 了解连接到 Windows 实例的不同方法。
- 了解如何停止和启动实例。