Compartilhar discos entre VMs


É possível acessar o mesmo disco de várias instâncias de máquina virtual (VM) anexando o disco a cada VM. É possível anexar um disco no modo somente leitura ou multigravação a uma VM.

Com o modo somente leitura, várias VMs só podem ler dados do disco. Nenhuma das VMs pode gravar no disco. O compartilhamento de um disco no modo somente leitura entre VMs é menos caro do que ter cópias dos mesmos dados em vários discos.

Com o modo de vários gravadores, várias VMs podem ler e gravar no mesmo disco. Isso é útil para sistemas de arquivos compartilhados e bancos de dados altamente disponíveis (HA), como a infraestrutura do cluster de failover do SQL Server (FCI).

É possível compartilhar um disco zonal apenas entre VMs na mesma zona. Os discos regionais só podem ser compartilhados com VMs nas mesmas zonas que as réplicas do disco.

Não há custos adicionais associados ao compartilhamento de um disco entre VMs. As VMs não precisam usar o mesmo tipo de máquina para compartilhar um disco, mas cada VM precisa usar um tipo de máquina que ofereça suporte ao compartilhamento de disco.

Este documento discute o compartilhamento de disco de vários gravadores e somente leitura no Compute Engine, incluindo os tipos de disco e as considerações de desempenho compatíveis.

Antes de começar

  • 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 da seguinte maneira.

    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

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. 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.

Ativar o compartilhamento de disco

É possível anexar um volume do Hyperdisk ou do Persistent Disk a várias VMs. No entanto, para volumes do Hyperdisk, primeiro é necessário colocar o disco no modo de vários gravadores ou somente leitura definindo o modo de acesso.

O modo de acesso de um volume do Hyperdisk é uma propriedade que determina como as VMs podem acessar o disco.

Os modos de acesso disponíveis são os seguintes:

  • Modo de gravação única (READ_WRITE_SINGLE): é o modo de acesso padrão. Permite que o disco seja anexado a, no máximo, uma VM por vez. A VM anexada tem acesso de leitura e gravação ao disco.
  • Modo somente leitura (READ_ONLY_MANY): permite anexos simultâneos a várias VMs no modo somente leitura. As VMs não podem gravar no disco nesse modo. Obrigatório para compartilhamento somente leitura.
  • Modo de vários gravadores (READ_WRITE_MANY): permite anexos simultâneos a várias VMs no modo leitura-gravação. Obrigatório para compartilhamento com vários gravadores.

O suporte para cada modo de acesso varia de acordo com o tipo de Hyperdisk, conforme indicado na tabela a seguir. Não é possível definir o modo de acesso para volumes do Hyperdisk Throughput ou do Hyperdisk Extreme.

Tipo de Hyperdisk Modos de acesso compatíveis
Hiperdisco equilibrado
Hyperdisk equilibrado de alta disponibilidade
(pré-lançamento)
  • Modo de gravador único
  • Modo de vários gravadores
Hyperdisk ML
  • Modo de gravador único
  • Modo somente leitura
Capacidade de processamento do Hyperdisk
Hiperdisco extremo
  • Modo de gravador único

Para discos que podem ser compartilhados entre VMs, é possível definir o modo de acesso durante ou após a criação do disco. Para instruções sobre como definir o modo de acesso, consulte definir o modo de acesso do disco.

Modo somente leitura para Hyperdisk e Persistent Disk

Esta seção discute o compartilhamento de um único disco no modo somente leitura entre várias VMs.

Tipos de disco compatíveis com o modo somente leitura

É possível anexar estes tipos de disco a várias VMs no modo somente leitura:

  • Hyperdisk ML
  • Disco permanente equilibrado regional e zonal.
  • Disco permanente SSD
  • Disco permanente padrão

Desempenho no modo somente leitura

Anexar um disco no modo somente leitura a várias VMs não afeta o desempenho do disco. Cada VM ainda pode alcançar o desempenho máximo de disco possível para a série de máquinas da VM.

