首页 > 解决方案 > 使用 Libvirt Python createXMLFrom 克隆卷导致读取数据时文件结束:输入/输出错误

问题描述

我正在尝试使用以下方法克隆卷:

libvirt_conn = libvirt.openAuth(<qemu_addr>, <auth>, 0)
pool = libvirt_conn.storagePoolLookupByName(<pool_name>)
original_volume = pool.storageVolLookupByName(<original_volume_name>)
new_volume_xml = <xml_string>
new_volume = pool.createXMLFrom(new_volume_xml, original_volume)

当我运行它时,我收到以下错误: End of file while reading data: Input/output error

当我尝试:

libvirt_conn = libvirt.openAuth(<qemu_addr>, <auth>, 0)
pool = libvirt_conn.storagePoolLookupByName(<pool_name>)
original_volume = pool.storageVolLookupByName(<original_volume_name>)
new_volume_xml = <xml_string>
try:
    new_volume = pool.createXMLFrom(new_volume_xml, original_volume)
except:
    <next libvirt command>

我得到一个client socket is closed错误。我尝试过编辑/etc/libvirt/libvirtd.conf

min_workers = 5
max_workers = 20
log_level = 1
log_filters="1:libvirt 1:util 1:qemu"
log_outputs="1:file:/var/log/libvirt/libvirtd.log"
keepalive_interval = -1

当我重新启动 libvirtd 和 tail 时,/var/log/libvirt/libvirtd.log我看不到任何有用的东西。我的感觉是套接字正在关闭,因为卷的克隆需要很长时间,但我不知道如何保持 libvirt/qemu 套接字打开更长时间。这可能吗?

标签: pythonqemukvmlibvirt

解决方案


推荐阅读