Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Docs 菜单

自定义集群存储

每个集群层均附带一组默认资源。M10+ 集群提供自定义存储容量的功能。

Atlas 可提供以下存储配置选项,具体取决于所选云提供商和集群层。

M40+ 集群提供多种选项,包括:

  • Low CPU
  • General
  • Local NVMe SSD

所有生产环境都可以使用 General 选项。

Class(类别)框中选择您首选的速度。更改集群类别会影响费用

一般而言,Low CPU(低 CPU)选项可为需要较多内存和较少 CPU 的应用程序提供成本更低的替代方案。此选项包含的 vCPU 仅为附带 General(常规)选项的同一层级实例的一半。例如,一个 General(常规)M40 实例包括 4 个 vCPU,而一个 Low CPU(低 CPU)M40 实例仅包括 2 个 vCPU。根据集群层的不同,此选项还可能包括较少的最大连接数。要了解详情,请参阅连接限制和集群层

注意

尽管用户界面显示 GB,Atlas 仍为 Low CPUGeneral 集群预配存储,以吉比字节 (GiB) 为单位。

对于某些在Amazon Web ServicesAzure上运行的专用集群,您可以选择 Local NVMe SSD存储选项。本地连接的临时NVMe 固态硬盘可提供最高级别的速度和性能。Atlas为 NVMe 集群配置存储,单位为千兆字节 (GB)。

每当需进行初始同步时,基于文件副本的初始同步将始终用于同步 NVME 集群的所有节点。

注意

Atlas 不支持 Google Cloud 上的 NVMe 集群。

若要更改服务器数据卷大小,请执行以下任务之一:

  • 移动滑动条,直到文本框显示首选磁盘尺寸。

  • 在文本框中指定准确的磁盘大小。

有关 Azure 的特定说明,请参阅 更改 Azure 上的存储容量和 IOPS

存储容量的变化会影响成本

注意

MongoDB 将指定存储容量的一小部分用于缓冲区文件和日志文件,确保集群正常操作。在像 WiredTiger 存储引擎这样的无覆盖存储引擎中,应使用比压缩数据占用的磁盘空间约多 20% 的磁盘空间。

Atlas 以不同方式管理集群的 oplog 大小及其条目,具体取决于是否为集群启用了存储自动伸缩

  • Atlas 在默认情况下启用集群存储自动伸缩。如果您选择使用存储空间自动伸缩,Atlas 会根据最小 oplog 保留窗口 (oplogminRetentionHours) 设置来管理 oplog 条目。这些 oplog 条目均附带时间戳。oplog 窗口是指 oplog 中最新与最旧时间戳之间的时间差。

    默认情况下,Atlas 将最小 oplog 保留窗口设置为 24 小时。这意味着,除非您将最小 oplog 保留窗口设置为特定的自定义值,否则 Atlas 集群的 mongod 会将所有 oplog 条目保留至少 24 小时,直到 oplog 达到 MongoDB 最佳实践允许的最大大小。

    您可以在 Atlas 用户界面中将最小 oplog 保留窗口设置为特定值。为了成功完成存储自动伸缩,Atlas 要求最小 oplog 保留窗口 (oplogMinRetentionHours) 最多为(60 秒)*(配置的磁盘空间,以 GB 为单位)。

    如果集群的存储容量减少,Atlas 会自动缩小 oplog 的大小,以确保其适合减少的存储大小。

  • 您可以通过取消选中 Auto-scale(自动伸缩)部分中的 Storage Scaling(存储扩展)复选框,退出集群存储自动伸缩。如果您选择退出存储自动伸缩,Atlas 会按如下方式管理 oplog 大小:

    • 如果您未在 UI 中指定 oplog 大小,Atlas 会将 oplog 大小设置为:

      • 创建集群时磁盘大小的 5%,适用于 General(常规)和 Low-CPU(低 CPU)集群

      • 具有 NVMe 存储的集群磁盘大小的 10%。

      仅当您之前已为集群手动设置了自定义 oplog 大小时,Atlas 才会在您更改存储大小时自动更改 oplog 大小。如果您从未手动设置过 oplog 大小,则 Atlas 在您更改存储大小时不会自动调整 oplog 大小。

    • 在扩展集群的存储时,您可能会选择扩展 oplog 大小。在这种情况下,请在创建群集时手动将 oplog 大小设置为特定值。只有在您手动设置了自定义 oplog 大小之后,Atlas 才会在您增加集群存储时自动调整 oplog 大小,具体如下:

      • 对于 General(常规)和 Low-CPU(低 CPU)集群,oplog 大小会扩展并保持在存储容量的 5%,而不会超过根据 MongoDB 最佳实践所确定的某一最大值。

      • 对于使用 NVMe 存储的集群,oplog 的大小在扩展时将保持在存储容量的 10%,不会超过根据 MongoDB 最佳实践确定的某个最大值。

    • 如果扩展集群的存储, Atlas会使用之前的 oplog-to-disk 比率按扩展缩减oplog 。 示例,如果您使用25 GB的oplog (比率为0.25 )从100 GB扩展到50 GB ,则新oplog大小的比率也将为0.25 ,这将使其12.5 GB。 唯一的例外是新oplog大小小于存储容量的5 %(对于NVMe 存储,小于10 %)。 在这种情况下, Atlas会使用oplog大小的较高值,即存储容量的5 %(对于NVMe 存储为10 %)。

