Ceph Monitor源码机制分析(一)—— 概述
来源:互联网 发布:山东大学网络教育试题 编辑:程序博客网 时间:2024/05/22 03:19
0 前言
1 Monitor的作用
Monitor在Ceph集群中扮演着管理者的角色,维护了整个集群的状态(抽象成几张map,包括osdmap、monmap、mdsmap、auth、log等),保证集群的相关组件在同一时刻能够达成一致,相当于集群中的领导层。之所以说是相关而不是所有的主要是因为OSD map的更新采用了类似于灰度发布的机制,这会导致在一个时刻集群中所有OSD或者Client所持有的OSDmap的版本可能是不一致的。总结一句话就是monitor是负责收集集群信息、更新集群信息以及发布集群信息的。如果只有一个monitor那么,这件事情会轻松的多,集群信息的增、删、改、查都有这个monitor完成。但作为一个分布式存储解决方案,规避任何的单点故障都是一个必备条件,所以在使用Ceph的生产环境中也会部署多个Monitor。单点问题解决了,但Monitor多了之后相应的集群数据管理也就复杂了,引入了许多新的问题,比如:集群数据存在哪里?数据到底有谁更新?其他组件从哪里读取信息?多个monitor之间如何进行数据同步等?所以在一个标准的Ceph环境中,Monitor做的事情可以抽象成以下两点:
- 管好自己,其实也就解决多个monitor之间如何协同工作,比如谁负责更新数据,怎么更新?monitor之间怎么同步数据?谁负责发布数据?如何确保monitor的健康问题?
- 管好集群信息,其实也就解决存储哪些数据?数据怎么存储?存储在哪里?怎么保证存储数据的正确性?
如何抽象成以上两点呢?还得从代码入手,看一下monitor的代码目录结构:
当然,以上源码文件的划分也不是完全分开的,彼此之间仍然有一些关联关系存在,比如选举这个过程实际上还会涉及monitor之间的数据同步也就是数据管理中的更新。数据更新,需要通过数据存储模块完成持久化。Monitor管理的数据中OSDMap和MDSMap这两部分没有放在monitor目录下,而是分别放在osd和mds目录下的,所以这里用红色字体将他们标记了出来。
接下来的几篇文章主要围绕以上两个大面详解monitor中所涉及的相关技术。
- Ceph Monitor源码机制分析(一)—— 概述
- Ceph Monitor源码机制分析(二)—— 初始化
- Ceph Monitor源码机制分析(三)—— 选举
- 小伙伴们的ceph源码分析二——monitor启动流程
- 小伙伴们的ceph源码分析三——monitor消息处理流程
- Ceph学习——Ceph网络通信机制与源码分析
- ceph存储 ceph-fuse源码分析一
- Ceph 学习——CRUSH算法及源码分析(一)
- Ceph 学习——OSD读写流程与源码分析(一)
- ceph源码分析之消息通信机制
- ceph 数据校验机制 scrub源码分析
- ceph源码分析:Admin Socket机制
- Android View系统源码分析(一)——概述&触摸事件总体处理流程
- ffmpeg源码分析一:概述
- Haproxy源码分析一、概述
- skynet源码分析(4)--monitor
- Ceph 学习——CRUSH算法及源码分析(二)
- Android事件转发机制—源码分析(一)
- iOS统计代码行数
- Android shape 画 虚线
- coocs2d-x 集成 极光推送 的一个坑
- mysql解压版安装配置
- 计算机热启动与冷启动
- Ceph Monitor源码机制分析(一)—— 概述
- Unity-Find-Script-References 查找脚本的引用
- git pull时出现的常见问题及解决
- Android编码规范之命名规则
- Reverse Linked List II结题报告
- git手记
- Mozilla Location Service-9
- mysql sql语句书写注意事项
- 欢迎使用CSDN-markdown编辑器