Configurar discos permanentes como "com estado" permite que você aproveite a recuperação automática da instância de VM e as atualizações automatizadas enquanto preserva o estado dos discos.
É possível configurar qualquer disco definido no modelo de instância como "com estado" para todas as instâncias em um grupo de instâncias gerenciadas (MIG), adicionando o nome de dispositivo desse disco à política com estado do MIG.
Também é possível configurar discos permanentes com estado individualmente para instâncias em um MIG definindo as configurações por instância. Esses discos não precisam ser definidos no modelo de instância.
Antes de começar
- Avalie quando usar os MIGs com estado e veja como eles funcionam.
-
Configure a autenticação, caso ainda não tenha feito isso.
A autenticação é
o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud.
Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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.
- Não é possível usar o escalonamento automático se o MIG tiver uma configuração com estado.
- Se você quiser usar atualizações graduais automatizadas, defina o
método de substituição
como
RECREATE
. - Para MIGs regionais com estado, é necessário desativar a redistribuição proativa (defina o tipo de redistribuição como
NONE
) para evitar a exclusão de instâncias com estado causadas pela redistribuição automática entre zonas. Se você usar uma configuração de todas as instâncias para substituir as propriedades do modelo de instância, não será possível 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 o failover entre zonas. Ao usar um MIG regional, é possível tornar o aplicativo com estado resiliente a falhas zonais. Para isso, implante réplicas redundantes em várias zonas e use a funcionalidade de replicação de dados do aplicativo.
- É possível reparar um disco de inicialização que foi corrompido ao recriá-lo com base na imagem original dele. A recuperação automática faz esses reparos automaticamente.
- É possível atualizar um disco de inicialização para a imagem mais recente com novas versões e patches de segurança.
No Console do Google Cloud, acesse a página Grupos de instâncias.
Selecione o projeto e clique em Continuar.
Clique em Criar grupo de instâncias.
Selecione Novo grupo gerenciado de instâncias (com estado).
Especifique um Nome para o grupo de instâncias.
Selecione um modelo de instância. Se nenhum modelo estiver disponível, crie um modelo de instância.
Em Número de instâncias, especifique o número de instâncias do grupo.
A seção Configuração com estado exibe os discos especificados no modelo da instância. Clique em um disco para editar a configuração com estado dele.
- Em Com estado, selecione Sim.
Na lista suspensa Na exclusão permanente da instância, selecione a ação que será executada no disco com estado quando a instância de VM for excluída. As opções disponíveis são estas:
- Remover disco: (padrão). Nunca exclua o disco. Remova-o quando a VM dele for excluída.
- Exclua o disco: exclua o disco com estado quando a respectiva VM for excluída permanentemente do grupo de instâncias. Por exemplo, quando a instância gerenciada for excluída manualmente ou quando o tamanho do grupo for reduzido.
Depois de concluir a configuração com estado, clique em Concluído.
Clique em Criar.
INSTANCE_GROUP_NAME
: o nome do grupo de instâncias gerenciadas que será criado;INSTANCE_TEMPLATE
: o nome do modelo de instância que será usado ao criar instâncias;SIZE
: o número inicial de VMs que você precisa nesse grupo;DEVICE_NAME
: o nome de dispositivo de um disco especificado no modelo de instância;DELETE_RULE
: um valor que determina o que precisa acontecer em um disco com estado quando uma VM é excluída. As opções disponíveis são estas:never
: padrão. Nunca exclua o disco. Em vez disso, remova-o quando a VM dele for excluída.on-permanent-instance-deletion
: exclua o disco quando a respectiva instância de VM for excluída permanentemente do grupo. Por exemplo, quando a instância gerenciada for excluída manualmente ou quando o tamanho do grupo for reduzido.
Seja qual for o valor da regra de exclusão, os discos com estado sempre serão preservados nas operações de recuperação automática, atualização e recriação da VM.
Crie um modelo de instância com um disco de inicialização sem estado com base na imagem
img-example-db-v01
, que tem um SO e um banco 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 sinalização
--create-disk
instrui o MIG a:- criar um novo disco de 10 GB para cada instância de VM com base em uma imagem ext4 vazia, preparada previamente;
- anexar o disco à respectiva VM no modo de leitura/gravação usando o nome de dispositivo
data-disk
;
criar um MIG com base no modelo de instância e definir o disco de dados como sendo "com estado":
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 de dispositivo
data-disk
é retirado do modelo de instância. O disco de dados é configurado para ser excluído com a instância de VM quando ela é excluída permanentemente, seja por exclusão manual da instância ou por redução manual do tamanho do grupo. O disco de dados é preservado na recuperação automática, nas atualizações e na recriação de VMs.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 ...
Veja que a política com estado declara os discos com o nome de dispositivo
data-disk
como sendo "com estado", com uma regra para excluir esses discos na exclusão permanente da VM.PROJECT
: o ID do projeto para a solicitação.ZONE
: a zona onde o MIG está localizado, aplicável a um MIG zonal.zones/ZONE
porregions/REGION
e especifique a região do MIG se ele for regional;
NAME
: o nome do MIG que será criado;TEMPLATE
: o nome do modelo de instância que será usado ao criar instâncias;SIZE
: o número inicial de instâncias necessárias nesse grupo;DEVICE_NAME
: o nome de dispositivo de um disco especificado no modelo de instância;DELETE_RULE
: um valor que determina o que precisa acontecer no disco com estado quando a instância de VM é excluída. As opções disponíveis são estas:never
: padrão. Nunca exclua o disco. Remova-o quando a VM dele for excluída.on_permanent_instance_deletion
: exclua o disco com estado quando a respectiva VM for excluída permanentemente do grupo de instâncias. Por exemplo, quando a instância gerenciada for excluída manualmente ou o tamanho do grupo for reduzido.
Crie um modelo de instância com um disco de inicialização sem estado com base na imagem
img-example-db-v01
, que tem o SO e o banco de dados pré-instalados, e com um disco de dados com estado usando o 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 de dispositivo
data-disk
e está configurado para ser criado com base em uma imagem ext4 vazia, preparada previamente, e para ser anexado no modo de leitura/gravação.Crie um MIG com base no modelo de instância e defina o disco de dados como "com estado" usando o 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 que tem as propriedades a seguir:
- O nome de dispositivo
data-disk
retirado do modelo de instância. - Uma regra de exclusão para excluir o disco de dados quando a VM é excluída, seja por exclusão manual da instância ou por redução manual do tamanho do grupo.
- Uma entrada no estado preservado da política
(
preservedStateFromPolicy
) de cada instância gerenciada para que o disco de dados seja preservado na recuperação automática, nas atualizações e na recriação de instâncias.
- O nome de 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" } } } } ... }
é possível ver que a política com estado declara os discos com o nome de dispositivo
data-disk
como sendo "com estado" com a regra para excluir esses discos na exclusão permanente da instância.- Adicionar os discos definidos no modelo de instância à política com estado de um MIG atual para declará-los como sendo "com estado". Essa ação marca os discos com o nome de dispositivo especificado como sendo "com estado" para todas as instâncias atuais e futuras no MIG.
- Atualizar a política para alterar a configuração com estado dos discos.
No Console do Google Cloud, acesse a página Grupos de instâncias.
Clique no nome do grupo de instâncias em que você quer especificar a configuração com estado do disco.
Clique em Editar para modificar o grupo gerenciado de instâncias.
Em Configuração com estado, expanda o disco que você quer tornar com estado.
- Em Com estado, selecione Sim.
Na lista suspensa Na exclusão permanente da instância, selecione a ação que será executada no disco com estado quando a instância de VM for excluída.
- Remover disco: (padrão). Nunca exclua o disco. Remova-o quando a VM dele for excluída.
Exclua o disco: exclua o disco com estado quando a respectiva VM for excluída permanentemente do grupo de instâncias. Por exemplo, quando a instância gerenciada for excluída manualmente ou quando o tamanho do grupo for reduzido.
Depois de atualizar a configuração com estado, clique em Concluído.
Clique em Salvar para concluir a atualização.
NAME
: o nome do grupo de instâncias gerenciadas que será atualizado;DEVICE_NAME
: o nome de dispositivo de um disco especificado no modelo de instância;DELETE_RULE
: um valor que determina o que precisa acontecer no disco com estado quando uma instância de VM é excluída. As opções disponíveis são estas:never
: padrão. Nunca exclua o disco. Remova-o quando a VM dele for excluída.on-permanent-instance-deletion
: exclua o disco com estado quando a instância for excluída permanentemente do grupo. Por exemplo, quando a instância gerenciada for excluída manualmente ou quando o tamanho do grupo for reduzido.
Atualize o MIG para definir o disco de dados como sendo "com estado" executando o comando a seguir:
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 aos discos de dados de todas as instâncias de maneira automática e assíncrona. Os discos de dados agora são preservados na recuperação automática, nas atualizações e na recriação de instâncias. Além disso, eles são removidos na exclusão da instância 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
.PROJECT
: o ID do projeto para a solicitação.ZONE
: a zona onde o MIG está localizado, aplicável a um MIG zonal.zones/ZONE
porregions/REGION
e especifique a região do MIG se ele for regional;
NAME
: o nome do MIG que será atualizado;DEVICE_NAME
: o nome de dispositivo de um disco, especificado no modelo de instância, em que você quer atualizar a configuração com estado;DELETE_RULE
: um valor que determina o que precisa acontecer no disco com estado quando uma instância de VM é excluída. As opções disponíveis são estas:never
: padrão. Nunca exclua o disco. Remova-o quando a VM dele for excluída.on-permanent-instance-deletion
: exclua o disco com estado quando a instância for excluída permanentemente do grupo de instâncias. Por exemplo, quando a instância for excluída manualmente ou quando o tamanho do grupo for reduzido.
Corrija o MIG para definir o disco de dados como sendo "com estado":
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 essa configuração com estado aos discos de dados de todas as instâncias de maneira automática e assíncrona. Os discos de dados serão preservados na recuperação automática, nas atualizações e na recriação de instâncias. Os discos de dados serão removidos na exclusão da instância porque a regra
autoDelete
está definida comoNEVER
.Veja o recurso
instanceGroupManagers
retornado pelo métodoinstanceGroupManagers.get
para verificar se o disco de dados está configurado na política com estado.- Se você reformular o aplicativo para remover o estado do disco.
- Se você configurou o disco como sendo "com estado" por engano e quer revertê-lo.
No Console do Google Cloud, acesse a página Grupos de instâncias.
Clique no nome do grupo de instâncias do qual você quer remover a configuração com estado dos discos.
Clique em Editar para modificar o grupo gerenciado de instâncias.
Em Configuração com estado, expanda os discos com estado que você quer tornar sem estado.
- Altere a opção Com estado para Não.
- Clique em Concluído.
Depois de fazer as alterações, clique em Salvar.
NAME
: o nome do MIG que será atualizado;DEVICE_NAME
: o nome de dispositivo de um disco que será removido da política com estado e será tratado como "sem estado". É possível inserir um ou vários nomes de dispositivo na lista.PROJECT
: o ID do projeto para a solicitação.ZONE
: a zona onde o MIG está localizado, aplicável a um MIG zonal.zones/ZONE
porregions/REGION
e especifique a região do MIG se ele for regional;
NAME
: o nome do MIG que será atualizado;DEVICE_NAME
: o nome de dispositivo de um disco que você quer remover da política com estado. Um valornull
faz com que a configuração com estado desse disco seja removida. É possível inserir um ou vários nomes de dispositivo para remoção.- Remova a configuração com estado do disco da política com estado. Isso torna os discos com o nome de dispositivo especificado "sem estado".
- Remova os discos das VMs, se você ainda quiser mantê-los.
- Implemente um novo modelo de instância que não defina mais o disco com o nome de dispositivo especificado.
- migrar as cargas de trabalho atuais (mover os discos atuais) de VMs autônomas para MIGs com estado a fim de aproveitar a recuperação automática e as atualizações fáceis;
- restaurar backups de discos configurados individualmente para as VMs;
- anexar temporariamente discos com estado extras a uma VM específica para testar, depurar ou copiar dados.
- Crie um modelo de instância com configuração comum para todas as instâncias de VM.
- Remover os discos de dados das instâncias independentes e excluí-las. Também é possível remover os discos de inicialização se o estado deles precisar ser preservado.
- Crie um MIG vazio usando o modelo de instância criado anteriormente.
Criar instâncias no MIG com os nomes e os discos associados apropriados da etapa anterior. O MIG responde à sua solicitação com as ações a seguir:
- Cria uma VM com base no modelo usando o nome da instância fornecido.
- Um MIG regional cria a VM na mesma zona em que o disco está localizado. Se o disco for regional, o MIG regional criará 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 com base no modelo usando o nome da instância fornecido.
NAME
: o nome do MIG em que você precisa criar uma instância;VM_NAME
: o nome da nova instância que será criada;ZONE
: a zona em que o MIG está localizado, aplicável a um MIG zonal;REGION
: a região em que o MIG está localizado, aplicável a um MIG regional;DEVICE_NAME
: o nome de dispositivo que será usado ao anexar o disco;DISK
: o URI de um disco permanente que será anexado aoDEVICE_NAME
especificado no formatoprojects/project-id/zones/zone/disks/disk-name
para um disco por zona eprojects/project-id/regions/region/disks/disk-name
para um disco regional;MODE
: especifica o modo do disco. As opções aceitas são estas:ro
: somente leitura.rw
: padrão. Leitura/gravação
DELETE_RULE
: um valor que determina o que precisa acontecer em um disco com estado quando uma instância de VM é excluída. As opções disponíveis são estas:never
: padrão. Nunca exclua o disco. Em vez disso, remova-o quando a instância dele for excluída.on-permanent-instance-deletion
: exclua o disco com estado quando a instância for excluída permanentemente do grupo de instâncias. Por exemplo, quando a instância for excluída manualmente ou quando o tamanho do grupo for reduzido.
Seja qual for o valor da regra de exclusão, os discos com estado sempre serão preservados nas operações de recuperação automática, atualização e recriação de instâncias.
- Pare a VM,
db-instance
, durante uma janela de manutenção. - Crie um modelo de instância chamado
db-template
usando a configuraçãodb-instance
. - Remova
db-data-disk-1
dedb-instance
e excluadb-instance
. - Crie um MIG vazio,
example-database-mig
, dedb-template
e configure a recuperação automática. Crie uma instância gerenciada com o nome
db-instance
original e anexedb-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 MIG, gera uma configuração por instância correspondente com o disco com estadodb-data-disk-1
e anexa-o à nova VM usandodata-disk
como o nome do dispositivo.PROJECT_ID
: o ID do projeto para a solicitação.ZONE
: a zona onde o MIG está localizado, aplicável a um MIG zonal.zones/ZONE
porregions/REGION
e especifique a região do MIG se ele for regional;
NAME
: o nome do MIG em que uma instância será criada;VM_NAME
: o nome da instância que será criada;DEVICE_NAME
: o nome de dispositivo que será usado ao anexar o disco;DISK
: o URI de um disco permanente atual a ser anexado aoDEVICE_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 aceitas são estas:READ_ONLY
: somente leitura.READ_WRITE
: padrão. Leitura/gravação
DELETE_RULE
: um valor que determina o que precisa acontecer em um disco com estado quando uma VM é excluída. As opções disponíveis são estas:never
: padrão. Nunca exclua o disco. Em vez disso, remova-o quando a VM dele for excluída.on-permanent-instance-deletion
: exclua o disco com estado quando a instância for excluída permanentemente do grupo de instâncias. Por exemplo, quando a instância for excluída manualmente ou quando o tamanho do grupo for reduzido.
Seja qual for o valor da regra de exclusão, os discos com estado sempre serão preservados nas operações de recuperação automática, atualização e recriação de instâncias.
- Pare a VM,
db-instance
, durante uma janela de manutenção. - Crie um modelo de instância chamado
db-template
usando a configuraçãodb-instance
. - Remova
db-data-disk-1
dedb-instance
e excluadb-instance
. - Crie um MIG vazio,
example-database-mig
, dedb-template
e configure a recuperação automática. 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, gera uma configuração por instância correspondente com o disco com estadodb-data-disk-1
e anexa-o à nova instância usandodata-disk
como o nome de dispositivo.- Adicionar um disco com estado de fora de um MIG a uma VM nesse MIG
- Declarar um disco que antes era sem estado como com estado para uma VM em um MIG
- Substituir um disco com estado por um disco diferente para uma VM em um MIG
NAME
: o nome do grupo de instâncias gerenciadas;VM_NAME
: o nome da instância de VM em que os discos com estado serão configurados;DEVICE_NAME
: o nome do dispositivo usado para anexar o disco;DISK
: o URI de um disco permanente atual a ser anexado aoDEVICE_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 subsinalização
source=DISK
é opcional se o dispositivo já estiver definido na configuração por instância da instância. Caso contrário, ela será obrigatória.Em caso de omissão, o URI do disco atualmente configurado permanecerá inalterado.
MODE
: especifica o modo do disco. Será possível especificarmode
apenas se você também especificarsource
. As opções compatíveis são:ro
: somente leiturarw
: padrão. Leitura/gravação
Em caso de omissão, o valor padrão será definido na nova configuração de disco com estado. O valor permanece inalterado em uma configuração atual.
DELETE_RULE
: um valor que determina o que precisa acontecer em um disco com estado quando uma VM é excluída. As opções disponíveis são estas:never
: padrão. Nunca exclua o disco. Em vez disso, remova-o quando a instância dele for excluída.on-permanent-instance-deletion
: exclua o disco com estado quando a instância for excluída permanentemente do grupo. Por exemplo, quando a instância for excluída manualmente ou quando o tamanho do grupo for reduzido.
Em caso de omissão, o valor padrão será definido na nova configuração de disco com estado. O valor permanece inalterado em uma configuração atual.
Seja qual for o valor da regra de exclusão, os discos com estado sempre serão preservados nas operações de recuperação automática, atualização e recriação de instâncias.
MINIMAL_ACTION
: executa, pelo menos, a ação especificada ao aplicar a atualização da configuração por instância à instância. Use-a com a sinalização--update-instance
. O valor precisa ser uma das opções a seguir:none
: nenhuma ação.refresh
: aplicar as atualizações possíveis sem parar a VM.restart
: interromper a VM e iniciá-la novamente.replace
: recriar a VM.
Se omitida, a ação menos interruptiva exigida pela atualização será usada.
- Atualiza a configuração por instância para
db-instance-1
:- Atualiza a origem do disco com o nome de dispositivo
data-disk
dedata-disk-1
(última configuração) paradata-disk-2
(nova configuração). - Mantém a regra de exclusão automática para nunca excluir o disco porque o parâmetro
auto-delete
foi omitido na sinalização--stateful-disk
e, por padrão, a regra de exclusão énever
.
- Atualiza a origem do disco com o nome de dispositivo
- Aplica a atualização da configuração por instância à VM
db-instance-1
imediatamente, porque a sinalização--update-instance
foi incluída. O MIG removedata-disk-1
e anexadata-disk-2
com o mesmo nome de dispositivodata-disk
. - Como a ação mínima está definida como
restart
, o MIG reinicia a instânciadb-instance-1
para atualizar a VM, o que ajuda o aplicativo de banco de dados a começar a usar o novo disco. PROJECT_ID
: o ID do projeto para a solicitação.ZONE
: a zona onde o MIG está localizado, aplicável a um MIG zonal.zones/ZONE
porregions/REGION
e especifique a região do MIG se ele for regional;
NAME
: o nome do MIG;VM_NAME
: o nome da VM em que os discos com estado serão configurados;DEVICE_NAME
: o nome do dispositivo usado para anexar o disco;DISK
: o URI de um disco permanente atual a ser anexado aoDEVICE_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, ela será obrigatória.Se o campo
source
for omitido, o URI do disco configurado atualmente permanecerá inalterado.MODE
: opcional. Especifica o modo do disco.mode
só poderá ser especificado sesource
for fornecido. As opções aceitas são estas:READ_ONLY
: somente leituraREAD_WRITE
: padrão. Leitura/gravação
Em caso de omissão, o valor padrão será definido na nova configuração de disco com estado. O valor permanece inalterado em uma configuração atual.
DELETE_RULE
: opcional. Um valor que determina o que precisa acontecer em um disco com estado quando uma VM é excluída. As opções disponíveis são estas:- never: padrão. Nunca exclua o disco. Em vez disso, remova-o quando a instância dele for excluída.
on-permanent-instance-deletion
: exclua o disco com estado quando a instância for excluída permanentemente do grupo. Por exemplo, quando a instância for excluída manualmente ou quando o tamanho do grupo for reduzido.
Se o campo
autoDelete
for omitido, o valor padrão será definido na nova configuração de disco com estado. O valor permanece inalterado em uma configuração atualSeja qual for o valor da regra de exclusão, os discos com estado sempre serão preservados nas operações de recuperação automática, atualização e recriação de instâncias.
FINGERPRINT
: opcional. A impressão digital da configuração especificada, se já houver. Usada para bloqueio otimista. Para ver a impressão digital mais recente, faça uma solicitaçãoget()
para recuperar o recurso.- Atualiza a
source
de um disco com o nome de dispositivodata-disk
dedata-disk-1
(última configuração) paradata-disk-2
(nova configuração). - Mantém os parâmetros
mode
eautoDelete
inalterados porque eles foram omitidos na solicitação. - Se você reformular o aplicativo para remover o estado do disco.
- Se você configurar o disco como sendo "com estado" por engano e quiser revertê-lo.
- Se o disco não estiver definido no modelo de instância, o MIG o removerá.
- O MIG não exclui o disco quando você exclui a configuração dele da configuração por instância, seja qual for a regra de exclusão automática na configuração.
- Se o disco for definido pelo modelo de instância, o MIG o tratará como "sem estado". Isso significa que o MIG recria o disco com base na origem dele no modelo de instância nos eventos subsequentes de recriação, atualização ou recuperação automática de instâncias.
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;MINIMAL_ACTION
: execute pelo menos a ação especificada ao atualizar a VM com a configuração por instância dela. Ela pode ser usada apenas com--update-instance
. O valor precisa ser um dos seguintes:none
: nenhuma ação.refresh
: aplicar as atualizações possíveis sem parar a VM.restart
: interromper a VM e iniciá-la novamente.replace
: recriar a VM.
Se omitida, a ação menos interruptiva exigida pela atualização será usada.
- Remove a configuração do disco com o nome de dispositivo
boot-disk
da configuração por instância paranode-1
. - Aplica a atualização da configuração por instância à VM
node-1
imediatamente, porque a sinalização--update-instance
foi incluída. O MIG remove o disco de inicialização dapreservedStateFromConfig
da instância gerenciada e o trata como "sem estado". Isso significa que ele recria o disco com base na imagem de inicialização dele no modelo de instância nos eventos subsequentes de recriação, atualização ou recuperação automática de instâncias. PROJECT_ID
: o ID do projeto para a solicitação.ZONE
: a zona onde o MIG está localizado, aplicável a um MIG zonal.zones/ZONE
porregions/REGION
e especifique a região do MIG se ele for regional;
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 especificada, se já houver. Usada para bloqueio otimista. Para ver a impressão digital mais recente, faça uma solicitaçãoget()
para recuperar o recurso.Chame o método
patchPerInstanceConfigs
para as instâncias. Por exemplo, emnode-1
com um valornull
para o disco de inicialização: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 de dispositivo
boot- disk
da configuração por instância paranode-1
. A atualização da config ainda não foi aplicada à instância de VMnode-1
. A atualização da config será aplicada na próxima recriação ou atualização da instância.Para aplicar a atualização da 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 inicialização da
preservedStateFromConfig
para a instâncianode-1
e o trata como sem estado. Ou seja, o MIG recria o disco com base na imagem de inicialização no modelo de instância nos eventos subsequentes de recriação, atualização ou recuperação automática de instâncias.- Configure metadados com estado para VMs em um MIG.
- Saiba como aplicar, ver e remover uma configuração com estado.
- Veja informações sobre um MIG específico e suas instâncias gerenciadas, incluindo o status e as propriedades da VM.
- Saiba mais sobre MIGs e como trabalhar com instâncias gerenciadas.
Terraform
Para usar os exemplos do Terraform nesta página em um ambiente de desenvolvimento local, instale e inicialize a gcloud CLI e, em seguida, configure o Application Default Credentials com suas credenciais de usuário.
Confira mais informações em Set up authentication for a local development environment.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Limitações
Um MIG com discos com estado tem as seguintes limitações:
Um MIG com configuração com estado (um MIG com estado) tem as seguintes limitações:
Quando usar discos permanentes com estado
Use discos permanentes com estado para aproveitar a recuperação automática e as atualizações automatizadas da VM enquanto preserva os dados nos discos. Para mais informações, consulte os casos de uso de MIGs com estado.
Quando você configura discos com estado, eles são preservados por meio da recuperação automática, das atualizações e da recriação de instâncias de VM. No entanto, isso também significa que os discos com estado não podem ser recriados com base na imagem original nem atualizados para uma nova imagem.
Recomendamos manter os discos de inicialização sem estado.
Essa prática recomendada tem os seguintes benefícios:
Para mais informações, consulte como a recuperação automática e a atualização processam o estado preservado.
Como configurar discos permanentes com estado para todas as VMs em um MIG
Configure qualquer disco definido em um modelo de instância para ser com estado adicionando o nome de dispositivo desse disco à política com estado do MIG. O MIG trata os discos com esse nome de dispositivo como sendo com estado para todas as instâncias de VM atuais e futuras.
Como configurar discos com estado na criação do MIG
Console
gcloud
Para especificar os discos de um modelo de instância que precisam ser "com estado" na criação do MIG, use a sinalização
--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:
Exemplo
Para implantar um banco de dados com 12 fragmentos, cada um com um disco de inicialização sem estado, que contém os binários do sistema operacional e do banco de dados, e cada uma com um disco de dados com estado. siga estas etapas:
Terraform
Se você ainda não criou um modelo de instância, que especifica o tipo de máquina, a imagem do disco de inicialização, a rede e outras propriedades de VM que você quer para cada VM no MIG, crie um modelo de instância.
O exemplo a seguir cria um MIG zonal com um disco com estado. Para especificar qual disco do modelo de instância precisa ser "com estado" na criação do MIG, inclua o bloco
stateful_disk
. Para mais informações sobre o recurso usado na amostra, consulte Recursogoogle_compute_instance_group_manager
. Para criar um MIG regional, use o recursogoogle_compute_region_instance_group_manager
.Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
REST
Para especificar os discos do modelo de instância que precisam ser "com estado" na criação do MIG, inclua-os no campo
statefulPolicy
no corpo da solicitação do métodoinstanceGroupManagers.insert
: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:
Exemplo
Para implantar um banco de dados com 12 fragmentos, cada um com um disco de inicialização sem estado, que contém os binários do sistema operacional e do banco de dados, e cada uma com um disco de dados com estado. siga estas etapas:
Como definir e atualizar a configuração com estado para discos em um MIG atual
Se você executar um aplicativo com estado em um MIG sem estado, sem qualquer configuração com estado, será possível configurar os discos atuais definidos no modelo de instância para que sejam "com estado" em todas as instâncias nesse MIG. Isso permite preservar os discos nas operações de recriação, recuperação automática e atualização de instâncias e, opcionalmente, nas operações de exclusão.
É possível realizar as seguintes operações:
O MIG aplica a configuração atualizada na política com estado a todas as instâncias de maneira automática e assíncrona. As atualizações nas configurações de disco em uma política com estado não interrompem a execução das VMs. Para mais informações, consulte Como aplicar atualizações de política com estado.
Para um MIG regional, é preciso desativar a redistribuição proativa de instâncias entre zonas antes de configurar discos com estado. Para mais informações, consulte Como os grupos regionais processam o estado preservado.
Console
gcloud
Para especificar os discos do modelo de instância que precisam ser "com estado" ou para atualizar a configuração do disco com estado de um MIG, use uma ou várias sinalizações
--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:
Se um nome de dispositivo especificado já estiver configurado na política com estado, o comando atualizará a configuração.
Exemplo
Você executa um banco de dados com vários fragmentos em um MIG chamado
example-database- group
. Cada VM no MIG armazena um fragmento em um disco extra com o nome de dispositivodata-disk
, que é definido pelo modelo de instância. O MIG não tem configuração com estado, e você quer preservar os discos de dados na recriação, na recuperação automática e nas atualizações de instância. Você também quer proteger os discos de dados contra exclusão quando uma VM é excluída.REST
Para especificar os discos do modelo de instância que precisam ser "com estado" ou para atualizar a configuração do disco com estado de um MIG atual, configure os discos na política com estado do MIG usando o 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:
Se o nome de dispositivo especificado já estiver configurado na política com estado, o método
patch
atualizará a configuração.Exemplo
Você executa um banco de dados com vários fragmentos em um MIG chamado
example-database- group
. Cada VM no MIG armazena um fragmento em um disco extra com o nome de dispositivodata-disk
, que é definido pelo modelo de instância. O MIG não tem configuração com estado, e você quer preservar os discos de dados na recriação, na recuperação automática e nas atualizações de instância. Você também quer proteger os discos de dados contra exclusão quando uma VM é excluída.Como declarar discos permanentes com estado como sem estado
Talvez seja necessário configurar um disco com estado para ser considerado como "sem estado". Exemplo:
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 na política com estado a todas as instâncias de maneira automática e assíncrona. As atualizações na configuração do disco em uma política com estado não interrompem a execução das instâncias de VM.
Para mais informações, consulte Como aplicar atualizações de política com estado.
Console
gcloud
Para especificar os discos de uma política com estado do MIG que precisam ser "sem estado", use a sinalização
--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:
Exemplo
Você executa um aplicativo legado com vários nós em um MIG chamado
example-legacy-group
. Cada VM no MIG armazena os dados do aplicativo em um disco de inicialização com o nome de dispositivoboot-disk
, que você configurou como "com estado" na política com estado do MIG. Você moveu os dados do aplicativo para um disco extra e agora quer tornar o disco de inicialização sem estado a fim de facilitar a atualização para as novas imagens.Para remover a configuração com estado do disco de inicialização, atualize o grupo de instâncias gerenciadas:
gcloud compute instance-groups managed update example-legacy-group \ --remove-stateful-disks boot-disk
O MIG remove a configuração com estado do nome de dispositivo
boot-disk
de maneira automática e assíncrona dos discos de inicialização de todas as instâncias no grupo. Os discos de inicialização permanecem anexados às instâncias, mas não são mais "com estado". Quando você recria ou atualiza as instâncias ou quando as instâncias são recuperadas automaticamente, o MIG recria os discos de inicialização com base na imagem especificada no modelo de instância.REST
Para especificar os discos de uma política com estado do MIG que se tornarão sem estado, remova a configuração de cada disco da política com estado do MIG usando o método
instanceGroupManagers.patch
:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers/NAME { "statefulPolicy": { "preservedState": { "disks": { "DEVICE_NAME": null, ... } } } }
Substitua:
Exemplo
Você executa um aplicativo legado com vários nós em um MIG chamado
example-legacy-group
. Cada VM no MIG armazena os dados do aplicativo em um disco de inicialização com o nome de dispositivoboot-disk
, que você configurou como sendo "com estado" na política com estado do MIG. Você moveu os dados do aplicativo para um disco extra e agora quer tornar o disco de inicialização sem estado a fim de facilitar a atualização para as novas imagens.Para remover a configuração com estado do disco de inicialização, corrija o grupo de instâncias gerenciadas:
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 do nome de dispositivo
boot-disk
de maneira automática e assíncrona dos discos de inicialização de todas as instâncias no grupo. Os discos de inicialização permanecem anexados às instâncias, mas não são mais "com estado". Quando você recria ou atualiza as instâncias ou quando as instâncias são recuperadas automaticamente, o MIG recria os discos de inicialização com base na imagem especificada no modelo de instância.Como remover discos permanentes com estado de um MIG
Talvez seja necessário remover completamente um disco com estado das instâncias em um MIG, por exemplo, se você reformulou o aplicativo e removeu o estado desse disco.
Os MIGs não permitem a remoção de discos com estado. Portanto, siga estas etapas:
Como configurar discos permanentes com estado individualmente para uma VM em um MIG
Para configurar discos permanentes com estado para uma VM específica em um MIG, adicione o nome de 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.
A configuração individual de discos permanentes com estado para VMs específicas em um MIG será útil se você precisar:
Como adicionar discos com estado atuais a novas VMs em um MIG
É possível adicionar discos com estado atuais a novas instâncias criadas manualmente em um MIG. Isso é útil para migrar um aplicativo com estado das VMs independentes atuais para um MIG com estado. Por exemplo:
Adicione os discos com estado ao criar manualmente as instâncias específicas em um MIG usando a CLI gcloud ou a API. O MIG aplica imediatamente a configuração na criação da VM.
gcloud
Para criar uma VM com um nome personalizado e anexar um ou mais discos com estado atuais a ela, use o comando
gcloud compute instance-groups managed create-instance
com uma ou várias sinalizações--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:
Exemplo
Você quer ter a recuperação automática em um servidor de banco de dados executado em uma VM autônoma chamada
db-instance
e que armazena os dados em um disco chamadodb-data-disk-1
.Crie um MIG com estado que tenha a recuperação automática, crie uma VM semelhante dentro do MIG e anexe o disco de dados atual
db-data-disk-1
à nova instância como um disco com estado:REST
Para criar uma ou várias instâncias em um MIG, defina nomes de VM personalizados e anexe um ou vários discos com estado a essas instâncias. Para isso, 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:
Exemplo
Você quer ter a recuperação automática em um servidor de banco de dados executado em uma VM autônoma chamada
db-instance
e que armazena os dados em um disco chamadodb-data-disk-1
.Crie um MIG com estado que tenha a recuperação automática, crie uma instância semelhante dentro do MIG e anexe o disco de dados atual
db-data-disk-1
à nova VM como um disco com estado:Como adicionar, declarar e substituir discos com estado individualmente para VMs em um MIG
Configure discos com estado individualmente para uma instância gerenciada ao adicionar ou atualizar 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 os discos com estado individualmente é útil para estas tarefas:
Adicionar um disco com estado de fora de um MIG a uma VM nesse MIG. É possível anexar qualquer disco de fora de um MIG a uma instância gerenciada adicionando a configuração com estado do disco à configuração por instância associada. Depois de aplicar a config, o MIG anexará automaticamente o disco à instância e o tratará como "com estado".
Declarar um disco permanente que antes era sem estado como "com estado". É possível declarar um disco que antes era sem estado, atualmente anexado a uma VM, como "com estado" adicionando a configuração com estado para esse disco, incluindo o nome de dispositivo e o URI dele, à configuração por instância associada. Depois que você aplicar a config, o MIG começará a preservar o disco como "com estado".
Substituir um disco com estado por outro. A substituição de um disco com estado por outro pode ser útil, por exemplo, se você precisa acessar um backup recuperado. É possível trocar um disco com estado por outro atualizando o URI dele e mantendo o mesmo nome de dispositivo na configuração por instância. Depois que você aplicar a configuração por instância atualizada, o MIG removerá o disco antigo e anexará o novo usando o mesmo nome de dispositivo. Ao aplicar a atualização, escolha se quer manter, reiniciar ou recriar a instância. A troca de um disco de inicialização requer pelo menos uma reinicialização da VM.
gcloud
Para configurar discos com estado individualmente para uma VM em um MIG, adicione ou atualize 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.
Se uma configuração por instância ainda não existir para a instância, use o comando
gcloud compute instance-groups managed instance-configs create
com uma ou várias sinalizações--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á houver uma configuração por instância, use o comando
gcloud compute instance-groups managed instance-configs update
com uma ou várias sinalizações--stateful-disk
.A sinalização
--update-instance
(padrão) aplica as alterações imediatamente à instância. Se você usar--no-update-instance
, as alterações permanecerão não aplicadas e serão aplicadas na próxima vez que você recriar ou atualizar 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:
Exemplo
Os dados em um disco com estado anexado atualmente,
data-disk-1
, foram corrompidos e você quer restaurá-los com base no backup mais recente. Você criou um discodata-disk-2
com base em um snapshot para substituir o disco corrompido na instânciadb-instance-1
, gerenciada por um MIG com estadoexample-database-mig
. O disco originaldata-disk-1
foi anexado ao nome de dispositivodata-disk
com uma regra de exclusão automática para nunca excluir o disco.Para substituir
data-disk-1
pordata-disk-2
, execute o comando a seguir: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:
Terraform
Para configurar discos com estado individualmente para uma VM em um 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 a configuração por instância a uma VM, use o recurso
google_compute_per_instance_config
e inclua o blocopreserved_state
, conforme mostrado no exemplo a seguir.Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
REST
Para configurar discos com estado individualmente nas VMs em um 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 as VMs especificadas ainda não tiverem configurações por instância, use o método
instanceGroupManagers.updatePerInstanceConfigs
ou o métodoregionInstanceGroupManagers.updatePerInstanceConfigs
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/updatePerInstanceConfigs { "perInstanceConfigs": [ { "name": "VM_NAME", "preservedState" : { "disks": { "DEVICE_NAME" : { "source": "DISK", "mode": "MODE", "autoDelete": "DELETE_RULE" }, ... } }, "fingerprint: "FINGERPRINT" }, ... ] }
Se as VMs especificadas já tiverem configurações por instância, 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:
Os métodos
updatePerInstanceConfigs
epatchPerInstanceConfigs
atualizam as configurações por instância especificadas, mas não aplicam as atualizações às VMs gerenciadas associadas. As alterações são aplicadas a uma instância quando o MIG recebe a instrução para recriá-la ou atualizá-la. Também é possível atualizar seletivamente a instância para aplicar as alterações.Exemplo
Os dados em um disco com estado anexado atualmente,
data-disk-1
, foram corrompidos e você quer restaurá-los com base no backup mais recente. Você criou um discodata-disk-2
com base em um snapshot para substituir o disco corrompido na instânciadb-instance-1
, gerenciada por um MIG com estadoexample-database-mig
. O disco originaldata-disk-1
foi anexado ao nome de dispositivodata-disk
com uma regra de exclusão automática para nunca excluir o disco.Para atualizar a configuração por instância de
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 corrige a configuração por instância para
db-instance-1
:A atualização da config ainda não foi aplicada à VM
db-instance-1
. O MIG aplica a atualização da config quando você recria ou atualiza a instância.Para aplicar a atualização da 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 gerenciada, removendo
data-disk-1
e anexandodata-disk-2
com mesmo nome de dispositivodata-disk
. Como aminimalAction
está definida comoRESTART
, o método reinicia a VMdb-instance-1
, o que permite ao aplicativo de banco de dados começar a usar o novo disco.Como remover um disco com estado ou declará-lo sem estado para uma VM individual
Talvez seja necessário remover um disco com estado ou configurá-lo para ser considerado "sem estado" em uma VM individual. Exemplo:
Remova um disco com estado ou torne-o sem estado em uma VM individual removendo a configuração com estado dele da configuração por instância associada ou excluindo a configuração inteira. Quando você aplica a mudança:
A remoção de uma configuração de disco da configuração por instância não reinicia uma instância de VM em execução, a menos que você escolha fazer isso explicitamente.
Para mais informações, consulte Como aplicar atualizações de configurações por instância.
gcloud
Para remover discos com estado ou declará-los sem estado individualmente para uma VM em um MIG, remova a configuração de disco com estado da configuração por instância associada ou exclua toda a configuração por instância se ele não tiver outro estado. Atualize a instância para aplicar a configuração.
Para remover uma configuração de disco com estado da config por instância associada, use o comando
gcloud compute instance-groups managed instance-configs update
com a sinalização--remove-stateful-disks
. A sinalização--update-instance
(padrão) aplica as alterações imediatamente à instância. Se você usar--no-update-instance
, as alterações permanecerão não aplicadas e serão aplicadas na próxima vez que você recriar ou atualizar 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:
Exemplo
Você executa um aplicativo legado em um MIG chamado
example-legacy-group
. Cada VM no MIG armazena os dados do aplicativo em um disco de inicialização com o nome de dispositivoboot-disk
. Usando as configurações por instância, você configurou cada disco de inicialização como "com estado". Agora você moveu os dados do aplicativo para um disco extra e quer tornar o disco de inicialização sem estado para cada VM a fim de facilitar a atualização para novas imagens.Por exemplo, para cada instância de
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:
REST
Para remover discos com estado ou declará-los sem estado individualmente para uma VM em um MIG, remova a configuração de disco com estado da configuração por instância associada ou exclua toda a configuração por instância se ela não incluir 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 método
patchPerInstanceConfigs
corrige as configurações por instância especificadas, mas não aplica as alterações às VMs associadas. As alterações são aplicadas a uma VM quando você recria ou atualiza a instância. É possível aplicar as alterações manualmente ou usar atualizações graduais automatizadas.Exemplo
Você executa um aplicativo legado em um MIG chamado
example-legacy-group
. Cada VM no MIG armazena os dados do aplicativo em um disco de inicialização com o nome de dispositivoboot-disk
. Você configurou o disco de inicialização como "com estado" nas configurações por instância do MIG ao migrar as VMs autônomas para o MIG. Você moveu os dados do aplicativo para um disco extra e agora quer tornar o disco de inicialização sem estado para cada VM a fim de facilitar a atualização para as novas imagens.Feedback
Queremos saber sobre seus casos de uso, desafios e feedback que envolvem os MIGs com estado. Compartilhe essas informações com nossa equipe em mig-discuss@google.com.
A seguir
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 2024-12-22 UTC.
-