本文档讨论了 Compute Engine 中 Hyperdisk 池的功能和优势,以及如何为工作负载选择合适的池。
借助 Hyperdisk 池,您可以简化磁盘管理并降低费用。借助 Hyperdisk 池,您可以批量购买容量和性能,而不是为单个磁盘购买。然后,您可以在存储池中创建磁盘,以使用购买的资源。 池中的磁盘可用作实例和容器的启动磁盘和数据磁盘。
Compute Engine 提供两种类型的池:
- Hyperdisk 存储池:适用于大多数工作负载
- Hyperdisk Exapools:适用于需要超过 100 GiB/s 并发性能的超大型工作负载
何时使用池
池有助于降低费用并简化资源预测和磁盘管理,尤其是在以下情况下:
- 从本地 SAN 迁移:存储池有助于简化和缩短向 Google Cloud 的过渡,避免复杂的单磁盘容量和性能预测。
- 应对利用不足:磁盘通常是为实现峰值性能而配置的,这可能会造成浪费。借助池,您可以根据需要使用精简配置来分配资源。
- 成本较高且磁盘管理复杂:存储池旨在避免因性能或容量需求增加而调整磁盘大小时所需的停机时间,同时仍可降低总拥有成本。这样可以降低管理数百或数千个单独磁盘的复杂性。
池的优势
Hyperdisk 池具有以下优势:
- 简化费用管理:根据池的预配资源(而非单个磁盘)更准确地预测账单。
- 共享性能:在池中的所有磁盘之间共享预配的性能,因此您无需为每个磁盘购买性能。
- 提高效率和资源利用率:
- 通过精简配置根据需要为磁盘分配资源,从而降低成本并减少浪费。
- 根据磁盘的峰值性能需求预配磁盘,同时避免为未使用的资源付费。
- 通过根据写入磁盘的数据量(而非磁盘的预配容量)来衡量存储池的已用容量,减少资源利用不足的情况。
- 使用数据缩减策略可更高效地将数据存储在磁盘上,从而降低成本。
- 灵活的磁盘管理:增加或减少存储池的容量,而不是调整单个磁盘的大小。
池的工作原理
存储池是预购的 Hyperdisk 资源(容量、吞吐量和 IOPS)的集合,位于一个可用区内。在池中创建单个磁盘时,您会使用池的已购买资源。您将池中的部分资源分配给每个新磁盘。 您无需为每个磁盘的预配容量或性能付费,只需为存储池购买的容量或性能付费即可。删除池中的磁盘时,其分配的资源会返回到池中,供其他磁盘使用。
如何选择矿池类型
Compute Engine 提供 Hyperdisk 存储池和 Hyperdisk Exapool。您使用的池类型取决于工作负载的规模。
Hyperdisk 存储池:对于大多数工作负载,Google 建议使用 Hyperdisk 存储池。
Hyperdisk Exapools:适用于需要超过 100 GiB/s 并发性能的超大型工作负载。如需使用 Exapools,您必须与您的客户支持团队联系。
存储池支持的 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%,则会尝试自动扩容,即增加存储池的预配容量。
如果自动扩容失败,并且池的容量已完全被写入的数据占用,则对池中所有磁盘执行的写入操作都将失败,直到您执行以下某项操作为止:
- 增加池的预配容量。
- 删除池中的磁盘。
- 删除池中磁盘上的数据。
如果您删除存储池中磁盘上的数据以释放空间,请注意以下事项:
大多数软件应用会将池空间耗尽时返回的错误解读为与硬件故障类似。您必须监控存储池,以免耗尽磁盘空间。您还应该了解工作负载在磁盘空间不足时如何响应。
存储池无法查看文件系统,因此在操作系统 (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 检测到性能资源争用情况持续较长时间,Compute Engine 会尝试自动向存储池添加性能。
当池中磁盘的总预配性能达到池性能的 80% 或更高时,系统不会尝试自动扩容。相反,当磁盘同时消耗存储池 80% 或以上的性能时,系统会尝试自动扩容。
使用高级性能池时,您应:
- 监控存储池,以免耗尽预配性能。
- 了解工作负载在预置性能耗尽时如何响应。
比较性能预配类型
在以下示例中,假设您要设计一个包含 1,000 个磁盘的工作负载,其中每个磁盘都需要预配 10,000 IOPS,并且您需要选择一种性能预配类型。
性能过量配置示例
假设所有磁盘的累计性能要求为 1,000 万 IOPS。
对于标准性能池,您必须预配并支付 1,000 万 IOPS 的费用。
对于高级性能存储池,您可以为其预配 1,000,000 IOPS。由于该存储池支持过度预配,因此您可以为每个磁盘预配 10,000 IOPS,总共可预配 1,000 万 IOPS。不过,您只需为存储池预配的 1,000,000 IOPS 付费。
共享效果示例
假设每个磁盘需要 10,000 IOPS,但它们达到峰值的时间各不相同。您确定存储池中的磁盘在任何给定时间最多需要 1,000,000 IOPS。
对于标准性能池,您必须预配并支付 1,000 万 IOPS(每个磁盘 1 万 IOPS)的费用,即使磁盘一次最多只需要 100 万 IOPS。
对于具有 1,000,000 IOPS 的高级性能池,磁盘可以共享该池的性能。由于磁盘的性能峰值不同,因此即使预配的总性能为 10,000,000 IOPS,它们也可以同时消耗高达 1,000,000 IOPS。
价格
Hyperdisk 池的费用取决于您为该池购买的容量和性能。您无需为存储池中创建的磁盘的预配 IOPS、吞吐量或容量付费。
Hyperdisk Exapool 符合基于资源的承诺使用折扣 (CUD) 的条件,最低承诺期限为 1 年,最长为 3 年。购买 1 年期或 3 年期 Exapool 后,您会自动获得 1 年期或 3 年期基于资源的 CUD。
Hyperdisk 存储池无法享受承诺使用折扣 (CUD) 或持续使用折扣 (SUD)。
如需了解详情,请参阅磁盘价格。
后续步骤
- 如需详细了解 Hyperdisk 存储池,请参阅 Hyperdisk 存储池简介
- 如需详细了解 Exapool,请参阅 Hyperdisk Exapool 概览
- 了解如何创建合买