Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1898899
  • 博文数量: 211
  • 博客积分: 464
  • 博客等级: 下士
  • 技术积分: 3794
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-24 18:25
个人简介

阿弥陀佛

文章分类

全部博文(211)

文章存档

2020年(2)

2019年(3)

2018年(5)

2017年(6)

2016年(10)

2015年(9)

2014年(73)

2013年(90)

2012年(13)

分类: 架构设计与优化

2015-05-12 15:46:13

ceph中有n个节点构成了monitor,这些monitor 形成了一个monmap,表示了这些monitor的逻辑关系。
ceph通过paxos协议来管理这些monitor,在monitor端有如下功能的monitor:
通过init_paxos来初始化这些monitor,monitor的类型如下:
#define PAXOS_PGMAP      0  // before osd, for pg kick to behave
#define PAXOS_MDSMAP     1
#define PAXOS_OSDMAP     2
#define PAXOS_LOG        3
#define PAXOS_MONMAP     4
#define PAXOS_AUTH       5
#define PAXOS_NUM        6

由此可以看出,ceph 的monitor上有5个子monitor:pgmonitor,mdsmonitor,osdmonitor,logmonitor,monmap。每个monitor都继承了paxosservice类。
void Monitor::init_paxos()
{
  dout(10) << __func__ << dendl;
  paxos->init();

  // init services
  for (int i = 0; i < PAXOS_NUM; ++i) {
    paxos_service[i]->init(); //在这里调用每一个monitor的init方法。
  }

  refresh_from_paxos(NULL);
}


阅读(5400) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~