您好,登錄后才能下訂單哦!
bucket刪除中的細節有哪些,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
社區群里有人說刪除bucket以后還有部分數據殘留,用的ceph 10.2.x版本做的驗證
測試用例
from boto.s3.connection import S3Connection import boto conn = boto.connect_s3( aws_access_key_id = '', aws_secret_access_key = '', host = 's3.cephbook.com', port = 80, is_secure = False, calling_format = boto.s3.connection.OrdinaryCallingFormat(), ) bucket = conn.create_bucket('foo') #bucket.delete()
刪除前
root@demohost:/home/user# rados ls -p rgw.root foo .bucket.meta.foo:70af9a54-20bb-480b-92f4-cbdeef0b775c.217357.1
刪除后
root@demohost:/home/user# rados ls -p rgw.root .bucket.meta.foo:70af9a54-20bb-480b-92f4-cbdeef0b775c.217357.1 #殘留
對meta file的刪除操作需要根據是否開啟了多集群同步來決定
# src/rgw/rgw_rados.cc op_ret = store->delete_bucket(s->bucket, ot);#入口 .... /* if the bucket is not synced we can remove the meta file */ if (!is_syncing_bucket_meta(bucket)) { RGWObjVersionTracker objv_tracker; string entry = bucket.get_key(); r= rgw_bucket_instance_remove_entry(this, entry, &objv_tracker); if (r < 0) { return r; } /* remove bucket index objects*/ map<int, string>::const_iterator biter; for (biter = bucket_objs.begin(); biter != bucket_objs.end(); ++biter) { index_ctx.remove(biter->second); } }
滿足下面4種情況是不會進行meta file的刪除操作
當前period不是最新版本 zonegroup為非master zonegroup
當前集群只有單個zonegroup,且只有一個zone 當前zone不是master zone
/** * Check to see if the bucket metadata could be synced * bucket: the bucket to check * Returns false is the bucket is not synced */ bool RGWRados::is_syncing_bucket_meta(rgw_bucket& bucket) { /* no current period */ if (current_period.get_id().empty()) { return false; } /* zonegroup is not master zonegroup */ if (!get_zonegroup().is_master) { return false; } /* single zonegroup and a single zone */ if (current_period.is_single_zonegroup(cct, this) && get_zonegroup().zones.size() == 1) { return false; } /* zone is not master */ if (get_zonegroup().master_zone.compare(zone_public_config.id) != 0) { return false; } return true; }
rados命令手工刪除對應的obj,但是要注意相應的bucket一定是不再需要的,最好是在多個集群上確認最終操作,確保數據一致性。
修改集群配置,滿足上面4點需求之一。
最后非標準操作去刪除bucket可能破壞底層數據一致性,起手無悔,一定要慎重。
看完上述內容,你們掌握bucket刪除中的細節有哪些的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。