根据您是要增加还是减少 AWS 上的存储容量或存储吞吐量 (IOPS),Atlas 会以不同的方式处理更改。

重要

您最多可以在任意 24 小时内对 EBS 卷进行 4 修改。如果达到此限制, Atlas无法修改集群的磁盘,直到 24 小时窗口重置。

如果之前的更改已完成,AWS 通常约需六小时才能增大存储容量或 IOPS。但是,此时间范围可能会根据磁盘上存储的数据大小而有所不同。要了解更多信息,请参阅 AWS 文档。Atlas 支持在卷修改更改的时间范围内进行更多更改。

AWS 支持扩展存储,但有以下限制:

  • M40:最多 4TB

  • M50/M60:最多 8TB

  • M80+:最多 14TB

注意

扩展存储仅适用于 M40+ 集群。如需更改集群的层级,请参阅修改集群。

如果您启用扩展存储,初始同步和跨项目快照恢复的速度会减慢,并可能降低高可用性。对于将来可能需要额外存储容量的集群,启用扩展存储是一种临时解决方案。我们建议您启用分片功能,以便长期扩展存储容量。

Atlas如何处理给定时间段内的其他更改取决于AWS对 EBS 卷修改的限制。AWS 将 EBS 卷大小和吞吐量调整限制为在滚动 24 小时内每个卷最多只能进行四次修改。达到此限制后, Atlas会延迟该卷的额外存储容量或 IOPS 更改,直到 AWS 允许另一次修改。

  • 对于第一个更改,Atlas在增加磁盘大小时就地修改数据卷,无需停机。

  • 对于后续磁盘大小的增加:

    数据卷大小
    自上次存储更改以来的时间
    Atlas 采取的操作

    小于 1 TB

    少于 6 小时

    Atlas 会预配新卷并同步旧卷中的数据。如果 Atlas 预配新卷,则您可访问集群。在 AWS 附加新卷之前,您无法访问 AWS 修改的节点

    小于 1 TB

    6 小时或更长时间

    Atlas会等到冷却时间到期,然后在不停机的情况下就地修改托管的数据卷。

    超过 1TB

    小于卷修改冷却时间(每 TB 6 小时)

    Atlas 会预配新卷并同步旧卷中的数据。如果 Atlas 预配新卷,则您可访问集群。在 AWS 附加新卷之前,您无法访问 AWS 修改的节点

    超过 1TB

    卷修改冷却时间或更长(每 TB 6 小时)

    Atlas会等到冷却时间到期,然后在不停机的情况下就地修改托管的数据卷。这比预配新卷和将数据从旧卷同步到新卷所需的时间更少。如果您在上一个磁盘修改后的 4 小时内修改了磁盘大小,Atlas会首先优先考虑计算升级,然后是磁盘修改。

