本文主要是介绍深挖Openstack Nova - 实例创建(4),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
--------------- 紧接上篇 nova实例创建(3) --------------------(8)完成配额管理
instances = self._provision_instances(context, instance_type,min_count, max_count, base_options, boot_meta, security_groups, block_device_mapping, shutdown_terminate,instance_group, check_server_group_quota)
深入_provision_instances
方法:
1》获取建立实例数目
# _check_num_instances_quota:根据资源配额限制确定所要建立实例的数目 num_instances, quotas = self._check_num_instances_quota(context, instance_type, min_count, max_count) LOG.debug("Going to run %s instances..." % num_instances)
查看其中的_check_num_instances_quota
方法:
1.1》确定内核数和RAM
req_cores = max_count * instance_type['vcpus'] vram_mb = int(instance_type.get('extra_specs', {}).get(VIDEO_RAM, 0)) req_ram = max_count * (instance_type['memory_mb'] + vram_mb)
1.2》分配配额
# 检查配额并且分配存储资源 try:quotas = objects.Quotas(context=context)# reserve:实现了对资源配额的检测、管理和分配quotas.reserve(instances=max_count,cores=req_cores, ram=req_ram, project_id=project_id, user_id=user_id)
其中reserve方法对应在/nova/objects/quotas.py
文件里
这篇关于深挖Openstack Nova - 实例创建(4)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!