ceph架构及 IO流程

CEPH是由多个节点构成的集群,它具有良好的可扩展性和可靠性。节点之间相互通信以达到:

存储和检索数据

数据复制

监控集群的健康状况

保证数据的完整性

检测故障并恢复

基本架构如下图:

分布式对象存储系统RADOS是CEPH最为关键的技术,主要由OSD和Monitor组成。

CEPH是一个完全无中心架构的计算模式的存储系统。client通过设备映射关系计算出其写入数据的位置,这样client可以直接与存储节点通信,从而避免中心节点的性能瓶颈。很厉害的样子,身为写IO,感觉我只需要跟OSD打交道了。

CEPH也是一个拥有雄心壮志的存储系统,同时支持块、文件和对象三类存储。本次client准备将CEPH作为块存储使用。

在发起写IO之前,client做了很多工作。同其他系统类似,想要跟CEPH集群通信,首先需要得到认证。拿到接头暗号之后,就可以创建映像和将映像映射为块存储并使用了。

Client写数据之前已经获取了集群map信息,并将我解体......我被切分成多个object(如果我是大IO), 每个object都有一个唯一的object ID。然后计算寻址每个object的存储位置:object根据Hash被映射到不同的PG,然后又根据CRUSH算法找出存储object的一组OSD的Primary OSD。

接着Client直接和Primary OSD进程通信并发起写入操作。然后由Primary OSD写到Secondary OSD和Tertiary OSD(如果配置为3副本)。等他们都写完之后,再由Primary OSD给主机打个招呼知会一下。

由于我被切分成多个object, 多个object可以并行发到多OSD。等所有object都操作完成之后, 我完成了使命。

以上是一个典型写IO对于写流程的简单描述。

相关推荐
JNU freshman5 小时前
从 Ceph 16(Pacific)到 Ceph 18(Reef):cephadm 的伸缩性演进与 cephadm agent 到底“成熟”了吗?
java·大数据·ceph
wniuniu_7 小时前
概括。。。。
ceph
JNU freshman8 小时前
使用 cephadm + Docker 镜像在三台服务器上部署 Ceph 集群(含网络规划与 OSD DB/WAL 分离)
服务器·ceph·docker
JNU freshman11 小时前
Ceph RBD:一个镜像能否被多客户端同时映射?如何避免“多端同时写入”风险
ceph
wniuniu_1 天前
ceph16-18差异
ceph
腾讯数据架构师2 天前
cube studio 存储资源对接ceph
ceph·kubernetes·cube-studio·ai平台
哼了个哈2 天前
[Ceph 14.2.22] 使用Ceph原生命令部署单机集群
ceph
lisanmengmeng13 天前
cephfs rbd应用
linux·运维·服务器·ceph
oMcLin14 天前
如何在 Manjaro Linux 上实现高效的 Ceph 存储集群,提升大规模文件存储的冗余性与性能?
linux·运维·ceph
wniuniu_16 天前
ceph的osd
java·前端·ceph