nova有个定时更新resource的功能:
每当创建虚拟机的时候会去检查资源是否够用如内存,磁盘,cpu等,这些信息是存储在数据库nova的compute_nodes表中的,这些信息是定时更新的,更新步骤如下:
1. 主要是该定时程序nova/compute/manager.py:
@periodic_task.periodic_task
def update_available_resource(self, context):
2. /usr/lib/python2.6/site-packages/nova/compute/resource_tracker.py
上面这个resources = self.driver.get_available_resource(self.nodename)调用的就是virt/xxx/driver.py

Nova在创建虚拟机时会检查资源是否充足,通过定时任务`update_available_resource`更新compute_nodes表中的资源信息。资源追踪涉及`resource_tracker.py`和对应驱动,如VMware。在计算可用资源时,可能会出现计算误差导致分配错误。本文提到的问题在于当实际资源少于计算出的可用资源时,仍允许创建可能导致底层错误。解决方法是对`_update_usage_from_instances`进行调整,确保资源使用准确。调度器通过多种filter检查资源,如`RamFilter`和`DiskFilter`,不满足条件则拒绝调度。
最低0.47元/天 解锁文章
814

被折叠的 条评论
为什么被折叠?



