Neste documento, descrevemos como iniciar e interromper a replicação assíncrona.
A replicação assíncrona é útil para recuperação de desastres com baixo RPO e RTO. Para saber mais sobre replicação assíncrona, consulte Sobre a replicação assíncrona.
Limitações
- Um disco principal só pode ser replicado para um disco secundário por vez.
- Após a interrupção da replicação, não será possível retomar a replicação para o mesmo disco. Crie um novo disco secundário e reinicie a replicação.
- Não é possível anexar, excluir ou criar snapshots dos discos secundários enquanto eles estão no processo de replicação.
- Se você usar um disco regional como disco secundário e ocorrer uma falha temporária zonal em uma das zonas do disco secundário, a replicação do disco primário para o disco secundário falhará.
Antes de começar
- Se você precisar alinhar a replicação em vários discos, crie um grupo de consistência.
- Crie um disco principal.
- Crie um disco secundário.
-
Configure a autenticação, caso ainda não tenha feito isso.
Com isso, você confirma 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:
Selecione a guia para como planeja usar as amostras nesta página:
Console
Quando você usa o console Google Cloud para acessar serviços Google Cloud e APIs, não é necessário configurar a autenticação.
gcloud
-
Instale a CLI do Google Cloud. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:
gcloud initAo usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
- Defina uma região e uma zona padrão.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Não é necessário fazer isso se você estiver usando o Cloud Shell.
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
Terraform
Para usar os exemplos do Terraform nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para CLI gcloud.
Instale a CLI do Google Cloud.
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
Saiba mais em Autenticar para usar REST na documentação de autenticação do Google Cloud .
Papéis e permissões necessárias
Para conseguir as permissões necessárias a fim de iniciar ou interromper a replicação, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
- Administrador da instância do Compute (v1) (
roles/compute.instanceAdmin.v1) -
Para se conectar a uma instância que tem uma conta de serviço anexada:
Usuário da conta de serviço (v1) (
roles/iam.serviceAccountUser)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esses papéis predefinidos contêm as permissões necessárias para iniciar ou interromper a replicação. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As seguintes permissões são necessárias para iniciar ou interromper a replicação:
-
Para começar a replicar o disco de inicialização de uma instância com uma conta de serviço anexada:
-
compute.disks.startAsyncReplication -
iam.serviceAccounts.actAsna conta de serviço da instância
-
-
Para iniciar a replicação de todos os outros discos:
compute.disks.startAsyncReplication -
Para interromper a replicação de um único disco:
compute.disks.stopAsyncReplication -
Para interromper a replicação de todos os discos em um grupo de consistência:
compute.disks.stopGroupAsyncReplication
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Iniciar replicação
Inicie a replicação usando o console Google Cloud , a Google Cloud CLI, REST ou Terraform.
Console
No console do Google Cloud , acesse a página Replicação assíncrona.
Clique no nome do disco secundário em que você quer iniciar a replicação.
Clique em Iniciar replicação. A janela Start replicação é aberta.
Clique em Iniciar replicação.
gcloud
Inicie a replicação usando o
comando gcloud compute disks start-async-replication:
gcloud compute disks start-async-replication PRIMARY_DISK_NAME \
--PRIMARY_LOCATION_FLAG=PRIMARY_LOCATION \
--secondary-disk=SECONDARY_DISK_NAME \
--SECONDARY_LOCATION_FLAG=SECONDARY_LOCATION \
--secondary-disk-project=SECONDARY_PROJECT
Substitua:
PRIMARY_DISK_NAME: o nome do disco principal.PRIMARY_LOCATION_FLAG: a sinalização de localização do disco principal. Para discos regionais, use--region. Para discos zonais, use--zone.PRIMARY_LOCATION: a região ou zona do disco principal. Para discos regionais, use a região. Para discos zonais, use a zona.SECONDARY_DISK_NAME: o nome do disco secundário.SECONDARY_LOCATION_FLAG: a sinalização de localização do disco secundário. Para discos regionais, use--secondary-disk-region. Para discos zonais, use--secondary-disk-zone.SECONDARY_LOCATION: a região ou zona do disco secundário. Para discos regionais, use a região. Para discos zonais, use a zona.SECONDARY_PROJECT: o projeto que contém o disco secundário.
Go
Java
Node.js
Python
REST
Inicie a replicação usando um dos seguintes métodos:
Inicie a replicação para discos zonais usando o método
disks.startAsyncReplication:POST https://compute.googleapis.com/compute/v1/projects/PRIMARY_DISK_PROJECT/zones/PRIMARY_LOCATION/disks/PRIMARY_DISK_NAME/startAsyncReplication { "asyncSecondaryDisk": "projects/SECONDARY_DISK_PROJECT/SECONDARY_LOCATION_PARAMETER/SECONDARY_LOCATION/disks/SECONDARY_DISK_NAME" }Inicie a replicação para discos regionais usando o método
regionDisks.startAsyncReplication:POST https://compute.googleapis.com/compute/v1/projects/PRIMARY_DISK_PROJECT/regions/PRIMARY_LOCATION/regionDisks/PRIMARY_DISK_NAME/startAsyncReplication { "asyncSecondaryDisk": "projects/SECONDARY_DISK_PROJECT/SECONDARY_LOCATION_PARAMETER/SECONDARY_LOCATION/disks/SECONDARY_DISK_NAME" }
Substitua:
PRIMARY_DISK_PROJECT: o projeto que contém o disco principal.PRIMARY_LOCATION: a região ou zona do disco principal. Para discos regionais, use a região. Para discos zonais, use a zona.PRIMARY_DISK_NAME: o nome do disco principal.SECONDARY_DISK_PROJECT: o projeto que contém o disco secundário.SECONDARY_LOCATION_PARAMETER: o parâmetro de localização do disco secundário. Para discos regionais, useregions. Para discos zonais, usezones.SECONDARY_LOCATION: a região ou zona do disco secundário. Para discos regionais, use a região. Para discos zonais, use a zona.SECONDARY_DISK_NAME: o nome do disco secundário.
Terraform
Para iniciar a replicação entre os discos principal e secundário, use o recurso compute_disk_async_replication.
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Parar replicação
É possível interromper a replicação para um único disco primário ou secundário ou para todos os discos em um grupo de consistência. Se você interromper a replicação de um único disco em um grupo de consistência, o tempo de replicação desse disco vai ficar dessincronizado com os outros discos no grupo de consistência.
A interrupção da replicação é realizada nos cenários failover e failback. Se você interromper a replicação, não será possível reiniciá-la no mesmo disco secundário. Se você quiser reiniciar a replicação, crie um novo disco secundário e comece novamente.
Quando você interrompe a replicação em um disco, o estado de replicação do disco muda para STOPPED. O estado de replicação do outro disco no par de
replicações do disco (o disco principal ou secundário correspondente) é atualizado para
STOPPED posteriormente. Se você quiser evitar a lacuna de tempo e atualizar o
estado de replicação do outro disco imediatamente para STOPPED, também será necessário interromper
a replicação manualmente no outro disco. A interrupção da replicação nos dois discos
não afeta o momento em que a replicação é interrompida, apenas
os estados de replicação dos discos.
Parar a replicação para um único disco
Interrompa a replicação de um único disco usando o Google Cloud console, a Google Cloud CLI ou o REST.
Console
Para interromper a replicação, faça o seguinte:
No console do Google Cloud , acesse a página Replicação assíncrona.
Clique no nome do disco primário ou secundário em que você quer interromper a replicação. A página Gerenciar disco é aberta.
Clique em Encerrar replicação. A janela Encerrar replicação é aberta.
Clique em Encerrar replicação.
gcloud
Interrompa a replicação usando o
comando gcloud compute disks stop-async-replication:
gcloud compute disks stop-async-replication DISK_NAME \
--LOCATION_FLAG=LOCATION
Substitua:
DISK_NAME: o nome do disco.LOCATION_FLAG: a sinalização de localização do disco. Para um disco regional, use--region. Para um disco zonal, use--zone.LOCATION: a região ou zona do disco. Para discos regionais, use a região. Para discos zonais, use a zona.
Go
Java
Node.js
Python
REST
Pare a replicação usando um dos seguintes métodos:
Interrompa a replicação para discos zonais usando o método
disks.stopAsyncReplication:POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/LOCATION/disks/DISK_NAME/stopAsyncReplication { }Interrompa a replicação para discos regionais usando o método
regionDisks.stopAsyncReplication:POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/LOCATION/regionDisks/DISK_NAME/stopAsyncReplication { }
Substitua:
PROJECT: o projeto que contém o disco.DISK_NAME: o nome do disco.LOCATION: a zona ou região do disco. Para discos zonais, use a zona. Para discos regionais, use a região.
Terraform
Para interromper a replicação nos discos principal e secundário, remova o recurso compute_disk_async_replication.
Parar a replicação para um grupo de consistência
Interrompa a replicação de todos os discos em um grupo de consistência usando o Google Cloud console, a Google Cloud CLI ou o REST.
Console
Para interromper a replicação para todos os discos em um grupo de consistência, faça o seguinte:
No console do Google Cloud , acesse a página Grupos de consistência.
Na guia Grupos de consistência de disco, clique no nome do grupo de consistência para interromper a replicação. A página Gerenciar grupo de consistência é aberta.
Clique em Encerrar replicação. A janela Encerrar replicação é aberta.
Clique em Encerrar replicação.
gcloud
Interrompa a replicação para todos os discos em um grupo de consistência usando o
comando gcloud compute disks stop-group-async-replication:
gcloud compute disks stop-group-async-replication CONSISTENCY_GROUP \ --LOCATION_FLAG=LOCATION
Substitua:
CONSISTENCY_GROUP: o URL do grupo de consistência. Por exemplo,projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME.LOCATION_FLAG: a sinalização de localização dos discos no grupo de consistência. Para discos regionais, use--region. Para discos zonais, use--zone.LOCATION: a região ou zona do disco. Para discos regionais, use a região. Para discos zonais, use a zona.
Go
Java
Node.js
Python
REST
Pare a replicação para todos os discos em um grupo de consistência usando um dos seguintes métodos:
Interrompa a replicação para discos zonais usando o método
disks.stopGroupAsyncReplication:POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/LOCATION/disks/stopGroupAsyncReplication { "resourcePolicy": "CONSISTENCY_GROUP" }Interrompa a replicação para discos regionais usando o método
regionDisks.stopGroupAsyncReplication:POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/LOCATION/regionDisks/DISK_NAME/stopAsyncReplication { "resourcePolicy": "CONSISTENCY_GROUP" }
Substitua:
DISK_NAME: o nome do disco.LOCATION: a zona ou região do disco. Para discos zonais, use a zona. Para discos regionais, use a região.CONSISTENCY_GROUP: o URL do grupo de consistência. Por exemplo,projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME.
A seguir
- Saiba como fazer failover e failback.
- Saiba como monitorar o desempenho da replicação assíncrona.