Docs 菜单
Docs 主页
/
MongoDB 阿特拉斯
/ /

自定义集群存储

在此页面上

  • 集群类
  • 低 CPU 类别
  • NVMe 存储
  • 存储容量:
  • Oplog 大小行为
  • 更改 AWS 上的存储容量或 IOPS
  • 扩展 Azure 上的存储容量和 IOPS
  • 更改 Google Cloud 上的存储容量
  • 更改多云提供商集群的存储容量
  • IOPS(仅限 AWS)
  • AWS 中的预配 IOPS 与标准 IOPS
  • 配置 IOPS 速率
  • 最小磁盘容量与内存的比率
  • 自动扩展集群层和存储容量

每个集群层均附带一组默认资源。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。根据集群层的不同,此选项还可能包括较少的最大连接数。要了解详情,请参阅连接限制和集群层

对于某些在 AWSAzure 上运行的专用集群,您可以选择 Local NVMe SSD 存储选项。本地连接的临时 NVMe 固态硬盘可提供最高级别的速度和性能。

对于有 NVMe 在 MongoDB 6.0+ 上运行的专用集群,基于文件复制的初始同步已启用。

注意

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

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

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

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

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

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

注意

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

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

  • Atlas 默认启用集群存储自动伸缩。如果您选择使用存储自动伸缩,Atlas 会根据最小 oplog 保留窗口 (oplogMinRetentionHours)设置来管理 oplog 条目。 oplog 条目带有时间戳。 oplog window 是 oplog 中最新和最旧时间戳之间的时间差。

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

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

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

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

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

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

      如果您更改存储大小,Atlas 会自动更改 oplog 大小。

    • 在扩展集群的存储时,您可能会选择扩展 oplog 大小。在这种情况下,请在创建群集时手动将 oplog 大小设置为特定值。当您增加集群的存储时,Atlas 会按如下方式扩展 oplog 大小:

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

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

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

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

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

Atlas 如何在卷修改更改的时限内处理其他更改,取决于主机数据卷的大小和更改的时间。

  • 对于第一次更改,Atlas 无需停机即可就地修改数据卷。

  • 对于以后的更改:

    数据卷大小
    自上次存储更改以来的时间
    Atlas 采取的操作
    小于 1 TB
    小于 5h30m
    Atlas 会预配新卷并同步旧卷中的数据。如果 Atlas 预配新卷,则您可访问集群。在 AWS 附加新卷之前,您无法访问 AWS 修改的节点
    小于 1 TB
    5h30m 以上
    Atlas 会等到数据卷修改生效,然后在不停机的情况下就地修改主机的数据卷。
    超过 1TB
    任何
    Atlas 会等到数据卷修改生效,然后在不停机的情况下就地修改主机的数据卷。这比预配新卷并将数据从旧卷同步到新卷花费的时间更少。

在应用存储容量或 IOPS 增加之前,Review Changes(查看更改)页面会介绍 Atlas 如何实现此增加。

如果 Atlas 等到六小时窗口关闭才修改集群的存储容量或 IOPS,则Clusters页面会显示一条横幅。

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

要详细了解 AWS 的局限性,请参阅 AWS 文档。

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

    Atlas 可以就地减少存储容量。Atlas 可预配新数据卷,然后将数据从旧卷同步到新卷。这就绕过了 AWS 的限制。

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

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

    • 对于第一次更改,Atlas 无需停机即可就地修改数据卷。

    • 对于以后的更改:

      数据卷大小
      自上次存储更改以来的时间
      Atlas 采取的操作
      小于 1 TB
      小于 5h30m
      Atlas 会减小卷的大小。如果 Atlas 减小了卷的大小,则您可以访问集群。在 AWS 附加新卷之前,您无法访问 AWS 修改的节点
      小于 1 TB
      5h30m 以上
      Atlas 会等到数据卷修改生效,然后在不停机的情况下就地修改主机的数据卷。
      超过 1TB
      任何
      Atlas 会等到数据卷修改生效,然后在不停机的情况下就地修改主机的数据卷。

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

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

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

  • 使用这些集群来托管具有高 IO 工作负载要求的应用程序,而无需配置分片以将应用程序的工作负载分布在服务器之间。

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

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

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

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

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

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

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

以下部分介绍如何增加存储大小和IOPS

要更改服务器的数据卷大小:

  1. 查看集群详细信息。

  2. Cluster tier > Storage部分,您可以执行以下操作之一,具体取决于所在区域:

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

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

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

    无论采用哪种增加存储的选项,Atlas 都会就地增加存储容量,而无需复制数据或执行初始同步。

    注意

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

    Azure不允许就地减少存储容量。要降低Azure上集群的存储容量,Atlas 会预配新卷,然后将数据从旧卷同步到新卷。在应用存储容量降级之前, Review Changes页面会通知您,当您进行此更改时,Atlas 会触发集群的滚动重启。

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

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

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

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

要扩展IOPS数量:

  1. 查看集群详细信息。

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

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

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

当您更改集群的存储容量时,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 速率会随集群存储容量的变化而变化。如果要预置精确的 IOPS 值,请启用预配功能。

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

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

要为 M30+ 层集群预配 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 可为 General(常规)和 Low-CPU(低 CPU)层集群下的所有集群层(最高集群层除外)启用集群自动伸缩。

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

使用Auto-scale选项配置集群,以根据集群使用情况自动扩展集群层和/或存储容量。

重要

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

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

后退

集群

来年

自动伸缩 (Auto-Scaling)