Limitações para compartilhar discos no modo somente leitura

  • Se você compartilhar um volume do Hyperdisk ML no modo somente leitura, não será possível reativar o acesso de gravação ao disco.
  • É possível anexar um volume do Hyperdisk ML a até 100 VMs durante cada intervalo de 30 segundos.
  • O número máximo de VMs a que um disco pode ser anexado varia de acordo com o tipo de disco:
    • Para volumes do Hyperdisk ML, o número máximo de VMs depende do tamanho provisionado, conforme segue:
      • Volumes com menos de 256 GiB: 2.500 VMs
      • Volumes com capacidade entre 256 GiB e 1 TiB: 1.500 VMs
      • Volumes com capacidade entre 1 TiB e 2 TiB: 600 VMs
      • Volumes com mais de 2 TiB de capacidade: 30 VMs
    • Os volumes de disco permanente balanceado regional ou zonal no modo somente leitura têm suporte para, no máximo, 10 VMs.
    • Para o disco persistente SSD, o Google recomenda no máximo 100 VMs.
    • Para volumes de disco permanente padrão, o máximo recomendado é 10 VMs.

Como compartilhar um disco no modo somente leitura entre VMs

Se você não estiver usando o Hyperdisk ML, anexe o disco a várias VMs seguindo as instruções em Anexar um disco que não é de inicialização a uma VM.

Para anexar um volume do Hyperdisk ML no modo somente leitura a várias VMs, primeiro defina o modo de acesso do disco como somente leitura. Depois de definir o modo de acesso, anexe o volume do Hyperdisk ML às suas VMs.

Modo de vários gravadores para Hyperdisk

Os discos no modo de vários gravadores são adequados para casos de uso como estes:

  • Implementação da infraestrutura do cluster de failover (FCI) do SQL Server
  • Sistemas de arquivos em cluster em que várias VMs gravam no mesmo disco
  • Sistemas de alta disponibilidade no modo ativo-ativo ou ativo-passivo. A anexação do mesmo disco a várias VMs pode evitar interrupções, porque, se uma VM falhar, outras ainda terão acesso ao disco e poderão continuar executando a carga de trabalho.

Se o objetivo principal for o armazenamento de arquivos compartilhados entre VMs, considere uma destas opções:

Tipos de Hyperdisk e de máquina com suporte para o modo de vários gravadores

É possível usar volumes do Hyperdisk equilibrado e do Hyperdisk Balanced High Availability (pré-lançamento) no modo de vários gravadores. É possível anexar um volume no modo de vários gravadores a no máximo 8 VMs.

O Hyperdisk equilibrado oferece suporte ao modo de vários gravadores para os seguintes tipos de máquina:

O Hyperdisk Balanced High Availability oferece suporte ao modo de vários gravadores para os seguintes tipos de máquina:

O modo de vários gravadores para o Hyperdisk oferece suporte à interface NVMe. Se você estiver anexando um disco no modo multigravador a uma VM, o disco de inicialização da VM também precisará ser anexado com NVMe.

Sistemas de arquivos com suporte para o modo de vários gravadores

Para acessar um disco de várias VMs, use uma destas opções:

  • Reservas persistentes (PR), principalmente para sistemas de HA, como o SQL Server FCI e o NetApp ONTAP. O Google recomenda o uso de comandos de PR para fornecer o isolamento de E/S e manter a integridade de dados. Para conferir uma lista dos comandos de PR aceitos, consulte Proteção de E/S com reservas persistentes.
  • Sistemas de arquivos em cluster que oferecem suporte a várias instâncias de gravação no mesmo volume. Exemplos desses sistemas de arquivos incluem OCFS2, VMFS e GFS2.
  • Sistemas de software em escala horizontal, como Lustre e IBM Spectrum Scale.
  • Seu próprio mecanismo de sincronização para coordenar leituras e gravações simultâneas.

Desempenho do Hyperdisk no modo de vários gravadores

Quando você anexa um disco no modo de vários gravadores a várias VMs, o desempenho provisionado do disco é compartilhado igualmente entre todas as VMs. O desempenho é dividido de maneira uniforme entre todas as VMs, mesmo entre as que não estão em execução ou que não estão usando ativamente o disco. No entanto, a performance máxima de cada VM é limitada pelos limites de capacidade de processamento e IOPS de cada tipo de máquina da VM.

