Azure Database for PostgreSQL 中的高级 SSD 存储选项

高级 SSD

Azure 高级 SSD 为运行输入/输出 (IO) 密集型工作负荷的虚拟机 (VM) 提供高性能、低延迟的磁盘支持。 高级 SSD 单元适用于任务关键型生产应用程序。预配高级存储磁盘时,可以保证容量、IOPS 和吞吐量。 例如,如果创建 P40 磁盘,Azure 将为此磁盘预配 2,048-GB 存储容量、7,500 IOPS 和 250-MB/秒的吞吐量。 应用程序可以使用全部或部分容量与性能。 高级 SSD 的设计目的是在 99.9% 的时间内提供个位数毫秒延迟以及上表所述的目标 IOPS 和吞吐量。

高级 SSD 支持的最大存储大小为 32 TiB,允许纵向扩展到 20,000 IOPS 和 900 MB/秒吞吐量。 通过切换到高级 SSD v2,可以扩展到 64 TiB,支持 80,000 IOPS 和 1,200 MB/秒的吞吐量。

预配的存储是指可供 Azure Database for PostgreSQL 灵活服务器实例使用的存储容量。 此存储用于数据库文件、临时文件、事务日志和 PostgreSQL 服务器日志。 预配的总存储量也定义了可供服务器使用的 I/O 容量。

虚拟机类型还具有 IOPS 限制。 尽管您可以在不考虑服务器类型的情况下选择任何存储大小,但可能无法使用存储提供的所有 IOPS,尤其是在选择具有较少 vCores 的服务器时。有关详细信息,请参阅 Azure Database for PostgreSQL 中的计算选项

注释

无论分配给实例的存储类型如何,存储只能纵向扩展,而不是纵向扩展。

可以通过 Azure 门户或使用 Azure CLI 命令监视 I/O 使用情况。 要监视的相关指标是存储上限、存储百分比、已用存储和 I/O 百分比

存储自动增长(高级 SSD)

存储自动增长有助于确保服务器始终有足够的可用空间,并且当存储使用量达到 95% 或可用容量小于 5 GiB 时,不会变为只读。 启用存储自动增长时,磁盘大小会增加,而不会影响工作负荷。 仅高级 SSD 存储层支持存储自动增长。

对于预配存储超过 1 TiB 的服务器,当可用空间低于总容量的 10% 或 64 GiB 时,存储自动增长机制将激活,以两个值中较小的值为准。 相反,对于存储容量不足 1 TiB 的服务器,此阈值将调整为可用空间的 20% 或 64 GiB,具体取决于两者中的较小值。

作为一个说明性示例,让我们考虑一个存储容量为 2 TiB(大于 1 TiB)的服务器。 在这种情况下,自动扩展限制设置为 64 GiB。 选择该值的原因是,与 2 TiB 的 10% 相比(大约 204.8 GiB),64 GiB 比较小。 相比之下,对于存储大小为 128 GiB(小于 1 TiB)的服务器,当只剩下 25.8 GiB 的空间时,自动增长功能将激活。 该激活基于分配的总存储空间 (128 GiB) 的 20% 阈值(小于 64 GiB)。

默认行为会将磁盘大小增加到下一个高级 SSD 存储大小。 无论存储缩放操作是手动启动还是通过存储自动增长功能来启动,大小和成本都会翻倍增长。 在管理不可预测的工作负载时,启用存储自动增长很重要,因为它会自动检测存储不足的情况,并相应地纵向扩展存储。

缩放存储的过程联机执行,不会造成任何停机,除非磁盘大小需要超过 4,096 GiB 的边界。 例外情况是 Azure 托管磁盘的限制。 在这种情况下,即使为服务器启用了存储自动增长设置,也不会触发自动存储缩放活动。 在这种情况下,需要手动缩放存储。 在此方案中(达到或超过 4,096 GiB 边界),手动缩放是一种脱机操作。 建议根据业务需求安排此任务。 所有其他操作都可以联机执行。 一旦分配的磁盘大小达到 8,192 GiB 或更高,存储自动增长将再次自动触发,并且每个后续的存储增长操作都将联机执行,直到分配的磁盘达到其最大增长容量(即 32,768 GiB)。

注释

无论分配给实例的存储类型如何,存储只能纵向扩展,而不是纵向扩展。

存储自动增长的限制和注意事项

  • 磁盘缩放操作通常联机执行,除非在涉及超过 4096 GiB 边界的特定场景中。 这些方案包括达到或超过 4,096 GiB 的限制。 例如,从 2,048 GiB 缩放到 8,192 GiB 会触发脱机操作。 在 Azure 门户中,将扩展到 4 TiB(表示为 4,095 GiB)保证操作在线。 但是,如果将 4 TB 明确指定为 4,096 GiB(例如在 Azure CLI 中),缩放操作将在脱机模式下完成,因为它达到 4,096 GiB 的限制。 离线缩放操作通常需要 2 到 10 分钟不等。 使用减少停机时间扩展功能时,此持续时间将减少到 30 秒以内。 这缩短了缩放资源期间的停机时间,并提高了数据库实例的整体可用性。

  • 小于 4,096 GIB 或 4 Tib 的磁盘大小支持主机缓存(ReadOnly 和读/写)。 预配到最高 4,095 GiB 的任何磁盘都可以利用主机缓存。 大于或等于 4,096 GiB 的磁盘大小不支持主机缓存。 例如,预配到 4,095 GiB 的 P50 高级磁盘可以利用主机缓存,而预配到 4,096 GiB 的 P50 磁盘不能利用主机缓存。 从较低的磁盘大小移动到 4,096 GiB 或更高的客户将失去使用磁盘缓存的能力。

    此限制是由于基础 Azure 托管磁盘,这需要手动进行磁盘扩展操作。 接近此限制时,门户中将收到一条信息性消息。

  • 当 WAL 使用率较高时,不会触发存储自动增长。

注释

存储自动增长依赖于联机磁盘缩放,因此它永远不会造成停机。

IOPS 缩放

Azure Database for PostgreSQL 支持预配额外的 IOPS。 此功能让你可在免费 IOPS 限制的基础上预配更多的 IOPS。 使用此功能,你可以根据工作负荷需求随时增加或减少预配的 IOPS 数。

所选的计算大小决定最小和最大 IOPS。 若要详细了解每个计算大小的最小和最大 IOPS,请参阅计算大小

重要

所选计算大小决定了最小和最大 IOPS。

了解如何纵向扩展或缩减 IOPS