> For the complete MongoDB documentation index, see www.mongodb.com/docs/llms.txt

# Auto-Scaling for Cluster Storage

This page covers cluster storage on each database edition. How storage grows depends on the edition. On an Atlas Core cluster, Atlas auto-scales the storage attached to each node. On an Atlas Infinite cluster, storage grows with your data.

For cluster tier auto-scaling, which applies to both database editions, see [Compute Auto-Scaling on Atlas Core](https://www.mongodb.com/docs/atlas/cluster-autoscaling-compute-core.md#std-label-cluster-autoscaling-compute-core) and [Compute Auto-Scaling on Atlas Infinite.](https://www.mongodb.com/docs/atlas/cluster-autoscaling-compute-infinite.md#std-label-cluster-autoscaling-compute-infinite)

## Cluster Storage Auto-Scaling on Atlas Core

Atlas uses storage auto-scaling to help you automatically increase your cluster storage capacity. The following sections describe how Atlas scales storage on an Atlas Core cluster and how storage scaling can change the cluster tier.

### How Atlas Scales Cluster Storage on Atlas Core

This section applies to Atlas Core clusters. On an Atlas Core cluster, cluster storage is the disk attached to each node, and `diskSizeGB` sets its size. Atlas enables cluster storage auto-scaling by default. Atlas automatically increases cluster storage when disk space used reaches 90% for *any* node in the cluster.

To opt out of cluster storage scaling, un-check the Storage Scaling checkbox in the Auto-scale section.

The following considerations apply:

- Atlas auto-scales cluster storage up only. You can manually reduce your cluster storage from the [Edit Cluster](https://www.mongodb.com/docs/atlas/scale-cluster.md#std-label-scale-cluster) page.

- On [AWS](https://www.mongodb.com/docs/atlas/reference/amazon-aws.md#std-label-amazon-aws), [Azure](https://www.mongodb.com/docs/atlas/reference/microsoft-azure.md#std-label-microsoft-azure), and [GCP](https://www.mongodb.com/docs/atlas/reference/google-gcp.md#std-label-google-gcp) clusters, Atlas increases cluster storage capacity to achieve 70% disk space used. To learn more, see [Change Storage Capacity or IOPS on AWS](https://www.mongodb.com/docs/atlas/customize-storage.md#std-label-change-storage-capacity-aws), [Change Storage Capacity and IOPS on Azure (Microsoft Azure)](https://www.mongodb.com/docs/atlas/customize-storage.md#std-label-change-storage-capacity-azure), and [Change Storage Capacity on Google Cloud.](https://www.mongodb.com/docs/atlas/customize-storage.md#std-label-change-storage-capacity-gcp)

- Avoid high-speed write activity if you plan to scale up clusters. Scaling up a cluster to greater storage capacity requires sufficient time to  prepare and copy data to new disks. If a cluster receives a burst of high-speed write activity, such as a bulk insert, automatic scaling might not occur due to a temporary spike in disk storage capacity. To reduce the risk of running out of disk  storage, plan to scale up clusters in advance of bulk inserts and other instances of high-speed write activity.

- Atlas disables disk auto-scaling if you specify one cluster tier class for the base nodes and another, different cluster tier class for the analytics nodes. For example, if you specify a General cluster class for [operational nodes](https://www.mongodb.com/docs/manual/reference/glossary.md#std-term-operational-node) in the Base Tier, and a Low-CPU cluster class for analytics nodes in the Analytics Tier, Atlas disables disk auto-scaling with the following error message: `Disk auto-scaling
  is not yet available for clusters with mixed instance classes`.

- After disk auto-scaling triggers, subsequent disk auto-scaling and manual disk scaling may be unavailable for a few hours.

### Cluster Tier and Cluster Storage Might Scale in Parallel on Atlas Core

**Note:**

This section applies to Atlas Core only.

This section describes Atlas Core cluster behavior. Because storage doesn't scale on Atlas Infinite clusters, this parallel scaling behavior doesn't apply to them. To learn more, see [Compute Auto-Scaling on Atlas Infinite.](https://www.mongodb.com/docs/atlas/cluster-autoscaling-compute-infinite.md#std-label-cluster-autoscaling-compute-infinite)

When Atlas attempts to automatically scale your cluster storage capacity as part of auto-scaling, it might need to scale your storage outside of the bounds that your current cluster tier supports. To help ensure that your cluster doesn't experience any downtime, Atlas scales your cluster tier (in addition to cluster storage) to accommodate the new storage capacity.

**Note:**

In an auto-scaling event, Atlas might increase the cluster tier even if Cluster Tier Scaling is disabled, if the current tier doesn't have the required storage capacity.

On Azure (Microsoft Azure), if you enable auto-scaling on a cluster deployed in one of the [regions that support Extended Storage/IOPS](https://www.mongodb.com/docs/atlas/reference/microsoft-azure.md#std-label-microsoft-azure-storage-supported-regions), and the current IOPS (Input/Output Operations per Second) is lower than the default IOPS (Input/Output Operations per Second) for the auto-scaled disk size, Atlas increases the alloted number of IOPS (Input/Output Operations per Second) in the IOPS slider and notifies you in the UI. To learn more, see [Configure Extended Storage/IOPS on Azure.](https://www.mongodb.com/docs/atlas/customize-storage.md#std-label-extend-iops-azure-steps)

**Example:**

The maximum storage capacity for an `M30` cluster is 480 GB. If you have an `M30` cluster with the maximum storage allocated and your disk space used reaches 90%, a storage auto-scaling event requires raising your storage capacity to 600 GB. In this case, Atlas scales your cluster tier up to `M40` because this is the lowest cluster tier that can support the new required storage capacity. On Azure (Microsoft Azure), if you deployed the cluster in one of the [regions that support Extended Storage/IOPS](https://www.mongodb.com/docs/atlas/reference/microsoft-azure.md#std-label-microsoft-azure-storage-supported-regions), Atlas also automatically increases IOPS (Input/Output Operations per Second) to match the IOPS (Input/Output Operations per Second) level for that tier's cluster. To learn more, see [Configure Extended Storage/IOPS on Azure.](https://www.mongodb.com/docs/atlas/customize-storage.md#std-label-extend-iops-azure-steps)

In the event that your specified maximum cluster tier can't support the new storage capacity, Atlas:

1. Raises your maximum cluster tier to the next lowest tier that can accommodate the new storage capacity.

2. Scales your cluster tier to that new maximum tier.

**Note:**

When Atlas overrides your maximum cluster tier, it also disables your cluster from automatically scaling down. To re-enable downward auto-scaling, configure it in [Cluster Settings](https://www.mongodb.com/docs/atlas/scale-cluster.md#std-label-scale-cluster). See also [Considerations for Downward Scaling of Cluster Tier.](https://www.mongodb.com/docs/atlas/cluster-autoscaling-compute-core.md#std-label-downward-scaling-considerations)

If Atlas attempts to scale your cluster tier down and the target tier can't support your current disk capacity, provisioned IOPS (Input/Output Operations per Second), or both, Atlas doesn't scale your cluster down. In this scenario, Atlas updates your auto-scaling settings based on the relationship between your current cluster tier and the configured maximum cluster tier:

- If the cluster is currently at the configured maximum cluster tier, Atlas disables the cluster from automatically scaling down because all smaller tiers wouldn't be able to accommodate the necessary storage settings. If you want to re-enable downward auto-scaling, you must do so manually from your [Cluster Settings.](https://www.mongodb.com/docs/atlas/scale-cluster.md#std-label-scale-cluster)

- If the cluster isn't currently at the configured maximum cluster tier, Atlas raises the minimum cluster tier to the current cluster tier. In this case, Atlas doesn't disable downward auto-scaling.

This auto-scaling logic reduces the downtime in cases when your storage settings don't match your workload.

### Oplog Considerations on Atlas Core

On an Atlas Core cluster, depending on whether you choose to use storage auto-scaling, Atlas manages the oplog entries based on either the minimum oplog retention window, or the oplog size. To learn more, see [Oplog Size Behavior](https://www.mongodb.com/docs/atlas/customize-storage.md#std-label-oplog-size-behavior). Atlas enables storage auto-scaling by default.

## Cluster Storage on Atlas Infinite

Storage on an Atlas Infinite cluster grows with your data, so there is no storage auto-scaling to configure or opt out of. To control costs, you set a maximum storage size when you create or modify the cluster. Atlas blocks writes when the cluster reaches that limit.

**Important:**

During public preview, Atlas might throttle writes before your cluster reaches the limit that you set, to preserve system availability. If this happens, contact MongoDB Support through chat or by opening a support case. To learn more, see [Request Support.](https://www.mongodb.com/docs/atlas/support.md#std-label-request-support)

- To learn how cluster storage works on an Atlas Infinite cluster, including how to set the maximum storage size, see [Max Storage Limit.](https://www.mongodb.com/docs/atlas/infinite/atlas-infinite-storage.md#std-label-atlas-infinite-max-storage-limit)

- To review the storage IOPS (Input/Output Operations per Second) and throughput values for each cluster tier, see [Atlas Infinite Storage IOPs and Throughput Values per Cluster Tier.](https://www.mongodb.com/docs/atlas/reference/amazon-aws.md#std-label-atlas-infinite-storage-iops-throughput-values)
