Hyperdisk 池概览

本文档介绍了 Compute Engine 中 Hyperdisk 池的功能和优势,以及如何为工作负载选择合适的池。

您可以使用 Hyperdisk 池简化磁盘管理并降低费用。借助 Hyperdisk 池,您可以批量购买容量和性能,而不是为单个磁盘购买。然后,您可以在池中创建磁盘以使用购买的资源。池中的磁盘可用作实例和容器的启动磁盘和数据磁盘。

何时使用池

对于具有高并发性能需求的大规模工作负载,Google 建议使用池。

Compute Engine 提供两种类型的池:Hyperdisk 存储池和 Hyperdisk Exapool。如需选择池类型,请参阅如何选择池类型。

一般而言,如果您的工作负载在单个项目和可用区中具有以下一项或多项要求,则应使用 Hyperdisk 池来支持该工作负载:

工作负载类型 使用 Hyperdisk 存储池的阈值 推荐的池类型

挂接了启动磁盘和 scratch 磁盘的加速器(GPU/TPU)实例

具有高并发使用率的并行文件系统(例如 HDFS 或 Lustre)

  • 每个可用区 1 PiB 或更多预配容量
  • 1 TiB/s 或更高的预配吞吐量性能
  • 1,000 万 (10,000,000) 或更多预配 IOPS
  • Hyperdisk Exapool
  • Hyperdisk 存储池

大型企业工作负载,例如企业应用、DBMS 或业务线应用

AI/机器学习和 HPC 模拟工作负载

  • 每个可用区 20 TiB 或更多预配容量
  • Hyperdisk 存储池

以下是适合 Hyperdisk 存储池的工作负载示例:

  • Hyperdisk Exapool 的示例工作负载:

    • AI/机器学习工作负载跨越 4,000 个 TPU 虚拟机,使用 2 PiB 的 Hyperdisk Balanced,预配性能为 20,000,000 IOPS 和 3 TiB/秒吞吐量,从而实现 500 GiB/秒的并发总峰值吞吐量。
    • AI/机器学习训练工作负载,包含 15,000 个 GPU 实例,使用 Hyperdisk Balanced 作为启动磁盘和 scratch 磁盘,总容量为 8 PiB,并发聚合峰值吞吐量为 1 TiB/s。
    • 并行文件系统,容量不低于 6 PiB,并发聚合峰值达到 800 GiB/s 的读取密集型吞吐量。
  • Hyperdisk 存储池的工作负载示例:

    • AI/机器学习和 HPC 模拟工作负载,具有 1,000 个 GPU 实例,使用 Hyperdisk Balanced 卷以及本地 SSD 作为共享缓存。
    • 工作负载分布在多个数据库和应用中,数据库和应用使用的多个卷的预配容量为 100 TiB。

总体峰值用量是指工作负载中所有磁盘消耗的总峰值容量和性能,这与所有磁盘的预配性能总和不同。如需计算并发汇总峰值用量,请参阅查看磁盘性能指标。

池可解决的磁盘管理问题

池有助于降低费用并简化资源预测和磁盘管理,尤其是在以下场景中:

  • 从本地 SAN 迁移:存储池可避免复杂的每个磁盘容量和性能预测,从而帮助简化并缩短向 Google Cloud 的过渡。
  • 解决利用率不足的问题:磁盘通常是为满足峰值性能需求而预配的,这可能会导致浪费。借助池,您可以使用精简预配根据需要分配资源。存储池可帮助您提高块存储利用率,同时简化操作。
  • 费用较高且磁盘管理复杂:存储池旨在避免在性能或容量需求增加时调整磁盘大小所需的停机时间,同时仍可降低总拥有成本。这样可以降低管理数百或数千个单独磁盘的复杂性。

池的优势

Hyperdisk 存储池具有以下优势:

  • 简化费用管理:根据池的预配资源(而非单个磁盘)更准确地预测账单。
  • 共享性能:在池中的所有磁盘之间共享预配性能,因此您无需为每个磁盘购买性能。
  • 提高效率和资源利用率:
    • 通过精简预配,根据需要为磁盘分配资源,从而降低成本并减少浪费。
    • 为磁盘预配峰值性能需求,同时避免为未使用的资源付费。
    • 根据写入磁盘的数据(而非磁盘的预配容量)衡量池的已用容量,从而减少利用率不足的情况。
    • 使用数据缩减策略更高效地将数据存储在磁盘上,从而降低成本。
  • 灵活的磁盘管理:增加或减少池的容量,而不是调整单个磁盘的大小。

池的工作原理

存储池是可用区内预购的 Hyperdisk 资源(容量、吞吐量和 IOPS)的集合。为工作负载创建磁盘时,您需要在池中创建磁盘,并将池的部分资源分配给每个新磁盘。

