Traga sua própria licença

Nesta página, você entenderá como trazer suas próprias licenças (BYOL, na sigla em inglês) para o Google Cloud. Antes de trazer imagens com licenças atuais, leia a visão geral de Traga sua própria licença.

Para trazer licenças de núcleo físico ou processador físico com requisitos de hardware dedicados para o Google Cloud, use nós de locatário individual. Com esses nós de locatário individual, suas VMs são executadas em hardware dedicado ao projeto, e o uso do núcleo físico é limitado.

Trazer imagens com licenças atuais exige o seguinte:

  1. Importar um arquivo de disco virtual e criar uma imagem
  2. Criar um modelo de nó de locatário individual
  3. Criar um grupo de nós de locatário individual com base no modelo de nó
  4. Provisionar uma VM no grupo de nós com o arquivo de disco virtual importado

Se precisar de suporte ou tiver dúvidas sobre o licenciamento, entre em contato com seu revendedor de licenças. Se precisar de suporte ou tiver dúvidas sobre como trazer imagens com licenças atuais para o Google Cloud, entre em contato com a nossa equipe de suporte.

Antes de começar

  1. Solicitar cota de CPU adicional: verifique se você tem cota de CPU suficiente para oferecer suporte ao grupo de nós. Você precisa solicitar cota adicional para cada tipo de nó diferente. Se você comprar descontos por uso contínuo, precisará solicitar um aumento na cota para as CPUs confirmadas. Dependendo da configuração e das necessidades das cargas de trabalho, talvez seja necessário solicitar um ajuste de cota para VMs ou endereços IP.

  2. Ative a API Cloud Build: para importar a imagem do SO, é preciso ativar a API Cloud Build. Quando você ativa essa API, o Compute Engine concede ao projeto os papéis do IAM apropriados para que você possa importar imagens para ele. Para listar os papéis concedidos ao projeto, use o comando gcloud projects get-iam-policy (em inglês). Para mais informações sobre como conceder papéis ao projeto, consulte Como gerenciar o acesso aos recursos do Compute Engine.

  3. Ative a API Cloud Logging: ative essa API se os contratos de licença exigirem que você acompanhe o uso do servidor físico. Com essa API ativada, é possível importar e visualizar informações de uso do servidor, como a contagem de núcleos físicos, usando o BigQuery, uma ferramenta recomendada pelo Google. Para mais informações sobre como determinar a contagem de núcleos físicos, consulte Como determinar o uso do servidor.

Como importar um arquivo de disco virtual e criar uma imagem

Antes de importar o arquivo de disco virtual para a VM, verifique se não há incompatibilidades no arquivo ao fazer o download e executar a ferramenta de pré-verificação de dentro da VM.

Para iniciar uma VM com sua própria licença, importe um disco virtual com o SO que você quer usar. É possível importar o arquivo com a ferramenta de linha de comando gcloud, que é compatível com a importação de discos virtuais dos buckets do Cloud Storage e estações de trabalho locais.

Ao importar um arquivo de disco virtual, a ferramenta de importação de imagens faz o upload do arquivo de imagem para o Cloud Storage e, se necessário, cria um novo bucket do Cloud Storage. Em seguida, a ferramenta de importação copia o arquivo para o Compute Engine e cria uma imagem a partir do arquivo de disco virtual.

Se você hospedar o arquivo de disco virtual na sua estação de trabalho local, a ferramenta de importação de imagens fará o upload do arquivo para um bucket do Cloud Storage e, depois, importará a imagem para o Compute Engine.

Para ter acesso à explicação completa da ferramenta de importação de imagens, consulte Como importar discos virtuais.