Por exemplo, suponha que você anexe um volume Hyperdisk equilibrado provisionado com 100.000 IOPS a 2 VMs. Cada VM recebe 50.000 IOPS simultaneamente.

A tabela a seguir mostra a performance que cada VM neste exemplo teria, dependendo de quantas VMs o disco está anexado. Sempre que você anexa um disco a outra VM, o Compute Engine ajusta de forma assíncrona o desempenho alocado para cada VM anexada anteriormente.

Número de VMs anexadas 1 2 3 4 5 6 7 8
IOPS máximo
por VM
100.000 50.000 ~33.333 25.000 20.000 ~16.667 14285 12.500
Capacidade máxima de processamento
por VM
em MiBps
1.200 600 400 300 240 200 ~172 150

Limitações para compartilhar volumes do Hyperdisk no modo de vários gravadores

  • É possível anexar um único volume do Hyperdisk equilibrado ou do Hyperdisk Balanced High Availability no modo de vários gravadores a no máximo 8 VMs.
  • Não é possível clonar um disco no modo de vários gravadores.
  • Não é possível criar snapshots, imagens de máquina ou imagens de disco em discos no modo de vários gravadores.
  • Não é possível criar um volume do Hyperdisk no modo de vários gravadores ao criar ou editar uma VM. Primeiro, é preciso criar o disco separadamente e, em seguida, anexá-lo à VM.
  • Não é possível redimensionar um disco no modo de vários gravadores, a menos que você o tenha desanexado de todas as VMs.
  • É possível fazer as seguintes mudanças em um disco que está no modo de vários gravadores, mesmo se o disco já estiver anexado a várias VMs:

    • Modificar as IOPS ou a capacidade de processamento provisionadas
    • Anexar o disco a outras VMs

    Quando você faz uma dessas mudanças, o Compute Engine redistribui o desempenho provisionado do disco em todas as VMs anexadas. Esse processo pode levar até 6 horas para ser concluído.

  • Não é possível criar uma imagem de um disco no modo de vários gravadores.

  • Não é possível ativar a exclusão automática para discos no modo de vários gravadores.

  • Não é possível usar um disco no modo de vários gravadores como o disco de inicialização de uma VM.

  • Os discos no modo de vários gravadores não podem ser usados com VMs de locação única.

  • É necessário usar o mesmo tipo de interface do disco de inicialização da VM.

  • Não é possível mudar o tipo de máquina de uma VM que está conectada a um disco no modo multigravador.

  • Os pools de armazenamento não oferecem suporte a discos no modo de vários gravadores.

Regiões disponíveis

O modo de vários gravadores tem suporte em todas as regiões em que o Hyperdisk equilibrado e o Hyperdisk Balanced High Availability estão disponíveis.

Isolamento de E/S com reservas persistentes

O Google recomenda o uso de reservas persistentes (PR) com discos no modo de vários gravadores para fornecer isolamento de E/S. As reservas permanentes gerenciam o acesso ao disco entre as VMs. Isso evita que os dados sejam corrompidos por VMs que gravam simultaneamente na mesma parte do disco.

Os volumes do Hyperdisk no modo de vários gravadores oferecem suporte a reservas NVMe (especificação 1.2.1).

Modos de reserva compatíveis

Os seguintes modos de reserva são compatíveis:

  1. Exclusiva de gravação: haverá um único titular da reserva e um único gravador. Todos os outros responsáveis ou não pelo registro só terão acesso de leitura.
  2. Exclusiva para gravação: somente para responsáveis pelo registro: haverá um único titular da reserva. Todos os responsáveis pelo registro terão acesso de leitura e gravação ao disco. Os não responsáveis pelo registro só terão acesso de leitura.

Os seguintes modos de reserva não são compatíveis:

  • Gravação exclusiva: todos os responsáveis pelo registro
  • Acesso exclusivo
  • Acesso exclusivo: apenas para responsáveis pelo registro
  • Acesso exclusivo: todos os responsáveis pelo registro