您无需为每个磁盘的预配容量或性能付费,只需为池购买的容量或性能付费。删除池中的磁盘后,其分配的资源会返回到池中,供其他磁盘使用。

使用 Hyperdisk 存储池时,工作负载使用 Hyperdisk 卷的方式没有变化。如果磁盘不是在池中创建的,池中各个磁盘上的数据将保持相同的隔离状态。

如何选择池类型

Compute Engine 提供 Hyperdisk 存储池和 Hyperdisk Exapool。您使用的池类型取决于工作负载的规模。

存储池支持的 Hyperdisk 类型

创建池时,您需要为池指定 Hyperdisk 类型。池中的所有磁盘都必须是相同的 Hyperdisk 类型。Hyperdisk Exapool 和 Hyperdisk 存储池支持以下 Hyperdisk 类型:

如需了解 Hyperdisk 类型之间的差异,请参阅选择 Hyperdisk 类型。

存储池的预配类型

创建池时,您需要选择容量和性能的预配类型。您选择的预配类型决定了哪些池功能可用。Hyperdisk 存储池提供以下预配类型:

使用高级容量预配的池称为高级容量池,而使用标准容量预配的池称为标准容量池。

对于 Hyperdisk 存储池,您可以使用标准或高级容量预配。您还可以结合使用不同的预配类型,以实现容量和性能。例如,您可以创建一个存储池,该存储池使用高级预配来提供容量,并使用标准预配来提供性能。

对于 Hyperdisk Exapool,您只能使用高级预配来预配容量和性能。

标准和高级容量预配

与标准预配相比,高级预配可节省费用、提供更灵活的磁盘管理,并更高效地使用池资源。标准容量池中的磁盘不提供任何额外的费用节省功能。

下表重点介绍了标准容量和高级容量预配之间的区别。

功能 标准容量 高级容量 高级容量的优势
容量消耗 基于创建时预配的容量 基于实际写入的字节数(数据缩减后) 效率更高:您只需为池中使用的资源付费,而无需为预配到磁盘的资源付费。 减少空间浪费。
超额预配 不可用 总磁盘容量可以超过池的容量 简化的容量规划和磁盘管理:为未来的高峰需求预配磁盘,而无需预先付费。避免与频繁调整磁盘大小相关的停机时间。
池大小调整条件 预配的磁盘容量总和达到池容量 实际写入的数据(缩减后)达到池容量 提高容量利用率:池容量在填满数据之前一直可用,而不仅仅是分配给磁盘。
自动扩容支持 不可用 适用于存储池(利用率为 80%);不适用于 Exapool 主动管理:根据写入量自动增加容量,防止出现空间不足错误。
持仓成本 为各个磁盘预配的容量总和 为池预配的总性能 降低成本:通过为初始估算消耗量预配资源来降低总体成本。

标准容量预配

标准容量预配最适合具有以下任一属性的工作负载:

  • 主要目标是简化容量规划和费用管理。
  • 每个磁盘的容量要求是固定的。
  • 磁盘会频繁创建和删除。使用存储池时,您只需购买一次容量,即可根据需要创建和删除磁盘。

使用标准容量预配的池中的磁盘具有以下属性:

  • 容量消耗是根据预配量(而非写入磁盘的数据量)来衡量的。例如,如果您在具有标准容量的池中创建 1 TiB 的磁盘,则即使该磁盘不包含任何数据,池的可用容量也会减少 1 TiB。
  • 如果所有预配容量都已分配给池中的磁盘,则使用标准容量预配的池会被视为已满。您无法再为磁盘预配任何容量,也无法创建新磁盘。您必须为池预配更多容量或删除一些磁盘。即使所有磁盘都是空白的,也是如此。

高级容量预配

高级容量池中的磁盘在容量消耗方面与标准容量池中的磁盘和非池磁盘不同。

使用高级容量预配的池中的磁盘具有以下功能:

超额预配容量

通过超额预配容量,您可以为磁盘预配峰值容量,而无需为池预配磁盘的总容量。这样,您就可以为磁盘预配充足的性能、降低成本,并避免因调整大小而导致停机。

磁盘的总预配容量取决于池的类型及其预配容量。对于 Hyperdisk 存储池,超额预配限制为存储池预配容量的 5 倍。对于 Hyperdisk Exapool,超额预配限制为池预配容量的 50 倍。每个磁盘最多可以消耗其预配性能和容量。但是,池中所有磁盘的累计消耗量不能超过池的预配容量。

容量精简配置

容量会根据需要分配给磁盘,而不是在预配磁盘时分配。 因此,当所有预配空间都已分配给磁盘时,池并未满。当所有预配空间都已被写入的数据利用时,池即已满。

数据缩减

为了减少写入数据所用的空间,Compute Engine 会对应用写入的数据应用数据缩减策略,以减少写入磁盘的数据。

高级容量池的自动扩容

