如果虚拟机实例上的应用需要显示设备,但并不需要 GPU 的全部功能或不想承担相应购买成本,则可以将您的实例配置为使用虚拟显示设备。利用这些虚拟显示设备,您就可以运行需要显示设备的远程系统管理工具和远程桌面软件。
在新建实例时配置虚拟显示设备,或在现有实例处于停止的状态下为其添加虚拟显示设备。为您的实例启用虚拟显示设备无需支付任何费用。
准备工作
-
设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:
gcloud init
- Set a default region and zone.
- 安装 Google Cloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init
-
为您的 Google 账号创建本地身份验证凭据:
gcloud auth application-default login
-
在现有虚拟机上添加或移除虚拟显示:针对虚拟机的
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 虚拟机不兼容。
[INSTANCE_NAME]
是实例的名称。[PROJECT_ID]
是您的项目 ID。[ZONE]
是实例所在的地区。转到虚拟机实例页面。
在名称列中,点击要在其中添加或移除虚拟显示设备的实例的名称。
在虚拟机实例详情页面的顶部,点击停止。
在虚拟机实例详情页面的顶部,点击修改。
在显示设备下方,点击启用显示设备以为此实例启用或停用虚拟显示设备。
在实例创建设置的底部,点击保存。
[INSTANCE_NAME]
是要在其中启用或停用虚拟显示设备的实例的名称。[PROJECT_ID]
是您的项目 ID。[ZONE]
是实例所在的地区。[ENABLE_DISPLAY]
可以为true
,以在实例上启用虚拟显示设备;也可以为false
,以在实例上停用虚拟显示设备。- 连接到已启用虚拟显示设备的 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 实例的不同方法。
- 了解如何停止和启动实例。
Terraform
如需在本地开发环境中使用本页面上的 Terraform 示例,请安装并初始化 gcloud CLI,然后使用您的用户凭据设置应用默认凭据。
如需了解详情,请参阅 Set up authentication for a local development environment。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
所需的角色
如需获得修改虚拟机上的虚拟显示所需的权限,请让您的管理员为您授予项目的 Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限。此预定义角色可提供修改虚拟机上的虚拟显示所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
修改虚拟机上的虚拟显示需要以下权限:
限制
创建使用虚拟显示设备的实例
创建新实例时,在实例上启用虚拟显示设备。或者,您也可以将虚拟显示设备添加到现有实例。
控制台
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 }, ⋮ }]
其中:
创建使用虚拟显示设备的实例后,您可以配置远程桌面来远程管理您的 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] }
其中:
创建使用虚拟显示设备的实例后,您可以配置远程桌面来远程管理您的 Windows 实例。
安装虚拟显示驱动程序
Google 提供了一种显示驱动程序,让 Windows 实例可以正确使用虚拟显示设备。Compute Engine 的多项功能要求具有该驱动程序。Google 仅为 Windows 实例提供此显示驱动程序和相应支持。
创建使用虚拟显示设备的实例后,或者将虚拟显示设备添加到现有实例后,您可以通过以下过程在实例上安装虚拟显示设备:
重启实例后,请按照以下说明确认已安装驱动程序。
验证虚拟显示驱动程序的安装情况
如果您必须手动安装设备驱动程序,请按照以下说明验证安装是否成功。
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-06-28。
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"翻译问题" },{ "type": "thumb-down", "id": "otherDown", "label":"其他" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"易于理解" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"解决了我的问题" },{ "type": "thumb-up", "id": "otherUp", "label":"其他" }] -