NVMe Get Features - Host Identifier é compatível. O número da VM é usado como o ID do host padrão.

Os seguintes recursos de reserva do NVMe não são compatíveis:

  • Definir recursos: identificador do host
  • Notificações de reserva:
    • Página de obtenção de registro
    • Máscara de notificação de reserva

Comandos compatíveis

As reservas NVMe são compatíveis com os seguintes comandos:

  • Ação de registro de reserva (RREGA): substituir/registrar/cancelar o registro - IEKEY
  • Ação de aquisição de reserva (RACQA): aquisição/preempção - IEKEY
  • Ação de liberação de reserva (RRELA): liberação/limpeza - IEKEY
  • Relatório de reservas
  • Campo de recursos de reserva (RESCAP) na estrutura de dados do namespace de identificação.

As reservas NVMe não são compatíveis com os seguintes comandos:

  • Forçar a interrupção e cancelar
  • Desativação da persistência durante a perda de energia (PTPL). O PTPL está sempre ativado.

Como compartilhar um disco no modo de vários gravadores

Antes de anexar um disco no modo de vários gravadores a várias VMs, defina o modo de acesso do disco como Vários gravadores. Você pode definir o modo de acesso de um disco ao criá-lo. Também é possível definir o modo de acesso para um disco existente, mas primeiro é necessário desanexar o disco de todas as VMs.

Para criar e usar um novo disco no modo de vários gravadores, siga estas etapas:

  1. Crie o disco, definindo o modo de acesso como Vários gravadores.
  2. Anexe o disco a cada VM.

Para usar um disco no modo de vários gravadores, siga estas etapas:

  1. Desconecte o disco de todas as VMs.
  2. Defina o modo de acesso do disco como Vários gravadores.
  3. Anexe o disco a cada VM.

Modo de vários gravadores para volumes de Persistent Disk

É possível anexar um volume de disco permanente SSD no modo de vários gravadores com até duas instâncias de máquina virtual (VM, na sigla em inglês) N2 simultaneamente, para que ambas as VMs possam ler e gravar no disco.

Se você tiver mais de duas VMs N2 ou estiver usando qualquer outra série de máquinas, use uma das seguintes opções:

Para ativar o modo de vários gravadores em novos discos permanentes, crie um volume de disco permanente e especifique a sinalização --multi-writer na CLI gcloud ou a propriedade multiWriter na API Compute Engine.

Os volumes de discos permanentes no modo de vários gravadores fornecem um recurso de armazenamento em blocos compartilhado e apresentam uma base infraestruturada para criar sistemas de armazenamento distribuídos e serviços semelhantes altamente disponíveis. Ao usar volumes de discos permanentes no modo de vários gravadores, use um sistema de software de armazenamento de escalonamento horizontal com a capacidade de coordenar o acesso a dispositivos de disco permanente em várias VMs. Exemplos desses sistemas de armazenamento incluem Lustre e o IBM Spectrum Scale. A maioria dos sistemas de arquivos de VM única, como EXT4, XFS e NTFS, não foi projetada para ser usada com o armazenamento em blocos compartilhados. Para mais informações, consulte Práticas recomendadas neste documento. Se você precisar de um armazenamento de arquivos totalmente gerenciado, ative um compartilhamento de arquivos do Filestore nas VMs do Compute Engine.

Os volumes do Persistent Disk no modo de vários gravadores são compatíveis com um subconjunto de comandos do Persistent Reservations SCSI-3 (SCSI PR). Aplicativos de alta disponibilidade podem usar esses comandos para configurações de encapsulamento e failover de E/S.

Os seguintes comandos SCSI PR são compatíveis:

  • ENTRADA {REPORT CAPABILITIES, READ FULL STATUS, READ RESERVATION, READ KEYS}
  • SAÍDA {REGISTER, REGISTER AND IGNORE EXISTING KEY, RESERVE, PREEMPT, CLEAR, RELEASE}

Para instruções, consulte Compartilhar um volume de disco permanente SSD no modo de vários gravadores entre as VMs.

