Ativar telas virtuais em uma VM


Este documento descreve como ativar ou desativar telas virtuais em uma instância de máquina virtual (VM).

Se um aplicativo em execução na VM exigir um dispositivo de exibição, mas você não precisar do desempenho de uma GPU, configure a VM para usar dispositivos de exibição virtuais. Ao ativar as telas virtuais em uma VM, é possível executar dispositivos de exibição virtuais nela, como ferramentas de gerenciamento de sistema remoto, softwares de área de trabalho remota e captura de tela.

Antes de começar

  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud. Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine selecionando uma das seguintes opções:

    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

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. Terraform

      Para usar os exemplos do Terraform nesta página em um ambiente de desenvolvimento local, instale e inicialize a gcloud CLI e, em seguida, configure o Application Default Credentials com suas credenciais de usuário.

      1. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

        gcloud init
      3. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

      Confira mais informações em Set up authentication for a local development environment.

      REST

      Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.

Funções exigidas

Para receber as permissões necessárias para ativar ou desativar telas virtuais em uma VM, peça ao administrador para conceder a você o papel de Administrador da instância do Compute (v1) (roles/compute.instanceAdmin.v1) no IAM no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém as permissões necessárias para ativar ou desativar telas virtuais em uma VM. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As permissões a seguir são necessárias para ativar ou desativar telas virtuais em uma VM:

  • Para ativar ou desativar as telas virtuais em uma VM atual: compute.instances.updateDisplayDevice na VM
  • Para criar uma VM com telas virtuais ativadas:
    • compute.instances.create no projeto
    • Para usar uma imagem personalizada para criar a VM: compute.images.useReadOnly na imagem
    • Usar um snapshot para criar a VM: compute.snapshots.useReadOnly no snapshot
    • Usar um modelo de instância para criar a VM: compute.instanceTemplates.useReadOnly no modelo de instância
    • Atribuir uma rede legada à VM: compute.networks.use no projeto
    • Especificar um endereço IP estático para a VM: compute.addresses.use no projeto
    • Atribuir um endereço IP externo à VM ao usar uma rede legada: compute.networks.useExternalIp no projeto
    • Especificar uma sub-rede para a VM: compute.subnetworks.use no projeto ou na sub-rede escolhida
    • Atribuir um endereço IP externo à VM ao usar uma rede VPC: compute.subnetworks.useExternalIp no projeto ou na sub-rede escolhida
    • Definir os metadados da instância de VM para a VM: compute.instances.setMetadata no projeto
    • Definir tags para a VM: compute.instances.setTags na VM
    • Definir rótulos para a VM: compute.instances.setLabels na VM
    • Definir uma conta de serviço para a VM usar: compute.instances.setServiceAccount na VM
    • Criar um disco para a VM: compute.disks.create no projeto
    • Anexar um disco atual no modo somente leitura ou de leitura e gravação: compute.disks.use no disco
    • Anexar um disco atual no modo somente leitura: compute.disks.useReadOnly no disco

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Preços

Não há custos associados à ativação ou desativação de telas virtuais em uma VM.

Restrições

Para VMs com telas virtuais ativadas, as seguintes limitações se aplicam:

  • Se a VM estiver executando uma imagem do SO Windows baseada em x64 anterior à versão v20190312, depois de ativar as telas virtuais na VM, será necessário instalar o driver da tela virtual, conforme descrito neste documento. Se a VM estiver executando uma versão mais recente da imagem do SO, o driver já estará instalado na imagem do SO.

  • Só é possível usar um dispositivo de exibição virtual na VM depois que o SO convidado é inicializado e inicializa o driver da tela virtual.

  • Não é possível usar dispositivos de exibição virtual em VMs que executam a plataforma de CPU Sandy Bridge.

  • Não é possível usar dispositivos de exibição virtual em VMs Arm T2A.

Ativar telas virtuais em uma VM

Para ativar telas virtuais em uma VM, selecione um dos métodos descritos neste documento:

Se a VM estiver executando uma imagem do SO Windows baseada em x64 anterior à versão v20190312, depois de ativar as telas virtuais na VM, instale o driver da tela virtual, conforme descrito neste documento.

Criar uma VM com telas virtuais ativadas.

Para criar uma VM com telas virtuais ativadas, selecione uma das seguintes opções:

Console

  1. No console do Google Cloud, acesse a página Criar uma instância.

    Acesse "Criar uma instância"

  2. Especifique as propriedades da VM, incluindo o nome, a zona e o tipo de máquina.

  3. Na seção Dispositivo de exibição, marque a caixa de seleção Ativar dispositivo de exibição.

  4. Para criar a VM, clique em Criar.

gcloud

Para criar uma VM com telas virtuais ativadas, use o comando gcloud compute instances create com a flag --enable-display-device.

gcloud compute instances create VM_NAME \
    --enable-display-device \
    --machine-type=MACHINE_TYPE \
    --zone=ZONE

Substitua:

  • VM_NAME: o nome da VM.

  • MACHINE_TYPE: o tipo de máquina a ser usado para a VM.

  • ZONE: a zona em que a instância de VM será criada.

Terraform

Para criar uma VM com telas virtuais ativadas, use o recurso do Terraform com o argumento enable_display definido como true.

Por exemplo, para criar uma VM na zona us-central1-c com telas virtuais ativadas e especificar f1-micro como o tipo de máquina, use o seguinte recurso:


resource "google_compute_instance" "instance_virtual_display" {
  name         = "instance-virtual-display"
  machine_type = "f1-micro"
  zone         = "us-central1-c"

  # Set the below to true to enable virtual display
  enable_display = true

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }
  network_interface {
    # A default network is created for all GCP projects
    network = "default"
    access_config {
    }
  }
}

