Sobre o Hyperdisk para GKE

O Google Cloud Hyperdisk é uma opção de armazenamento em blocos de rede oferecida no GKE. É possível usar essa opção de armazenamento nos clusters do GKE de maneira semelhante a outros volumes do Persistent Disk do Compute Engine, com maior flexibilidade para ajustar o desempenho da carga de trabalho. Em comparação com o armazenamento do Persistent Disk, o Hyperdisk oferece operações de entrada/saída por segundo (IOPS) e capacidade de processamento máximas maiores. Ao contrário dos volumes do Persistent Disk, em que o desempenho é compartilhado por todos os volumes anexados a um nó, com o Hyperdisk, é possível especificar e ajustar o nível de desempenho de cada volume do Hyperdisk.

É possível escolher entre as seguintes opções do Hyperdisk no GKE:

Opção de armazenamento Modo de operação do GKE Descrição
Hiperdisco equilibrado Autopilot
Padrão

A melhor opção para a maioria das cargas de trabalho. Essa é uma boa opção para implantar a maioria dos apps empresariais e de linha de negócios, além de bancos de dados e servidores da Web.

Hyperdisk Throughput Autopilot
Padrão

Otimizada para alta capacidade econômica. Essa é uma boa opção quando seu caso de uso visa análises de escalonamento horizontal (por exemplo, Hadoop ou Kafka) e cargas de trabalho sensíveis ao custo voltadas para a capacidade de processamento.

Hiperdisco extremo Autopilot
Padrão

Otimizado para desempenho de IOPS. Essa é uma boa opção se você estiver implantando cargas de trabalho de alto desempenho, como sistemas de gerenciamento de banco de dados.

Hyperdisk ML Autopilot
Padrão

Otimizado para cargas de trabalho de treinamento e inferência de IA/ML que precisam carregar os pesos do modelo com rapidez. Use essa opção para cargas de trabalho de IA/ML que tenham requisitos de capacidade de leitura de pico altos. Essa é a melhor opção para reduz a ociosidade dos recursos de GPU/TPU ao carregar dados.

Hyperdisk Balanced High Availability Autopilot
Padrão

Nível de desempenho semelhante ao do Hyperdisk Balanced, que ajuda a reduzir custos com replicação síncrona em duas zonas de uma região. Use essa opção para criar cargas de trabalho que exigem alta disponibilidade ou que precisam de vários nós em uma região para gravar simultaneamente no mesmo disco.

Vantagens

  • Com o Hyperdisk, você tem um desempenho mais previsível nas implantações de cargas de trabalho com estado.
  • Com o Hyperdisk, é possível provisionar, gerenciar e escalonar facilmente as cargas de trabalho com estado no GKE sem o custo e a complexidade de gerenciar uma rede de área de armazenamento local (SAN, na sigla em inglês).
  • A capacidade de armazenamento do Hyperdisk é particionada e disponibilizada para os nós do GKE como volumes individuais. Os volumes do Hyperdisk são separados dos nós, permitindo anexar, desanexar e mover volumes entre os nós. Os dados armazenados nos volumes do Hyperdisk persistem em reinicializações e exclusões de nós. Também é possível adicionar vários volumes do Hyperdisk a um único nó do GKE.

Preços

A capacidade total provisionada dos volumes do Hyperdisk será cobrada até você os excluir. A cobrança é feita por GiB mensalmente. Além disso, há cobrança dos seguintes valores:

  • O Hyperdisk Balanced cobra uma taxa mensal pelas IOPS e a capacidade de processamento provisionadas (em MiB/s) que excedem os valores de referência de 3.000 IOPS e 140 MiB/s de capacidade de processamento.
  • Taxa mensal do Hyperdisk Extreme com base nas IOPS provisionadas.
  • Taxa mensal do Hyperdisk Throughput com base na capacidade de processamento provisionada (em MiB/s).

Para informações sobre preços, consulte Preços de disco na documentação do Compute Engine.

