声明:
本博客欢迎转发,但请保留原作者信息!内容系本人学习、研究和总结,如有雷同,实属荣幸!
原文地址:http://blog.csdn.net/gtt116/article/details/9618403
本文将介绍openstack(grizzly)版本中nova是如何统计宿主机可用资源的,以便debug和运维openstack。
在openstack中,对虚拟机的管理有两层:openstack自身和Hypervisor(libvirt)。由于不同的层次可能导致数据不统一,比如vm在libvirt中,但是不在openstack中,或者相反。这时的资源统计要如何处理?openstack的做法是两者都统计,但是真正列入考虑范围(写入数据库)的是openstack自身统计出的结果。接下来将详细介绍openstack是如何进行资源统计的。
openstack关注宿主机的如下资源:
在第一次获取上面的基本数据之后,nova会从数据库中拿到所有理论上在此宿主机上的instance,然后基于instance重新计算这些资源使用情况。
vcpus_used = 0 memory_mb_used = CONF.reserved_host_memory_mb local_gb_used = CONF.reserved_host_disk_mb / 1024 free_ram_mb = memory_mb - memory_mb_used free_disk_gb = local_gb - local_gb_used
2013-07-29 17:03:25.486 DEBUG nova.compute.resource_tracker [-] Hypervisor: free ram (MB): 10253 from (pid=17247) _report_hypervisor_resource_view /opt/stack/nova/nova/compute/resource_tracker.py:331 2013-07-29 17:03:25.487 DEBUG nova.compute.resource_tracker [-] Hypervisor: free disk (GB): 13 from (pid=17247) _report_hypervisor_resource_view /opt/stack/nova/nova/compute/resource_tracker.py:332 2013-07-29 17:03:25.487 DEBUG nova.compute.resource_tracker [-] Hypervisor: free VCPUs: 4 from (pid=17247) _report_hypervisor_resource_view /opt/stack/nova/nova/compute/resource_tracker.py:337
2013-07-29 17:03:25.556 AUDIT nova.compute.resource_tracker [-] Free ram (MB): 10482 2013-07-29 17:03:25.557 AUDIT nova.compute.resource_tracker [-] Free disk (GB): 17 2013-07-29 17:03:25.557 AUDIT nova.compute.resource_tracker [-] Free VCPUS: 2
格式1中的数据就是直接从libvirt中的资源情况,格式2中的数据是openstack中的资源情况。