OpenStack之Nova分析——Nova Compute定时任务(一)

本文深入探讨了Nova Compute服务的定时任务,包括update_available_resource、_report_driver_status和publish_service_capabilities三个重要任务。这些任务负责维护计算节点资源状态和服务性能信息,并动态调整执行间隔。通过DynamicLoopingCall启动定时任务,使用periodic_task装饰器设定周期方法。
摘要由CSDN通过智能技术生成

我们在分析虚拟机的创建和Nova Scheduler调度算法中,其实已经涉及到了Nova Compute服务的一些内容,不过Nova Compute服务完成的工作要更多。这篇文章我们来详细的分析一下Nova Compute服务的一个重要内容——定时任务。

在前面分析Nova Scheduler调度算法中,大家是否还记得在HostManager对象中有两个重要的变量:

1. host_states变量:该变量保存了计算节点CPU、内存和硬盘等硬件资源的信息。host_states变量的数据是从数据库中获得,而Nova数据库中的节点状态信息由Nova Compute服务的update_available_resource定时任务更新。

2. service_states变量:该变量保存了计算节点Hypervisor的性能信息。service_states变量的数据是通过Nova Compute服务的_report_driver_status和publish_service_capabilities定时任务更新。

Service类的start方法定义了一个线程运行服务的定时任务,定时任务启动的代码如下

class Service(object):
    def start(self):
        ...
        #创建DynamicLoopingCall对象
        periodic = utils.DynamicLoopingCall(self.periodic_tasks)
        #调用DynamicLoopingCall对象的start方法,创建绿色线程
        periodic.start(initial_delay=initial_delay, 
                       periodic_interval_max=self.periodic_interval_max)
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值