Tipos de Persistent Disk com suporte para o modo de vários gravadores

É possível anexar simultaneamente um disco permanente SSD no modo de vários gravadores a até duas VMs N2.

Práticas recomendadas para o modo de vários gravadores

  • O encapsulamento de E/S usando os comandos de SCSI PR resulta em um estado consistente de falha dos dados do disco permanente. Alguns sistemas de arquivos não têm consistência de falhas e, portanto, poderão ficar corrompidos se você usar comandos SCSI PR.
  • Muitos sistemas de arquivos, como EXT4, XFS e NTFS, não são projetados para ser usados com armazenamento em blocos compartilhado e não têm mecanismos para sincronizar ou executar operações originadas de várias instâncias de VM.
  • Antes de usar os volumes do Persistent Disk no modo de vários gravadores, entenda o sistema de arquivos e como ele pode ser usado com segurança com armazenamento em blocos compartilhado e acesso simultâneo de várias VMs.

Desempenho do Persistent Disk no modo de vários gravadores

Os volumes de discos permanentes criados no modo de várias gravações têm limites de capacidade e de IOPS específicos.

Modo de vários gravadores para Discos permanentes SSD zonais
IOPS máximas sustentadas
IOPS de leitura por GB 30
IOPS de gravação por GB 30
IOPS de leitura por instância 15.000–100.000*
IOPS de gravação por instância 15.000–100.000*
Capacidade sustentada máxima (MB/s)
Capacidade de leitura por GB 0,48
Capacidade de gravação por GB 0,48
Capacidade de leitura por instância 240–1.200*
Capacidade de gravação por instância 240–1.200*
* O desempenho das IOPS e da capacidade do disco permanente depende do tamanho do disco, do número de vCPUs da instância e do tamanho do bloco de E/S, entre outros fatores.
A anexação de um disco de vários gravadores a várias instâncias de máquina virtual não afeta o desempenho ou o custo agregado. Cada máquina recebe uma parcela do limite de desempenho por disco.

Para saber como compartilhar discos permanentes entre várias VMs, consulte Compartilhar discos permanentes entre VMs.

Restrições para compartilhar um disco no modo de vários gravadores

  • O modo com vários gravadores só é compatível com volumes de disco permanente do tipo SSD.
  • É possível criar um volume de disco permanente no modo de vários gravadores em qualquer zona, mas só é possível anexá-lo às VMs nos seguintes locais:
    • australia-southeast1
    • europe-west1
    • us-central1 (somente zonas us-central1-a e us-central1-c)
    • us-east1 (apenas para a zona us-east1-d)
    • us-west1 (somente zonas us-west1-b e us-west1-c)
  • As instâncias anexadas precisam ter um tipo de máquina N2.
  • O tamanho mínimo do disco é de 10 GiB.
  • Os discos no modo de vários gravadores não são compatíveis com a anexação de mais de 2 VMs por vez. Os volumes do Persistent Disk no modo com vários gravadores não são compatíveis com as métricas do Persistent Disk.
  • Não é possível mudar discos que estejam no modo de vários gravadores para o modo somente leitura.
  • Não é possível usar imagens de disco ou snapshots para criar volumes do Persistent Disk no modo de vários gravadores.
  • Não é possível criar snapshots ou imagens de volumes do Persistent Disk no modo de vários gravadores.
  • Limites menores de IOPS. Consulte o desempenho do disco para saber detalhes.
  • Não é possível redimensionar um volume de disco permanente com vários gravadores.
  • Ao criar uma VM usando a CLI do Google Cloud, não é possível criar um volume de disco permanente de vários gravadores com a flag --create-disk.

Compartilhar um volume de disco permanente SSD no modo de vários gravadores entre as VMs

É possível compartilhar um volume de disco permanente SSD no modo de vários gravadores entre VMs N2 na mesma zona. Consulte Modo de vários gravadores em discos permanentes para detalhes sobre como ele funciona. Crie e anexe volumes do Persistent Disk com vários gravadores usando o seguinte processo:

gcloud