Limitações

  • Após a criação do volume, só será possível modificar as seguintes configurações com a API Compute Engine:
    • Capacidade de processamento: Hyperdisk Throughput e volumes Hyperdisk Balanced
    • IOPS: volumes extremos e equilibrados do Hyperdisk
  • É possível anexar volumes do Hyperdisk somente a tipos específicos de instâncias. Os anexos somente leitura não são compatíveis.
  • Limitações específicas do ML do Hyperdisk:
    • Não é possível usar Hyperdisk ML extremo como discos de inicialização.
    • O Hyperdisk ML não pode ser usado no modo de vários gravadores.
    • O Hyperdisk ML não oferece suporte a pools de armazenamento.
  • Limitações específicas do Hyperdisk Balanced HA:
    • O Hyperdisk Balanced HA não pode ser usado no modo ReadOnlyMany do Kubernetes.
    • O Hyperdisk Balanced HA não aceita snapshots se o volume estiver no modo de acesso ReadWriteMany.
    • Consulte também a seção Limitações na documentação do Compute Engine sobre discos regionais.
  • Consulte a seção Restrições e limitações na documentação do Compute Engine para mais informações.

Programação de nós compatível

É possível programar automaticamente cargas de trabalho baseadas no Hyperdisk para nós compatíveis com uma StorageClass personalizada. Para ativar esse comportamento, crie seu StorageClass com o parâmetro use-allowed-disk-topology: "true". Para usar esse recurso, o cluster e os pools de nós precisam ser 1.34.1-gke.2541000 ou mais recentes. Volumes provisionados com essa StorageClass não serão programados em pools de nós em versões anteriores.

Confira abaixo um exemplo de StorageClass com o recurso ativado.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: hyperdisk-balanced-compatible-scheduling
provisioner: pd.csi.storage.gke.io
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true
parameters:
  type: hyperdisk-balanced
  use-allowed-disk-topology: "true"

Seleção automática de tipo de disco

Na versão 1.35.3-gke.1290000 ou mais recente, é possível especificar os tipos de disco preferidos para Hyperdisk e Persistent Disk em um StorageClass. O GKE seleciona automaticamente um tipo de disco para suas cargas de trabalho com base no tipo de máquina do nó. Essa abordagem permite criar uma única StorageClass compatível com várias gerações de VM. Por exemplo, se você estiver migrando gradualmente seus nós para séries de máquinas mais recentes, poderá provisionar séries de máquinas compatíveis com o Hiperdisco, como C3 e C4, enquanto usa o Persistent Disk em séries de máquinas como C2.

Para ativar a seleção automática de disco, defina o campo parameters.type em uma StorageClass com o valor dynamic. É possível especificar os tipos de disco preferidos usando os seguintes parâmetros:

Parâmetros de tipo de disco dinâmico
hyperdisk-type O tipo de Hyperdisk a ser usado em nós que oferecem suporte a ele. Se você omitir esse parâmetro, o valor padrão será hyperdisk-balanced.
pd-type O tipo de disco permanente a ser usado em nós que aceitam Persistent Disk. Se você omitir esse parâmetro, o valor padrão será pd-balanced.
pd-type

O tipo de armazenamento a ser usado em nós que oferecem suporte a hiperdisco e Persistent Disk. Especifique um dos seguintes valores:

  • hyperdisk-type: use o Hyperdisk. Se você omitir o parâmetro disk-type-preference, esse será o valor padrão.
  • pd-type: use o Persistent Disk em vez do Hyperdisk.

É possível usar qualquer um dos outros parâmetros de armazenamento em blocos para hiperdisco e Persistent Disk na StorageClass. Quando o GKE cria um volume que usa um tipo de disco específico, ele aplica apenas os parâmetros correspondentes a esse tipo.