在应用存储容量或 IOPS 增加量之前,Review Changes 页面介绍 Atlas 如何实现增长。

Clusters如果Atlas在更改集群的存储容量或AWS允许再次修改卷之前等待IOPS,则页面会显示一条横幅:

  • 某些 EBS 卷更改会延迟,因为 AWS 已达到 24 小时内对此卷允许的 EBS 卷修改的最大次数。

这些行为适用于 Atlas 在自动伸缩期间更改容量的情况。

要学习;了解有关Amazon Web Services限制的更多信息,请参阅Amazon Web Services文档。

  • AWS 不允许就地减少存储容量

    Atlas可以通过以下方式减少存储容量:首先预配新卷,然后通过就地数据同步进程将数据从旧卷同步到新卷。这可以绕过 AWS 限制,但在同步期间每个节点都会停机。与容量增加不同, Atlas始终使用此进程来减少容量,而无论卷修改冷却时间如何。

  • AWS 允许您在不迁移数据的情况下降低 IOPS

    如果已过卷修改冷却时间, Atlas会就地降低 IOPS,而无需重新启动节点。如果冷却时间尚未过去, Atlas可能会预配新卷并同步数据,从而导致滚动重启。

对于在 Azure 上部署的 Low CPUGeneral 集群,您可以在 Atlas UI 中扩展 IOPS 和数据卷的存储容量。

如果增加 Low CPUGeneral 集群的磁盘存储,您可以:

  • 在同一集群层的集群上获得更多 IOPS

  • 使用这些集群来托管具有高 IO 工作负载要求的应用程序,无需通过配置分片将应用程序的工作负载分散到多个服务器上。

注意

并非所有 Azure 区域都支持扩展存储。有关详细信息,请参阅支持的区域

Azure具有卷修改冷却时间,这可能会限制更改存储的频率。

重要

对于支持扩展存储/IOPS 的Azure集群,您可以在任意 24 小时内最多更改四次磁盘 IOPS/吞吐量。如果达到此限制, Atlas会替换虚拟机 (VM) 以绕过此限制。

以下说明描述了 Atlas 用户界面中用于 Azure 集群上的 IOPS 和存储管理的选项。

  1. 最初,当您选择 Azure Low CPUGeneral 集群时,Atlas 会根据您选择的层级分配默认存储大小和 IOPS

  2. 根据您所在地区使用的存储卷的具体特征以及集群是否位于支持扩展存储的区域,您可以执行以下操作之一:

    • 如果您所在的地区不支持扩展存储,则只能按预设数量更改存储容量,并且不能使用滑块更改 IOPS。

    • 如果您所在的地区支持扩展存储,则可以使用 Storage 滑块增加同一层级中的默认存储容量。Atlas 还增加了 IOPS 以对应增加的存储大小。

  3. 如果在增加存储卷大小后,增加后的 IOPS 数量仍然不够,并且集群的层级位于支持扩展存储的区域,则可以使用 IOPS 滑块进一步扩展 IOPS 数量,而无需更改集群层级。

  4. 此外,您还可以在支持扩展存储的区域中将集群总存储空间扩展到集群层的默认限制以外。您可以在项目设置中启用扩展存储大小。

注意

增加在Azure上部署的集群的 IOPS 时,值仅限于集群层的最大 IOPS。

以下各节介绍如何增加存储大小和 IOPS

