Ahmed Ossama
2013-Apr-27 22:55 UTC
[libvirt-users] virt-install creates a snapshot as the volume backend
Greetings All,
I was running libvirt-0.9.10 on CentOS 6.3 and it was working perfectly
until yesterday when I decided to update to 6.4, which upgraded
libvirt-0.9.10 to libvirt-0.10.2.
I have a storage pool of type volume group, upon upgrading to
libvirt-0.10.2, the disk image gets created as a snapshot on the volume
group not as a regular volume.
Now every time I create a vm using virt-install on a vg, the lv gets
created as a snapshot not a regular lv, as a result I get the following
error when I run dmesg:
device-mapper: snapshots: Invalidating snapshot: Unable to allocate
exception.
Buffer I/O error on device dm-5, logical block 128251
Buffer I/O error on device dm-5, logical block 256
lost page write due to I/O error on dm-5
Buffer I/O error on device dm-5, logical block 257
lost page write due to I/O error on dm-5
Buffer I/O error on device dm-5, logical block 258
lost page write due to I/O error on dm-5
Buffer I/O error on device dm-5, logical block 259
lost page write due to I/O error on dm-5
Buffer I/O error on device dm-5, logical block 260
lost page write due to I/O error on dm-5
Buffer I/O error on device dm-5, logical block 261
lost page write due to I/O error on dm-5
Buffer I/O error on device dm-5, logical block 262
lost page write due to I/O error on dm-5
Buffer I/O error on device dm-5, logical block 263
lost page write due to I/O error on dm-5
lost page write due to I/O error on dm-5
and the following on the domain's log file:
block I/O error in device 'drive-virtio-disk0': Input/output error
(5)
# virt-install --name="ns1" --vcpus="2" --check-cpu
--ram=512
--os-variant="rhel6" --network "bridge=br0" --disk
"pool=vdisks,size=22,cache=writeback" --vnc --hvm
--vnclisten="0.0.0.0"
--cdrom="/mnt/ISOs/centos/x86_64/CentOS-6.3-x86_64-bin-DVD1.iso" --hvm
# lvs | grep ns
ns1.img vm_volumes swi-aos-- 4.00m [ns1.img_vorigin] 0.00
When I try to create a volume using virt-manager on the volume group, it
gets created as a snapshot. But when I create a volume using virsh, it
gets created correctly;
virsh # vol-create-as vdisks test 23622320128
# lvs | grep test
test vm_volumes -wi-a---- 22.00g
If anyone came across this issue or can provide an advice, I will
appreciate it so much.
--
Best Regards,
Ahmed Ossama
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://listman.redhat.com/archives/libvirt-users/attachments/20130428/a6a3465d/attachment.htm>
Ján Tomko
2013-Apr-29 16:11 UTC
[libvirt-users] virt-install creates a snapshot as the volume backend
On 04/28/2013 12:55 AM, Ahmed Ossama wrote:> Greetings All, > > I was running libvirt-0.9.10 on CentOS 6.3 and it was working perfectly until > yesterday when I decided to update to 6.4, which upgraded libvirt-0.9.10 to > libvirt-0.10.2. > > I have a storage pool of type volume group, upon upgrading to libvirt-0.10.2, > the disk image gets created as a snapshot on the volume group not as a regular > volume. > > Now every time I create a vm using virt-install on a vg, the lv gets created > as a snapshot not a regular lv, as a result I get the following error when I > run dmesg: > > device-mapper: snapshots: Invalidating snapshot: Unable to allocate exception. > Buffer I/O error on device dm-5, logical block 128251...> > and the following on the domain's log file: > > block I/O error in device 'drive-virtio-disk0': Input/output error (5) > > # virt-install --name="ns1" --vcpus="2" --check-cpu --ram=512 > --os-variant="rhel6" --network "bridge=br0" --disk > "pool=vdisks,size=22,cache=writeback" --vnc --hvm --vnclisten="0.0.0.0" > --cdrom="/mnt/ISOs/centos/x86_64/CentOS-6.3-x86_64-bin-DVD1.iso" --hvm > # lvs | grep ns > ns1.img vm_volumes swi-aos-- 4.00m [ns1.img_vorigin] 0.00 > > When I try to create a volume using virt-manager on the volume group, it gets > created as a snapshot. But when I create a volume using virsh, it gets created > correctly; > > virsh # vol-create-as vdisks test 23622320128 > > # lvs | grep test > test vm_volumes -wi-a---- 22.00g > > If anyone came across this issue or can provide an advice, I will appreciate > it so much. > > -- > Best Regards, > Ahmed Ossama >Hello, since 0.10.2 libvirt creates sparse logical volumes when the requested allocation is less than requested capacity. Unlike sparse files, these don't grow automatically and you get an I/O error if you fill them up. [1] virt-install requests an allocation of 0, which libvirt interprets as the smallest possible value of 4MB. Unfortunately, you can't specify a different allocation value at virt-install command line, but a fix that uses the same allocation and capacity for logical volumes is committed upstream already [2] and should be fixed in next release. In virt-manager, you should be able to set the allocation to the same value manually. Jan [1] http://libvirt.org/formatstorage.html#StorageVolFirst [2] https://git.fedorahosted.org/cgit/virt-manager.git/commit/?id=590c8dbe commit 590c8dbebfddb71874de7a98e579264ebae6859f Author: Martin Kletzander <mkletzan at redhat.com> AuthorDate: 2013-04-02 13:51:28 +0200 Don't support sparse logical volumes Sparse logical volumes are supported by libvirt, but only in case the user takes care of the reallocation, which is not what virt-install and virt-manager users want. This patch defaults the logical volumes to non-sparse ones and makes sure allocation is always equal to capacity for such volumes.