gcloud

  1. Execute o seguinte comando para importar o arquivo de disco virtual e criar uma imagem:

    gcloud compute images import image-name  --source-file file-name  --os os
    

    Substitua:

    • image-name: nome da imagem;

    • file-name: arquivo de disco virtual hospedado localmente ou armazenado no Cloud Storage.

      • Se o disco virtual for um arquivo local: use um caminho absoluto ou relativo. Nesse caso, a operação de upload pode levar bastante tempo para ser executada, dependendo do tamanho do disco virtual e da velocidade da conexão de rede.

      • Se o arquivo de disco virtual está armazenado no Cloud Storage: especifique o caminho completo do arquivo no formato gs://bucket-name/object-name. O arquivo precisa existir em um bucket de armazenamento no mesmo projeto usado para o processo de importação.

    • os: sistema operacional do source-file. Deve atender a uma das seguintes condições:

      • rhel-6-byol
      • rhel-7-byol
      • rhel-8-byol
      • sles-12-byol
      • sles-15-byol
      • windows-2012-byol
      • windows-2012r2-byol
      • windows-2016-byol
      • windows-2019-byol
      • windows-7-x64-byol
      • windows-7-x86-byol
      • windows-8-x64-byol
      • windows-8-x86-byol
      • windows-10-x64-byol
      • windows-10-x86-byol
  2. Depois de criar a imagem, é possível compartilhá-la com usuários fora do projeto ou organização:

    gcloud projects add-iam-policy-binding project-id  --member user:user-email  --role roles/compute.imageUser
    

    Substitua:

    • project-id: ID do projeto que contém a imagem que poderá ser acessada;
    • user-email: e-mail do usuário com quem você compartilhará a imagem.

    Para informações sobre como acessar imagens compartilhadas, consulte esta página.

  3. Há cobranças para os arquivos armazenados no Cloud Storage e imagens no Compute Engine. Depois de verificar se a imagem importa e inicializa corretamente como uma VM, é possível excluir o arquivo de disco virtual do Cloud Storage.

Como criar um modelo de nó de locatário individual

Crie um modelo de nó para servir como base para seu grupo de nós.

gcloud

gcloud compute sole-tenancy node-templates create template-name --node-type node-type --region region --server-binding server-binding

Substitua:

  • template-name: nome do modelo de nó que você está criando;
  • Tipo de nó node-type para este modelo. Por exemplo, selecione o tipo de nó n2-node-80-640 para criar um nó com 80 vCPUs e 624 GB de memória.

  • region: região em que você quer criar o modelo de nó;

  • server-binding: política de vinculação de servidor para nós que usam esse modelo. Defina como uma destas opções, dependendo do tipo de licença:

    • restart-node-on-any-server
    • restart-node-on-minimal-servers

API

POST https://www.googleapis.com/compute/beta/projects/project-id/regions/region/nodeTemplates

{
   "name": "template-name",
   "nodeType": "node-type"
   "nodeAffinityLabels": {
      "key": "value"
   },
   "serverBinding":
   {
     "type": "server-binding"
   }
}

Substitua:

  • project-id: ID do seu projeto;
  • template-name: nome do modelo de nó que você está criando;
  • Tipo de nó node-type para este modelo. Por exemplo, selecione o tipo de nó n2-node-80-640 para criar um nó com 80 vCPUs e 624 GB de memória.

  • key:value: lista separada por vírgulas de rótulos de afinidade. Os rótulos de afinidade são definidos somente quando o modelo de nó é criado;

  • region: região em que você quer criar o modelo de nó;

  • server-binding: política de vinculação de servidor para nós que usam esse modelo. Defina como uma destas opções, dependendo do tipo de licença:

    • RESTART_NODE_ON_ANY_SERVER
    • RESTART_NODE_ON_MINIMAL_SERVER

Como criar um grupo de nós a partir de um modelo de nó

Crie um grupo de nós a partir de um modelo de nó criado anteriormente e especifique a política de manutenção de VM.

gcloud

gcloud beta compute sole-tenancy node-groups create group-name  --node-template template-name  --target-size group-size  --zone zone  --maintenance-policy maintenance-policy

Substitua:

  • group-name: nome do grupo de nós a ser criado;
  • template-name: nome do modelo de nó a partir do qual o grupo de nós será criado;
  • group-size: tamanho inicial do grupo de nós;
  • zone: a zona em que o grupo de nós será criado.
  • maintenance-policy: política de manutenção do grupo de nós. Defina como um dos seguintes:
    • migrate-within-node-group
    • restart-in-place
    • default

API

