【nova】【libvirt】【glance】创建VM的过程中的 镜像创建过程

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:31   1621   0

看了一下OpenStack+Libvirt+KVM的配置下, 创建虚拟机的过程中Image创建过程。

1. 找到 虚拟机的创建函数:/opt/stack/nova/nova/virt/libvirt/driver.py中的:

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)

2. 在spawn函数中,可以看到第一步就是创建 iamge的函数调用:

self._create_image(context, instance,
disk_info['mapping'],
network_info=network_info,
block_device_info=block_device_info,
files=injected_files,
admin_pass=admin_password)

3. 在这个函数中就是VM的image的创建过程了。其中有个比较重要的处理就是对于desk的处理:

self._try_fetch_image_cache(backend, fetch_func, context,
root_fname, disk_images['image_id'],
instance, size, fallback_from_host)

4。其实这个函数依然是 调用的image.cache, 而image对象是 /opt/stack/nova/nova/virt/image.py 中的fetchXXX方法。这个方法最终到达glance的download,从而将image从glance下载到compute host本地。当然这个过程中还有几次的转换,从image--》imagecache--》download中的api。先写到这里,稍后补充。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP