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.