若要更改服务器的数据卷大小,请执行以下操作:

  1. Cluster tier > Storage 部分中,您可以根据区域执行以下操作之一:

    • 如果您的区域支持扩展存储,请将滑块向右移动并选择您喜欢的磁盘大小。

      滑块右侧的文本框会动态更改,并指示新的磁盘大小。Atlas 还增加了 IOPS 以对应增加的存储大小。

    • 如果您所在的区域不支持扩展存储,您可以按预设量增加磁盘容量。在这种情况下,Atlas 不会增加 IOPS

    对于增加的存储容量,Atlas会就地增加存储容量,而无需复制数据或执行初始同步。

    注意

    如果更改为其他地区或多多区域集群,则特定存储卷功能或扩展存储可能不可用。 Atlas 用户界面通知您 IOPS 将降低。此更改可能会影响应用程序的性能、从备份恢复数据或将备份从这些区域复制到其他区域的速度。要保持相同的性能,请继续使用相同的地区。要学习;了解详情,请参阅支持扩展存储的区域。

    Azure不允许就地减少存储容量。为了减少Azure上集群的存储容量,Atlas会预配新卷,然后使用基于逻辑或文件副本的初始同步将数据从旧卷同步到新卷。在应用存储容量减少之前,Review Changes 页面会通知您,当您进行此更改时, Atlas triggers 集群的滚动重启。

    初始同步会通过网络复制数据,并重新构建所有索引。在此期间,您仍可访问集群,但是 Azure 所修改的每个节点在该节点的初始同步完成之前都是不可用的。对于大型集群来说,每个节点的初始同步可能需要几个小时才能完成。

要将集群总存储扩展为超出集群层的限制,您可以在“项目设置”中为支持扩展存储的区域启用扩展存储。

Azure 支持扩展存储,但有以下限制:

  • M40:最多 4TB

  • M50/M60:最多 8TB

  • M80+:最多 14TB

注意

扩展存储仅适用于 M40+ 集群。如需更改集群的层级,请参阅修改集群。

如果您启用扩展存储,初始同步和跨项目快照恢复的速度会减慢,并可能降低高可用性。对于将来可能需要额外存储容量的集群,启用扩展存储是一种临时解决方案。我们建议您启用分片功能,以便长期扩展存储容量。

以下过程介绍了如何在同一集群层中增加存储大小时获得的IOPS数量之外,获取扩展IOPS

对于支持扩展存储的区域,您可以更改 M40+ Atlas 集群的 IOPS 数量。

扩展 IOPS 的数量:

  1. Cluster tier 中,更改为 M40 或更高的集群层。IOPS 滑块显示在 IOPS 部分。

  2. 如果还没有,请增加存储大小。

  3. 如果您的应用程序在增加存储所获得的 IOPS 之外还需要额外的 IOPS,您可以进一步扩展 IOPS。将 IOPS 滑块向右移动,然后选择首选的 IOPS 数量。扩展 IOPS 会影响成本。

Google Cloud 支持扩展存储,但有以下限制:

  • M40:最多 4TB

  • M50/M60:最多 8TB

  • M80+:最多 14TB

注意

扩展存储仅适用于 M40+ 集群。如需更改集群的层级,请参阅修改集群。

AWS 不同,Google Cloud 没有卷修改冷却时间。因此,可以立即进行存储更改,而无需等待先前的修改完成。

当您增加集群的存储容量时,Atlas会以滚动方式修改服务器数据卷的大小,且无需停机。Atlas无需复制数据或执行初始同步即可就地增加存储容量。

但是,Google Cloud 不允许就地减少存储容量。如果减少集群的存储容量,Atlas会预配新卷,然后使用基于逻辑或文件副本的初始同步将数据从旧卷同步到新卷。

如果您启用扩展存储,初始同步和跨项目快照恢复的速度会减慢,并可能降低高可用性。对于将来可能需要额外存储容量的集群,启用扩展存储是一种临时解决方案。我们建议您启用分片功能,以便长期扩展存储容量。

在应用存储容量缩减之前,Review Changes 页面会通知您:当您进行此更改时,Atlas 会触发集群的滚动重启。

