ceph之rados设计原理与实现第四章:存储的基石OSD

OSD本质上是凌驾于操作系统之上的进程,拥有cpu、内存、网络带宽等资源,用于实现对象存储,并兼容各种类型的文件系统。

OSD之间利用集群网络互相监督,出现故障及时上报Monitor,由Monitor修改OSDMap后,再由OSD之间互相点对点传播最新OSDMap。

1.集群管理

OSD需要和Monitor定期通讯,报告自身情况,来更新最新的OSDMap,向Monitor报告自身容量使用情况,密钥密钥等,所以OSD进程内部驻留封装了Monitor客户端组件,用于和Monitor通信

2.网络通信

网络通信组件Messenger,包含公共网络、集群网络。

3.OSD上电

磁盘上存储着Objectstore的引导数据,先读出后进行认证,然后再读出Objectstore的超级块于内存,也就是挂载Objectstore,一切正常(OSD有足够权限、符合集群UUID、版本号正确等检测通过)后,需要向Monitor同步OSDMap,由于OSD下电期间OSDMap仍在更新,所以OSD上电之后OSDMap的版本可能和Monitor最新版本差了若干版本号,所以除了OSD需要告知Monitor将OSDMap中自己状态改为UP(因为OSD已经上电),同时Monitor还需要将OSD下电期间缺失的若干版本的OSDMap的增量(最多40个)一起发给OSD,用于更新OSD本地的OSDMap。

4.OSD故障检测

四种状态:Up、Down、In、Out

三种检测方式:自主上报、心跳检测、看门狗(定期向Monitor发送消息保活)

检测到OSD处于Down后,600S后才会置为Out,收波及的PG开始迁移。

5.OSD空间统计

四个等级:NearFull、BackFull(阻止PG迁移写入OSD)、Full(阻止写入OSD)、Failsafefull(阻止写入,避免Full标记延迟导致OSD写满的最后屏障)

存储池总空间 = 存储池已用空间 + 存储池最大可用空间

存储池最大可用空间计算公式为:min{ [ OSD容量 - 预留空间(百分之五) ] / 该OSD在存储池总容量的占比 / 存储池副本数 }

其中OSD容量 / 该OSD比重 = 存储池所有OSD容量之和

存储池已用空间计算公式为:存储池所有OSD已用空间之和 / 副本数

事实上,上述存储池最大可用空间计算公式是以数据分布平衡为前提的,由于取的是min,所以假如两块同样容量的磁盘作为两个OSD,已经写入的数据分布并不均匀,那么min总是取占用空间最大的值来计算最大可用空间,造成计算出的最大可用空间偏小。

相关推荐
Mogu_cloud21 分钟前
pcdn盒子连接方式
网络·智能路由器
Hqst_Kevin23 分钟前
Hqst 品牌 H81801D 千兆 DIP 网络变压器在光猫收发器机顶盒中的应用
运维·服务器·网络·5g·网络安全·信息与通信·信号处理
Hqst 网络变压器 Andy23 分钟前
交换机最常用的网络变压器分为DIP和SM
网络·依赖倒置原则
网安康sir41 分钟前
2024年三个月自学手册 网络安全(黑客技术)
网络·安全·web安全
Nigoridl1 小时前
MSF的使用学习
网络·web安全
pemper_2 小时前
怎么操作使http变成https访问?
网络·网络协议·http·https·ssl
蒙奇·D·路飞-2 小时前
古诗词四首鉴赏
网络
Run_Snails3 小时前
hcia-openEuler V1.0师资题库-试卷3
运维·服务器·网络
学java的小菜鸟啊3 小时前
第五章 网络编程 TCP/UDP/Socket
java·开发语言·网络·数据结构·网络协议·tcp/ip·udp
新手嵌入式学习4 小时前
网络协议头分析
网络·网络协议