bucket删除中的细节有哪些
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,bucket删除中的细节有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。问题描述社区群里有人说删除bucket以后还有部分数据残留,
千家信息网最后更新 2025年12月01日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安全错误
数据库的锁怎样保障安全
多媒体软件和网络技术的区别
周口软件开发报价
宝山区工商软件开发销售方法
数据库技术发展的现状和趋势
神州数码网络安全专业
基因序列数据库公开共享
常见保障网络安全的手段
pb修改后保存到数据库
软件开发有哪些岗位6
2021计算机三级数据库
软件开发用哪种编程
rds数据库用什么软件链接
香肠派对哪个服务器更简单
公司数据库是什么意思
微博主站服务器
北方互联网络技术
中国太平软件开发(卡园三路
深圳网络安全与执法公务员
中控h10修改数据库
怎么找到新三板公司数据库
我的世界基岩版服务器控制台
游戏数据库服务器
新泰电脑网络技术有要人的吗
数据库 view
数据库查询中文要加单引号么
软件开发可行性分析
新乡辰烁网络技术有限公司中标
山一大二附院网络安全宣传周活动
苏州大数据软件开发靠谱吗
中国互联网网络安全现状