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

集群存储自动伸缩

本页面介绍了每个数据库版本的集群存储。存储的增长方式取决于版本。在 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 会禁用磁盘自动扩展。例如,如果您在 Base Tier 中为操作节点指定 General 集群类,并在 Analytics Tier 中为分析节点指定 Low-CPU 集群类,则 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,也可能会提高集群层。

在 Azure 上,如果您在某一支持扩展标准 IOPS 的区域中部署的集群上启用自动伸缩,并且当前 IOPS 低于自动扩展后磁盘大小的默认 IOPS,则 Atlas 会在 IOPS 滑块中增加分配的 IOPS 数量,并在用户界面中通知您。要了解更多信息,请参阅在 Azure 上配置扩展标准 IOPS。

例子

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 支持部门。要了解详情,请参阅 请求支持。