Configurar discos persistentes para serem com estado permite-lhe beneficiar da autorreparação de instâncias de VM e das atualizações automáticas, ao mesmo tempo que preserva o estado dos discos.
Pode configurar qualquer disco definido no modelo de instância para ser com estado para todas as instâncias num grupo de instâncias gerido (MIG) adicionando o nome do dispositivo desse disco à política com estado do MIG.
Também pode configurar discos persistentes com estado individualmente para instâncias num MIG definindo configurações por instância; estes discos não têm de ser definidos no modelo de instância.
Antes de começar
- Reveja quando usar MIGs com estado e como funcionam os MIGs com estado.
-
Se ainda não o tiver feito, configure a autenticação.
A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-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
-
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
- Set a default region and zone.
Terraform
Para usar os exemplos do Terraform nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as credenciais predefinidas da aplicação com as suas credenciais de utilizador.
Instale a CLI Google Cloud.
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para mais informações, consulte Set up authentication for a local development environment.
REST
Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.
Instale a CLI Google Cloud.
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.
Limitações
Um MIG com uma configuração com estado, ou seja, um MIG com estado, tem as seguintes limitações:
- Não pode usar o dimensionamento automático se o MIG tiver uma configuração com estado.
- Se quiser usar atualizações contínuas automáticas, tem de definir o
método de substituição
como
RECREATE
. - Para os MIGs regionais com estado, tem de desativar a redistribuição proativa (defina o tipo de redistribuição como
NONE
) para impedir a eliminação de instâncias com estado pela redistribuição automática entre zonas. Se usar uma configuração de todas as instâncias para substituir as propriedades do modelo de instância, não pode especificar essas propriedades em nenhuma configuração por instância e, ao mesmo tempo, na configuração de todas as instâncias do grupo.
Um MIG regional com estado não orquestra automaticamente a comutação por falha entre zonas. Quando usa um MIG regional, pode tornar a sua aplicação com estado resiliente a falhas zonais implementando réplicas redundantes em várias zonas e contando com a funcionalidade de replicação de dados da sua aplicação.
Quando usar discos persistentes com estado
Use discos persistentes com estado para tirar partido da autorreparação da VM e das atualizações automáticas, preservando os dados nos discos. Para mais informações, consulte os exemplos de utilização de MIGs com estado.
Quando configura discos com estado, estes discos são preservados através da autorreparação, das atualizações e da recriação da instância da VM. No entanto, isto também significa que os discos com estado não podem ser recriados a partir da imagem original nem atualizados para uma nova imagem.
Como prática recomendada, sugerimos que mantenha os discos de arranque sem estado.
Manter o disco de arranque sem estado tem as seguintes vantagens:
- Pode reparar um disco de arranque que foi danificado recriando-o a partir da respetiva imagem original. A autorreparação faz essas reparações automaticamente.
- Pode atualizar um disco de arranque para a imagem mais recente com novas versões e patches de segurança.
Para mais informações, veja como a recuperação automática e a atualização processam o estado preservado.
Configurar discos persistentes com estado para todas as VMs num MIG
Configure qualquer disco definido num modelo de instância para ser com estado adicionando o nome do dispositivo desse disco à política com estado do MIG. O GIG trata os discos com esse nome de dispositivo como com estado para todas as instâncias de VMs existentes e futuras.
Configurar discos com estado na criação de MIGs
Consola
Na Google Cloud consola, aceda à página Grupos de instâncias.
Selecione o projeto e clique em Continuar.
Clique em Criar grupo de instâncias.
Selecione Novo grupo de instâncias geridas (com estado).
Especifique um Nome para o grupo de instâncias.
Selecione um modelo de instância. Se não estiverem disponíveis modelos, crie um modelo de instância.
No campo Número de instâncias, especifique o número de instâncias para o grupo de instâncias.
A secção Configuração com estado apresenta os discos especificados no modelo de instância. Clique num disco para editar a respetiva configuração com estado.
- Em Com estado, selecione Sim.
No menu pendente Na eliminação permanente da instância, selecione a ação a realizar no disco com estado quando a instância de VM for eliminada. As opções disponíveis são:
- Desanexar disco: (predefinição.) Nunca elimine o disco; desassocie o disco quando a VM for eliminada.
- Eliminar disco: elimina o disco com estado quando a respetiva VM é eliminada permanentemente do grupo de instâncias, por exemplo, quando a instância gerida é eliminada manualmente ou quando o tamanho do grupo é reduzido.
Depois de concluir a configuração com estado, clique em Concluído.
Clique em Criar.
gcloud
Para especificar que discos de um modelo de instância devem ter estado no momento da criação do MIG, use a flag
--stateful-disk
com o comandogcloud compute instance-groups managed create
:gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --template INSTANCE_TEMPLATE \ --size SIZE \ --stateful-disk device-name=DEVICE_NAME[,auto-delete=DELETE_RULE]
Substitua o seguinte:
INSTANCE_GROUP_NAME
: o nome do grupo de instâncias gerido a criar.INSTANCE_TEMPLATE
: o nome do modelo de instância a usar quando criar instâncias.SIZE
: o número inicial de VMs de que precisa neste grupo.DEVICE_NAME
: o nome do dispositivo de um disco especificado no modelo de instância.DELETE_RULE
: um valor que determina o que deve acontecer a um disco com estado quando uma VM é eliminada. As opções disponíveis são:never
: (predefinição.) Nunca elimine o disco. Em vez disso, desassocie o disco quando a respetiva VM for eliminada.on-permanent-instance-deletion
: elimine o disco quando a respetiva instância de VM for eliminada permanentemente do grupo de instâncias, por exemplo, quando a instância gerida é eliminada manualmente ou quando o tamanho do grupo é reduzido.
Independentemente do valor da regra de eliminação, os discos com estado são sempre preservados nas operações de autocorreção, atualização e recriação de VMs.
Exemplo
Quer implementar uma base de dados com 12 partições, cada uma com um disco de arranque sem estado que contenha o sistema operativo e os binários da base de dados, e cada uma com um disco de dados com estado. Siga os passos seguintes:
Crie um modelo de instância com um disco de arranque sem estado com base na imagem
img-example-db-v01
, que tem um SO e uma base de dados pré-instalados, e com um disco de dados com estado:gcloud compute instance-templates create example-database-template-v01 \ --image img-example-db-v01 \ --create-disk device-name=data-disk,mode=rw,image=empty10GBext4
A flag
--create-disk
indica ao MIG que:- Crie um novo disco de 10 GB para cada instância de VM a partir de uma imagem ext4 vazia, preparada antecipadamente.
- Anexe o disco à respetiva VM no modo de leitura/escrita através do nome do dispositivo
data-disk
.
Crie um MIG a partir do modelo de instância e defina o disco de dados como Stateful:
gcloud compute instance-groups managed create example-database-group \ --template example-database-template-v01 \ --base-instance-name shard \ --size 12 \ --stateful-disk device-name=data-disk,auto-delete=on-permanent-instance-deletion
O nome do dispositivo
data-disk
é retirado do modelo de instância. O disco de dados está configurado para ser eliminado juntamente com a instância de VM quando a VM é eliminada permanentemente (devido à eliminação manual da instância ou à diminuição manual do tamanho do grupo). O disco de dados é preservado na autorreparação, nas atualizações e na recriação da VM.Verifique se o disco de dados está configurado na política com estado:
gcloud compute instance-groups managed describe example-database-group baseInstanceName: shard ... name: example-database-group ... statefulPolicy: preservedState: disks: data-disk: autoDelete: ON_PERMANENT_INSTANCE_DELETION ...
Pode ver que a política com estado declara os discos com o nome do dispositivo
data-disk
como com estado, com uma regra para eliminar esses discos na eliminação permanente da VM.
Terraform
Se ainda não criou um modelo de instância, que especifica o tipo de máquina, a imagem do disco de arranque, a rede e outras propriedades da VM que quer para cada VM no MIG, crie um modelo de instância.
O exemplo seguinte cria um MIG zonal com um disco com estado. Para especificar que disco do modelo de instância deve ter estado no momento da criação do MIG, inclua o bloco
stateful_disk
. Para mais informações sobre o recurso usado no exemplo, consulte o recursogoogle_compute_instance_group_manager
. Para criar um GIG regional, use o recursogoogle_compute_region_instance_group_manager
.Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.
REST
Para especificar que discos do modelo de instância devem ter estado no momento da criação do MIG, inclua-os no campo
statefulPolicy
no corpo do pedido doinstanceGroupManagers.insert
método:POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers { "name": "NAME", "versions": [ { "instanceTemplate": "global/instanceTemplates/TEMPLATE" } ], "targetSize": SIZE, "statefulPolicy": { "preservedState": { "disks": { "DEVICE_NAME": {"autoDelete": "DELETE_RULE" }, "DEVICE_NAME": {"autoDelete": "DELETE_RULE" } } } } }
Substitua o seguinte:
PROJECT
: o ID do projeto para o pedido.ZONE
: A zona onde o GIG está localizado (aplica-se a um GIG zonal).- Para um MIG regional, substitua
zones/ZONE
porregions/REGION
e especifique a região do MIG.
- Para um MIG regional, substitua
NAME
: o nome do MIG a criar.TEMPLATE
: O nome do modelo de instância a usar quando criar instâncias.SIZE
: o número inicial de instâncias de que precisa neste grupo.DEVICE_NAME
: o nome do dispositivo de um disco especificado no modelo de instância.DELETE_RULE
: um valor que prescreve o que deve acontecer ao disco com estado quando a instância de VM é eliminada. As opções disponíveis são:never
: (predefinição.) Nunca elimine o disco; desassocie o disco quando a VM for eliminada.on_permanent_instance_deletion
: elimine o disco com estado quando a respetiva VM for eliminada permanentemente do grupo de instâncias, por exemplo, quando a instância gerida é eliminada manualmente ou quando o tamanho do grupo é reduzido.
Exemplo
Quer implementar uma base de dados com 12 partições, cada uma com um disco de arranque sem estado que contenha o sistema operativo e os binários da base de dados, e cada uma com um disco de dados com estado. Siga os passos seguintes.
Crie um modelo de instância com um disco de arranque sem estado com base na imagem
img-example-db-v01
, com o SO e a base de dados pré-instalados, e com um disco de dados com estado, através do métodoinstanceTemplates.insert
:POST https://compute.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates { "name": "example-database-template-v01", "properties": { "machineType":"e2-standard-2", "disks": [ { "boot": true, "deviceName": "boot-disk", "initializeParams": { "sourceImage": "projects/example-project/global/images/mg-example-db-v01" } }, { "deviceName": "data-disk", "mode": "READ_WRITE", "initializeParams": { "sourceImage": "projects/example-project/global/images/empty10GBext4" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ] } }
O disco de dados no modelo de instância tem o nome do dispositivo
data-disk
e está configurado para ser criado a partir de uma imagem ext4 vazia, preparada antecipadamente, e para ser anexado no modo de leitura/escrita.Crie um MIG a partir do modelo de instância e defina o disco de dados como Stateful através do método
instanceGroupManagers.insert
:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers { "name": "example-database-group", "baseInstanceName": "shard", "versions": [ { "instanceTemplate": "global/instanceTemplates/example-database-template-v01" } ], "targetSize": 12, "statefulPolicy": { "preservedState": { "disks": { "data-disk": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" } } } } }
O MIG cria 12 instâncias, cada uma com um disco com as seguintes propriedades:
- Um nome do dispositivo,
data-disk
, retirado do modelo de instância. - Uma regra de eliminação para eliminar o disco de dados quando a VM é eliminada (devido à eliminação manual da instância ou à diminuição manual do tamanho do grupo).
- Uma entrada no estado preservado da política
(
preservedStateFromPolicy
) de cada instância gerida para que o disco de dados seja preservado na autorreparação, nas atualizações e na recriação de instâncias.
- Um nome do dispositivo,
Use o método
instanceGroupManagers.get
para verificar se o disco de dados está configurado na política com estado do novo recursoinstanceGroupManagers
:GET https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-group
{ "name": "example-database-group", "baseInstanceName": "shard", ... "statefulPolicy": { "preservedState": { "disks": { "data-disk": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" } } } } ... }
Pode ver que a política com estado declara os discos com o nome do dispositivo
data-disk
como com estado com a regra para eliminar esses discos na eliminação permanente da instância.
Definir e atualizar a configuração com estado para discos num MIG existente
Se executar uma aplicação com estado num MIG sem estado (um MIG sem qualquer configuração com estado), pode configurar os discos existentes definidos no modelo de instância para serem com estado para todas as instâncias neste MIG. Isto permite-lhe preservar os discos na recriação de instâncias, na autorreparação e nas operações de atualização, e opcionalmente nas operações de eliminação.
Pode fazer as seguintes operações:
- Adicione discos definidos no modelo de instância à política com estado de um MIG existente para os declarar como tendo estado. Isto marca os discos com o nome do dispositivo indicado como com estado para todas as instâncias existentes e futuras no MIG.
- Atualize a política com estado para alterar a configuração com estado para discos.
O MIG aplica a configuração atualizada na política com estado automaticamente e de forma assíncrona a todas as instâncias. As atualizações às configurações de disco numa política com estado não interrompem as VMs em execução. Para mais informações, consulte o artigo sobre como aplicar atualizações de políticas com estado.
Para um MIG regional, tem de desativar a redistribuição proativa de instâncias entre zonas antes de poder configurar discos com estado. Para mais informações, consulte como os grupos regionais processam o estado preservado.
Consola
Na Google Cloud consola, aceda à página Grupos de instâncias.
Clique no nome do grupo de instâncias no qual quer especificar a configuração com estado para o disco.
Clique em Editar para modificar o grupo de instâncias gerido.
Clique em Configuração com estado e por instância para expandir a secção.
Na secção Configuração do grupo, clique no disco que quer tornar com estado. Na secção expandida, faça o seguinte:
- Para Com estado, selecione Sim.
Na lista Na eliminação permanente da instância, selecione a ação a realizar no disco com estado quando a instância de VM for eliminada.
- Desanexar disco: (predefinição). Nunca elimine o disco; desassocie o disco quando a VM for eliminada.
Eliminar disco: elimina o disco com estado quando a respetiva VM é eliminada permanentemente do grupo de instâncias, por exemplo, quando a instância gerida é eliminada manualmente ou quando o tamanho do grupo é reduzido.
Depois de atualizar a configuração com estado, clique em Concluído.
Clique em Guardar para concluir a atualização.
gcloud
Para especificar que discos do modelo de instância devem ter estado ou para atualizar a configuração de discos com estado de um MIG existente, use uma ou várias flags
--stateful-disk
com o comandogcloud compute instance-groups managed update
:gcloud compute instance-groups managed update NAME \ --stateful-disk device-name=DEVICE_NAME[,auto-delete=DELETE_RULE]
Substitua o seguinte:
NAME
: o nome do grupo de instâncias gerido a atualizar.DEVICE_NAME
: o nome do dispositivo de um disco especificado no modelo de instância.DELETE_RULE
: um valor que prescreve o que deve acontecer ao disco com estado quando uma instância de VM é eliminada. As opções disponíveis são:never
: (predefinição.) Nunca elimine o disco. Desassocie o disco quando a respetiva instância for eliminada.on-permanent-instance-deletion
: eliminar o disco com estado quando a respetiva instância for eliminada permanentemente do grupo de instâncias, por exemplo, quando a instância gerida é eliminada manualmente ou quando o tamanho do grupo é reduzido.
Se um nome de dispositivo especificado já estiver configurado na política com estado, o comando atualiza a configuração.
Exemplo
Executa uma base de dados com vários fragmentos num MIG denominado
example-database- group
. Cada VM no MIG armazena um fragmento num disco adicional com o nome do dispositivodata-disk
, que é definido pelo modelo de instância. O MIG não tem uma configuração com estado e quer preservar os discos de dados na recriação, na autorreparação e nas atualizações de instâncias. Também quer proteger os discos de dados contra a eliminação quando uma VM é eliminada.Atualize o MIG para definir o disco de dados como com estado através do seguinte comando:
gcloud compute instance-groups managed update example-database-group \ --stateful-disk device-name=data-disk,auto-delete=never
Como resultado, o MIG aplica as atualizações de configuração da política com estado automaticamente e de forma assíncrona aos discos de dados de todas as instâncias. Os discos de dados são agora preservados na autorrecuperação, nas atualizações e na recriação de instâncias, e os discos de dados são desanexados na eliminação de instâncias porque a regra
auto-delete
está definida comonever
.Verifique se o disco de dados está configurado na política com estado executando o comando
gcloud compute instance-groups managed describe example-database-group
.
REST
Para especificar que discos do modelo de instância devem ser com estado ou para atualizar a configuração do disco com estado para um MIG existente, configure os discos na política com estado do MIG através do método
instanceGroupManagers.patch
:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers/NAME { "statefulPolicy": { "preservedState": { "disks": { "DEVICE_NAME": {"autoDelete": "DELETE_RULE" }, "DEVICE_NAME": {"autoDelete": "DELETE_RULE" } } } } }
Substitua o seguinte:
PROJECT
: o ID do projeto para o pedido.ZONE
: A zona onde o GIG está localizado (aplica-se a um GIG zonal).- Para um MIG regional, substitua
zones/ZONE
porregions/REGION
e especifique a região do MIG.
- Para um MIG regional, substitua
NAME
: o nome do MIG a atualizar.DEVICE_NAME
: o nome do dispositivo de um disco, especificado no modelo de instância, para o qual quer atualizar a configuração com estado.DELETE_RULE
: um valor que prescreve o que deve acontecer ao disco com estado quando uma instância de VM é eliminada. As opções disponíveis são:never
: (predefinição.) Nunca elimine o disco. Desassocie o disco quando a respetiva instância for eliminada.on-permanent-instance-deletion
: eliminar o disco com estado quando a respetiva instância for eliminada permanentemente do grupo de instâncias, por exemplo, quando a instância é eliminada manualmente ou quando o tamanho do grupo é reduzido.
Se o nome do dispositivo especificado já estiver configurado na política com estado, o método
patch
atualiza a respetiva configuração.Exemplo
Executa uma base de dados com vários fragmentos num MIG denominado
example-database- group
. Cada VM no MIG armazena um fragmento num disco adicional com o nome do dispositivodata-disk
, que é definido pelo modelo de instância. O MIG não tem uma configuração com estado e quer preservar os discos de dados na recriação, na autorreparação e nas atualizações de instâncias. Também quer proteger os discos de dados contra a eliminação quando uma VM é eliminada.Aplique uma correção ao MIG para definir o disco de dados como Stateful:
PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-group { "statefulPolicy": { "preservedState": { "disks": { "data-disk": {"autoDelete": "NEVER" } } } } }
O MIG aplica esta configuração com estado automaticamente e de forma assíncrona aos discos de dados de todas as instâncias. Os discos de dados são preservados na autorreparação, nas atualizações e na recriação de instâncias. Os discos de dados vão ser desanexados na eliminação da instância porque a regra
autoDelete
está definida comoNEVER
.Verifique se o disco de dados está configurado na política com estado ao ver o recurso
instanceGroupManagers
, devolvido pelo métodoinstanceGroupManagers.get
.
Declarar discos persistentes com estado anterior como sem estado
Pode ter de configurar um disco com estado para ser tratado como sem estado. Por exemplo:
- Se reestruturar a sua app para mover o estado do disco.
- Se configurou o disco para ser com estado por engano e quiser reverter a configuração.
Para declarar todos os discos com um determinado nome de dispositivo como sem estado, remova a configuração do disco da política com estado.
O MIG aplica a alteração à política com estado automaticamente e de forma assíncrona a todas as instâncias. As atualizações à configuração do disco numa política com estado não interrompem as instâncias de VM em execução.
Para mais informações, consulte o artigo Aplicação de atualizações de políticas com estado.
Consola
Na Google Cloud consola, aceda à página Grupos de instâncias.
Clique no nome do grupo de instâncias do qual quer remover a configuração com estado para discos.
Clique em Editar para modificar o grupo de instâncias gerido.
Clique em Configuração com estado e por instância para expandir a secção.
Na secção Configuração do grupo, clique nos discos com estado que quer tornar sem estado. Na secção expandida, faça o seguinte:
- Altere a opção Com estado para Não.
- Clique em Concluído.
Depois de fazer as alterações, clique em Guardar.
gcloud
Para especificar os discos de uma política com estado de um MIG que devem ser sem estado, use o sinalizador
--remove-stateful-disks
com o comandogcloud compute instance-groups managed update
:gcloud compute instance-groups managed update NAME \ --remove-stateful-disks DEVICE_NAME[,DEVICE_NAME,...]
Substitua o seguinte:
NAME
: o nome do MIG a atualizar.DEVICE_NAME
: o nome do dispositivo de um disco a remover da política com estado e a tratar como sem estado. Pode indicar um ou vários nomes de dispositivos na lista.
Exemplo
Executa uma aplicação antiga com vários nós num MIG denominado
example-legacy-group
. Cada VM no MIG armazena dados da aplicação num disco de arranque com o nome do dispositivoboot-disk
, que configurou como com estado na política com estado do MIG. Moveu os dados da aplicação para um disco adicional e agora quer tornar o disco de arranque sem estado para facilitar a atualização para novas imagens.Para remover a configuração com estado do disco de arranque, atualize o grupo de instâncias gerido:
gcloud compute instance-groups managed update example-legacy-group \ --remove-stateful-disks boot-disk
O MIG remove a configuração com estado para o nome do dispositivo
boot-disk
de forma automática e assíncrona para os discos de arranque de todas as instâncias no grupo. Os discos de arranque permanecem associados às instâncias, mas deixam de ter estado. Quando recria ou atualiza as instâncias, ou quando as instâncias são reparadas automaticamente, o MIG recria os discos de arranque a partir da imagem especificada no modelo de instância.REST
Para especificar que discos de uma política com estado de um MIG devem ser sem estado, remova a configuração de cada disco da política com estado do MIG através do método
instanceGroupManagers.patch
:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers/NAME { "statefulPolicy": { "preservedState": { "disks": { "DEVICE_NAME": null, ... } } } }
Substitua o seguinte:
PROJECT
: o ID do projeto para o pedido.ZONE
: A zona onde o GIG está localizado (aplica-se a um GIG zonal).- Para um MIG regional, substitua
zones/ZONE
porregions/REGION
e especifique a região do MIG.
- Para um MIG regional, substitua
NAME
: o nome do MIG a atualizar.DEVICE_NAME
: o nome do dispositivo de um disco que quer remover da política com estado. Se fornecer um valornull
, a configuração com estado desse disco é removida. Pode indicar um ou vários nomes de dispositivos a remover.
Exemplo
Executa uma aplicação antiga com vários nós num MIG denominado
example-legacy-group
. Cada VM no MIG armazena dados da aplicação num disco de arranque com o nome do dispositivoboot-disk
, que configurou como Stateful na política Stateful do MIG. Moveu os dados da aplicação para um disco adicional e agora quer tornar o disco de arranque sem estado para facilitar a atualização para novas imagens.Para remover a configuração com estado do disco de arranque, aplique uma patch ao grupo de instâncias gerido:
PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group { "statefulPolicy": { "preservedState": { "disks": { "boot-disk": null } } } }
O MIG remove a configuração com estado para o nome do dispositivo
boot-disk
de forma automática e assíncrona para os discos de arranque de todas as instâncias no grupo. Os discos de arranque permanecem associados às instâncias, mas deixam de ter estado. Quando recria ou atualiza as instâncias, ou quando as instâncias são reparadas automaticamente, o MIG recria os discos de arranque a partir da imagem especificada no modelo de instância.Remover discos persistentes com estado de um MIG
Pode ter de remover completamente um disco com estado de instâncias num MIG, por exemplo, se tiver reestruturado a sua aplicação e movido o estado para fora desse disco.
Os MIGs não permitem a remoção de discos com estado, pelo que tem de seguir os seguintes passos:
- Remova a configuração com estado do disco da política com estado. Isto torna os discos com o nome do dispositivo indicado sem estado.
- Desassocie os discos das VMs se ainda os quiser manter.
- Implemente um novo modelo de instância que já não defina o disco com o nome do dispositivo indicado.
Configurar discos persistentes com estado individualmente para uma VM num MIG
Configure discos persistentes com estado para uma VM específica num MIG adicionando o nome do dispositivo do disco à configuração por instância dessa VM. Atualize a VM para aplicar a configuração por instância e torná-la eficaz.
Configurar discos persistentes com estado individualmente para VMs específicas num MIG é útil se precisar de:
- Migre cargas de trabalho existentes (traga discos existentes) de VMs autónomas para GIGs com estado para beneficiar da autorreparação e de atualizações fáceis.
- Restaurar cópias de segurança de discos, configuradas individualmente para VMs.
- Anexe discos com estado adicionais a uma VM específica temporariamente para testar, depurar ou copiar dados.
Adicionar discos com estado existentes a novas VMs num MIG
Pode adicionar discos com estado a novas instâncias que criar manualmente num MIG. Isto é útil para migrar uma aplicação com estado de VMs autónomas existentes para um MIG com estado, por exemplo:
- Crie um modelo de instância com uma configuração comum para todas as instâncias de VM.
- Desanexe os discos de dados das instâncias autónomas e elimine estas instâncias. Também pode desassociar discos de arranque se contiverem um estado que deva ser preservado.
- Crie um MIG vazio com o modelo de instância criado anteriormente.
Crie instâncias no MIG com os nomes adequados e os discos associados do passo anterior. O MIG responde ao seu pedido com as seguintes ações:
- Cria uma VM a partir do modelo de instância com o nome da instância fornecido.
- Um MIG regional cria a VM na mesma zona onde o disco está localizado. Se o disco for regional, o MIG regional cria a VM em qualquer uma das zonas de réplica do disco.
- Cria uma configuração por instância com a configuração com estado fornecida para os discos.
- Anexa os discos à nova instância.
- Cria uma VM a partir do modelo de instância com o nome da instância fornecido.
Adicione discos com estado existentes quando criar manualmente instâncias específicas num MIG através da CLI gcloud ou da API REST. O MIG aplica a configuração imediatamente na criação da VM.
gcloud
Para criar uma VM com um nome personalizado e anexar um ou mais discos com estado existentes a essa VM, use o comando
gcloud compute instance-groups managed create-instance
com uma ou várias flags--stateful-disk
.gcloud compute instance-groups managed create-instance NAME \ --instance VM_NAME \ [--zone ZONE | --region REGION] \ --stateful-disk device-name=DEVICE_NAME,source=DISK[,mode=MODE][,auto-delete=DELETE_RULE]
Substitua o seguinte:
NAME
: o nome do MIG no qual tem de criar uma instância.VM_NAME
: o nome da nova instância a criar.ZONE
: a zona onde o GIG está localizado (aplica-se a um GIG zonal).REGION
: a região onde a GIG está localizada (aplica-se a uma GIG regional).DEVICE_NAME
: O nome do dispositivo a usar quando anexar o disco.DISK
: O URI de um disco persistente existente a anexar noDEVICE_NAME
especificado no formatoprojects/project-id/zones/zone/disks/disk-name
para um disco zonal eprojects/project-id/regions/region/disks/disk-name
para um disco regional.MODE
: especifica o modo do disco. As opções suportadas são:ro
: só de leitura.rw
: (predefinição.) Leitura/escrita.
DELETE_RULE
: um valor que prescreve o que deve acontecer a um disco com estado quando uma instância de VM é eliminada. As opções disponíveis são:never
: (predefinição.) Nunca elimine o disco. Em alternativa, desanexe o disco quando a respetiva instância for eliminada.on-permanent-instance-deletion
: eliminar o disco com estado quando a respetiva instância for eliminada permanentemente do grupo de instâncias, por exemplo, quando a instância é eliminada manualmente ou quando o tamanho do grupo é reduzido.
Independentemente do valor da regra de eliminação, os discos com estado são sempre preservados nas operações de autocorreção, atualização e recriação de instâncias.
Exemplo
Quer ter a autocorreção para um servidor de base de dados que está atualmente em execução numa VM autónoma denominada
db-instance
e que armazena atualmente dados num disco denominadodb-data-disk-1
.Crie um GIG com estado com autorreparação, crie uma VM semelhante no GIG e anexe o disco de dados existente
db-data-disk-1
à nova instância como um disco com estado:- Parar a VM,
db-instance
, durante um período de manutenção. - Crie um modelo de instância
denominado
db-template
com a configuraçãodb-instance
. - Desassocie
db-data-disk-1
dedb-instance
e eliminedb-instance
. - Crie um GIG vazio,
example-database-mig
, a partir dedb-template
e configure a autorreparação. Crie uma instância gerida com o nome
db-instance
original e anexe odb-data-disk-1
como um disco com estado:gcloud compute instance-groups managed create-instance example-database-mig \ --instance db-instance \ --zone us-east1-c \ --stateful-disk device-name=data-disk,source=projects/example-project/zones/us-east1-c/disks/db-data-disk-1,auto-delete=never
O comando cria uma instância,
db-instance
, no GIG, cria uma configuração por instância correspondente com o disco com estadodb-data-disk-1
e anexa o disco à nova VM, usandodata-disk
como o nome do dispositivo.
REST
Para criar uma ou várias instâncias num MIG, definir nomes de VMs personalizados e anexar um ou vários discos com estado existentes a estas instâncias, use o método
instanceGroupManagers.createInstances
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/createInstances { "instances": [ { "name": "VM_NAME", "preservedState" : { "disks": { "DEVICE_NAME" : { "source": "DISK", "mode": "MODE", "autoDelete": "DELETE_RULE" }, ... } } }, ... ] }
Substitua o seguinte:
PROJECT_ID
: ID do projeto para o pedido.ZONE
: A zona onde o GIG está localizado (aplica-se a um GIG zonal).- Para um MIG regional, substitua
zones/ZONE
porregions/REGION
e especifique a região do MIG.
- Para um MIG regional, substitua
NAME
: o nome do MIG no qual criar uma instância.VM_NAME
: o nome da instância a criar.DEVICE_NAME
: O nome do dispositivo a usar quando anexar o disco.DISK
: o URI de um disco persistente existente a anexar noDEVICE_NAME
especificado no formatoprojects/project-id/zones/zone/disks/disk-name
para um disco zonal ouprojects/project-id/regions/region/disks/disk-name
para um disco regional.MODE
: especifica o modo do disco. As opções suportadas são:READ_ONLY
: só de leitura.READ_WRITE
: (predefinição.) Leitura/escrita.
DELETE_RULE
: um valor que determina o que deve acontecer a um disco com estado quando uma VM é eliminada. As opções disponíveis são as seguintes:never
: (predefinição.) Nunca elimine o disco. Em vez disso, desassocie o disco quando a respetiva VM for eliminada.on-permanent-instance-deletion
: eliminar o disco com estado quando a respetiva instância for eliminada permanentemente do grupo de instâncias, por exemplo, quando a instância é eliminada manualmente ou quando o tamanho do grupo é reduzido.
Independentemente do valor da regra de eliminação, os discos com estado são sempre preservados nas operações de autocorreção, atualização e recriação de instâncias.
Exemplo
Quer ter a autocorreção para um servidor de base de dados que está atualmente em execução numa VM autónoma denominada
db-instance
e que armazena atualmente dados num disco denominadodb-data-disk-1
.Crie um GIG com estado com autorreparação, crie uma instância semelhante no GIG e anexe o disco de dados existente
db-data-disk-1
à nova VM como um disco com estado:- Parar a VM,
db-instance
, durante um período de manutenção. - Crie um modelo de instância
denominado
db-template
com a configuraçãodb-instance
. - Separe
db-data-disk-1
dedb-instance
e eliminedb-instance
. - Crie um GIG vazio,
example-database-mig
, a partir dedb-template
e configure a autorreparação. Crie uma instância com o nome original
db-instance
e anexe odb-data-disk-1
como um disco com estado:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/createInstances { "instances": [ { "name": "db-instance", "preservedState" : { "disks": { "data-disk" : { "source": "projects/example-project/zones/us-east1-c/disks/db-data-disk-1", "mode": "READ_WRITE", "autoDelete": "never" } } } } ] }
O método cria uma instância,
db-instance
, no MIG, cria uma configuração por instância correspondente com o disco com estadodb-data-disk-1
e anexa o disco à nova instância, usandodata-disk
como nome do dispositivo.
Adicionar, declarar e substituir discos com estado individualmente para VMs num MIG
Configure discos com estado individualmente para uma instância gerida adicionando ou atualizando uma configuração de disco com estado na configuração por instância associada. Em seguida, atualize a instância para aplicar a configuração por instância à VM.
Configurar discos com estado individualmente é útil para as seguintes tarefas:
- Adicionar um disco com estado de fora de um MIG a uma VM nesse MIG.
- Declarar um disco anteriormente sem estado como com estado para uma VM num MIG.
- Substituir um disco com estado por um disco diferente para uma VM num MIG.
Adicionar um disco com estado de fora de um MIG a uma VM nesse MIG. Pode anexar qualquer disco de fora de um MIG a uma instância gerida adicionando a configuração com estado do disco à configuração por instância associada. Depois de aplicar a configuração, o GIG anexa automaticamente o disco à instância e trata-o como com estado.
Declarar um disco persistente anteriormente sem estado como com estado. Pode declarar um disco anteriormente sem estado, atualmente anexado a uma VM, como com estado adicionando a configuração com estado para este disco, incluindo o nome do dispositivo e o URI, à configuração por instância associada. Depois de aplicar a configuração, o MIG começa a preservar o disco como Stateful.
Substituir um disco com estado por um disco diferente. A substituição de um disco com estado por outro disco com estado pode ser útil, por exemplo, se precisar de aceder a uma cópia de segurança recuperada. Pode trocar um disco com estado por outro atualizando o URI do disco, mantendo o mesmo nome do dispositivo na configuração por instância. Depois de aplicar a configuração atualizada por instância, o MIG desanexa o disco antigo e anexa o novo com o mesmo nome do dispositivo. Quando aplicar a atualização, escolha se quer manter a instância em execução, reiniciá-la ou recriá-la. A troca de um disco de arranque requer, pelo menos, o reinício de uma VM.
gcloud
Para configurar discos com estado individualmente para uma VM num MIG, adicione ou atualize a configuração de disco com estado na configuração por instância associada. Em seguida, atualize a instância para aplicar a configuração.
Se não existir uma configuração por instância para a instância, use o comando
gcloud compute instance-groups managed instance-configs create
com uma ou várias flags--stateful-disk
:gcloud compute instance-groups managed instance-configs create NAME \ --instance VM_NAME \ --stateful-disk device-name=DEVICE_NAME[,source=DISK][,mode=MODE][,auto-delete=DELETE_RULE] \ [--no-update-instance | --update-instance] \ [--instance-update-minimal-action MINIMAL_ACTION]
Se já existir uma configuração por instância para a instância, use o comando
gcloud compute instance-groups managed instance-configs update
com uma ou várias flags--stateful-disk
.A flag
--update-instance
(predefinição) aplica as alterações imediatamente à instância. Se usar--no-update-instance
, as alterações permanecem não aplicadas e são aplicadas quando recria ou atualiza a instância.gcloud compute instance-groups managed instance-configs update NAME \ --instance VM_NAME \ --stateful-disk device-name=DEVICE_NAME[,source=DISK][,mode=MODE][,auto-delete=DELETE_RULE] \ [--no-update-instance | --update-instance] \ [--instance-update-minimal-action MINIMAL_ACTION]
Substitua o seguinte:
NAME
: o nome do grupo de instâncias gerido.VM_NAME
: o nome da instância de VM para a qual configurar discos com estado.DEVICE_NAME
: o nome do dispositivo usado para anexar o disco.DISK
: O URI de um disco persistente existente a anexar noDEVICE_NAME
especificado, no formatoprojects/project-id/zones/zone/disks/disk-name
para um disco zonal eprojects/project-id/regions/region/disks/disk-name
para um disco regional.A subflag
source=DISK
é opcional se o dispositivo já estiver definido na configuração por instância da instância. Caso contrário, é obrigatório.Se for omitido, o URI do disco configurado atualmente permanece inalterado.
MODE
: especifica o modo do disco. Só pode especificarmode
se também especificarsource
. As opções suportadas são:ro
: só de leitura.rw
: (predefinição.) Leitura/escrita.
Se for omitido, o valor predefinido é definido para uma nova configuração de disco com estado; o valor permanece inalterado numa configuração existente.
DELETE_RULE
: um valor que determina o que deve acontecer a um disco com estado quando uma VM é eliminada. As opções disponíveis são as seguintes:never
: (predefinição.) Nunca elimine o disco. Em alternativa, desanexe o disco quando a respetiva instância for eliminada.on-permanent-instance-deletion
: elimine o disco com estado quando a respetiva instância for eliminada permanentemente do grupo de instâncias, por exemplo, quando a instância é eliminada manualmente ou quando o tamanho do grupo é reduzido.
Se for omitido, o valor predefinido é definido para uma nova configuração de disco com estado; o valor permanece inalterado numa configuração existente.
Independentemente do valor da regra de eliminação, os discos com estado são sempre preservados nas operações de autocorreção, atualização e recriação de instâncias.
MINIMAL_ACTION
: execute, pelo menos, a ação especificada quando aplicar a atualização da configuração por instância à instância. Tem de ser usado em conjunto com a flag--update-instance
. O valor tem de ser um dos seguintes:none
: nenhuma ação.refresh
: aplique atualizações que sejam possíveis aplicar sem parar a VM.restart
: pare a VM e, em seguida, inicie-a novamente.replace
: recrie a VM.
Se for omitido, é usada a ação menos disruptiva exigida pela atualização.
Exemplo
Os dados num disco com estado atualmente anexado,
data-disk-1
, foram danificados e quer restaurá-los a partir da cópia de segurança mais recente. Criou um disco,data-disk-2
, a partir de um instantâneo para substituir o disco danificado na instância,db-instance-1
, gerida por um MIG com estado,example-database-mig
. O disco originaldata-disk-1
está anexado com o nome do dispositivodata-disk
com uma regra de eliminação automática para nunca eliminar o disco.Para substituir
data-disk-1
pordata-disk-2
, execute o seguinte comando:gcloud compute instance-groups managed instance-configs update example-database-mig \ --instance db-instance-1 \ --stateful-disk device-name=data-disk,source=projects/example-project/zones/us-east1-c/disks/data-disk-2 \ --update-instance \ --instance-update-minimal-action restart
O comando faz o seguinte:
- Atualiza a configuração por instância para
db-instance-1
:- Atualiza a origem do disco com o nome do dispositivo
data-disk
dedata-disk-1
(última configuração) paradata-disk-2
(nova configuração). - Mantém a regra de eliminação automática para nunca eliminar o disco porque o parâmetro
auto-delete
é omitido na flag--stateful-disk
e, por predefinição, a regra de eliminação énever
.
- Atualiza a origem do disco com o nome do dispositivo
- Aplica imediatamente a atualização de configuração por instância à VM
db-instance-1
porque a flag--update-instance
está incluída. O MIG separa-sedata-disk-1
e volta a ligar-sedata-disk-2
com o mesmo nome do dispositivo,data-disk
. - Uma vez que a ação mínima está definida como
restart
, o MIG reinicia a instânciadb-instance-1
para atualizar a VM, o que ajuda a aplicação de base de dados a começar a usar o novo disco.
Terraform
Para configurar discos com estado individualmente para uma VM num MIG, adicione a configuração do disco com estado na configuração por instância associada. Em seguida, atualize a instância para aplicar a configuração.
Para adicionar uma configuração por instância para uma VM, use o recurso
google_compute_per_instance_config
e inclua o blocopreserved_state
, conforme mostrado no exemplo seguinte.Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.
REST
Para configurar discos com estado individualmente para VMs num MIG, adicione ou atualize a configuração do disco com estado nas configurações por instância associadas. Em seguida, atualize as instâncias para aplicar a configuração.
Se ainda não existirem configurações por instância para as VMs indicadas, use o método
instanceGroupManagers.updatePerInstanceConfigs
ou o métodoregionInstanceGroupManagers.updatePerInstanceConfigs
com configuração com estado para um ou vários discos:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/updatePerInstanceConfigs { "perInstanceConfigs": [ { "name": "VM_NAME", "preservedState" : { "disks": { "DEVICE_NAME" : { "source": "DISK", "mode": "MODE", "autoDelete": "DELETE_RULE" }, ... } }, "fingerprint: "FINGERPRINT" }, ... ] }
Se já existirem configurações por instância para as VMs indicadas, use o método
instanceGroupManagers.patchPerInstanceConfigs
ou o métodoregionInstanceGroupManagers.patchPerInstanceConfigs
com a configuração com estado para um ou vários discos:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "VM_NAME", "preservedState" : { "disks": { "DEVICE_NAME" : { "source": "DISK", "mode": "MODE", "autoDelete": "DELETE_RULE" }, ... } }, "fingerprint: "FINGERPRINT" }, ... ] }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto para o pedido.ZONE
: A zona onde o GIG está localizado (aplica-se a um GIG zonal).- Para um MIG regional, substitua
zones/ZONE
porregions/REGION
e especifique a região do MIG.
- Para um MIG regional, substitua
NAME
: o nome do MIG.VM_NAME
: o nome da VM para a qual configurar discos com estado.DEVICE_NAME
: o nome do dispositivo usado para anexar o disco.DISK
: O URI de um disco persistente existente a anexar noDEVICE_NAME
especificado, no formatoprojects/project-id/zones/zone/disks/disk-name
para um disco zonal eprojects/project-id/regions/region/disks/disk-name
para um disco regional.O campo
"source": "DISK"
é opcional se o dispositivo já estiver definido na configuração por instância da instância. Caso contrário, é obrigatório.Se o campo
source
for omitido, o URI do disco configurado atualmente permanece inalterado.MODE
: (opcional.) Especifica o modo do disco. Só é possível especificarmode
se for indicadosource
. As opções suportadas são:READ_ONLY
: só de leitura.READ_WRITE
: (predefinição.) Leitura/escrita.
Se for omitido, o valor predefinido é definido para uma nova configuração de disco com estado; o valor permanece inalterado numa configuração existente.
DELETE_RULE
: (opcional.) Um valor que prescreve o que deve acontecer a um disco com estado quando uma VM é eliminada. As opções disponíveis são as seguintes:- Nunca: (predefinição). Nunca elimine o disco. Em alternativa, desanexe o disco quando a respetiva instância for eliminada.
on-permanent-instance-deletion
: Eliminar o disco com estado quando a respetiva instância é eliminada permanentemente do grupo de instâncias, por exemplo, quando a instância é eliminada manualmente ou quando o tamanho do grupo é reduzido.
Se o campo
autoDelete
for omitido, o valor predefinido é definido para uma nova configuração de disco com estado; o valor permanece inalterado numa configuração existente.Independentemente do valor da regra de eliminação, os discos com estado são sempre preservados nas operações de autocorreção, atualização e recriação de instâncias.
FINGERPRINT
: (opcional). A impressão digital da configuração fornecida, se já existir. Usado para bloqueio otimista. Para ver a impressão digital mais recente, faça um pedidoget()
para obter o recurso.
Os métodos
updatePerInstanceConfigs
epatchPerInstanceConfigs
atualizam as configurações especificadas por instância, mas não aplicam as atualizações de configuração às VMs geridas associadas. As alterações são aplicadas a uma instância quando o MIG recebe instruções para recriar ou atualizar a instância. Também pode atualizar seletivamente a instância para aplicar as alterações.Exemplo
Os dados num disco com estado atualmente anexado,
data-disk-1
, foram danificados e quer restaurá-los a partir da cópia de segurança mais recente. Criou um disco,data-disk-2
, a partir de um instantâneo para substituir o disco danificado na instância,db-instance-1
, gerida por um MIG com estado,example-database-mig
. O disco originaldata-disk-1
está anexado com o nome do dispositivodata-disk
com uma regra de eliminação automática para nunca eliminar o disco.Para atualizar a configuração por instância para
db-instance-1
com o novo disco, chame o métodopatchPerInstanceConfigs
:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "db-instance-1", "preservedState" : { "disks": { "data-disk" : { "source": "projects/example-project/zones/us-east1-c/disks/data-disk-2" } } } } ] }
O método aplica patches à configuração por instância para
db-instance-1
:- Atualiza o
source
para um disco com o nome do dispositivodata-disk
dedata-disk-1
(última configuração) paradata-disk-2
(nova configuração). - Mantém os parâmetros
mode
eautoDelete
inalterados porque os parâmetros são omitidos no pedido.
A atualização da configuração ainda não foi aplicada à VM
db-instance-1
. O MIG aplica a atualização da configuração quando recria ou atualiza a instância.Para aplicar a atualização de configuração por instância à VM
db-instance-1
, chame o métodoinstanceGroupManagers.applyUpdatesToInstances
para a instância:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/applyUpdatesToInstances { "instances": ["/zones/us-east1-c/instances/db-instance-1"], "minimalAction": "RESTART" }
O método atualiza o estado preservado da instância gerida, desanexando
data-disk-1
e anexandodata-disk-2
com o mesmo nome do dispositivodata-disk
. Uma vez que o valor deminimalAction
está definido comoRESTART
, o método reinicia a VMdb-instance-1
, o que permite que a aplicação de base de dados comece a usar o novo disco.Desassociar um disco com estado ou declará-lo sem estado para uma VM individual
Pode ter de desassociar um disco com estado ou configurá-lo para ser tratado como sem estado para uma VM individual. Por exemplo:
- Se reestruturar a sua app para mover o estado do disco.
- Se configurar o disco como Stateful por engano e quiser reverter a configuração.
Desanexe um disco com estado ou torne-o sem estado para uma VM individual removendo a configuração com estado do disco da configuração por instância associada ou eliminando toda a configuração por instância. Quando aplica a alteração:
- Se o disco não estiver definido no modelo de instância, o MIG desanexa o disco.
- O MIG não elimina o disco quando elimina a respetiva configuração da configuração por instância, independentemente da regra de eliminação automática na configuração.
- Se o disco for definido pelo modelo de instância, o MIG trata o disco como sem estado, o que significa que o MIG recria o disco a partir da respetiva origem no modelo de instância em eventos subsequentes de recriação, atualização ou autorreparação de instâncias.
A remoção de uma configuração de disco de uma configuração por instância não reinicia uma instância de VM em execução, a menos que opte explicitamente por fazê-lo.
Para mais informações, consulte o artigo Aplicação de atualizações de configurações por instância.
gcloud
Para desanexar discos com estado ou declará-los sem estado individualmente para uma VM num MIG, remova a configuração do disco com estado da configuração por instância associada ou elimine toda a configuração por instância se não contiver outro estado. Atualize a instância para aplicar a configuração.
Para remover uma configuração de disco com estado da configuração por instância associada, use o comando
gcloud compute instance-groups managed instance-configs update
com a flag--remove-stateful-disks
. A flag--update-instance
(predefinição) aplica as alterações imediatamente à instância. Se usar--no-update-instance
, as alterações permanecem não aplicadas e são aplicadas quando recria ou atualiza a instância.gcloud compute instance-groups managed instance-configs update NAME \ --instance VM_NAME \ --remove-stateful-disks DEVICE_NAME[,DEVICE_NAME,...] \ [--no-update-instance | --update-instance] \ [--instance-update-minimal-action MINIMAL_ACTION]
Substitua o seguinte:
NAME
: o nome do MIG.VM_NAME
: nome da VM da qual remover a configuração com estado.DEVICE_NAME
: o nome do dispositivo usado para anexar o disco.MINIMAL_ACTION
: execute, pelo menos, a ação especificada quando atualizar a VM com a respetiva configuração por instância. Só pode ser usado em conjunto com o--update-instance
. O valor tem de ser um dos seguintes:none
: nenhuma ação.refresh
: aplique atualizações que sejam possíveis aplicar sem parar a VM.restart
: pare a VM e, em seguida, inicie-a novamente.replace
: recrie a VM.
Se for omitido, é usada a ação menos disruptiva exigida pela atualização.
Exemplo
Executa uma aplicação antiga num MIG denominado
example-legacy-group
. Cada VM no MIG armazena dados da aplicação num disco de arranque com o nome do dispositivoboot-disk
. Usando configurações por instância, configurou cada disco de arranque para ser com estado. Agora, moveu os dados da aplicação para um disco adicional e quer tornar o disco de arranque sem estado para cada VM de modo a facilitar a atualização para novas imagens.Para cada instância, por exemplo, para
node-1
, execute o comando:gcloud compute instance-groups managed instance-configs update example-legacy-group \ --instance node-1 \ --remove-stateful-disks boot-disk \ --update-instance
O comando faz o seguinte:
- Remove a configuração do disco com o nome do dispositivo
boot-disk
da configuração por instância paranode-1
. - Aplica imediatamente a atualização de configuração por instância à VM
node-1
porque a flag--update-instance
está incluída. O MIG remove o disco de arranque da instância gerida e trata o disco de arranque como sem estado, o que significa que o MIG recria o disco a partir da respetiva imagem de arranque no modelo de instância em eventos subsequentes de recriação, atualização ou autocura de instâncias.preservedStateFromConfig
REST
Para desanexar discos com estado ou declará-los sem estado individualmente para uma VM num MIG, remova a configuração do disco com estado da configuração por instância associada ou elimine toda a configuração por instância se não contiver outro estado. Em seguida, atualize a instância para aplicar a configuração.
Para remover uma configuração de disco com estado da configuração por instância associada, use o método
instanceGroupManagers.patchPerInstanceConfigs
ou o métodoregionInstanceGroupManagers.patchPerInstanceConfigs
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "VM_NAME", "preservedState" : { "disks": { "DEVICE_NAME" : null }, ... }, "fingerprint: "FINGERPRINT" ... } ] }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto para o pedido.ZONE
: A zona onde o GIG está localizado (aplica-se a um GIG zonal).- Para um MIG regional, substitua
zones/ZONE
porregions/REGION
e especifique a região do MIG.
- Para um MIG regional, substitua
NAME
: o nome do MIG.VM_NAME
: o nome da VM da qual remover a configuração com estado.DEVICE_NAME
: o nome do dispositivo usado para anexar o disco.FINGERPRINT
: a impressão digital da configuração fornecida, se já existir. Usado para bloqueio otimista. Para ver a impressão digital mais recente, faça um pedidoget()
para obter o recurso.
O método
patchPerInstanceConfigs
corrige as configurações especificadas por instância, mas não aplica as alterações às VMs associadas. As alterações são aplicadas a uma VM quando recria ou atualiza a instância. Pode aplicar as alterações manualmente ou usar atualizações contínuas automatizadas.Exemplo
Executa uma aplicação antiga num MIG denominado
example-legacy-group
. Cada VM no MIG armazena dados da aplicação num disco de arranque com o nome do dispositivoboot-disk
. Configurou o disco de arranque como com estado nas configurações por instância do MIG ao migrar as VMs autónomas para o MIG. Moveu os dados da aplicação para um disco adicional e agora quer tornar o disco de arranque sem estado para cada VM, de modo a facilitar a atualização para novas imagens.Chame o método
patchPerInstanceConfigs
para as instâncias, por exemplo, paranode-1
com um valornull
para o disco de arranque:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "node-1", "preservedState" : { "disks": { "boot-disk" : null } } } ] }
O método remove a configuração do disco com o nome do dispositivo
boot- disk
da configuração por instância paranode-1
. A atualização da configuração ainda não foi aplicada à instância de VMnode-1
. A atualização da configuração vai ser aplicada na próxima recriação ou atualização da instância.Para aplicar a atualização de configuração por instância à instância de VM
node-1
, chame o métodoinstanceGroupManagers.applyUpdatesToInstances
para a instância:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group/applyUpdatesToInstances { "instances": ["/zones/us-east1-c/instances/node-1"] }
O MIG remove o disco de arranque da instância
preservedStateFromConfig
para a instâncianode-1
e trata o disco como sem estado. Ou seja, o MIG recria o disco a partir da respetiva imagem de arranque no modelo de instância em eventos subsequentes de recriação, atualização ou autorreparação de instâncias.
Feedback
Queremos saber mais sobre os seus exemplos de utilização, desafios e feedback acerca dos MIGs com estado. Pode partilhar o seu feedback com a nossa equipa através do endereço de email mig-discuss@google.com.
O que se segue?
- Configure metadados com estado para VMs num MIG.
- Saiba como aplicar, ver e remover a configuração com estado.
- Obtenha informações sobre um MIG específico e as respetivas instâncias geridas, incluindo o estado e as propriedades da VM.
- Saiba mais sobre os MIGs e como trabalhar com instâncias geridas.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-09-19 UTC.
-