• 【北亚数据恢复】什么是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数据恢复已经不是什么问题了。

  • 相关阅读:
    我的公众号:WebHub
    The Qt Resource System
    Node.js Streams:你需要知道的一切
    2019春招前端面试预测题!
    BeamNG.drive物理引擎评鉴
    EcmaScript对象克隆之谜
    死锁与囚徒困境的辩证关系
    停止学习框架
    qt5android
    opencvKmeans图像分割根据颜色
  • 原文地址:https://www.cnblogs.com/frombyte/p/16039483.html
Copyright © 2020-2023  润新知