bucket删除中的细节有哪些
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,bucket删除中的细节有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。问题描述社区群里有人说删除bucket以后还有部分数据残留,
千家信息网最后更新 2026年10月31日bucket删除中的细节有哪些
bucket删除中的细节有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
问题描述
社区群里有人说删除bucket以后还有部分数据残留,用的ceph 10.2.x版本做的验证
测试用例
from boto.s3.connection import S3Connectionimport botoconn = 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.rootfoo.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::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删除中的细节有哪些的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
集群
数据
问题
细节
一致
一致性
内容
原因
只有
方法
更多
版本
残留
束手无策
为此
入口
单个
原因分析
命令
多个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
南京欣网互联网络科技有限公司
哈尔滨大商圈互联网科技有限公司
互联网和科技技术
互联网的科技创新
礼当家互联网科技
鑫亿盛互联网科技
互联网科技上市公司
菲比寻常互联网科技
老年人脱离互联网科技的作文
上海电发互联网科技有限公司
互联网科技与管理
坤平互联网科技
互联网科技扶贫时间
互联网科技公司营业执照怎么办理
国大互联网教育科技有限公司薪资
银行科技岗属于互联网吗
互联网科技包装股
兰石爱特工业互联网科技分公司
中国互联网公司的科技投入
互联网的黑科技实验室
互联网的科技
互联网科技官网
金融科技 互联网金融
互联网科技公司发展
猪兼强互联网科技
善班互联网科技有限公司
广州慧亚互联网科技怎么样
互联网还是高科技吗
美国五大互联网科技公司市值多少
互联网科技品牌