O StorageClass a seguir mostra como configurar a seleção dinâmica de tipo de disco que prioriza hyperdisk-balanced para nós compatíveis e usa automaticamente pd-balanced para outros.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: dynamic-volume
provisioner: pd.csi.storage.gke.io
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true
parameters:
  type: dynamic
  pd-type: pd-balanced
  hyperdisk-type: hyperdisk-balanced
  use-allowed-disk-topology: "true"
  # The parameters below only apply to the hyperdisk-type and are ignored if
  # the pd-type is selected.
  provisioned-throughput-on-create: "250Mi"
  provisioned-iops-on-create: "3000"

Classes de computação de Hyperdisk e Autopilot

Se você quiser usar o Hyperdisk em clusters do Autopilot que usam Classes do Compute, verifique se o tipo de máquina do nó é compatível com o Hyperdisk e compatível com a classe Compute.

O exemplo a seguir mostra como especificar a propriedade nodeSelector para controlar a programação de pods em clusters do Autopilot com a classe do Compute Performance ao usar o Hyperdisk Balanceado.

cloud.google.com/compute-class: "Performance"
cloud.google.com/machine-famility: "c3"

Para mais informações, consulte Escolher classes do Compute para pods do Autopilot.

Planeje o nível de desempenho dos seus volumes do Hyperdisk

Faça as seguintes considerações ao planejar o nível ideal de desempenho dos volumes do Hyperdisk.

Hiperdisco equilibrado

Com o Hyperdisk Balanceado, é possível provisionar a capacidade separadamente da capacidade e do IOPS. Para provisionar capacidade ou IOPS, selecione o nível de um determinado volume. Os volumes individuais têm isolamento total de capacidade. Cada volume pode usar toda a capacidade de IOPS ou a capacidade especificada para o volume. No entanto, a capacidade ou as IOPS são limitadas por limites por instância na instância de VM à qual os volumes estão conectados. Para saber mais sobre esses limites, consulte Performance provisionada para o Hyperdisk Balanced na documentação do Compute Engine.

As operações de leitura e gravação contam em relação à capacidade de processamento e ao limite de IOPS provisionados para um volume balanceado do Hyperdisk. A capacidade de processamento ou as IOPS provisionadas e os limites máximos se aplicam ao total combinado de operações de leitura e gravação.

Se a capacidade de processamento total ou as IOPS provisionadas para um ou mais volumes do Hyperdisk excederem a capacidade total ou as IOPS disponíveis no nível da instância de VM, o desempenho será limitado ao nível de desempenho da instância.

Hyperdisk Throughput

Com o Hyperdisk Throughput, é possível provisionar a capacidade separadamente da capacidade de processamento. Para provisionar capacidade de processamento, selecione o nível para um determinado volume. Os volumes individuais têm capacidades de processamento totalmente isoladas. Cada um recebe a capacidade de processamento provisionada a ele. No entanto, a capacidade de processamento acaba sendo limitada por cada instância de VM a que os volumes estão anexados. Para saber mais sobre esses limites, consulte Sobre a performance provisionada na documentação do Compute Engine. As operações de leitura e gravação contam para o limite de capacidade de processamento provisionado para um volume Hyperdisk Throughput. A capacidade de processamento provisionada e os limites máximos se aplicam ao total combinado da capacidade de processamento de leitura e gravação.

Ao definir um StorageClass, a capacidade de processamento provisionada para os volumes Hyperdisk Throughput precisa seguir estas regras:

  • Pelo menos 10 MiB/s por TiB de capacidade e no máximo 90 MiB/s por TiB de capacidade, dependendo do tipo de máquina.
  • No máximo 600 MiB/s por volume, dependendo do tipo de máquina.

Se a capacidade de processamento total provisionada para um ou mais volumes de Hyperdisk Throughput exceder o que está disponível no nível da instância de VM, ela será limitada ao nível de capacidade de processamento da instância.

Hiperdisco extremo

