编写使用python 3.5和libvirt自动选择和迁移虚拟机的代码。我让它以一种方式工作,但是返回一个访客它以前的主机失败(截至目前我只有2台主机,但它将来会改变)。
我做了什么:
将来宾G从主机SRC迁移到主机DST。
conn.storagePoolLookupByName('default')
stgvol = pool.storageVolLookupByName(stgvolname).info()[1]
subprocess.run(['qemu-img', 'create', '-f', 'qcow2', vm_image_path, size_str])
dom = conn.lookupByName(domain_name)
new_dom = dom.migrate(dest_conn, libvirt.VIR_MIGRATE_LIVE, None, None, 0)
尝试使用(1.)中的相同步骤将客人G从B迁移回A但是得到了
与libvirt.libvirtError: Storage volume not found: no storage vol with matching name 'guest-name'
一致的storageVolLookupByName
。
因此,在迁移期间,图像似乎未在默认池中注册。有没有想过为什么会这样,或者我该怎么做才能解决它?