因为对--subdriver参数错误理解,在attach QCOW2格式的镜像的时候出现了问题:
# lsblk
sdc 8:32 0 192.5K 0 disk
可见,sdc的磁盘空间只有192.5K,而我创建的镜像为10G大小:
# qemu-img create -f qcow2 LDAP05-03.img 10G
Formatting 'LDAP05-03.img', fmt=qcow2 size=10737418240 cluster_size=65536 lazy_refcounts=off refcount_bits=16
# qemu-img info LDAP05-03.img
image: LDAP05-03.img
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false
查看虚机的XML配置文件发现磁盘类型是raw格式:
# virsh edit LDAP05
<disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='none'/>
显然,在没有指定镜像格式的情况下,qemu使用了默认的格式,也就是raw。那么,错误已经酿成了,如何解决错误呢?
那么就需要将追加的磁盘卸载掉,然后重新追加:
# 卸载掉镜像文件
# 语法:virsh detach-disk <domain> <target> [--persistent] [--config] [--live] [--current] [--print-xml]
virsh detach-disk sdd --live --config
# 或
virsh detach-disk LDAP05 /var/lib/libvirt/images/LDAP05-03.img --live --config
# 重新追加磁盘
virsh attach-disk LDAP05 /var/lib/libvirt/images/LDAP05-03.img sdd --cache none --targetbus scsi --subdriver qcow2 --live --config
在客户机上验证,查看新增加的磁盘:现在磁盘空间就OK了。
sdc 8:32 0 10G 0 disk
查看客户机的XML配置文件,也是正确的:
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/var/lib/libvirt/images/LDAP05-03.img'/>
<target dev='sdd' bus='scsi'/>
<address type='drive' controller='0' bus='0' target='0' unit='3'/>
</disk>