Com o Hyperdisk Extreme, é possível provisionar a capacidade separadamente do nível de IOPS. Para provisionar o nível de IOPS, especifique o limite de IOPS para um determinado volume. Os volumes individuais têm níveis de IOPS totalmente isolados. Cada um recebe o nível de IOPS provisionado a ele. No entanto, as IOPS acabam sendo limitadas por cada instância de VM a que os volumes estão anexados. Para saber mais sobre esses limites, consulte Sobre a performance provisionada na documentação do Compute Engine.

As operações de leitura e gravação contam para o limite de IOPS provisionado para um volume Hyperdisk Extreme. As IOPS provisionadas e os limites máximos listados neste documento se aplicam ao total de IOPS de leitura e gravação.

Ao definir um StorageClass, as IOPS provisionadas para volumes extremos do Hyperdisk não podem ter mais de 350.000 IOPS, dependendo do tipo de máquina.

Se o total de IOPS provisionado para um ou mais volumes Hyperdisk Extreme exceder aquele disponível no nível da instância de VM, o desempenho será limitado ao nível de IOPS da instância. Se houver vários volumes do Hyperdisk e Persistent Disk anexados à mesma VM solicitando IOPS ao mesmo tempo e os limites da VM forem atingidos, cada volume terá um nível de IOPS proporcional à sua respectiva parcela do total de IOPS provisionado entre todos os volumes Hyperdisk Extreme anexados.

Hyperdisk ML

Com o Hyperdisk ML, é possível provisionar a capacidade separadamente do desempenho. Para provisionar o desempenho, selecione o nível de capacidade de processamento desejado para um determinado volume. Os volumes individuais têm isolamento total de desempenho, e cada recebe o desempenho provisionado a ele.

Quando um volume é anexado a várias instâncias, a capacidade de processamento provisionada é distribuída dinamicamente entre elas. No entanto, a capacidade de processamento acaba sendo limitada por cada instância de VM a que os volumes estão anexados.

As operações de leitura e gravação contam para os limites de capacidade de processamento provisionados para um volume de ML do Hyperdisk quando em modo READ-WRITE-SINGLE. A capacidade de processamento provisionada e os limites máximos se aplicam ao total da capacidade de processamento de leitura e gravação.

A capacidade de processamento provisionada para volumes do Hyperdisk ML precisa seguir estas regras:

  • Mínimo: o maior entre (0,12 MBps * tamanho do disco) em GiB ou 400 MBps.
  • Máximo: (1.600 MBps * tamanho do disco) em GiB, mas não mais que 1,2 TBps.
  • Se o volume estiver conectado a mais de 20 instâncias no modo READ-ONLY-MANY, o valor de capacidade de processamento precisa ser de pelo menos 100 MBps * número de instâncias anexadas.

Se a capacidade de processamento total provisionada para um ou mais volumes de ML do Hyperdisk exceder a capacidade total disponível no nível da instância, o desempenho será limitado ao nível da instância.

Hyperdisk Balanced HA

Com o Hyperdisk Balanced High Availability, é possível provisionar a capacidade separadamente da capacidade de processamento e do IOPS. Para provisionar capacidade de processamento ou IOPS, selecione o nível de capacidade de processamento e IOPS para um determinado volume. Os volumes individuais têm isolamento total de capacidade. Cada volume pode usar toda a capacidade de IOPS ou a capacidade especificada para o volume. No entanto, a capacidade ou as IOPS são limitadas por limites por instância na instância de VM à qual os volumes estão conectados. Para saber mais sobre esses limites, consulte Sobre o Hyperdisk na documentação do Compute Engine. Google Cloud

As operações de leitura e gravação contam para o limite de capacidade de processamento e IOPS provisionado para um volume do Hyperdisk Balanced High Availability. A capacidade de processamento ou as IOPS provisionadas e os limites máximos se aplicam ao total combinado de operações de leitura e gravação.

Se a capacidade de processamento total ou as IOPS provisionadas para um ou mais volumes do Hyperdisk excederem a capacidade total ou as IOPS disponíveis no nível da instância de VM, o desempenho será limitado ao nível da instância.

A seguir