Este documento descreve como gerenciar grupos de consistência. Grupos de consistência são políticas de recursos que alinham a replicação em vários discos na mesma região ou zona.
Para saber mais sobre grupos de consistência, consulte Sobre a replicação assíncrona.
Limitações
- Um disco pode pertencer a apenas um grupo de consistência por vez.
- Grupos de consistência não são compatíveis com discos em nós de locatário individual.
- Os grupos de consistência podem ter no máximo 128 discos.
- Todos os discos em um grupo de consistência precisam estar no mesmo projeto que a política de recursos do grupo de consistência.
- Um grupo de consistência pode conter discos principais ou secundários, mas não ambos.
- Para ativar a replicação assíncrona dos discos em um grupo de consistência, todos os discos precisam estar na mesma zona, para discos zonais, ou no mesmo par de zonas, para discos regionais.
- Não é possível adicionar ou remover um disco primário de/para um grupo de consistência enquanto o disco está sendo replicado. Se você quiser adicionar ou remover um disco primário de ou para um grupo de consistência, primeiro interrompa a replicação. É possível adicionar ou remover discos secundários de ou para grupos de consistência a qualquer momento.
- É possível anexar no máximo 16 discos que estão em grupos de consistência diferentes ou em discos que não estão em um grupo de consistência a uma VM. Os discos que estão no mesmo grupo de consistência contam como um disco até o limite de 16 discos.
Antes de começar
-
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 ter as permissões necessárias para clonar discos em um grupo de consistência, 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 clonar discos em um grupo de consistência. 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 clonar discos em um grupo de consistência:
-
compute.disks.create -
compute.disks.useReadOnlyno disco de origem -
Para clonar o disco de inicialização de uma instância que tem uma conta de serviço anexada:
iam.serviceAccounts.actAsna conta de serviço da instância
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Criar um grupo de consistência
Se você precisar alinhar a replicação em vários discos, crie um grupo de consistência na mesma região dos discos principais. Se você precisar alinhar clones de disco, crie um grupo de consistência na mesma região dos discos secundários.
Crie um grupo de consistência usando o console Google Cloud , a Google Cloud CLI, REST ou Terraform.
Console
Para criar um grupo de consistência, faça o seguinte:
No console do Google Cloud , acesse a página Grupos de consistência.
Clique na guia Grupos de consistência de disco.
Clique em Criar grupo de consistência.
No campo Nome, digite um nome para o grupo de consistência.
No campo Região, selecione a região em que seus discos estão localizados. Se você quiser adicionar discos principais ao grupo de consistência, selecione a região primária. Se você quiser adicionar discos secundários ao grupo de consistência, selecione a região secundária.
Clique em Criar.
gcloud
Crie um grupo de consistência usando o
comando gcloud compute resource-policies create disk-consistency-group:
gcloud compute resource-policies create disk-consistency-group CONSISTENCY_GROUP_NAME \
--region=REGION
Substitua:
CONSISTENCY_GROUP_NAME: o nome do grupo de consistência.REGION: a região do grupo de consistência. Se você quiser adicionar discos principais ao grupo de consistência, use a região principal. Se você quiser adicionar discos secundários ao grupo de consistência, use a região secundária.
Go
Java
Node.js
Python
REST
Crie um grupo de consistência usando o
método resourcePolicies.insert:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies
{
"name": "CONSISTENCY_GROUP_NAME",
"diskConsistencyGroupPolicy": {
}
}
Substitua:
PROJECT: o projeto que contém o grupo de consistência.REGION: a região do grupo de consistência. Se você quiser adicionar discos principais ao grupo de consistência, use a mesma região como os discos principais. Se você quiser adicionar discos secundários ao grupo de consistência, use a mesma região dos discos secundários.CONSISTENCY_GROUP_NAME: o nome do grupo de consistência.
Terraform
Para criar um grupo de consistência, use o recurso compute_resource_policy.
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Ver discos em um grupo de consistência
Veja os discos em um grupo de consistência usando o console Google Cloud , a Google Cloud CLI ou REST.
Console
Para ver os discos incluídos em um grupo de consistência, faça o seguinte:
No console do Google Cloud , acesse a página Grupos de consistência.
Clique na guia Grupos de consistência de disco.
Clique no nome do grupo de consistência dos discos que você quer ver. A página Gerenciar grupo de consistência é aberta.
Consulte a seção Participantes do grupo de consistência para ver todos os discos incluídos no grupo de consistência.
gcloud
Veja os discos incluídos em um grupo de consistência usando o
comando gcloud compute disks list:
gcloud compute disks list \
--LOCATION_FLAG=LOCATION \
--filter=resourcePolicies=CONSISTENCY_GROUP_NAME
Substitua:
LOCATION_FLAG: a sinalização de localização dos discos no grupo de consistência. Se os discos no grupo de consistência forem regionais, use--region. Se os discos no grupo de consistência forem zonais, use--zone.LOCATION: a região ou zona dos discos no grupo de consistência. Para discos regionais, use a região. Para discos zonais, use a zona.CONSISTENCY_GROUP_NAME: o nome do grupo de consistência.
Go
Java
Listar discos zonais em um grupo de consistência
Listar discos regionais em um grupo de consistência
Node.js
Python
REST
Veja os discos em um grupo de consistência usando um filtro de consulta com um dos seguintes métodos:
Veja os discos zonais em um grupo de consistência usando o método
disks.get:GET https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/disks?filter=resourcePolicies%3DCONSISTENCY_GROUP_NAME
Veja os discos regionais em um grupo de consistência usando o método
regionDisks.get:GET https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/disks?filter=resourcePolicies%3DCONSISTENCY_GROUP_NAME
Substitua:
PROJECT: o projeto que contém o grupo de consistência.ZONE: a zona dos discos no grupo de consistência.REGION: a região dos discos no grupo de consistência.CONSISTENCY_GROUP_NAME: o nome do grupo de consistência
Adicionar um disco a um grupo de consistência
Para adicionar discos principais a um grupo de consistência, é preciso fazer isso antes de iniciar a replicação. É possível adicionar discos secundários a um grupo de consistência a qualquer momento. Para ativar a replicação assíncrona dos discos em um grupo de consistência, todos os discos precisam estar na mesma zona, para discos zonais, ou no mesmo par de zonas, para discos regionais.
Adicione um disco a um grupo de consistência usando o Google Cloud console, a Google Cloud CLI, o REST ou o Terraform.
Console
Para adicionar discos a um grupo de consistência, faça o seguinte:
No console do Google Cloud , acesse a página Grupos de consistência.
Clique na guia Grupos de consistência de disco.
Clique no nome do grupo de consistência ao qual você quer adicionar discos. A página Gerenciar grupo de consistência é aberta.
Clique em Atribuir discos. A página Atribuir discos é aberta.
Selecione os discos que você quer adicionar ao grupo de consistência.
Clique em Atribuir discos. Quando solicitado, clique em Adicionar.
gcloud
Adicione um disco a um grupo de consistência usando o
comando gcloud compute disks add-resource-policies:
gcloud compute disks add-resource-policies DISK_NAME \
--LOCATION_FLAG=LOCATION \
--resource-policies=CONSISTENCY_GROUP
Substitua:
DISK_NAME: o nome do disco a ser adicionado ao grupo de consistência.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.CONSISTENCY_GROUP: o URL do grupo de consistência. Por exemplo,projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME.
Go
Java
Node.js
Python
REST
Adicione discos a um grupo de consistência usando um dos seguintes métodos:
Adicione discos zonais a um grupo de consistência usando o método
disks.addResourcePolicies:POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/LOCATION/disks/DISK_NAME/addResourcePolicies { "resourcePolicies": "CONSISTENCY_GROUP" }Adicione discos regionais a um grupo de consistência usando o método
regionDisks.addResourcePolicies:POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/LOCATION/disks/DISK_NAME/addResourcePolicies { "resourcePolicies": "CONSISTENCY_GROUP" }
Substitua:
PROJECT: o projeto que contém o disco.LOCATION: a zona ou região do disco. Para discos zonais, use a zona. Para discos regionais, use a região.DISK_NAME: o nome do disco a ser adicionado ao grupo de consistência.CONSISTENCY_GROUP: o URL do grupo de consistência. Por exemplo,projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME.
Terraform
Para adicionar o disco ao grupo de consistência, use o recurso compute_disk_resource_policy_attachment.
No caso de um disco regional, especifique a região em vez da zona.
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Remover um disco de um grupo de consistência
Antes de remover um disco de um grupo de consistência, você precisa interromper a replicação para o disco.
Remova um disco de um grupo de consistência usando o Google Cloud console, a Google Cloud CLI ou o REST.
Console
Remova os discos principais de um grupo de consistência fazendo o seguinte:
No console do Google Cloud , acesse a página Grupos de consistência.
Clique na guia Grupos de consistência de disco.
Clique no nome do grupo de consistência ao qual você quer adicionar discos. A página Gerenciar grupo de consistência é aberta.
Na seção Membros do grupo de consistência, selecione os discos que você quer remover do grupo.
Clique em Remover discos. Quando aparecer uma mensagem para confirmar sua escolha, clique em Remover.
gcloud
Remova um disco de um grupo de consistência usando o
comando gcloud compute disks remove-resource-policies:
gcloud compute disks remove-resource-policies DISK_NAME \
--LOCATION_FLAG=LOCATION \
--resource-policies=CONSISTENCY_GROUP
Substitua:
DISK_NAME: o nome do disco a ser removido do grupo de consistência.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.CONSISTENCY_GROUP: o URL do grupo de consistência. Por exemplo,projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME.
Go
Java
Node.js
Python
REST
Remova um disco de um grupo de consistência usando o
método disks.removeResourcePolicies
para discos zonais ou o
método regionDisks.removeResourcePolicies para regiões discos.
Remova um disco zonal de um grupo de consistência:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/LOCATION/disks/DISK_NAME/removeResourcePolicies { "resourcePolicies": "CONSISTENCY_GROUP" }Remova um disco regional de um grupo de consistência:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/LOCATION/disks/DISK_NAME/removeResourcePolicies { "resourcePolicies": "CONSISTENCY_GROUP" }
Substitua:
PROJECT: o projeto que contém o disco.LOCATION: a zona ou região do disco. Para discos zonais, use a zona. Para discos regionais, use a região.DISK_NAME: o nome do disco a ser removido do grupo de consistência.CONSISTENCY_GROUP: o URL do grupo de consistência. Por exemplo,projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME.
Excluir um grupo de consistência
Exclua um grupo de consistência usando o console Google Cloud , a Google Cloud CLI ou REST.
Console
Para excluir uma consistência, faça o seguinte:
No console do Google Cloud , acesse a página Grupos de consistência.
Clique na guia Grupos de consistência de disco.
Selecione o grupo de consistência que você quer excluir.
Clique em Excluir. A janela Excluir grupo de consistência é aberta.
Clique em Excluir.
gcloud
Exclua a política de recursos usando o
comando gcloud compute resource-policies delete:
gcloud compute resource-policies delete CONSISTENCY_GROUP \
--region=REGION
Substitua:
CONSISTENCY_GROUP: o nome do grupo de consistência.REGION: a região do grupo de consistência
Go
Java
Node.js
Python
REST
Exclua uma consistência usando o
método resourcePolicies.delete:
DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
Substitua:
PROJECT: o projeto que contém o grupo de consistência.REGION: a região do grupo de consistênciaCONSISTENCY_GROUP: o nome do grupo de consistência.
A seguir
- Saiba como gerenciar discos que usam replicação assíncrona.
- Saiba como fazer failover e failback.
- Saiba como monitorar o desempenho da replicação assíncrona.