REST

Para criar uma VM com telas virtuais ativadas, faça uma solicitação POST para o método instances.insert. No corpo da solicitação, inclua o campo enableDisplay definido como true.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "project/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "displayDevice": {
    "enableDisplay": true
  },
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ]
}

Substitua:

  • PROJECT_ID: o ID do projeto em que a VM será criada.

  • ZONE: a zona em que a instância de VM será criada.

  • VM_NAME: o nome da VM.

  • MACHINE_TYPE: o tipo de máquina a ser usado para a VM.

  • IMAGE_PROJECT: o projeto de imagem que contém a imagem do SO, por exemplo, debian-cloud. Para mais informações sobre os projetos de imagem com suporte, consulte Imagens públicas.

  • IMAGE: especifique uma destas opções:

    • Uma versão específica da imagem do SO. Por exemplo: debian-12-bookworm-v20240617

    • Uma família de imagens, que precisa ser formatada como family/IMAGE_FAMILY. Especifica a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificar family/debian-12, a versão mais recente na família de imagens do Debian 12 será usada. Para mais informações sobre o uso de famílias de imagens, consulte Práticas recomendadas para famílias de imagens.

Para mais informações sobre como criar uma VM, consulte Criar e iniciar uma instância do Compute Engine.

Ativar telas virtuais em uma VM

Antes de ativar as telas virtuais em uma VM, interrompa a VM.

Para ativar telas virtuais em uma VM, selecione uma das seguintes opções:

Console

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar a página "Instâncias de VM"

  2. Na coluna Nome, clique no nome da VM.

    A página de detalhes da VM é aberta.

  3. Clique em Editar.

    A página para editar as propriedades da VM é aberta.

  4. Na seção Dispositivo de exibição, marque a caixa de seleção Ativar dispositivo de exibição.

  5. Clique em Salvar.

gcloud

Para ativar telas virtuais em uma VM atual, use o comando gcloud compute instances update com a flag --enable-display-device.

gcloud compute instances update VM_NAME \
    --enable-display-device \
    --zone=ZONE

Substitua:

  • VM_NAME: o nome da VM.

  • ZONE: a zona em que a VM está localizada.

REST

Para ativar telas virtuais em uma VM, faça uma solicitação POST para o método instances.updateDisplayDevice. No corpo da solicitação, inclua o campo enableDisplay e defina-o como true.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/updateDisplayDevice

{
  "enableDisplay": true
}

Substitua:

  • PROJECT_ID: o ID do projeto em que a VM está localizada.

  • ZONE: a zona em que a VM está localizada.

  • VM_NAME: o nome da VM.

Desativar telas virtuais em uma VM existente

Antes de desativar as exibições virtuais em uma VM, interrompa a VM.

Para desativar as telas virtuais em uma VM, selecione uma das seguintes opções:

Console

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar a página "Instâncias de VM"

  2. Na coluna Nome, clique no nome da VM.

    A página de detalhes da VM é aberta.

  3. Clique em Editar.

    A página para editar as propriedades da VM é aberta.

  4. Na seção Dispositivo de exibição, desmarque a caixa de seleção Ativar dispositivo de exibição.

  5. Clique em Salvar.

gcloud

Para desativar telas virtuais em uma VM atual, use o comando gcloud compute instances update com a flag --no-enable-display-device.

gcloud compute instances update VM_NAME \
    --no-enable-display-device \
    --zone=ZONE

Substitua:

  • VM_NAME: o nome da VM.

  • ZONE: a zona em que a VM está localizada.

REST

Para desativar as telas virtuais em uma VM, faça uma solicitação POST para o método instances.updateDisplayDevice. No corpo da solicitação, inclua o campo enableDisplay e defina-o como false.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/updateDisplayDevice

{
  "enableDisplay": false
}

Substitua:

  • PROJECT_ID: o ID do projeto em que a VM está localizada.

  • ZONE: a zona em que a VM está localizada.

  • VM_NAME: o nome da VM.

Instale o driver de exibição virtual.

Se você tiver ativado telas virtuais em uma VM do Windows que executa uma imagem do SO Windows anterior à versão v20190312, para usar um dispositivo de exibição virtual na VM, será necessário instalar o driver de tela virtual fornecido pelo Google Cloud. Se a VM estiver executando uma versão mais recente da imagem do SO, o driver já estará instalado e você poderá pular esta seção.

Para instalar o driver de tela virtual em uma VM com telas virtuais ativadas, faça o seguinte:

  1. Conecte-se à VM do Windows.

  2. Abra um terminal do PowerShell como administrador.

  3. Instale o componente google-compute-engine-driver-gga:

    googet install google-compute-engine-driver-gga
    
  4. Reinicie a VM.

Depois de reiniciar a VM, é possível verificar se o driver foi instalado corretamente, conforme descrito na próxima seção.

Verificar a instalação do driver de tela virtual

Se você precisou instalar manualmente o driver de tela virtual em uma VM do Windows, conforme descrito na seção anterior, siga estas etapas para verificar se a instalação foi concluída:

  1. Conecte-se à VM do Windows, caso ainda não tenha feito isso.

  2. Abra o Gerenciador de dispositivos.

  3. Na lista Gerenciador de dispositivos, na lista Adaptadores de vídeo, verifique se o driver Google Graphics Array (GGA) está listado.

    Se o driver não estiver listado, reinstale o driver de tela virtual, conforme descrito neste documento.

A seguir