rgw bucket sync
1. c創(chuàng)建bucket?à(元數(shù)據(jù)是否同步到對(duì)端?)—>disableà(已同步的元數(shù)據(jù)是否還在)—>寫(xiě)數(shù)據(jù)(數(shù)據(jù)是否同步到對(duì)端)àenable(剛才寫(xiě)入的數(shù)據(jù)是否同步到對(duì)端了)àdisable(寫(xiě)入的數(shù)據(jù)還在對(duì)端?)
結(jié)果:rados ls -p second.rgw.meta --namespace root 兩端可以看到由新建的bucket信息—>再次執(zhí)行命令兩端可以看到由新建的bucket信息-à寫(xiě)入的數(shù)據(jù)沒(méi)有同步到對(duì)端,在對(duì)端bucket?list看不到寫(xiě)入的文件且bucket?stats的usage是空的à剛才寫(xiě)的數(shù)據(jù)同步到對(duì)端了且bucket?list/stats正常à數(shù)據(jù)還在對(duì)端且bucket?list/stats正常
2. 2個(gè)線程用于sync : BucketsSyncThread ,UserSyncThread
rgw data sync同步過(guò)程:
full sync(per shard):
1.?依次處理這個(gè)shard里的bucket:
(1)讀出bucket的marker
(2)同步每個(gè)object,對(duì)于同步失敗的object會(huì)被記錄在replica log,之后會(huì)嘗試sync
(3)同步完成后把bucket_name,bucket_marker,需要重試sync的object列表存入目的ceph的replica log里
2.?這個(gè)shard里的bucket都處理完后:
(1) 把shard_num,需要重試sync的bucket列表更新到目的ceph的replica log里
?
incremental sync:
1.?查看replica log里的各個(gè)datalog shard找到需要重試sync的bucket,獲取bucket 當(dāng)前marker
2.?通過(guò)讀取datalog shard找到有變化的bucket
3.?依次處理各個(gè)bucket:
(1)?從replica log中需要重試sync的object
(2)?讀取bucket的bilog ,起點(diǎn)是replica log讀出的marker
(3)?開(kāi)始同步object
(4)?更新已經(jīng)同步了的最新marker和需要再次嘗試sync的object列表到replica log
4.?各個(gè)bucket處理完成后:
(1)?生成新marker并把需要再次嘗試sync的bucket列表更新到replica log
?
1.?亞馬遜云:bucket跨區(qū)域備份:
(1)?源/目標(biāo)bucket開(kāi)啟versioning
(2)?對(duì)源bucket全部備份或者選擇備份指定前綴的文件
(3)?目標(biāo)bucket必須由可以訪問(wèn)源的對(duì)象列表權(quán)限
(4)?可在目標(biāo)bucket上設(shè)置lifecycle來(lái)管理刪除舊版本
(5)?只能在不同的region里使用(對(duì)應(yīng)12版本的zonegroup?)
(6)?可監(jiān)視源bucket上的對(duì)象變化,因此只能備份新文件,需要復(fù)制已有對(duì)象可使用copy功能
2.?S3同一個(gè)集群內(nèi)的bucket?復(fù)制(桶名后面要加/)
s3cmd sync s3://from/this/bucket/ s3://to/this/bucket/
s3cmd sync -r -v --dry-run --delete-removed ?s3://cos-test-private-bucket/./
s3cmd sync -r -v --dry-run --delete-removed ./ ?s3://ft-cos-test-private-bucket/
aws s3 sync s3://mybucket s3://backup-mybucket
3.?把bucket1的文件拷貝到bucket2中
1.?同步/home/sen/tmp?文件到bucket里(只同步有差異的文件):
s3cmd sync /home/sen/tmp s3://slboat/tmp
加 "--dry-run"參數(shù)后,僅列出需要同步的項(xiàng)目,不實(shí)際進(jìn)行同步
加 " --delete-removed"參數(shù)后,會(huì)在bucket里刪除本地不存在的文件
加 " --skip-existing"參數(shù)后,不進(jìn)行MD5校驗(yàn),bucket里直接跳過(guò)本地已存在的文件
為了保持保留文件屬性,如日期/時(shí)間等使用 -p 或 -preserve 參數(shù)
排除、包含規(guī)則(--exclude 、--include)
?
?
?
ch
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的rgw bucket sync的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 排查【Jedis客户端触发 Too ma
- 下一篇: ceph radosgw-admin的操