É possível usar volumes do Hyperdisk do Google Cloud e do Persistent Disk como discos de inicialização e de dados para instâncias do Compute Engine.
Neste documento, explicamos como concluir as seguintes tarefas:
Converta um disco para um tipo diferente de Persistent Disk ou Hyperdisk criando um novo disco que contenha os dados do disco original. Dependendo do tipo de disco escolhido, você pode ter os seguintes benefícios:
- Atingir níveis de desempenho mais altos se você escolher um tipo de disco mais rápido
- Reduza os custos se escolher um tipo de disco mais econômico
Configure se o Compute Engine exclui os discos de inicialização ou de dados de uma instância de computação quando você exclui a instância. Você vai arcar com os custos de um disco até excluí-lo, mesmo que ele não esteja anexado a nenhuma instância. Você pode reduzir os custos ativando a exclusão automática de discos que não serão mais necessários depois que a instância anexada for excluída.
Atualize o modo de acesso de um volume do Hyperdisk para ativar ou desativar o acesso ao volume em várias instâncias do Compute Engine.
Para mudar o tamanho de um volume do Hyperdisk ou do Persistent Disk, consulte Mudar o tamanho ou o desempenho provisionado de um volume do Hyperdisk e Mudar o tamanho de um disco permanente, respectivamente.
Mudar o tipo de um volume Persistent Disk
Às vezes, é necessário mudar o tipo de um volume de Persistent Disk específico para atender aos requisitos de desempenho ou de preços. Por exemplo, talvez você queira mudar o disco de dados de uma carga de trabalho de um disco permanente padrão para um Persistent Disk equilibrado.
Não é possível mudar diretamente o tipo de um volume de Persistent Disk. É necessário criar um snapshot do disco atual e usá-lo para criar um disco do novo tipo.
Para mudar um volume de Persistent Disk (o disco de origem) para outro tipo de Persistent Disk (o novo disco), use o seguinte processo:
Se o disco de origem estiver anexado a uma instância de computação, pare a instância.
Crie um snapshot do disco de origem.
Crie o novo disco com base no snapshot do disco de origem.
Para começar a usar o novo disco, separe o disco de origem da instância e anexe o novo disco que você acabou de criar.
Se o disco de origem for de inicialização:
Se o disco de origem não for de inicialização:
Verifique se o novo disco funciona conforme o esperado.
Depois de testar o novo disco, é possível excluir o snapshot e excluir o disco de origem. Você continua sendo cobrado pelo disco de origem e pelo snapshot até excluí-los.
Modificar a configuração de exclusão automática de um disco
Para evitar a perda acidental de dados, é possível controlar se o Compute Engine exclui automaticamente os volumes do Hyperdisk ou do Persistent Disk do Google Cloud anexados a uma instância quando ela é excluída. Os discos SSD locais são sempre excluídos com a instância.
A propriedade autoDelete de cada volume do Hyperdisk ou Persistent Disk do Google Cloud anexado à instância controla esse comportamento.
Para manter um volume específico ao excluir a instância, defina a propriedade autoDelete do volume como false. Por outro lado, para excluir um volume ao excluir a instância, defina a propriedade autoDelete como true.
Não é possível excluir automaticamente um disco se ele estiver anexado à instância no modo somente leitura.
Console
No console do Google Cloud , acesse a página Instâncias de VM.
Selecione a instância que tem os discos associados.
Clique no nome da instância. A página Detalhes da instância da VM é exibida.
Clique em Editar.
Para atualizar a configuração de exclusão automática dos seus discos, na seção Armazenamento, siga estas etapas:
- Em Disco de inicialização, selecione a Regra de exclusão do disco.
- Para cada disco adicional anexado à instância, encontre o disco na seção Discos adicionais e siga estas etapas:
- Clique em Editar disco. O painel Disco atual é aberto.
- Em Modo de anexo, defina a Regra de exclusão do disco. Para salvar a configuração do disco e fechar o painel, clique em Salvar.
Para salvar as alterações, clique em Salvar.
gcloud
Defina o estado de exclusão automática de um disco com o comando gcloud compute instances set-disk-auto-delete.
Para manter o disco ao excluir a instância, especifique a flag --no-auto-delete. Para excluir o disco, especifique a flag --auto-delete.
Se a instância tiver vários discos anexados, execute o comando para cada um deles.
gcloud compute instances set-disk-auto-delete INSTANCE_NAME \ AUTO_DELETE_SETTING \ --disk DISK_NAME
Substitua:
INSTANCE_NAME: o nome da instância.AUTO_DELETE_SETTING: se o disco será ou não excluído automaticamente. Especifique--no-auto-deletepara manter o disco após excluir a instância de computação e--auto-deletepara excluir o disco ao mesmo tempo que a instância.DISK_NAME: o nome do disco.
Go
Antes de testar esta amostra, siga as instruções de configuração do Go no Guia de início rápido do Compute Engine: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Go do Compute Engine.
Para autenticar-se no Compute Engine, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do Compute Engine: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Java do Compute Engine.
Para autenticar-se no Compute Engine, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Antes de testar esta amostra, siga as instruções de configuração do Node.js no Guia de início rápido do Compute Engine: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Node.js do Compute Engine.
Para autenticar-se no Compute Engine, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do Compute Engine: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Python do Compute Engine.
Para autenticar-se no Compute Engine, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
REST
Para definir o estado de exclusão automática usando a API, faça uma solicitação POST ao método instances.setDiskAutoDelete. Use o parâmetro autoDelete para indicar se o disco será excluído.
Se a instância tiver vários discos anexados, faça uma solicitação para cada um deles.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setDiskAutoDelete?deviceName=DISK_NAME,autoDelete=AUTO_DELETE_OPTION
Substitua:
PROJECT_ID: o ID do projeto.ZONE: a zona em que a instância e o disco estão localizados.INSTANCE_NAME: o nome da instânciaDISK_NAME: o nome do disco anexado à instância.AUTO_DELETE_OPTION: se o disco será ou não excluído automaticamente quando a instância for excluída. Para excluir o disco, defina comotrue. Defina comofalsepara manter o disco após excluir a instância.
Modo de acesso para volumes do Hyperdisk
Para compartilhar um volume do Hyperdisk entre várias instâncias e conceder a cada instância acesso simultâneo de leitura/gravação ou somente leitura ao volume, defina o modo de acesso do volume como somente leitura ou com vários gravadores, respectivamente.
Por outro lado, para realizar determinadas ações, como criar uma imagem, em um volume do Hyperdisk no modo somente leitura ou com vários gravadores, é necessário definir o modo de acesso como gravador único.
Esta seção descreve como definir o modo de acesso de um disco.
Para saber mais sobre o compartilhamento de disco, consulte Compartilhar discos entre instâncias.
Limitações para mudanças no modo de acesso
Não é possível definir o modo de acesso de um disco, a menos que você desconecte o disco de todas as instâncias.
Os volumes de capacidade de processamento do Hyperdisk só aceitam o modo de gravador único, e não é possível definir o modo de acesso para um volume de capacidade de processamento do Hyperdisk.
Para volumes do Hyperdisk Balanced, Hyperdisk Extreme e Hyperdisk Balanced High Availability, só é possível ativar ou desativar o modo de vários gravadores. Não é possível definir o modo de acesso como somente leitura.
Para volumes do Hyperdisk ML, só é possível definir o modo de acesso como somente leitura. Os volumes do Hyperdisk ML não oferecem suporte ao modo de vários gravadores.
Não é possível modificar o modo de acesso de um volume do Hyperdisk ML depois de defini-lo como somente leitura.
Papéis e permissões necessárias
Para ter a permissão necessária para definir o modo de acesso de um disco, 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 VM que pode ser executada como uma conta de serviço:
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.
Esse papel predefinido contém a permissão
compute.disks.update,
que é necessária para
definir o modo de acesso de um disco.
Também é possível receber essa permissão com papéis personalizados ou outros papéis predefinidos.
Definir o modo de acesso de um volume do Hyperdisk
Antes de definir o modo de acesso de um disco, é necessário desanexar o disco de todas as instâncias.
É possível definir o modo de acesso com o console do Google Cloud , a CLI do Google Cloud ou REST.
Console
No console do Google Cloud , acesse a página Discos.
Na lista de discos do projeto, clique no nome do volume do Hyperdisk que você quer modificar.
Na página de detalhes do disco, clique Editar.
No campo Modo de acesso, selecione o modo de acesso que você quer:
- Para ativar o modo somente leitura, selecione Somente leitura de várias VMs.
- Para ativar o modo de vários gravadores, selecione Leitura e gravação de várias VMs.
- (Padrão) Para ativar o modo de gravação única, selecione Leitura e gravação de VM única.
Para aplicar as alterações, clique em Salvar.
gcloud
Execute o comando disks update
e especifique o modo de acesso usando a flag --access-mode.
gcloud compute disks update DISK_NAME \ --access-mode=DISK_ACCESS_MODE
Substitua:
- DISK_NAME: o nome do volume do Hyperdisk que você está modificando.
- DISK_ACCESS_MODE: como as instâncias podem acessar os dados no disco.
Os valores aceitos são:
READ_ONLY_MANY, para acesso somente leitura de várias instâncias.READ_WRITE_MANY, para acesso de leitura e gravação de várias instâncias.- (Padrão)
READ_WRITE_SINGLE, para acesso de leitura e gravação em uma instância.
REST
Crie uma solicitação PATCH para o
método compute.disks.update.
No corpo da solicitação, defina o modo de acesso incluindo o parâmetro accessMode.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/update
{
"accessMode": "DISK_ACCESS_MODE"
}
Substitua:
PROJECT_ID: o ID do projeto.ZONE: a zona em que o volume do Hyperdisk está localizado.DISK_NAME: o nome do volume do Hyperdisk a ser modificado.DISK_ACCESS_MODE: como as instâncias podem acessar os dados no disco. Os valores aceitos são:READ_ONLY_MANY, para acesso somente leitura de várias instâncias.READ_WRITE_MANY, para acesso de leitura e gravação de várias instâncias.READ_WRITE_SINGLE, para o modo de gravação única, ou seja, acesso de leitura e gravação de uma instância.
Solução de problemas
Para encontrar métodos para diagnosticar e resolver problemas relacionados a discos completos e redimensionamento de disco, consulte Como solucionar problemas de discos completos e redimensionamento de disco.
A seguir
- Saiba como fazer backup dos discos regularmente usando snapshots para evitar a perda não intencional de dados.
- Use discos permanentes regionais para replicação síncrona entre duas zonas.
- Ative um disco RAM na instância