The procedure on this page creates a new bucket replication rule for one-way synchronization of objects from one MinIO bucket to another MinIO bucket. The buckets can be on the same MinIO deployment or on separate MinIO deployments.
To configure two-way “active-active” replication between MinIO buckets, see Enable Two-Way Server-Side Bucket Replication.
To configure multi-site “active-active” replication between MinIO deployments, see Enable Multi-Site Server-Side Bucket Replication
To configure replication between arbitrary S3-compatible services (not necessarily MinIO), use
Replication requires all participating clusters meet the following requirements. This procedure assumes you have reviewed and validated those requirements.
For more details, see the Bucket Replication Requirements page.
Click to expand any of the following:
Replication of Existing Objects
MinIO supports automatically replicating existing objects in a bucket.
MinIO requires explicitly enabling replication of existing objects using the
mc replicate add --replicate or
mc replicate update --replicate and including the
existing-objects replication feature flag.
This procedure includes the required flags for enabling replication of existing objects.
Replication of Delete Operations
MinIO supports replicating S3
DELETE operations onto the target bucket.
Specifically, MinIO can replicate versioning Delete Markers and the deletion of specific versioned objects:
For delete operations on an object, MinIO replication also creates the delete marker on the target bucket.
For delete operations on versions of an object, MinIO replication also deletes those versions on the target bucket.
MinIO requires explicitly enabling replication of delete operations using the
mc replicate add --replicate or
mc replicate update --replicate.
This procedure includes the required flags for enabling replication of delete operations and delete markers.
MinIO does not replicate delete operations resulting from the application of lifecycle management expiration rules.
See Replication of Delete Operations for more complete documentation.
MinIO supports configuring multiple remote targets per bucket or bucket prefix. For example, you can configure a bucket to replicate data to two or more remote MinIO deployments, where one deployment is a 1:1 copy (replication of all operations including deletions) and another is a full historical record (replication of only non-destructive write operations).
This procedure documents one-way replication to a single remote MinIO deployment. You can repeat this tutorial to replicate a single bucket to multiple remote targets.
Log in to the MinIO Console for the deployment
Select the Manage button for the bucket to replicate
Select the Replication section
Select Add Replication Rule +
Complete the requested information:
Enter a number value to indicate the order in which to process replication rules for the bucket. 1 indicates the highest importance.
The URL of the deployment to replicate data to.
Leave the toggle in the ON position if the destination deployment uses TLS. Otherwise, move the toggle to the OFF position.
The user name to use on the destination deployment. The user must have write access to the bucket to replicate to.
The password for the provided Access Key.
The bucket at the destination to write the data to. The target bucket may have the same name as the origin bucket, depending on the destination bucket location.
The AWS resource region location of the destination deployment.
Leave the default selection of Asynchronous to allow MinIO to replicate data after the write operation completes on the origin ment. Select Synchronous to attempt to complete the replication of the object during its write operation.
While synchronous replication may result in more reliable synchronization between the origin and destination buckets, it may also increase the time of each write operation.
Specify the maximum amount of bandwidth the replication process can use while replicating data. Enter a number and select a data unit.
Health Check Duration
The maximum length of time in seconds MinIO should spend verifying the health of the replicated data on the destination bucket.
The class of storage to use on the destination deployment for the replicated data. Valid values are either
Limit which objects to replicate from the bucket by Prefix or tags. If you enter multiple tags, the objects must match all tag values.
Leave selected to also replicate the object’s metadata file. Otherwise, move the toggle to the Off position.
Leave selected to also replicate MinIO’s indication that an object has been deleted and should also be marked deleted at the action bucket. Otherwise, move the toggle to the Off position to prevent marking the object as deleted in the destination bucket.
Leave selected to allow replication of the deletion of versions of an object. Otherwise, move the toggle to the Off position to not replicate deletion of object versions.
Select Save to finish adding the replication rule
Go to the Buckets section of the MinIO Console
Select the Browse button for the bucket you added replication to
Select the Upload button to add a new object to the bucket
Select Upload File
Use the interface to add a new object to the bucket
Go to the other deployment’s console and select the destination bucket defined in the replication
This procedure uses the aliases
REMOTE to reference each MinIO deployment being configured for replication.
Replace these values with the appropriate alias for your target MinIO deployments.
This procedure assumes each alias corresponds to a user with the necessary replication permissions.
Changed in version RELEASE.2022-12-24T15-21-38Z:
mc replicate add automatically creates the necessary replication targets, removing the need for using the deprecated
mc admin remote bucket add command.
This procedure only documents the procedure as of that release.
mc replicate add command to add a new replication rule to each MinIO deployment.
mc replicate add ALIAS/BUCKET \ --remote-bucket 'https://USER:PASSWORD@HOSTNAME:PORT/BUCKET' \ --replicate "delete,delete-marker,existing-objects"
ALIASwith the alias of the origin MinIO deployment. The name must match the bucket specified when creating the remote target in the previous step.
BUCKETwith the name of the bucket to replicate from on the origin deployment.
--remote-bucketto specify the remote MinIO deployment and bucket to which the
USER:PASSWORDmust correspond to a user on the remote deployment with the necessary replication permissions.
HOSTNAME:PORTmust resolve to a reachable MinIO instance on the remote deployment. The
BUCKETmust exist and otherwise meet all other replication requirements.
--replicate "delete,delete-marker,existing-objects"flag enables the following replication features:
mc replicate add --replicatefor more complete documentation. Omit any field to disable replication of that component.
Specify any other supported optional arguments for
mc replicate add.
mc cp to copy a new object to the replicated bucket on one of the deployments.
mc cp ~/foo.txt ALIAS/BUCKET
mc ls to verify the object exists on the destination bucket:
mc ls ALIAS/BUCKET