- Adds landing pages for all two-word `mc` commands - Nests three+ word commands under appropriate two-word commands - Updates MinIO Client doc - Uses description from each command to populate list of subcommand descriptions - Modifies toctree for MinIO Client doc and each command/subcommand to improve left nav experienc Closes #710
9.7 KiB
Enable Two-Way Server-Side Bucket Replication
minio
Table of Contents
The procedure on this page creates a new bucket replication rule for two-way "active-active" synchronization of objects between MinIO buckets.
- To configure replication between arbitrary S3-compatible services,
use
mc mirror
. - To configure one-way "active-passive" replication between MinIO
clusters, see
minio-bucket-replication-serverside-oneway
. - To configure multi-site "active-active" replication between MinIO
clusters, see
minio-bucket-replication-serverside-multi
.
This tutorial covers configuring Active-Active replication between
two MinIO clusters. For a tutorial on multi-site replication between
three or more MinIO clusters, see minio-bucket-replication-serverside-multi
.
Requirements
You must meet all of the basic requirements for bucket replication
described in Bucket Replication Requirements <minio-bucket-replication-requirements>
.
In addition, to set up active-active bucket replication, you must meet the following additional requirements:
Access to Both Clusters
You must have network access and login credentials with required permissions to both deployment to set up active-active bucket replication.
You can access the deployments by logging in to the MinIO Console <minio-console>
for each
deployment or by installing mc
and using the command line.
If using the command line, use the mc alias set
command to create an alias for both MinIO
deployments. Alias creation requires specifying an access key for a user
on the deployment. This user must have permission to
create and manage users and policies on the deployment.
Specifically, ensure the user has at minimum:
admin:CreateUser
admin:ListUsers
admin:GetUser
admin:CreatePolicy
admin:GetPolicy
admin:AttachUserOrGroupPolicy
Considerations
Use Consistent Replication Settings
MinIO supports customizing the replication configuration to enable or disable the following replication behaviors:
- Replication of delete operations
- Replication of delete markers
- Replication of existing objects
- Replication of metadata-only changes
When configuring replication rules for a bucket, ensure that both MinIO deployments participating in active-active replication use the same replication behaviors to ensure consistent and predictable synchronization of objects.
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 delete operations onto the target bucket.
Specifically, MinIO can replicate versioning Delete Markers <versioning-workflows.html>
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 <minio-lifecycle-management-expiration>
.
Configure matching expiration rules on both the source and destination
bucket to ensure consistent application of object expiration.
See minio-replication-behavior-delete
for more complete
documentation.
Multi-Site Replication
MinIO supports configuring multiple remote targets per bucket or bucket prefix. This enables configuring multi-site active-active replication between MinIO deployments.
This procedure covers active-active replication between two
MinIO sites. You can repeat this procedure for each "pair" of MinIO
deployments in the replication mesh. For a dedicated tutorial, see minio-bucket-replication-serverside-multi
.
Procedure
Configure Two-Way Bucket Replication Using the MinIO Console <minio-bucket-replication-two-way-minio-console-procedure>
-
Create a New Bucket Replication Rule on Each Deployment <minio-bucket-replication-two-way-minio-console-create-replication-rules>
Validate the Replication Configuration <minio-bucket-replication-two-way-minio-console-validate-replication-config>
Configure Two-Way Bucket Replication Using the Command Line <minio-bucket-replication-two-way-minio-cli-procedure>
-
Create Replication Remote Targets <minio-bucket-replication-two-way-minio-cli-create-remote-targets>
Create a New Bucket Replication Rule on Each Deployment <minio-bucket-replication-two-way-minio-cli-create-replication-rules>
Validate the Replication Configuration <minio-bucket-replication-two-way-minio-cli-verify-replication-config>
Configure Two-Way Bucket Replication Using the MinIO Console
1) Create a New Bucket Replication Rule on Each Deployment
Repeat the above steps to create a rule in the other direction.
- Go to the Console for the destination deployment used above.
- Create a replication rule from the second deployment back to the first deployment. The first deployment becomes the target deployment for the rule on the second deployment.
2) Validate the Replication Configuration
Configure
Two-Way Bucket Replication Using the Command Line mc
This procedure creates two-way, active-active replication between two MinIO deployments.
This procedure assumes you have already defined an alias for each
deployment as a user with the necessary replication permissions <minio-bucket-replication-serverside-twoway-permissions>
.
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.
1) Create a New Bucket Replication Rule on Each Deployment
Repeat this step on the other MinIO deployment. Change the
ALIAS
and --remote-bucket
values to correspond
to the first deployment.
You should have two replication rules configured at the conclusion of
this step - one created on each deployment that points to the bucket on
the other deployment. Use the mc replicate ls
command to verify the created
replication rules.
2) Validate the Replication Configuration
Repeat this test by copying another object to the second deployment and verifying the object replicates to the first deployment.
Once both objects exist on both deployments, you have successfully set up two-way, active-active replication between MinIO buckets.
- Use the
mc replicate update
command to modify an existing replication rule. - Use the
mc replicate update
command with the--state "disable" <mc replicate update --state>
flag to disable an existing replication rule. - Use the
mc replicate rm
command to remove an existing replication rule.