如果 Compute Engine 检测到高级容量池的预配容量已使用 80%,则 Compute Engine 会尝试自动扩容,即增加池的预配容量。

如果自动扩容失败,并且存储池的容量已被写入的数据完全用尽,则对存储池中所有磁盘执行的写入操作都将失败,直到您执行以下操作之一:

  • 增加池的预配容量。
  • 删除池中的磁盘。
  • 删除池中磁盘上的数据。

如果您删除池中磁盘上的数据以释放空间,请注意以下事项:

  • 当池空间耗尽时,大多数软件应用会将返回的错误解读为与硬件故障类似。您必须监控存储池,以免耗尽磁盘可用空间。您还应该了解在磁盘可用空间不足时,工作负载如何进行响应。

  • 存储池无法查看文件系统,因此当操作系统 (OS) 使用 DISCARD 或 TRIM 命令将已删除的数据标记为未使用之后,才不会将这些数据视为仍在使用中。默认情况下,所有 Google 提供的操作系统映像都配置为执行此操作。如果您使用的不是 Google 提供的操作系统映像,请确认此功能是否可用。如需了解详情,请参阅停用延迟初始化并启用 DISCARD 命令。

比较容量预配类型

对于以下示例,假设您有两个 Hyperdisk Throughput 存储池 std-pool 和 adv-pool,它们分别采用标准容量和高级容量预配。每个池都预配了 100 TiB 的容量。

超额预配容量示例

由于超额预配,adv-pool 中所有磁盘的最大累计容量为 500 TiB,但 std-pool 仅为 100 TiB。

精简预配容量示例

假设您在每个池中创建一个 20 TiB 的空白磁盘。 由于精简预配,adv-pool 的已用容量(即写入池中所有磁盘的数据量)为 0。这是因为您创建的磁盘是空白的。对于 std-pool,空白磁盘会消耗 20 TiB 的容量。使用高级容量预配,您的应用可以在您必须增加池容量之前写入更多数据。

容量消耗示例

假设您向每个池中的磁盘写入 500 GiB 的数据。adv-pool 仍有 99.5 TiB 的可用空间来存储新数据,而 std-pool 有 80 TiB 的空间。这是因为对于 adv-pool,数据消耗量基于用量,而不是预配容量。

容量增加示例

如果高级容量池的已用容量接近其上限,您可以增加该池的容量,而无需调整单个磁盘的大小。例如,请考虑以下场景。

  • adv-pool 的容量为 100 TiB,但它包含 50 个 5 TiB 磁盘,总预配容量为 250 TiB。
  • 每个磁盘写入 1 TiB 的数据。
  • 应用的需求表明,每个磁盘将额外写入 3 TiB 的数据,预计总容量现在为 200 TiB。
  • 该池的实际容量为 100 TiB,仅剩余 50 TiB 容量。

借助 adv-pool,您可以将池的容量增加到 500 TiB,而无需调整各个磁盘的大小,因为它们都预配为 5 TiB。

使用 std-pool 时,您必须同时增加池和每个磁盘的容量。

标准和高级性能预配

创建池时,您必须选择性能预配类型。您选择的预配类型决定了哪些池功能可用。

对于 Hyperdisk 存储池,您可以选择标准或高级性能预配。您还可以结合使用不同的预配类型,以实现容量和性能。例如,您可以创建一个使用高级容量预配和标准性能预配的池。

对于 Hyperdisk Exapool,您只能使用高级性能预配。

下表重点介绍了标准性能预配和高级性能预配之间的差异。

功能 标准性能 高级性能 高级性能的优势
存储池用量 基于预配的 IOPS 或吞吐量 基于已用 IOPS 或吞吐量 更高效地使用预配的池性能:针对总体使用情况进行预配,而不是针对每个磁盘的峰值性能进行预配。
效果分享 不支持 磁盘共享池的性能资源 提高利用率:空闲磁盘未使用的性能可供活跃磁盘使用。
超额预配 不支持 预配的总磁盘性能可以超过池的预配性能 简化的性能规划和磁盘管理:为未来的高峰需求预配磁盘,而无需预先付费。避免频繁更新磁盘性能。
争用风险 低风险;非常适合相关峰值 风险较高;如果许多磁盘同时达到峰值,则可能会发生争用 降低费用:当磁盘不需要同时达到峰值性能时,可节省费用并提高效率
持仓成本 为各个磁盘预配的性能总和 为池预配的总性能 降低费用:根据预期的总峰值用量(而非各个磁盘峰值之和)进行预配

标准性能预配

标准性能预配最适合具有以下任一属性的工作负载:

  • 性能受池资源限制时无法成功的工作负载。
  • 池中的磁盘可能存在相关性能高峰的工作负载,例如,数据库的数据磁盘,这些磁盘每天早上都会达到峰值利用率。

