Importar discos virtuais

Se você tiver discos virtuais no ambiente local com o software e as configurações necessárias, às vezes chamados de discos dourados ou imagens douradas, poderá economizar tempo importando esses discos virtuais para o appliance isolado do GDC e usando a imagem resultante para criar máquinas virtuais. A ferramenta de importação é compatível com os formatos de imagem RAW e QCOW.

Antes de começar

Antes de continuar, verifique se você tem o seguinte:

  • A CLI gdcloud baixada, instalada e configurada. Todos os comandos da CLI para GDC usam a CLI gdcloud ou kubectl e exigem um ambiente de sistema operacional (SO).
  • Acesso ao servidor da API Management. Siga as etapas da CLI em Fazer login para fazer login no servidor da API Management.

Solicitar permissões e acesso

Para executar as tarefas listadas nesta página, você precisa ter os papéis de administrador de máquinas virtuais do projeto e administrador de imagens de máquinas virtuais do projeto. Siga as etapas para verificar ou peça ao administrador do IAM do projeto para atribuir a você os papéis de administrador de máquinas virtuais do projeto (project-vm-admin) e administrador de imagens de máquinas virtuais do projeto (project-vm-image-admin) no namespace do projeto em que a VM reside.

Para operações de VM usando o console do GDC ou a CLI gdcloud, peça ao administrador do IAM do projeto para atribuir a você os papéis listados no parágrafo anterior e o papel Leitor do projeto (project-viewer).

Importar discos virtuais

É possível importar discos virtuais usando a CLI gdcloud ou a API Virtual Machine Manager.

Para receber as permissões necessárias para importar imagens, peça ao administrador do IAM da organização para conceder a você o papel de administrador de imagens de máquinas virtuais do projeto (project-vm-image-admin).

gdcloud

Use o comando gdcloud compute images import para criar uma imagem inicializável.

O comando import garante que o disco tenha os pacotes necessários, incluindo o ambiente de convidado, que é necessário para configurar credenciais de conexão com a instância usando o Secure Shell (SSH) no Linux e o protocolo da área de trabalho remota (RDP) no Windows.

No Linux, o comando também instala pacotes para o Network Time Protocol (NTP) e cloud-init para que a instância seja executada corretamente no GDC.

É possível importar arquivos de disco virtual diretamente da sua estação de trabalho. A ferramenta de importação faz upload automático do arquivo para um bucket de armazenamento de objetos no projeto.

gdcloud compute images import IMAGE_NAME \
  --source-file=SOURCE_FILE \
  --os=IMAGE_OS \
  --timeout=TIMEOUT

Substitua as seguintes variáveis:

  • IMAGE_NAME: o nome da imagem de destino O nome não pode ter mais de 35 caracteres.
  • SOURCE_FILE: o arquivo de disco virtual. Esse arquivo é um arquivo local na sua estação de trabalho. Você pode fornecer um caminho absoluto ou relativo.
  • IMAGE_OS: o SO no disco a ser importado.
  • TIMEOUT: o tempo que uma importação pode durar antes de falhar com "TIMEOUT". Por exemplo, se você especificar 2h, o processo vai falhar após 2 horas. O tempo limite padrão é 1h.

A operação de upload pode levar muito tempo, dependendo do tamanho do disco virtual e da velocidade da conexão de rede. A operação de importação pode levar dezenas de minutos para ser executada, dependendo do tamanho do disco.

API

Antes de iniciar o processo de importação com a API, faça upload do disco virtual para um bucket de armazenamento de objetos chamado vm-images-bucket. Para criar um bucket de armazenamento de objetos, consulte Criar buckets de armazenamento para projetos.

Para importar um disco virtual pela API, faça o seguinte:

  1. Crie um objeto VirtualMachineImageImport no servidor da API Management para iniciar o processo de importação de imagens:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
      apply -n PROJECT_ID -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineImageImport
    metadata:
      name: IMAGE_NAME
      namespace: PROJECT_ID
    spec:
      source:
        objectStorage:
          bucketRef:
            name: vm-images-bucket
          objectName: SOURCE_FILE
      imageMetadata:
        name: IMAGE_NAME
        operatingSystem: OPERATING_SYSTEM
        minimumDiskSize: DISK_SIZE
    EOF
    

    Substitua as seguintes variáveis:

    Variável Descrição
    IMAGE_NAME O nome da imagem a ser importada. O nome não pode ter mais de 35 caracteres.
    PROJECT_ID O ID do projeto em que você quer importar a imagem.
    SOURCE_FILE O nome do arquivo de origem que contém o upload do disco virtual para o armazenamento de objetos. Esse valor é a seção do caminho de armazenamento de objetos após vm-images-bucket/.
    OPERATING_SYSTEM O SO no disco a ser importado.
    DISK_SIZE O tamanho mínimo que um disco precisa ter para ser criado com essa imagem. Recomendamos usar um buffer de pelo menos 20% além do tamanho do sistema de arquivos da imagem original. Por exemplo, use pelo menos 12 GiB para um disco virtual com tamanho original de 10 GiB.
  2. Monitore o progresso da importação consultando o status do objeto VirtualMachineImageImport:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
      get virtualmachineimageimport --namespace PROJECT_ID \
      IMAGE_NAME -o jsonpath='{.status}'
    

Limpar recursos

O processo de importação envolve o upload do arquivo de disco virtual para o armazenamento de objetos. Se você usar a CLI gdcloud, o objeto será limpo quando o comando for concluído, seja com sucesso ou não. Se o comando for interrompido ou a importação de imagens for feita com a API, o arquivo de disco virtual poderá permanecer no bucket de armazenamento de objetos chamado vm-images-bucket até que você exclua o arquivo manualmente.

A seguir

Crie uma instância de VM que use sua imagem na página Criar e iniciar uma VM.