Ceph daemon获取配置项,修改配置项相关代码走读
Ceph daemon相关的初始化
如图一所示,ceph_mds.cc中main函数,首先调用了函数global_init, 在global_init中,创建了一个CephContext类对象,在调用CephContext构造函数的过程中,创建了Ceph daemon相关的重要类对象AdminSocket,并将CephContextHook类对象作为参数,注册了接收哪些cmd的请求。
创建处理ceph daemon请求的线程
创建了线程* AdminSocket::entry(),处理上面注册进来的cmd类型。
线程具体处理过程
如图三所示,当有daemon请求过来时,会触发poll事件,函数do_command再根据具体的请求做出相应处理