Importar discos virtuais

Neste documento, descrevemos as etapas para importar imagens de disco de máquina virtual (VM) para o Google Distributed Cloud (GDC) isolado por air-gap.

Importe seus discos virtuais atuais, geralmente chamados de discos de ouro ou imagens de ouro, para o Distributed Cloud para economizar tempo e use a imagem resultante para criar máquinas virtuais. A ferramenta de importação é compatível com os formatos de imagem RAW e QCOW.

Este documento é destinado a desenvolvedores em grupos de administradores de plataforma ou operadores de aplicativos que criam imagens de VM. Para mais informações, consulte Públicos-alvo da documentação do GDC com isolamento físico.

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).

Solicitar permissões e acesso

Para importar imagens e realizar as operações de VM listadas nesta página, peça ao administrador do IAM do projeto para conceder a você os seguintes papéis do IAM no namespace do projeto em que a VM reside:

  • Administrador de máquinas virtuais do projeto (project-vm-admin): gerencia VMs no namespace do projeto.

  • Leitor do projeto (project-viewer): tem acesso somente leitura a todos os recursos em um namespace de projeto.

Siga as etapas para verificar seu acesso.

Importar discos virtuais

É 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 seu projeto.

Para importar seus discos virtuais, use a CLI gdcloud ou a API Virtual Machine Manager.

gdcloud

O comando import verifica se o disco tem os pacotes necessários para configurar credenciais de conexão à instância usando o Secure Shell (SSH) e o protocolo da área de trabalho remota (RDP). Isso inclui o ambiente de convidado.

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

  • Para criar uma imagem inicializável, use o comando gdcloud compute images import:
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

Para importar um disco virtual usando a 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 \
      -n PROJECT_ID \
      apply -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: IMAGE_OS
        minimumDiskSize: DISK_SIZE
    EOF
    

    Substitua as seguintes variáveis:

    • 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/.
    • IMAGE_OS: o SO no disco a ser importado.
    • DISK_SIZE: o tamanho mínimo que um disco precisa ter para ser criado com essa imagem. Use um buffer de pelo menos 20% além do tamanho do sistema de arquivos da imagem original. Por exemplo, use pelo menos 12G para um disco virtual com um tamanho original de sistema de arquivos de 10G.
  2. Monitore o progresso da importação consultando o status do objeto VirtualMachineImageImport:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT_ID \
      get virtualmachineimageimport.virtualmachine.gdc.goog 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 se você importar a imagem 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