nova - nova base image id的生成算法

2023-05-25,,

nova spawn instance的时候,会先create_p_w_picpath,下面是获取的base p_w_picpath的函数

def get_cache_fname(p_w_picpaths, key):
    """Return a filename based on the SHA1 hash of a given p_w_picpath ID.
    Image files stored in the _base directory that match this pattern
    are considered for cleanup by the p_w_picpath cache manager. The cache
    manager considers the file to be in use if it matches an instance's
    p_w_picpath_ref, kernel_id or ramdisk_id property.
    However, in grizzly-3 and before, only the p_w_picpath_ref property was
    considered. This means that it's unsafe to store kernel and ramdisk
    p_w_picpaths using this pattern until we're sure that all compute nodes
    are running a cache manager newer than grizzly-3. For now, we
    require admins to confirm that by setting the remove_unused_kernels
    boolean but, at some point in the future, we'll be safely able to
    assume this.
    """
    p_w_picpath_id = str(p_w_picpaths[key])
    if ((not CONF.libvirt.remove_unused_kernels and     # remove_unused_kernels默认值是True
         key in ['kernel_id', 'ramdisk_id'])):
        return p_w_picpath_id
    else:
        return hashlib.sha1(p_w_picpath_id).hexdigest()       # base p_w_picpath id生成

《nova - nova base image id的生成算法.doc》

下载本文的Word格式文档,以方便收藏与打印。