对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

集群存储自动伸缩

本页介绍了每个数据库版本的集群存储。存储的增长方式取决于版本。在Atlas Core集群上, Atlas会自动扩展连接到每个节点的存储。在Atlas Infinite集群上,存储随着数据的增长而增长。

对于适用于两个数据库版本的集群层自动伸缩,请参阅Atlas Core 上的计算自动伸缩和Atlas Infinite 上的计算自动伸缩。

Atlas使用存储自动伸缩来帮助您自动增加集群存储容量。以下部分介绍Atlas如何在Atlas Core集群上扩展存储,以及存储扩展如何更改集群层。

本部分适用于Atlas Core 集群。在Atlas Core集群上,集群存储是连接到每个节点的磁盘,diskSizeGB 设置其大小。 Atlas默认启用集群存储自动伸缩。当集群中任何节点的磁盘空间使用量达到 90% 时, Atlas会自动增加集群存储。

要选择退出集群存储扩展,请取消选中 Auto-scale(存储扩展)部分中的 Storage Scaling(存储扩展)复选框。

以下注意事项适用:

  • Atlas仅自动伸缩向上集群存储。您可以在“编辑集群”页面中手动减少集群存储。

  • 在 AWS、 Azure和GCP集群上, Atlas增加了集群存储容量,以实现 70% 的磁盘空间使用量。要学习;了解更多信息,请参阅更改 AWS 上的存储容量或 IOPS、更改Azure上的存储容量和 IOPS 以及更改 Google Cloud 上的存储容量。

  • 如果您计划扩展集群,请避免高速写入活动。将集群扩展到更大的存储容量需要足够时间来准备数据并将其复制到新磁盘。如果集群突然出现高速写入活动(如批量插入),由于磁盘存储容量暂时激增,可能无法进行自动扩展。为了降低磁盘存储空间不足的风险,请计划在批量插入和其他高速写入活动实例之前扩展集群。

  • 如果您为基本节点指定一个集群层类,并为分析节点指定另一个不同的集群层类,Atlas会禁用磁盘自动伸缩。示例,如果您在General 中为操作节点指定Base Tier 集群类,并在Low-CPU 中为分析节点指定Analytics Tier 集群类,Atlas将禁用磁盘自动伸缩,并显示以下错误消息:Disk auto-scaling is not yet available for clusters with mixed instance classes 。

  • 触发磁盘自动伸缩后,后续的磁盘自动伸缩和手动磁盘扩展可能在几个小时内不可用。

注意

本部分仅适用于Atlas Core。

本节介绍Atlas Core集群行为。由于存储无法在Atlas Infinite 集群上扩展,因此这种并行扩展行为不适应用这些集群。要学习;了解更多信息,请参阅Atlas Infinite 上的计算自动伸缩。

作为自动伸缩的一部分,当Atlas尝试自动扩展集群存储容量时,它可能需要将存储扩展到当前集群层支持的范围之外。为了帮助确保您的集群不会出现任何停机,Atlas会扩展您的集群层(除了集群存储之外)以适应新的存储容量。

注意

在自动伸缩事件中,如果当前层级没有所需的存储容量,Atlas 即使禁用 Cluster Tier Scaling,也可能会提高集群层。

On Azure, if you enable auto-scaling on a cluster deployed in one of the regions that support Extended Storage/IOPS, and the current IOPS is lower than the default IOPS for the auto-scaled disk size, Atlas increases the alloted number of IOPS in the IOPS slider and notifies you in the UI. To learn more, see Configure Extended Storage/IOPS on Azure.

例子

M30集群的最大存储容量为 480 GB。如果您的 M30集群分配了最大存储,并且已使用的磁盘空间达到 90%,则存储自动伸缩事件需要将您的存储容量提高到 600 GB。在这种情况下, Atlas会将您的集群层扩展到 M40,因为这是可以支持所需的新存储容量的最低集群层。在Azure上,如果您将集群部署在支持扩展存储/IOPS 的区域之一, Atlas还会自动增加 IOPS 以匹配该层集群的 IOPS 级别。要学习;了解详情,请参阅在Azure上配置扩展存储/IOPS。

如果您指定的最大群集层无法支持新的存储容量,Atlas 会:

  1. 将最大集群层提升到可容纳新存储容量的下一个最低层。

  2. 将集群层扩展至新的最高层。

注意

当Atlas覆盖您的最大集群层时,它还会为您的集群禁用自动扩展。要重新启用向下自动伸缩,请在集群设置中进行配置。另请参阅集群层向下扩展的注意事项。

如果 Atlas 尝试缩减您的集群层,而目标层无法支持您当前的磁盘容量和/或预配的 IOPS,则 Atlas 不会缩减您的集群。在这种情况下,Atlas 会根据当前集群层与配置的最大集群层之间的关系来更新您的自动伸缩设置:

  • 如果集群当前处于配置的最大集群层,Atlas 会禁止集群自动缩小规模,因为所有较小的层将无法容纳必要的存储设置。如果要重新启用向下自动伸缩,则必须在群集设置中手动执行此操作。

  • 如果集群当前未处于配置的最大集群层,Atlas 会将最小集群层提升至当前集群层。在这种情况下,Atlas 不会禁用向下自动伸缩。

当存储设置与工作负载不匹配时,这种自动扩展逻辑可减少停机时间。

在Atlas Core集群上, Atlas会根据最小oplog保留窗口或oplog大小来管理oplog条目,具体取决于您是否选择使用存储自动伸缩。要学习;了解更多信息,请参阅 Oplog 大小行为。 Atlas默认启用存储自动伸缩。

Atlas Infinite集群上的存储随着数据的增长而增长,因此无需配置或选择退出存储自动伸缩。为了控制成本,您可以在创建或修改集群时设立最大存储大小。当集群达到该限制时, Atlas会阻止写入。

重要

在公共预览期间, Atlas可能会在集群达到您设立的限制之前限制写入,以保持系统可用性。如果出现这种情况,请通过聊天或提交支持案例的方式联系MongoDB支持部门。要学习;了解更多信息,请参阅请求支持。