Hi,
i did setup multisite with 2 ceph clusters and multiple rgw's and
realms/zonegroups.
This setup was installed using ceph ansible branch "stable-5.0",
with focal+octopus.
During some testing, i noticed that somehow the replication seems to
not work as expected.
With s3cmd, i put a small file of 1.9 kb into a bucket on the master zone
s3cmd put /etc/hosts s3://test/
Then i can see at the output of "radosgw-admin sync status
--rgw_realm internal", that the cluster has indeed to sync
something, and switching back to "nothing to sync" after a couple of
seconds.
"radosgw-admin sync error list --rgw_realm internal" is emtpy, too.
However, if i look via s3cmd on the secondary zone, i can't see the
file. Even if i look at the ceph pools directly, the data didn't get
replicated.
If i proceed by uploading the file again, with the same command and
without a change, basically just updating it, or by restarting rgw
deamon of the secondary zone, the affected file gets replicated.
I spotted this issue with all my realms/zonegroups. But even with
"debug_rgw = 20" and debug_rgw_sync = "20" i can't spot any obvious
errors in the logs.
It also worries me that replication won't work with multiple rgws in
one zone, but one of them being unavailable, for instance during
maintenance.
I did somehow expect ceph to work it's way though the list of
available endpoints, and only fail if none are available.
...Or am I missing something here?
Any help whatsoever is very much appreciated.
I am pretty new to multisite and stuck on this for a couple of days
now already.
Thanks, Julian
Here is some additional information, including some log snippets:
# ON Master site, i can see the file in the bilog right away
radosgw-admin bilog list --bucket test/test --rgw_realm internal
{
"op_id": "3#00000000001.445.5",
"op_tag": "b9794e07-8f6c-4c45-a981-a73c3a4dc863.8360.106",
"op": "write",
"object": "hosts",
"instance": "",
"state": "complete",
"index_ver": 1,
"timestamp": "2022-02-24T09:14:41.957638774Z",
"ver": {
"pool": 7,
"epoch": 2
},
"bilog_flags": 0,
"versioned": false,
"owner": "",
"owner_display_name": "",
"zones_trace": [
{
"entry":
"b9794e07-8f6c-4c45-a981-a73c3a4dc863:test/test:b9794e07-8f6c-4c45-a981-a73c3a4dc863.8366.3"
}
]
},
# RGW log of secondary zone shows the sync attempt:
2022-02-24T09:14:52.502+0000 7f1419ff3700 0
RGW-SYNC:data:sync:shard[72]:entry[test/test:b9794e07-8f6c-4c45-a981-a73c3a4dc863.8366.3:3]: triggering sync of source bucket/shard
test/test:b9794e07-8f6c-4c45-a981-a73c3a4dc863.8366.3:3
# but the secondary zone, doesnt actually show the new file in the bilog
radosgw-admin bilog list --bucket test/test --rgw_realm internal
# and the shard log that according to the logfile had the data to
sync in it, doesn't seem to even exist at the secondary zone
radosgw-admin datalog list --shard-id 72 --rgw_realm internal
ERROR: list_bi_log_entries(): (2) No such file or directory
# RGW Log at master zone, there is one 404 in there which worries me a bit
2022-02-24T09:14:52.515+0000 7ff5816e2700 1 beast: 0x7ff6387f77c0:
192.168.85.71 - - [2022-02-24T09:14:52.515949+0000] "GET
/admin/log/?type=bucket-index&bucket-instance=test%2Ftest%3Ab9794e07-8f6c-4c45-a981-a73c3a4dc863.8366.3%3A3&info&rgwx-zonegroup=7d35d818-0881-483a-b1bf-47ec21f26609 HTTP/1.1" 200 94 - -
-
2022-02-24T09:14:52.527+0000 7ff512604700 1 beast: 0x7ff6386747c0:
192.168.85.71 - - [2022-02-24T09:14:52.527950+0000] "GET
/test?rgwx-bucket-instance=test%2Ftest%3Ab9794e07-8f6c-4c45-a981-a73c3a4dc863.8366.3%3A3&versions&format=json&objs-container=true&key-marker&version-id-marker&rgwx-zonegroup=7d35d818-0881-483a-b1bf-47ec21f26609 HTTP/1.1" 404 146 - -
-
2022-02-24T09:14:52.535+0000 7ff559e93700 1 beast: 0x7ff6386747c0:
192.168.85.71 - - [2022-02-24T09:14:52.535950+0000] "GET
/admin/log?bucket-instance=test%2Ftest%3Ab9794e07-8f6c-4c45-a981-a73c3a4dc863.8366.3%3A3&format=json&marker=00000000001.445.5&type=bucket-index&rgwx-zonegroup=7d35d818-0881-483a-b1bf-47ec21f26609 HTTP/1.1" 200 2 - -
-
# if i update the file, by reuploading it, or restart the rgw deamon
of the secondary zone, the affected file gets synced
s3cmd put /etc/hosts s3://test/
# again, there is the sync attempt from the secondary zone rgw
2022-02-24T12:04:52.452+0000 7f1419ff3700 0
RGW-SYNC:data:sync:shard[72]:entry[test/test:b9794e07-8f6c-4c45-a981-a73c3a4dc863.8366.3:3]: triggering sync of source bucket/shard
test/test:b9794e07-8f6c-4c45-a981-a73c3a4dc863.8366.3:3
# But now the file does show in bilog, and data log
radosgw-admin bilog list --bucket test/test --rgw_realm internal
{
"op_id": "3#00000000001.456.5",
"op_tag": "_e1zRfGuaFH7mLumu1gapeLzHo9zYU6M",
"op": "write",
"object": "hosts",
"instance": "",
"state": "complete",
"index_ver": 1,
"timestamp": "2022-02-24T12:04:38.405141253Z",
"ver": {
"pool": 7,
"epoch": 2
},
"bilog_flags": 0,
"versioned": false,
"owner": "",
"owner_display_name": "",
"zones_trace": [
{
"entry":
"b9794e07-8f6c-4c45-a981-a73c3a4dc863:test/test:b9794e07-8f6c-4c45-a981-a73c3a4dc863.8366.3"
},
{
"entry":
"e00c182b-27dc-4500-ad5b-77719f615d76:test/test:b9794e07-8f6c-4c45-a981-a73c3a4dc863.8366.3"
},
{
"entry":
"e00c182b-27dc-4500-ad5b-77719f615d76:test/test:b9794e07-8f6c-4c45-a981-a73c3a4dc863.8366.3:3"
}
]
}
radosgw-admin datalog list --shard-id 72 --rgw_realm internal
{
"entity_type": "bucket",
"key": "test/test:b9794e07-8f6c-4c45-a981-a73c3a4dc863.8366.3:3",
"timestamp": "2022-02-24T12:04:52.522177Z"
}