博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ceph学习(一)——数据结构
阅读量:2353 次
发布时间:2019-05-10

本文共 1412 字,大约阅读时间需要 4 分钟。

ceph mds端的代码使用C++编写,mds端的重要数据结构:

class MDS : public Dispatcher(<mds.h>)

  包括一个锁,一个定时器,一个消息句柄,客户端的连接,mds map和osd map,server对象,MDS的缓存对象,log对象,负载均衡处理对象等

class Messenger (<messager.h>)

消息处理对象,用于mds和其他节点的通讯

class MonClient : public Dispatcher (<monclient.h>)

包括一个MonMap,消息句柄,一个连接,锁,定时器,Finisher对象,LogClient,是mds与client交互的处理对象

class MonMap (<monmap.h>)

包括一个地址信息map,最后修改时间,创建时间,能够随机选择一个mon,获取时间点,设置时间点,获取mon的地址,通过mon的地址获取它的名字等方法;

class Finisher(<finisher.h>)

包括CephContext句柄,一个互斥锁,条件锁,一个stop和running的标识,一个finisher 的队列;

class CephContext(<ceph_context.h>)

A CephContext represents the context held by a single library user

class outStreambuf(<doutstreambuf.h>)

输出数据流处理类

class md_config_t(<config.h>)

represents the current Ceph configuration

struct RefCountedObject(<message.h>)

原子地增减计数器;

Connection(<message.h>)

获取、更新链接数

class MDSMap(<MDSMap.h>)

包含mds_info_t结构—mds节点信息,时间点信息,mds上次失效的时间点,osd上次失效的时间点,创建和修改时间,有anchortable和snaptable的mds信息,有根目录的mds,session的timeout时间,最大文件数,数据池,最大mds数,方法有MDSmap的初始化—从配置文件获取mdsmap的初始信息

class OSDMap(<osdmap.h>)

包含Incremental类型,ceph的fsid,创建修改时间,osd的数目,最大osd数目,osd状态数组,osd地址数组,osd信息数组,机器快照的时间点,

class Objecter(<objecter.h>)

包含一个Messenger 句柄,MonClient 句柄,一个osd的map,一个CephContext,client的互斥锁,SafeTimer时间,

class Filer(<filer.h>)

//----------------------TO explain---------------------

LogClient

Server

MDCache

MDLog

MDBalancer

InoTable

AnchorServer

SnapServer

SnapClient

MDSTableClient

MDSTableServer

转载地址:http://zsztb.baihongyu.com/

你可能感兴趣的文章
Python3---获取延迟、提前的时间、日期---datetime、time
查看>>
Python3+selenium+Chrome---获取表格(tbody)中数据(tr)的详细内容----a & td内容的获取
查看>>
Docker/Podman使用提高----Dockerfile的制作基础及常见的问题
查看>>
Jenkins持续部署---centos7+Docker+Github+Flask项目-------补丁篇
查看>>
C语言基础---指针数组----初始化方式&常量指针数组、指针常量数组
查看>>
C语言基础---数组、指针之间的相同与不同
查看>>
类的继承的应用场景
查看>>
python3 + selenium------Chrome和Firefox 驱动的使用和版本对应
查看>>
pycharm不同测试框架的设置、unittest测试案例
查看>>
python unittest TestCase间共享数据(全局变量的使用)
查看>>
Python中普通字符串 & json字符串&json对象的区别
查看>>
python中json.dumps()和json.dump() 以及 json.loads()和json.load()的区分
查看>>
Python3中打开文件的方式(With open)
查看>>
python中unittest加载测试用例的4种方法
查看>>
iOS中使用RNCryptor对资源文件加密
查看>>
Device Tree编译工具dtc
查看>>
softlockup/hardlockup原理详细介绍
查看>>
项目管理学习笔记之八风险管理过程总结
查看>>
项目管理学习笔记之九采购管理过程总结
查看>>
solaris常用命令总结
查看>>