libvirt uses files for VM images by default under
LVM is a convenient tool for managing VM images.
How to use LVM groups with libvirt?
This post discusses the method to add LVM groups as a storage pool for libvirt: http://ailoo.net/2011/02/use-a-lvm-volume-group-with-libvirt/
For a general introduction of the storage management in libvirt, please check: http://libvirt.org/storage.html