【北亚数据恢复】什么是Ceph?Ceph数据恢复研究

 

Ceph存储基本架构:

Ceph存储根据其类型,可分为块存储,对象存储和文件存储。Ceph基于对象存储,对外提供三种存储接口,故称为统一存储。

Ceph的底层是RADOS(分布式对象存储系统),RADOS系统主要由两部分组成,分别是OSD和MON。

MON负责监控整个集群,维护集群的健康状态,维护展示集群状态的各种图表,如OSDMap、MonitorMap、PGMap和CRUSHMap。

OSD则用于存储数据、复制数据、平衡数据、恢复数据,以及与其它OSD间进行心跳检查等。一般情况下一块硬盘对应一个OSD。

 

Ceph数据的存储过程:

无论使用哪种存储方式(对象、块、文件系统),存储的数据都会被切分成对象(Objects)。

存储池:

很多不同用户因不同目的把对象存储在不同的存储池里,而它们都坐落于无数的OSD之上。

对象保存在不同的存储池(Pool)中,它是对象存储的逻辑组,对应不同的用户。存储池管理着归置组数量、副本数量、和存储池规则集。

归置组:

归置组(PGPlacementGroup)是对象池的片段,Ceph根据对象的Oid和一些其他信息做计算操作,映射到归置组,无数的对象被划分到不同的归置组。PG是一个逻辑概念,它在数据寻址时类似于数据库中的索引。

每个对象都会固定映射进一个PG中,所以当我们要寻找一个对象时,只需要先找到对象所属的PG,然后遍历这个PG就可以了,无需遍历所有对象。而且在数据迁移时,也是以PG作为基本单位进行迁移。

OSD:

 最后PG会根据管理员设置的副本数量进行复制,然后通过crush算法存储到不同的OSD节点上,最终把PG中的所有对象存储到OSD节点上。

BlueStore:

新版本中,Ceph默认以Bluestore存储引擎作为RADOS中OSD的ObjectStore存储底层实现

BlueStore整体架构。

空间分配:

BlueStore将整个存储空间分为3个部分:WAL,DB,SLOW

慢速(Slow)空间:

主要用于存储对象数据,由BlueStore管理。

高速(DB)空间:

存储blufs和rocksdb产生的数据,由BlueFS直接管理,如果不存在或者DB设备空间不足,则选择Slow类型设备空间。

超高速(WAL)空间:

主要存储RocksDB的WAL(即.log)文件,由BlueFS直接管理,如果不存在或者WAL设备空间不足,则逐级降级选择DB、SLOW分区。

Rocksdb:

BlueStore使用Rocksdb作为自己元数据存储的底层实现,将各种元数据以kv型记录的方式存在数据库中。

写入机制任何元数据的写入都会先写到WAL,然后在写入MemoryTable(Memtable)。

当一个Memtable写满了之后,就会变成immutable的Memtable,RocksDB在后台会通过一个flush线程将这个Memtableflush到磁盘,生成一个SortedStringTable(SST)文件。

BlueFS:

BlueFS与通用文件系统不同,是Bluestore专为Rocksdb所设计的精简文件系统。

BlueFS的文件和目录的元数据以日志事务的形式保存在日志文件中,在上电过程中,replay日志文件中的事务,就可以加载所有的元数据到内存中。

Ceph数据恢复流程:


1. 制作镜像:

制作磁盘镜像,用于数据提取和备份。

2. BlueFS中数据库文件的提取:

从磁盘镜像的分区获取超级块,得到日志的节点信息。

回放整个日志中的事务,得到目录结构和数据库文件节点信息,根据数据库文件节点信息提取数据库文件。

提取每个OSD提取出来的数据库中的object记录。

3. 文件记录提取:

对于损坏的数据库,根据文件格式提取数据库完好文件中的object记录。

4. 提取object数据块:

解析object记录,从各镜像上提取对应的object数据。

5. 组合卷数据:

根据object的id按序组合卷文件的所有object数据块,还原整个卷数据。

6. 修复卷的文件系统和其中文件:

对于损坏缺失程度不高的卷文件系统,尝试修复损坏的卷,得到卷中的文件。

对于有固定格式的文件,尝试修复损坏文件。

在北亚数据恢复工程师团队早已攻克了Ceph数据恢复这个专题。对于北亚数据恢复工程师团队来说,Ceph数据恢复已经不是什么问题了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值