你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure Database for PostgreSQL 灵活服务器中的存储选项

适用于: Azure Database for PostgreSQL 灵活服务器

可使用 Azure 托管磁盘创建 Azure Database for PostgreSQL 灵活服务器实例,这些磁盘是由 Azure 管理并与 Azure 虚拟机一起使用的块级存储卷。 托管磁盘类似于本地服务器中的物理磁盘,但它们是虚拟化的。 使用托管磁盘时,只需指定磁盘大小、磁盘类型并预配磁盘即可。 预配此磁盘后,Azure 会处理剩余磁盘。 Azure Database for PostgreSQL 灵活服务器支持高级固态硬盘(高级 SSD)和高级固态硬盘版本 2(高级 SSD v2),定价基于预配的计算、内存和存储层计算。

高级 SSD

Azure 高级 SSD 为运行输入/输出 (IO) 密集型工作负荷的虚拟机 (VM) 提供高性能、低延迟的磁盘支持。 高级 SSD 单元适用于任务关键型生产应用程序。

高级 SSD v2(预览版)

高级 SSD v2 提供比高级 SSD 更高的性能,同时作为一般规则,成本也更低。 可以随时调整高级 SSD v2 的性能(容量、吞吐量和每秒输入/输出操作,即称为 IOPS)。 能够进行这些调整,使工作负荷经济高效,同时满足不断变化的性能需求。 例如,事务密集型数据库可能需要在几天内处理大量 IOPS。 或者游戏应用程序可能仅在高峰时段要求更高的吞吐量。 因此,对于大多数常规用途工作负载,高级 SSD v2 可以提供最佳性能。

注意

Azure Database for PostgreSQL - 灵活服务器的高级 SSD v2 当前以预览版提供。

高级 SSD 和高级 SSD v2 之间的区别

与高级 SSD 不同,高级 SSD v2 没有专用大小。 可以根据工作负载要求将高级 SSD v2 磁盘设置为任何大小,并进行精细调整。 这些细粒度的增量可以以 1 GiB 为单位进行。 高级 SSD v2 不支持主机缓存,但提供的延迟仍然低于高级 SSD。 高级 SSD v2 容量范围为 1 GiB 到 64 TIB。

下表对 Azure Database for PostgreSQL 灵活服务器支持的磁盘类型的不同方面进行了比较,以帮助确定哪种磁盘更适合你的需求。

高级 SSD v2 高级·SSD
磁盘类型 SSD SSD
方案 始终需要低延迟、高 IOPS 和吞吐量的生产与性能敏感型工作负载。 生产和性能敏感型工作负荷。
最大磁盘大小 65,536 GiB 32,767 GiB
最大吞吐量 1,200 MB/秒 900 MB/秒
最大 IOPS 80,000 20,000

高级 SSD v2 默认为每个订阅的每个区域最多提供 32 TiB,但可根据请求支持更高的容量。 若要请求增加容量,可请求配额增加或联系 Azure 支持

高级 SSD V2 - IOPS

所有高级 SSD v2 磁盘都提供免费的基线 3000 IOPS。 超出 6 GiB 时,磁盘可具有的最大 IOPS 按每 GiB 500 递增,最高可达 80,000 IOPS。 因此,8 GiB 的磁盘最多可以有 4000 IOPS,10 GiB 的磁盘最多可以有 5000 IOPS。 若要能够在磁盘上设置 80,000 IOPS,该磁盘必须至少具有 160 GiB。 如果增加 IOPS 到超过 3000,磁盘价格会随之提高。

高级 SSD v2 - 吞吐量

所有高级 SSD v2 磁盘都提供免费的基线吞吐量 125 MB/s。 超出 6 GiB 时,可设置的最大吞吐量按设置的 IOPS 递增 0.25 MB/s。 如果磁盘具有 3000 IOPS,则可设置的最大吞吐量为 750 MB/s。 若要使此磁盘的吞吐量超过 750 MB/s,必须增加其 IOPS。 例如,如果将 IOPS 增加到 4,000,则可设置的最大吞吐量为 1,000。 1,200 MB/s 是具有 5,000 IOPS 或更高的磁盘支持的最大吞吐量。 如果吞吐量超过 125 MB/s,磁盘价格会增加。

注意

Azure Database for PostgreSQL - 灵活服务器的高级 SSD v2 当前以预览版提供。

高级 SSD v2 - 预览版期间的限制

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

磁盘大小 高级 SSD IOPS 高级 SSD v2 IOPS
32 GiB 预配 120;高达 3,500 前 3000 个免费 IOPS 可纵向扩展到 17179 个
64 GiB 预配 240;高达 3,500 前 3000 个免费 IOPS 可纵向扩展到 34359 个
128 GiB 预配 500;高达 3,500 前 3000 个免费 IOPS 可纵向扩展到 68719 个
256 GiB 预配 1,100;高达 3,500 前 3000 个免费 IOPS 可纵向扩展到 80000 个
512 GiB 预配 2,300;高达 3,500 前 3000 个免费 IOPS 可缩放到 80000 个
1 TiB 5,000 前 3000 个免费 IOPS 可纵向扩展到 80000 个
2 TiB 7,500 前 3000 个免费 IOPS 可纵向扩展到 80000 个
4 TiB 7,500 前 3000 个免费 IOPS 可纵向扩展到 80000 个
8 TiB 16,000 前 3000 个免费 IOPS 可纵向扩展到 80000 个
16 TiB 18,000 前 3000 个免费 IOPS 可纵向扩展到 80000 个
32 TiB 20,000 前 3000 个免费 IOPS 可纵向扩展到 80000 个
64 TiB 空值 前 3000 个免费 IOPS 可纵向扩展到 80000 个

