Multi-Site, Active Active Replication for Object Storage

Active Active Replication for Object Storage is a key requirement for mission-critical production environments. MinIO is the only vendor that offers it today. Performed with bucket level granularity, it is used in the following cases:

MinIO supports both synchronous and near-synchronous replication depending on the architectural choices and rate of change with the data. In each of these scenarios, it is imperative that the replication be as close to strictly consistent as possible (taking into account bandwidth considerations and the rate of change).

MinIO's approach to data replication creates active-active storage systems that can be used on:

MinIO’s data replication is designed for resilience at scale. Key features include:

What to Consider When Implementing MinIO’s Active-Active Replication

At the most basic level any design needs to account for infrastructure, bandwidth, latency, resilience and scale. Let’s examine them in order:
MinIO supports very large deployments in each data center, both for source and target, and the considerations outlined above will dictate scale.
active active data center design


What happens when the replication target goes down?

If the target goes down, the source will cache the changes and will start syncing once the replication target comes back up. There may be some delay to reach full sync depending on the length of time, number of changes, bandwidth and latency.

What are the parameters on immutability?

Immutability is supported. Key concepts can be found in this post. In the active-active replication mode, immutability is only guaranteed if the objects are versioned. Versioning cannot be disabled on the source. If versioning is suspended on the target, MinIO will start to fail replication.

What are the other implications if versioning is suspended or there is a mismatch?

In these cases, replication could fail. For example, if you attempt to disable versioning on the source bucket, an error is returned. You must remove the replication configuration before you can disable versioning on the source bucket. Additionally, if you disable versioning on the destination bucket, replication fails.

How is object locking handled if it is not enabled on both sides?

Object locking must be enabled on both the source and the target. There is a corner case, where, after bucket replication has been set, the target bucket can be deleted and recreated with object lock not enabled, replication can fail. There is a potential for inconsistency if object locking settings are not configured on both ends. MinIO will silently fail in this case.

Learn more about Active Active Replication

You are using Internet Explorer version 11 or lower. Due to security issues and lack of support for web standards, it is highly recommended that you upgrade to a modern browser.