千家信息网

错误状况下怎么保证ceph IO的一致性

发表于:2024-10-18 作者:千家信息网编辑
千家信息网最后更新 2024年10月18日,这篇文章将为大家详细讲解有关错误状况下怎么保证ceph IO的一致性,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。最近研究了在出现错误的状况下,ceph IO 的一
千家信息网最后更新 2024年10月18日错误状况下怎么保证ceph IO的一致性

这篇文章将为大家详细讲解有关错误状况下怎么保证ceph IO的一致性,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

最近研究了在出现错误的状况下,ceph IO 的一致性如何保证。代码基于hammer0.94.5版本。 构建一个集群,包括三个OSD, osd.0 osd.1 osd.2。

从客户端发送IO写操作A,osd.0 是primary, osd1/2是replica. 假设osd.2此时由于网络或者硬盘故障,或者软件bug挂了。 此时osd0 自己完成了本地写,收到了osd.1的副本写ack,还在等待osd.2的副本写ack. 在最长等待osd_heartbeat_grace,默认是20秒后,利用心跳机制,会向monitor汇报此osd挂掉。此时集群会进入peering,在peering的时候,受影响的pg,io 会被block住。这个时候详细来看作为primay的osd.0 如何处理写操作A。 在peering之前, osd0 会调用void ReplicatedPG::on_change(), 进一步调用apply_and_flush_repops()

apply_and_flush_repops()会将操作A requeue到op_wq里去。

等待pg peering完成后,A操作的对象所属的pg变成active状态, IO继续, do_op会继续处理IO队列,包括requeue的A操作。

do_op 会查询pglog,发现A操作其实已经落盘,是个dup的操作,可直接返回client.

对于两个osd ,如osd.1/osd.2都挂的情况,primary还是会requeue A操作,但假如pg min_size是2, 这个时候由于只有primay osd在线,小于min_size。

所以等peering完成,IO也会被block住,等待数据恢复至min_size以上,IO 才会继续。

同样的,如果挂的是primary osd.0, 分两种情况,一种是osd.0先挂,然后client 发送A操作,client端会等一会儿,等到peering完成,client拿到更新的osdmap后,重发请求,纳闷剩下的IO处理跟正常情况一样了。

第二种是client 已经将请求发送到primary osd.0, osd.0也把副本写操作发送到了osd.1 和osd.2上,然后osd.0挂了。 同样等到心跳检测到osd.0挂的情况,然后peering. osd.1也会有equeue的动作,等待peering完成后,假设osd.1变成了primary, 那接下来的逻辑跟之前primary osd.0的动作一样了。

关于"错误状况下怎么保证ceph IO的一致性"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

情况 一致 一致性 状况 错误 保证 副本 时候 篇文章 动作 更多 集群 处理 不错 实用 最长 接下来 三个 两个 代码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 河南荣吉网络技术有限公司 通州区信息网络技术推广怎么样 服务器磁盘管理作用 dmz区可以放数据库吗 大连dxc软件开发招聘 天择网络技术有限公司电话 autodl服务器怎么用 软件开发企业的职工培训费 net服务器安装失败怎么办 属于护理学科专业的外文数据库 网络技术服务工程师面试 徐汇区上门软件开发厂家代理价格 苹果软件开发价位 思科计算机网络安全考试答案 校园网的服务器运行机制 政务服务器云空间 辛达苟萨服务器 石家庄APP软件开发服务 连云港电商erp软件开发 他服务器是什么 郑州青少年网络安全手抄扳 护苗青少年网络安全课堂美篇 有网络安全专业的技校 南京商城软件开发多少钱 账户注册如何用数据库测试 陕西网络安全等级测评公司 聚合支付平台搭建软件开发 网络安全需求有多大 网络安全信息化生产基地 手游数据库设计
0