文件./nova/virt/libvirt/driver.py中spawn()函数负责创建和启动虚拟机,代码如下:
def spawn(self, context, instance, image_meta, injected_files,
admin_password, network_info=None, block_device_info=None):
disk_info = blockinfo.get_disk_info(CONF.libvirt.virt_type,
instance,
image_meta,
block_device_info)
injection_info = InjectionInfo(network_info=network_info,
files=injected_files,
admin_pass=admin_password)
gen_confdrive = functools.partial(self._create_configdrive,
context, instance,
injection_info)
self._create_image(context, instance, disk_info['mapping'],
injection_info=injection_info,

本文深入探讨了Nova中的虚拟机创建过程,重点关注driver.py中spawn()函数,包括blockinfo.get_disk_info()获取磁盘信息,_create_image()准备启动盘,_create_and_inject_local_root()注入数据,以及最后的虚拟机XML配置和启动。在启动盘准备环节,详细介绍了如何根据用户指定方式创建qcow2或raw文件,或者挂载远程volume,以及如何从Glance下载并转换镜像文件。最后,虚拟机通过libvirt根据XML配置创建并启动。
最低0.47元/天 解锁文章
911

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



