关于 GKE 的 Hyperdisk


Google Cloud Hyperdisk 是 GKE 上提供的网络块存储选项。您可以在 GKE 集群中使用此存储选项,方法与其他 Compute Engine Persistent Disk 卷类似,并能增加灵活性来调整工作负载的性能。与 Persistent Disk 存储空间相比,Hyperdisk 每秒的输入/输出操作数 (IOPS) 和吞吐量要高得多。不同于 Persistent Disk 卷(其中性能在挂接到节点的所有卷之间共享),您可以使用 Hyperdisk 来指定和调整每个 Hyperdisk 卷的性能级别。

您可以从 GKE 上的以下 Hyperdisk 选项中进行选择:

  • Hyperdisk Throughput 卷:针对经济实惠的高吞吐量进行了优化,吞吐量高达 3 GB/秒(>=128 KB IO 大小)。如果您的用例目标是横向扩容分析(例如 Hadoop 或 Kafka)和面向吞吐量的工作负载,那么这是一个不错的选项。GKE Autopilot 和 Standard 集群支持此存储选项。
  • Hyperdisk Extreme 卷:针对 IOPS 性能进行了优化,预配的 IOPS >32 万,吞吐量 >4.8 GB/秒。如果您要部署高性能工作负载(例如数据库管理系统),这是一个不错的选项。只有 Standard 集群支持此存储选项。

一般来说,如果您需要高吞吐量或更好的性价比,我们建议您使用 Hyperdisk Throughput。如果您需要具有最佳性能的 IOPS,请使用 Hyperdisk Extreme。

如需详细了解 Hyperdisk 存储的工作原理,请参阅 Compute Engine 文档

优势

  • 使用 Hyperdisk,您可以在部署的有状态工作负载上实现更可预测的性能。Hyperdisk 会将吞吐量和 IOPS 预配与节点分离开来。这可确保为 Pod 装载的存储实例遵循您在存储预配期间设置的性能设置,与部署它的节点无关。
  • 借助 Hyperdisk,您可以在 GKE 上轻松预配、管理和扩缩有状态工作负载,而无需管理本地存储区域网络 (SAN) 的费用和复杂性。
  • Hyperdisk 存储容量经过分区,并作为单独的卷提供给 GKE 节点。Hyperdisk 卷与节点相分离,可让您在节点之间附加、分离和移动卷。存储在 Hyperdisk 卷中的数据在节点重新启动和删除后仍然存在。您还可以向单个 GKE 节点添加多个 Hyperdisk 卷。

价格

您需要支付 Hyperdisk 卷的总预配容量的费用,直到您将其删除。您每月按 GiB 付费。此外,您需要为以下各项支付费用:

  • Hyperdisk Extreme 根据预配的 IOPS 按月收费。
  • Hyperdisk Throughput 根据预配的吞吐量(以 MB/秒为单位)按月收费。

如需了解价格信息,请参阅 Compute Engine 文档中的磁盘价格

限制

  • 创建卷后,您只能通过 Compute Engine API 修改 Hyperdisk Throughput 卷和 Hyperdisk Extreme 卷的 IOPS。
  • 您只能将 Hyperdisk 卷挂接到特定实例类型:不支持只读连接。
  • 如需了解详情,请参阅 Compute Engine 文档中的限制和局限部分。

支持的机器类型和 Autopilot 计算类

下表汇总了 GKE Autopilot 集群上支持的 Hyperdisk 卷预配的配置。只有表中列出的机器系列支持 GKE 上的 Hyperdisk 预配。请参阅 Compute Engine 文档中的机器系列比较,了解适用于 Hyperdisk 的机器类型支持的最新信息。

nodeSelector 规范列指示如何根据 Autopilot 计算类控制 Autopilot 集群上的 Pod 调度:如需了解详情,请参阅为 Autopilot Pod 选择计算类

机器类型 Hyperdisk Throughput Autopilot 计算类 nodeSelector 规范
N2 支持 平衡

cloud.google.com/compute-class: "Balanced"
supported-cpu-platform.cloud.google.com/Intel Cascade Lake: "true"
N2D 支持 平衡

cloud.google.com/compute-class: "Balanced"
supported-cpu-platform.cloud.google.com/AMD Rome: "true"
T2D 支持 横向扩容

cloud.google.com/compute-class: "Scale-Out"
supported-cpu-platform.cloud.google.com/AMD Milan: "true"

规划 Hyperdisk 卷的性能级别

请考虑以下注意事项,为您的 Hyperdisk 卷规划适当的性能级别。

Hyperdisk Throughput

借助 Hyperdisk Throughput,您可以独立于吞吐量预配容量。如需预配吞吐量,请为给定卷选择所需的级别。单个卷具有完全的吞吐量隔离,每个卷都预配了吞吐量。但是,吞吐量最终受限于您的卷所挂接的虚拟机实例上的单个实例限制。如需详细了解这些限制,请参阅 Compute Engine 文档中的“Hyperdisk 容量”和“机器类型支持”部分。

读取和写入操作都会计入为 Hyperdisk Throughput 卷预配的吞吐量限制。预配的吞吐量和上限限制会应用于读写吞吐量的总和。

定义 StorageClass 时,为 Hyperdisk Throughput 卷预配的吞吐量必须遵循以下规则:

  • 每 TiB 容量至少为 10 MB/秒,每 TiB 容量不超过 90 MB/秒。
  • 每个卷最多为 600 MB/秒。

如果为一个或多个 Hyperdisk Throughput 卷预配的总吞吐量超过虚拟机实例级层可用的总吞吐量,则吞吐量将受限于实例吞吐量级别。

Hyperdisk Extreme

借助 Hyperdisk Extreme,您可以独立于 IOPS 级别预配容量。 如需预配 IOPS 级别,请为给定卷选择所需的级别。单个卷具有完全的 IOPS 级别隔离功能,每个卷都预配了 IOPS 级别。但是,IOPS 最终受限于您的卷所挂接的虚拟机实例上的单个实例限制。如需详细了解这些限制,请参阅 Compute Engine 文档中的“Hyperdisk 容量”和“机器类型支持”部分。

读取和写入操作都会计入为 Hyperdisk Extreme 卷预配的 IOPS 限制。预配的 IOPS 以及本文档中列出的上限适用于读写 IOPS 的总数。

定义 StorageClass 时,为 Hyperdisk Extreme 卷预配的 IOPS 必须超过 32 万 IOPS。

如果为一个或多个 Hyperdisk Extreme 卷预配的总 IOPS 超过虚拟机实例级层可用的总 IOPS,则性能将受限于实例 IOPS 级层。如果同时将多个 Hyperdisk 卷和 Persistent Disk 挂接到同一虚拟机请求 IOPS,并且达到虚拟机限制,则每个卷的 IOPS 级别与其在所有挂接的 Hyperdisk Extreme 卷上配置的总 IOPS 中所占的份额成正比

后续步骤