ceph学习(一)——数据结构

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

class MDS : public Dispatcher()

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

class Messenger ()

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

class MonClient : public Dispatcher ()

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

class MonMap ()

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

class Finisher()

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

class CephContext()

A CephContext represents the context held by a single library user

class outStreambuf()

输出数据流处理类

class md_config_t()

represents the current Ceph configuration

struct RefCountedObject()

原子地增减计数器;

Connection(

获取、更新链接数

class MDSMap()

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

class OSDMap()

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

class Objecter()

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

class Filer()


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

LogClient

Server

MDCache

MDLog

MDBalancer

InoTable

AnchorServer

SnapServer

SnapClient

MDSTableClient

MDSTableServer






你可能感兴趣的:(filesystem)