下表概述了高级 SSD v2 磁盘容量和性能上限,方便你确定使用哪种磁盘。

SSD v2 级磁盘大小 最大可用 IOPS 最大可用吞吐量 (MB/s)
1 GiB 到 64 TiB 3,000 到 80,000(每 GiB 递增 500 IOPS) 125 到 1,200(按设置的 IOPS 递增 0.25 MB/s)

虚拟机类型还具有 IOPS 限制。 尽管可以选择独立于服务器类型的任何存储大小,也可能无法使用存储提供的所有 IOPS,尤其是在选择的服务器的 vCore 数量较少时。 若要了解更多信息,请参阅Azure Database for PostgreSQL - 灵活服务器中的计算选项

注意

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

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

磁盘已满条件

当磁盘已满时,服务器将开始返回错误,并阻止任何进一步修改。 达到限制还可能导致其他操作活动出现问题,例如备份和预写日志 (WAL) 存档。

为避免这种情况,当存储使用率达到 95% 或可用容量小于 5 GiB 时,服务器会自动切换到只读模式。 如果使用高级 SSD 存储类型,可以使用存储自动增长功能来避免出现此问题。

建议主动监视正在使用的磁盘空间,并在存储耗尽空存储中的可用空间之前增加磁盘大小。 可以设置警报,从而在服务器存储接近磁盘不足状态时收到通知。 有关详细信息,请参阅如何使用 Azure 门户为 Azure Database for PostgreSQL - 灵活服务器设置指标警报

存储自动增长(高级 SSD)

存储自动增长有助于确保服务器始终具有足够的可用空间,并且不会变为只读。 启用存储自动增长时,磁盘大小会增加,而不会影响工作负载。 只有高级 SSD 存储层支持存储自动增长。

对于预配存储超过 1 TiB 的服务器,当可用空间低于总容量的 10% 或低于 64 GiB 时(以较小者为准),将激活存储自动扩展机制。 相反,对于存储容量不足 1 TB 的服务器,此阈值将调整为可用空间的 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 存储大小。 无论存储缩放操作是手动启动还是通过存储自动增长功能来启动,大小和成本都会翻倍增长。 在管理不可预测的工作负载时,启用存储自动增长很重要,因为它会自动检测存储不足的情况,并相应地纵向扩展存储。

缩放存储的过程联机执行,不会导致任何故障时间,除非磁盘预配为 4096 GiB。 例外情况是 Azure 托管磁盘的限制。 如果磁盘已经是 4096 GiB,那么即使开启了存储自动增长,也不会触发存储缩放活动。 在这种情况下,需要手动缩放存储。 请记住,在此特定情况下,手动缩放是脱机操作,应根据业务需求进行计划。

注意

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

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

  • 磁盘缩放操作通常联机执行,但在涉及边界为 4,096 GiB 的特定情况中除外。 这些情况包括达到或超过 4,096 GiB 的限制。 例如,从 2,048 GiB 缩放到 8,192 GiB 会触发脱机操作。 在 Azure 门户中,移至 4 TB(表示为 4,095 GiB),操作会保持联机状态。 但是,如果将 4 TB 显式指定为 4,096 GiB(例如在 Azure CLI 中),缩放操作将在脱机模式下完成,因为它达到了 4,096 GiB 的限制。

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

    此限制是由于基础 Azure 托管磁盘需要手动磁盘缩放操作造成的。 接近此限制时,门户中将收到一条信息性消息。

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

注意

存储自动增长取决于联机磁盘扩容,因此它永远不会造成停机。

IOPS 缩放

Azure Database for PostgreSQL - 灵活服务器支持预配额外的 IOPS。 借助此功能可超出免费 IOPS 限制,配置更多 IOPS。 使用此功能,可以增加或减少预配的 IOPS 数,以便随时根据工作负荷要求进行调整。

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

重要

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

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

价格

有关最新的定价信息,请参阅 Azure Database for PostgreSQL - 灵活服务器定价

Azure 门户还会根据所选择的选项显示服务器配置的每月成本估算。

在“新建 Azure Database for PostgreSQL 灵活服务器”页中,可以在整个服务器创建体验期间查看该估算:

屏幕截图显示了“新建 Azure Database for PostgreSQL 灵活服务器向导”中估计的每月成本。

如果在现有实例的资源菜单中的“设置”部分下选择“计算 + 存储”,则还可以查看现有服务器的估算:

屏幕截图显示了现有 Azure Database for PostgreSQL 灵活服务器实例“计算 + 存储”页中估计的每月成本。

如果没有 Azure 订阅,可使用 Azure 定价计算器获取估计的价格。 在 Azure 定价计算器网站中,选择“数据库”类别,然后选择“Azure Database for PostgreSQL”以将该服务添加到估算中,然后自定义这些选项。

显示 Azure 定价计算器的屏幕截图。

与 Azure Database for PostgreSQL 产品团队分享你的建议和 bug