Importar discos virtuais

Se você tem discos virtuais no ambiente local com o software e as configurações necessárias, às vezes chamados de discos dourados ou imagens douradas, é possível economizar tempo importando esses discos virtuais para o Distributed Cloud 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 de login ao cluster do Kubernetes. Siga as etapas da CLI em Fazer login para fazer login no cluster do Kubernetes.

Solicitar permissões e acesso

Para executar as tarefas listadas nesta página, você precisa ter o papel de administrador de máquina virtual do projeto. Siga as etapas para verificar se você tem o papel de administrador de máquina virtual do projeto (project-vm-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 de leitor do projeto (project-viewer).

Importar discos virtuais

É possível importar discos virtuais usando a gcloud CLI 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ê a função 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 \
      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 12Gi para um disco virtual com tamanho original do sistema de arquivos de 10 Gi.
  2. Monitore o progresso da importação consultando o status do objeto VirtualMachineImageImport:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      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.