原文链接:http://blog.csdn.net/kakaxi8891/article/details/10935595
笔者在读代码初期非常想理清楚的就是ceph这么个系统在服务端与客户端是怎么响应与发起请求的。
本人主要负责monitor部分,而且追了一会cephx认证的代码,所以拿这块举例,后续osd部分主要是对同事分享的学习。
本篇会讲到src/mon/monitor.cc中
class Monitor : public Dispatcher
class MonClient : public Dispatcher
以及src/tools/ceph.cc
这三者的关系:
前一篇讲到ceph-mon.cc中启动了monitor的进程,而启动的过程伴随着一些消息队列的启动:
void SimpleMessenger::ready()
{
ldout(cct,10) << "ready "<< get_myaddr()<< dendl;
dispatch_queue.start();//消息接收队列启动
lock.Lock();