Nova RPC服务 之 Nova Scheduler 的启动流程

Nova RPC服务的工作流程,以及后面添加自定义Nova模块都是有帮助的。

以Nova Scheduler服务为例,分析Nova RPC服务的启动流程。Nova组件的“大脑”——Nova Scheduler(调度器)。

它是我们后续分析虚拟机创建的基础。这个子服务的作用前面已经介绍过,从其名称也可以看出该子服务就是负责调

度各子服务工作的。首先介绍Nova Scheduler服务的启动脚本,着重介绍Nova rpc Service类的定义。


Nova Scheduler服务的启动脚本如下:(liberty版本的路径是 /nova/cmd/scheduler.py文件)

#加载配置项
CONF = cfg.CONF
CONF.import_opt('scheduler_topic','nova.scheduler.rpcapi')
if __name__ == '__main__':
    config.prase_args(sys.argv)  #加载控制台传入的参数
    logging.setup("nova")        #配置服务的日志文件
    #定义Nova Scheduler服务对象
    server = service.Service.create(binary='nova-scheduler',topic=CONF.scheduler_topic)
    service.serve(server)  #创建线程运行Nova Scheduler服务
    service.wait()  #启动Nova Scheduler服务线程

1、CONF.import_opt方法加载一些必要的配置项。 import_opt方法首先加载nova.scheduler.rpcapi模块,然后检查

模块中是否定义了scheduler_topic配置项。如果没有定义则报错。

2、查看nova.scheduler.rpcapi(/nova/scheduler/rpcapi.py)模块的代码,可以看到scheduler_topic配置项定义如

下:scheduler_topic默认项的默认值为scheduler。

rpcapi_opts = [cfg.StrOpt('scheduler_topic',  #配置项
                          default='scheduler',  #默认值
                          help='the topic scheduler nodes listen on'),]  #描述

注意:在Nova的许多文件中都定义了一些配置项的默认值,可在nova.conf文件中做相应的配置,覆盖配置项的默认

值。例如:nova.conf文件中添加如下配置scheduler_topic=my_scheduler便可将配置项的值修改。

3、Nova Scheduler服务的启动代码加载控制台传入的参数。可通过如下命令启动Nova Scheduler服务。

 Python /opt/stack/nova/cmd/scheduler --config-file=/etc/nova/nova.conf来启动Nova

 Scheduler服务,这里的控制台传入的参数就是配置文件的路径

4、定义和启动Nova Scheduler服务。调用Service类的create方法创建Service对象。create方法中的binary是服务

名,topic是Nova Scheduler服务监听的RPC主题

5、分别调用service包的serve和wait方法,创建和启动Nova Scheduler服务线程。

Nova所有服务的启动脚本都是大同小异,每个服务的启动脚本需要下面的事情:

1、加载必要的配置项,其中最重要的配置项是RPC服务监听的主题

2、加载控制台输入的配置,其中最重要的配置是配置文件路径

3、配置服务的日志文件

4、调用Service类的create方法创建Service对象

5、调用service包的serve和wait方法创建和启动服务线程。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值