Crie e anexe um volume de disco permanente zonal usando a CLI gcloud:

  1. Use o comando gcloud beta compute disks create para criar um volume de disco permanente zonal. Inclua a sinalização --multi-writer para indicar que o disco precisa ser compartilhável entre as VMs no modo de vários gravadores.

    gcloud beta compute disks create DISK_NAME \
       --size DISK_SIZE \
       --type pd-ssd \
       --multi-writer
    

    Substitua:

    • DISK_NAME: o nome do novo disco
    • DISK_SIZE: o tamanho, em GB, do novo disco. Os tamanhos aceitáveis variam de 1 GB a 65.536 GB para volumes de disco permanente SSD ou de 200 GB a 65.536 GB para volumes de disco permanente padrão em vários gravadores mais recente.
  2. Depois de criar o disco, anexe-o a qualquer VM em execução ou parada com um tipo de máquina N2. Use o comando gcloud compute instances attach-disk:

    gcloud compute instances attach-disk INSTANCE_NAME \
       --disk DISK_NAME
    

    Substitua:

    • INSTANCE_NAME: o nome da VM N2 em que você está adicionando o novo volume zonal do Persistent Disk
    • DISK_NAME: o nome do novo disco que você está anexando à VM.
  3. Repita o comando gcloud compute instances attach-disk, mas substitua INSTANCE_NAME pelo nome da segunda VM.

Depois de criar e anexar um novo disco a uma VM, formate e monte o disco usando um sistema de arquivos de disco compartilhado. A maioria dos sistemas de arquivos não usa armazenamento compartilhado. Confirme se o sistema de arquivos é compatível com esses recursos antes de usá-los com o disco permanente de vários gravadores. Não é possível ativar o disco em várias VMs usando o mesmo processo que você normalmente usaria para ativar o disco em uma única VM.

REST

Use a API Compute Engine para criar e anexar um volume de disco permanente SSD às VMs N2 no modo de vários gravadores.

  1. Na API, crie uma solicitação POST para criar um volume de disco permanente zonal usando o método disks.insert. Inclua as propriedades name, sizeGb e type. Para criar esse novo disco como um disco que não será usado para inicialização e sem formatação, não especifique uma imagem ou um snapshot de origem para esse disco. Inclua a propriedade multiWriter com um valor True para indicar que o disco precisa ser compartilhável entre as VMs no modo de vários gravadores.

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/disks
    
    {
    "name": "DISK_NAME",
    "sizeGb": "DISK_SIZE",
    "type": "zones/ZONE/diskTypes/pd-ssd",
    "multiWriter": "True"
    }
    

    Substitua:

    • PROJECT_ID: ID do projeto
    • ZONE: a zona em que a VM e o novo disco estão localizados.
    • DISK_NAME: o nome do novo disco
    • DISK_SIZE: o tamanho, em GB, do novo disco. Os tamanhos aceitáveis variam de 1 GB a 65.536 GB para volumes de disco permanente SSD ou de 200 GB a 65.536 GB para volumes de disco permanente padrão em vários gravadores mais recente.
  2. Para anexar o disco a uma VM, crie uma solicitação POST para o método compute.instances.attachDisk. Inclua o URL do volume do disco permanente zonal que você acabou de criar:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/attachDisk
    
    {
    "source": "/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME"
    }
    

    Substitua:

    • PROJECT_ID: ID do projeto
    • ZONE: a zona em que a VM e o novo disco estão localizados.
    • INSTANCE_NAME: o nome da VM em que você está adicionando o novo volume do Persistent Disk.
    • DISK_NAME: o nome do novo disco.
  3. Para anexar o disco a uma segunda VM, repita o comando instances.attachDisk da etapa anterior. Defina INSTANCE_NAME como o nome da segunda VM.

Depois de criar e anexar um novo disco a uma VM, formate e monte o disco usando um sistema de arquivos de disco compartilhado. A maioria dos sistemas de arquivos não usa armazenamento compartilhado. Confirme se o sistema de arquivos é compatível com esses recursos antes de usá-los com o Persistent Disk de vários gravadores.

A seguir