Atlas 对单个副本集有磁盘容量限制,对于更高的集群层可扩展到 4 TB。要将集群总存储空间扩展到默认限制以外,可以在项目设置中启用扩展存储。为适应未来的进一步扩展,可启用分片功能,以便实现长期扩展。

Atlas 会在三个云提供商之间选择最小公分母。这确保了多云部署的一致性。

无法调整多云集群的 IOPS

AWS 支持的 M30+ 集群提供用于预配 IOPS 的选项。

通过预配 IOPS 可以自定义集群的最大 IOPS 速率。它们还可以:

  • 较之标准 IOPS,如此配置的 IOPS 速率更为稳定。

  • 降低集群的 p90 延迟(衡量服务器的响应时间)。90% 的服务器请求的响应速度快于 p90 延迟值,因此较低的 p90 延迟值通常意味着更快的响应时间。

要详细了解使用预配 IOPS 与标准 IOPS 的优点,请参阅 经 Amazon EBS 优化的实例。请参阅以下摘要:

  • 通用型 SSD 卷旨在在 99% 的时间内提供其基线性能。

  • 预配置的 IOPS 固态硬盘卷的目标是在 99.9% 的时间内提供预配置的性能。

注意

更改 IOPS 预配会影响特征、性能和成本。选择 Provision IOPS 时,存储会从 General Purpose SSD(通用 SSD)卷更改为 Provisioned IOPS SSD(预配 IOPS SSD)卷。

如果在创建 M30+ 层集群时未选择 Provision IOPS 选项,则该集群使用标准 IOPS。默认的标准 IOPS 速率会随集群存储容量的变化而变化。如果要预配精确的 IOPS 值,请启用预配功能。

M30+ 层级集群的最低标准 IOPS 为 3000。除非将集群存储大小设为 1 TB 或更大,否则标准 IOPS 值将保持为 3000。如果您的 M30+ 集群的存储空间达到或超过 1TB,Atlas 会使用 3:1 的 IOPS 与存储比率来提高标准 IOPS 速率,对于 AWS 网络存储卷最高可达 16k IOPS

本地 NVMe 固态硬盘类集群必须使用标准 IOPS

仅 层级Amazon Web Services集群支持预配 IOPS。M30+Amazon Web Services要为您的M30+ 层级Amazon WebAmazon Web Services Services集群预配 IOPS,请选择Provision IOPS 并执行以下任一操作:

  • 在文本框中指定准确的 IOPS 速率,

  • 移动滑动条,直到文本框显示您的首选 IOPS 速率。

注意

集群的可用预配IOPS范围与磁盘存储容量有关。更改集群的存储容量会更改可用预配IOPS的范围。

Atlas 对给定的集群层强制实施以下最小比率。这样可以使集群性能与大型数据集保持一致。

大小为 M10M40 的实例的磁盘容量与系统内存之比为 60:1。对于大于 M40 的实例,此比率则为 120:1。

例子

要支持 3 TB(或 3,072 GB)磁盘容量,请选择至少具有 32 GB RAM 的集群层。这将是 M50 或更大。

Atlas 对单个副本集有磁盘容量限制,对于更高的集群层可扩展到 4 TB。要将集群总存储空间扩展到默认限制以外,可以在项目设置中启用扩展存储。为适应未来的进一步扩展,可启用分片功能,以便实现长期扩展。

提示

要进一步了解每个云服务提供商的默认资源和可用配置选项,请参阅:

Atlas 集群层级响应式自动伸缩适用于 GeneralLow-CPU 集群类下的所有专用集群层。

对于新集群,Atlas 会自动启用集群层自动伸缩和存储自动伸缩。

使用 Auto-scale(自动扩展)选项配置集群,以便根据集群使用情况自动扩展集群层、存储容量或两者。

重要

迁移期间,如果待恢复的快照大于目标集群的存储容量,则集群不会自动扩展。

您可以选择退出集群层和存储自动伸缩。要了解详情,请参阅 Atlas 如何扩展集群层Atlas 如何扩展集群存储