On 07/02/2013 05:35 PM, Guannan Ren wrote:
v3:
https://www.redhat.com/archives/libvir-list/2013-June/thread.html
v3 to v4: Rebase
v2 to v3: Not only check disk source, startupPolicy should work if any
backing file is missing. The commit 039a3283 break the limition
of contiguous device boot orders, so I remove my previous patch
about it.
v1 to v2: Added relax schema for disk of block and dir type
Removed original patch 3/5.
The set of patches is trying to add 'startupPolicy' attribute support
to the source element of hard disks. Policy levels are using the
mandatory, requisite, optional levels as originally documented.
For the 'optional' policy, there is a little difference from CDROM and
Floppy which only drop its source path, for disks, if missing, the
checking function will drop their definitions, because qemu doesn't
allow missing source path for hard disk.
Are we going to support this feature. I think this is a good feature for
two reasons:
1, currently, we only check the disk presence for floppy and CDROM
device which is not enough.
For disks with backing files, if one of its backing file is missing,
libvirt doesn't check anything, the qemu
will throw an unclear error message as follows:
A guest with a disk image /var/lib/libvirt/images/snapshot/snap2.qcow
# qemu-img info --backing-chain /var/lib/libvirt/images/snapshot/snap2.qcow
image: /var/lib/libvirt/images/snapshot/snap2.qcow
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 19M
cluster_size: 65536
backing file: /var/lib/libvirt/images/snapshot/snap1.qcow
backing file format: qcow2
image: /var/lib/libvirt/images/snapshot/snap1.qcow
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 196K
cluster_size: 65536
backing file: /var/lib/libvirt/images/fedora18.img
backing file format: raw
if we change snap1.qcow to *snap1.qcow.back* , then bootup the guest
The qemu will throw an error:
qemu-system-x86_64: -drive
file=/var/lib/libvirt/images/snapshot/snap2.qcow,if=none,id=drive-virtio-disk0,format=qcow2:
could not open disk image /var/lib/libvirt/images/snapshot/snap2.qcow:
No such file or directory
Actually, snap2.qcow is there, one of its backing file snap1.qcow is
missing. So we need to check the presence of all files in disk chains.
With this patch, libvirt will throw an error:
error: Backing file '/var/lib/libvirt/images/snapshot/snap1.qcow' does
not exist: No such file or directory
2, Adding 'startupPolicy' attribute for guest disk is useful for guests
which use the disk from storage-centric production environment.
Guest uses the the block disk assigned by Fibre channel or FCoE or ISCSI
storage. The storage administrator can adjust the disk assignment
between guests, if guest disk with startupPolicy value of optional,
guest still can boot up after its assigned disks are missing.
So I think it is good to add this flexibility to disk configuration for
guests. Any thoughts?
Guannan