标准性能池中的磁盘具有以下属性:

  • 性能用量是根据为磁盘预配的性能量(而不是磁盘主动消耗的性能量)来衡量的。例如,如果您在标准性能池中预配了吞吐量为 500 MiB/s 的磁盘,则即使磁盘处于空闲状态,池的可用性能也会降低。
  • 如果存储池的所有性能都已预配给存储池中的磁盘,则您无法在存储池中创建新磁盘,也无法为现有磁盘添加更多性能。即使所有磁盘都处于空闲状态,也是如此。如需创建新磁盘,您必须为池预配更多性能、降低某些磁盘的预配性能或删除某些磁盘。

高级性能预配

高级性能池适用于使用高峰期不相关的磁盘。使用高级性能预配的池中的磁盘具有以下属性:

为确保性能而进行超额预配

通过超额预配,您可以为磁盘预配峰值性能,而无需为存储池预配磁盘的总性能。每个磁盘最多可以消耗其预配上限的性能。不过,在任何时刻,池的总并发性能都不能超过池的预配性能。

对于 Hyperdisk 存储池,过度预配限制为存储池预配性能的 5 倍。对于 Hyperdisk Exapool,超额预配限制为存储池预配写入性能的 50 倍。

精简预配和共享性能

性能会根据需要分配给磁盘,而不是在预配磁盘时分配。此外,高级性能池中的磁盘可以共享其预配性能,最高可达每个磁盘的预配性能限制。这可以为具有不同高峰使用时间的磁盘节省费用。

自动扩容以提升池性能

如果高级性能池中的磁盘同时消耗的总性能达到该池的预配性能,则这些磁盘可能会相互争用性能资源。

性能争用意味着磁盘可能无法达到其最大预配性能。如果 Compute Engine 检测到性能资源争用情况持续较长时间,则会尝试自动向存储池添加性能。

如果预配给池中磁盘的总性能达到池性能的 80% 或以上,则不会尝试自动扩容。相反,当磁盘同时消耗存储池 80% 或更多性能时,系统会尝试自动扩容。

使用高级性能池时,您应该:

  • 监控存储池,以免耗尽预配性能。
  • 了解在预配性能用尽时工作负载如何进行响应。

比较性能预配类型

在以下示例中,假设您正在设计一个包含 1,000 个磁盘的工作负载,其中每个磁盘都需要预配 10,000 IOPS,并且您需要选择性能预配类型。

为提高性能而超额预配的示例

假设所有磁盘的累计性能要求为 10,000,000 IOPS。

对于标准性能池,您必须预配 10,000,000 IOPS 并为其付费。

对于高级性能池,您可以为其预配 1,000,000 IOPS。由于存储池支持超额预配,因此您可以为每个磁盘预配 10,000 IOPS,总共 10,000,000 IOPS。但是,您只需为该池预配的 1,000,000 IOPS 付费。

共享效果示例

假设即使每个磁盘都需要 10,000 IOPS,但它们会在不同的时间达到峰值。您确定池中的磁盘在任何给定时间最多需要 1,000,000 IOPS。

对于标准性能池,您必须预配 10,000,000 IOPS(每个磁盘 10,000 IOPS)并为其付费,即使这些磁盘一次需要的 IOPS 绝不会超过 1,000,000。

对于具有 1,000,000 IOPS 的高级性能池,磁盘可以共享该池的性能。由于磁盘具有不同的性能峰值,因此它们可以同时消耗高达 1,000,000 IOPS,即使总预配性能为 10,000,000 IOPS 也是如此。

预留池

您可以将池与 Compute Engine 可用区级资源的预留搭配使用,如下所示:

  • 预留存储池容量以及计算资源:如需预留存储池容量以及 GPU、TPU 或 H4D 实例,请使用容量块的未来预留。Google 会在您选择的开始时间一并交付您请求的计算资源和自动创建的存储池或 Exapool。

  • 将独立存储池中的磁盘挂接到预留的计算实例:如果您在预留之外单独创建存储池或 Exapool,则仍可将该池中的磁盘挂接到使用计算预留的计算实例。您可以在启动计算实例时挂接这些磁盘,也可以将其挂接到正在运行的计算实例。如需了解详情,请参阅使用预留。

价格

Hyperdisk 存储池的费用取决于您为存储池购买的容量和性能。您无需为存储池中创建的磁盘的预配 IOPS、吞吐量或容量付费。

Hyperdisk Exapool 符合基于资源的承诺使用折扣 (CUD) 的条件,承诺期至少为 1 年,最长为 3 年。购买 1 年期或 3 年期 Exapool 后,您将自动获得 1 年期或 3 年期承诺中的基于资源的 CUD。

Hyperdisk 存储池无法享受 CUD 或持续使用折扣 (SUD)。

如需了解详情,请参阅磁盘价格。

后续步骤