- 博客(14)
- 收藏
- 关注
原创 nova源码分析--创建虚拟机(7)
文件./nova/virt/libvirt/driver.py中spawn()函数负责创建和启动虚拟机,代码如下: def spawn(self, context, instance, image_meta, injected_files, admin_password, network_info=None, block_device_info=None):...
2018-12-11 16:52:30
417
原创 nova源码分析--创建虚拟机(6)
继续分析文件./nova/conductor/api.py中的类ComputeTaskAPI中schedule_and_build_instances()函数,该函数挑选出物理节点后,再对请求条件做一系列的检测,然后给所有选中的物理节点发送一个rpc调用,代码如下: self.compute_rpcapi.build_and_run_instance( ...
2018-12-11 11:14:58
321
原创 nova源码分析--rpc(3)
客户端的代码最终调用文件./oslo_messaging/transport.py中类Transport的_send()函数发送调用请求,代码如下: def _send(self, target, ctxt, message, wait_for_reply=None, timeout=None, retry=None): if not tar...
2018-12-10 14:34:59
212
原创 nova源码分析--rpc(2)
schedule_and_build_instances()函数对应的服务端的代码在文件nova/conductor/manager.py中的类ComputeTaskManager中,现在分析一下类ComputeTaskManager中的函数如何成为服务端的函数。在文件./nova/cmd/conductor.py中定义了一个main()函数,这个函数在和在./nova/cmd/目录中其它的文...
2018-12-10 11:23:57
190
原创 nova源码分析--rpc(1)
nova中的虚拟机调度采用RPC机制,现在分析一下这部分代码的实现。self.compute_task_api.schedule_and_build_instances函数的定义在nova/conductor/api.py中的类ComputeTaskAPI中,代码如下: def schedule_and_build_instances(self, context, build_re...
2018-12-07 17:16:50
255
原创 nova源码分析--创建虚拟机(5)
self.compute_task_api.schedule_and_build_instances函数的定义在nova/conductor/api.py中的类ComputeTaskAPI中,代码如下: def schedule_and_build_instances(self, context, build_requests, ...
2018-12-07 15:41:45
868
原创 nova源码分析--创建虚拟机(4)
继续分析nova/compute/api.py文件中类API的_create_instance()函数,代码如下: base_options, max_net_count, key_pair, security_groups = \ self._validate_and_build_base_options( ...
2018-12-04 15:12:23
1073
翻译 nova源码分析--创建虚拟机(0)
以下内容来自OpenStack官方文档。在命令行创建虚拟机的命令如下:openstack server create (--image <image> | --image-property <key=value> | --volume <volume>) --flavor <flavor> [--security-g...
2018-11-22 15:29:07
470
原创 nova源码分析--创建虚拟机(3)
接上一篇文章继续分析文件nova/compute/api.py文件中的类API中的create()函数。 @hooks.add_hook("create_instance") def create(self, context, instance_type, image_href, kernel_id=None, ramdisk_id=None, ...
2018-11-21 15:34:56
385
原创 nova源码分析--创建虚拟机(2)
接上一篇文章继续分析文件nova/api/openstack/compute/servers.py中类ServersController中的create()函数。 self._create_by_func_list(server_dict, create_kwargs, body) availability_zone = create_kwargs.pop("...
2018-11-20 17:16:54
507
原创 nova源码分析--创建虚拟机(1)
运行在控制节点上的nova服务接收到创建虚拟机的请求后,最终会调用问价nova/api/openstack/compute/servers.py中类ServersController的create(self, req, body)函数。参数 req和 body是http请求传递过来的,可以通过Openstack的日志服务oslo_log来打印,打印的结果如下所示。req的值Accept:...
2018-11-20 15:25:34
606
原创 nova源码分析--API(2)
/etc/nova/api-paste.ini文件中的定义了以下三个composite:[composite:osapi_compute]use = call:nova.api.openstack.urlmap:urlmap_factory/: oscomputeversions# v21 is an exactly feature match for v2, except it ha...
2018-11-14 11:17:50
656
原创 nova源码分析--API(1)
pike版的nova/cmd/api.py代码如下import sysfrom oslo_log import log as loggingfrom oslo_reports import guru_meditation_report as gmrimport nova.conffrom nova import configfrom nova import exception...
2018-11-13 16:56:35
640
原创 nova源码分析--入口函数
寻找Nova的入口函数,Nova的代码一部分部署上控制节点上,一部分部署在计算节点上在centos上以包的方式安装时,控制节点安装完成后执行以下命令启动服务:systemctl start openstack-nova-api.service openstack-nova-cert.service openstack-nova-console...
2018-11-13 10:14:05
683
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人