POST https://www.googleapis.com/compute/beta/projects/project-id/zones/zone/nodeGroups?initialNodeCount=target-size

{
  "nodeTemplate": "/regions/region/nodeTemplates/template-name",
  "name": "group-name",
  "maintenancePolicy": "maintenance-policy"
}

Substitua:

  • project-id: ID do projeto em que você criará o grupo de nós;
  • zone: a zona em que o grupo de nós será criado. Ela precisa estar na mesma região que o modelo de nós usado;
  • target-size: número de nós a serem criados no grupo;
  • region: região onde o modelo de nó está localizado;
  • template-name: nome do modelo de nó a ser usado para criar esse grupo;
  • group-name: nome do novo grupo de nós;
  • maintenance-policy: política de manutenção do grupo de nós. Defina como um dos seguintes:
    • MIGRATE_WITHIN_NODE_GROUP
    • RESTART_IN_PLACE
    • DEFAULT

Como provisionar uma VM no grupo de nós

Provisione uma VM no grupo de nós e especifique o comportamento de reinicialização da VM. Se, anteriormente, você especificou que os grupos de nós reiniciassem VMs hospedadas no mesmo grupo de nós durante um evento de manutenção, especifique se a nova VM faz uma das seguintes ações quando você criar uma nova instância de VM no grupo:

  • Migra após uma reinicialização devido a um evento de manutenção.
  • Encerra e reinicia no mesmo host. Se o mesmo host não estiver disponível, um novo servidor será provisionado e o ID físico do host anterior não será reutilizado.

gcloud

gcloud compute instances create vm-name  --custom-cpu num-cpus  --custom-memory gb-memory  --image image-name  --zone zone  --node-group group-name  restart-behavior  --maintenance-policy maintenance-policy

Substitua:

  • vm-name: nome da VM que você está criando;
  • num-cpus: número de CPUs na nova VM;
  • gb-memory: quantidade de memória, em GB, na nova VM;
  • image-name: nome da imagem a partir da qual essa VM será criada;
  • zone: zona em que a VM será criada;
  • group-name: nome do grupo de nós em que a VM será provisionada;
  • restart-behavior: comportamento de reinicialização dessa VM. Especifique uma destas opções:
    • --restart-on-failure
    • --no-restart-on-failure
  • maintenance-policy: comportamento da VM durante eventos de manutenção. Especifique uma das seguintes opções, dependendo do seu caso:
    • MIGRATE
    • TERMINATE

API

POST https://www.googleapis.com/compute/v1/projects/project-id/zones/vm-zone/instances

{
  "machineType": "/zones/machine-type-zone/machineTypes/custom-num-cpus-mb-memory",
  "name": "vm-name",
  "scheduling": {
    "nodeAffinities": [
      {
        "key": "node-group",
        "operator": "IN",
        "values": [
        "group-name"
        ]
      }
    ],
    "onHostMaintenance": "maintenance-policy",
    "automaticRestart": "restart-behavior"
  },
  "networkInterfaces": [
    {
     "network": "/global/networks/network",
     "subnetwork": "/regions/region/subnetworks/subnetwork"
    }
  ],
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "/projects/image-project/global/images/family/image-family"
       }
    }
  ]
}

Substitua:

  • project-id: ID do projeto em que a VM será criada;
  • vm-zone: zona em que a VM será criada;
  • machine-type-zone: zona que contém o tipo de máquina;
  • num-cpus: número de CPUs na nova VM;
  • mb-memory: quantidade de memória, em MB, na nova VM;
  • vm-name: nome da nova VM;
  • group-name: nome do grupo de nós em que a VM será criada;
  • maintenance-policy: comportamento de manutenção dessa VM. Defina como uma das seguintes opções, dependendo do seu cenário:
    • MIGRATE
    • TERMINATE
  • restart-behavior: comportamento de reinicialização dessa VM. O valor padrão é true;
  • network: nome da rede a qual a VM será conectada;
  • subnetwork: nome da sub-rede a qual a VM será conectada;
  • image-project: projeto de imagem que contém a imagem de origem;
  • image-family: família de imagens da imagem de origem.

A seguir