Ceph-笔记

分布式存储ceph:可靠性设计_cyq6239075的博客-CSDN博客_ceph 可靠性

数据 落盘_cephfs:分布式元数据管理_Robot-R的博客-CSDN博客

【scrub】

ceph-osd会定义启动scrub线程,扫描部分对象(哪些对象?),和其他副本比较,发现是否一致。如果发现不一致,ceph会抛出这个异常给用户解决。以PG为粒度,触发scrub。用户手动修复,使用:  ceph pg repair <pg_id> # 全量复制master节点数据到副本节点。 scrub分为light scrubbing和Deep scrubbing,前者是频率多直接检查hash值,后者是频率少直接读取内容计算checksum比较。 

【backfill】

当加入或者减少一个新的osd时,所有remapped之后的PG都要迁移到该osd上,此时就叫做backfill。 

【recovery】

当一个osd或者多个osd崩溃之后,再次上线,该osd的状态已经严重滞后了(此时crushmap中还保持该osd),这个时候就会进行recovery过程。如果是多个osd recovery, 那么这个时候会占用非常多的服务器资源。 

【peering】

故障恢复时,对比各个副本的PGlog, 根据PGlog差异构造missing列表,恢复阶段根据missing列表来恢复。peering以PG为单位进行,peering过程中,该PG的IO会被挂起,进入recovery阶段,则可以接受IO,但hit到missing列表项的,也会挂起,直到恢复完成后。因为PGlog的记录是有限的,当peering时发现,PGlog差异太大,则会触发backfill。 

【degrade】 PG的副本数没有达到要求,但是满足最小副本数要求。 

【incomplete】 PG的副本数连最小副本数都没有达到。

 

【osd crush weight】

Crush weight实际上为bucket item weight,

简单来说,bucket weight表示设备(device)的容量,1TB对应1.00,500G对应0.5,bucket weight是所有item weight之和,item weight的变化会影响bucket weight的变化,也就是osd.X会影响host。对与它的调整会立即重新分配pg,迁移数据,这个值一般在刚init 万osd的时候根据osd的容量进行设置。

Command:
ceph osd crush reweight osd.1 1.2

【osd weight】

Osd weight的取值为0~1。osd reweight并不会影响host。当osd被踢出集群时,osd weight被设置0,加入集群时,设置为1。

osd weight 也会立即重新分配pg,并且会把 (USE_DATA * (1-weight))的数据重新分配地方,进行数据的在线迁移,一般用于osd near full 或者 osd full 时临时把这个值调低,给集群加盘扩容操作(删除不用的数据也是一种常见的方式)。
Command:
ceph osd reweight 1 0.7

ceph osd pg-upmap-items  1.1,   [5 ,8]
表明pg 1.1需从osd.5重新映射到osd.8

ceph osd pg-upmap-items  1.2  , [0 ,8]  , [5 ,11]
表明pg 1.2的osd集合中osd.0重映射到osd.8 ,osd.5重映射到osd.11

 

【状态机】
//这里定义了一个状态机类machine。初始状态在A
struct M : state_machine< machine, StatInit >
{
}; 
 
//这里定义一个了状态newStat,属于machine状态机。
struct A : simple_state< newStat, machine>
{
}; 
 
 //这里定义一个了状态A,属于machine状态机。StatA 状态有初始子状态StatA1
struct A : simple_state<newStatA,  machine, newStatA1>
{
};
 


posted @   乌鸦嘴-raven  阅读(189)  评论(17编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示