Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Object delete of Active-Active Bucket Replication #11440

@Sug2077

Description

@Sug2077

Expected Behavior

I have created an active-active bucket replication, and I want replicate minio server1's object-put,object-delete operation to minio server2.

Current Behavior

The delete operation on minio server1 can't replicate to minio server2

Possible Solution

Steps to Reproduce (for bugs)

  1. use docker create two minio test server(minio version RELEASE.2021-02-01T22-56-52Z)
docker pull minio/minio
docker run -itd -p 9000:9000 --name minio1 minio/minio:latest server /data{1...4}
docker run -itd -p 9001:9000 --name minio2 minio/minio:latest server /data{1...4}
  1. docker mc(mc version RELEASE.2021-01-30T00-50-42Z)
docker pull minio/mc
docker run -it --entrypoint /bin/bash minio/mc:latest

set mc config

mc alias set minio1 http://10.2.4.207:9000 minioadmin minioadmin
mc alias set minio2 http://10.2.4.207:9001 minioadmin minioadmin
  1. create acitve-active bucket

mc mb -l minio{1..2}/test1

(1) minio1/test1=>minio2/test1

mc admin bucket remote add minio1/test1 http://minioadmin:[email protected]:9000/test1 --service replication --region us-east-1

Remote ARN = `arn:minio:replication:us-east-1:59f2ba2332b7b5025ccd7178a419fcb405edd8d9b256544066b1b61b70d50dc1:test1`.

mc replicate add minio1/test1 \
--priority 1 \
--storage-class STANDARD \
--remote-bucket test1 \
--replicate delete,delete-marker \
--arn arn:minio:replication:us-east-1:59f2ba2332b7b5025ccd7178a419fcb405edd8d9b256544066b1b61b70d50dc1:test1

Replication configuration rule applied to minio1/test1 successfully.

(2) minio2/test1=>minio1/test1

mc admin bucket remote add minio2/test1 http://minioadmin:[email protected]:9000/test1 --service replication --region us-east-1

Remote ARN = `arn:minio:replication:us-east-1:59f2ba2332b7b5025ccd7178a419fcb405edd8d9b256544066b1b61b70d50dc1:test1`.

mc replicate add minio2/test1 \
--priority 2 \
--storage-class STANDARD \
--remote-bucket test1 \
--replicate delete,delete-marker \
--arn arn:minio:replication:us-east-1:59f2ba2332b7b5025ccd7178a419fcb405edd8d9b256544066b1b61b70d50dc1:test1

Replication configuration rule applied to minio2/test1 successfully.
  1. verification
    mc replicate ls
[root@5c88de1370e9 /]# mc replicate ls minio1/test1 --json
{
 "op": "",
 "status": "success",
 "url": "",
 "rule": {
  "ID": "c0dq002f2j6iof8mc5cg",
  "Status": "Enabled",
  "Priority": 1,
  "DeleteMarkerReplication": {
   "Status": "Enabled"
  },
  "DeleteReplication": {
   "Status": "Enabled"
  },
  "Destination": {
   "Bucket": "arn:aws:s3:::test1",
   "StorageClass": "STANDARD"
  },
  "Filter": {
   "And": {},
   "Tag": {}
  },
  "SourceSelectionCriteria": {
   "ReplicaModifications": {
    "Status": ""
   }
  }
 }
}
[root@5c88de1370e9 /]# mc replicate ls minio2/test1 --json
{
 "op": "",
 "status": "success",
 "url": "",
 "rule": {
  "ID": "c0dqe4qf2j6iqggim9o0",
  "Status": "Enabled",
  "Priority": 2,
  "DeleteMarkerReplication": {
   "Status": "Enabled"
  },
  "DeleteReplication": {
   "Status": "Enabled"
  },
  "Destination": {
   "Bucket": "arn:aws:s3:::test1",
   "StorageClass": "STANDARD"
  },
  "Filter": {
   "And": {},
   "Tag": {}
  },
  "SourceSelectionCriteria": {
   "ReplicaModifications": {
    "Status": ""
   }
  }
 }
}

Context

Test List(test with mc, and minio web page use Chrome 88)

  • [Pass] put object1 to minio1/test1, object1 replicate to minio2/test1
  • [Pass] put object2 to minio2/test1, object2 replicate to minio1/test1
  • [Fail] delete object1 on minio1/test1, object1 delete on minio2/test1 too
  • [Fail] delete object2 on minio2/test1, object2 delete on minio1/test1 too

Regression

I have tested normal user with correct permissions policy, object delete replication don't work too.

Your Environment

I have tested on two CentOS 7.6 server use minio binary version RELEASE.2021-02-01T22-56-52Z,
and Docker test steps above with version 19.03.13, build 4484c46d9d on Win10 pro

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions