【北亚企安数据恢复】Ceph分布式存储基本架构&Ceph数据恢复流程

本文涉及的产品
对象存储 OSS,20GB 3个月
云备份 Cloud Backup,100GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
简介: Ceph存储可分为块存储,对象存储和文件存储。Ceph基于对象存储,对外提供三种存储接口,故称为统一存储。Ceph的底层是RADOS(分布式对象存储系统),RADOS由两部分组成:OSD和MON。MON负责监控整个集群,维护集群的健康状态,维护展示集群状态的各种图表,如OSDMap、MonitorMap、PGMap和CRUSHMap。OSD负责存储数据、复制数据、平衡数据、恢复数据,与其它OSD间进行心跳检查等。通常情况下一块硬盘对应一个OSD。

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数据。
5、根据object的id按序组合卷文件的所有object数据块,还原整个卷数据。
6、修复卷的文件系统和其中文件。
对于损坏缺失程度不高的卷文件系统,尝试修复损坏的卷,得到卷中的文件。
对于有固定格式的文件,尝试修复损坏文件。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
28天前
|
JSON JavaScript 前端开发
Vue3源码架构简析及Monorepo流程构建
【10月更文挑战第12天】Vue3源码架构简析及Monorepo流程构建
Vue3源码架构简析及Monorepo流程构建
|
2月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
2月前
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1
|
2月前
|
存储 JSON 数据库
Elasticsearch 分布式架构解析
【9月更文第2天】Elasticsearch 是一个分布式的搜索和分析引擎,以其高可扩展性和实时性著称。它基于 Lucene 开发,但提供了更高级别的抽象,使得开发者能够轻松地构建复杂的搜索应用。本文将深入探讨 Elasticsearch 的分布式存储和检索机制,解释其背后的原理及其优势。
190 5
|
3月前
|
存储 缓存 前端开发
Django 后端架构开发:存储层调优策略解析
Django 后端架构开发:存储层调优策略解析
53 2
|
23天前
|
运维 供应链 安全
SD-WAN分布式组网:构建高效、灵活的企业网络架构
本文介绍了SD-WAN(软件定义广域网)在企业分布式组网中的应用,强调其智能化流量管理、简化的网络部署、弹性扩展能力和增强的安全性等核心优势,以及在跨国企业、多云环境、零售连锁和制造业中的典型应用场景。通过合理设计网络架构、选择合适的网络连接类型、优化应用流量优先级和定期评估网络性能等最佳实践,SD-WAN助力企业实现高效、稳定的业务连接,加速数字化转型。
SD-WAN分布式组网:构建高效、灵活的企业网络架构
|
28天前
|
消息中间件 关系型数据库 Java
‘分布式事务‘ 圣经:从入门到精通,架构师尼恩最新、最全详解 (50+图文4万字全面总结 )
本文 是 基于尼恩之前写的一篇 分布式事务的文章 升级而来 , 尼恩之前写的 分布式事务的文章, 在全网阅读量 100万次以上 , 被很多培训机构 作为 顶级教程。 此文修改了 老版本的 一个大bug , 大家不要再看老版本啦。
|
30天前
|
存储 监控 分布式数据库
百亿级存储架构: ElasticSearch+HBase 海量存储架构与实现
本文介绍了百亿级数据存储架构的设计与实现,重点探讨了ElasticSearch和HBase的结合使用。通过ElasticSearch实现快速检索,HBase实现海量数据存储,解决了大规模数据的高效存储与查询问题。文章详细讲解了数据统一接入、元数据管理、数据一致性及平台监控等关键模块的设计思路和技术细节,帮助读者理解和掌握构建高性能数据存储系统的方法。
百亿级存储架构: ElasticSearch+HBase 海量存储架构与实现
|
2月前
|
存储 块存储
ceph分布式存储系统常见术语篇
关于Ceph分布式存储系统的常见术语解释和概述。
106 1
ceph分布式存储系统常见术语篇
|
1月前
|
消息中间件 分布式计算 Kafka
大数据-98 Spark 集群 Spark Streaming 基础概述 架构概念 执行流程 优缺点
大数据-98 Spark 集群 Spark Streaming 基础概述 架构概念 执行流程 优缺点
39 0