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

这篇文章,我们来详细的分析一下Nova Compute服务的update_available_resource定时任务。

update_available_resource定时任务的主要功能是定时更新Nova Compute服务所管理的计算节点的资源信息,它对应的周期方法就是ComputeManager类的update_available_resource方法。来看一下update_available_resource方法。

class ComputeManager(manager.SchedulerDepedentManager):
    @manager.periodic_task
    def update_available_resource(self, context):
        new_resource_tracker_dict = {}
        #获取Nova Compute服务所有可用的节点
        nodenames = set(self.driver.get_available_nodes())
        for nodename in nodenames:
            #获取计算节点的ResourceTracker对象
            rt = self._get_resource_tracker(nodename)
            #更新计算节点的资源信息 
            rt.update_available_resource(context)
            #保存计算节点的资源信息
            new_resource_tracker_dict[nodename] = rt

        #获取数据库中所有的计算节点
        compute_nodes_in_db = self._get_compute_nodes_in_db(context)

        for cn in compute_nodes_in_db:
            #从数据库中删除不可用的计算节点
            if cn.get('hypervisor_hostname') not in nodenames:
                LOG.audit(_("Deleting orphan compute node %s") % cn['id'])
                self.conductor_api.compute_node_delete(context, cn)

        self._resource_tracker_dict = new_resource_tracker_dict
可以看到update_available_resource方法主要实现了更新_reso
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值