If you have used Vmware or Virtual Box or others you probably are familiar with the VM being stored in a big file. Usually its a vmdk or somthing. While these are fine and work well when using this method you sacrifice some performance because of all the layers being presented to the hypervisor. As a matter of fact the biggest problems with VM perforance can be traced back to how the disk is accessed. Simpler is always better and is almost always more direct. KVM offers direct disk access. In other words it is possible to connect directly to a physical disk in the host to install and run the guest. This offers the best performance because well its the most direct and native way to interact with any block device.
What I will try to describe is a fairly advanced concept called LVM (Logical Volume Manager). There are many methods to create a volume group in Linux but as far as I know it is nessasary to use the KVM gui or cli tools to integrate them properly into KVM. I am not going to describe all the details of LVM because its just so much. Just know that it works well and is very well developed. KVM utilizes LVM and has some built in tools to create and use volume groups. KVM calls them storage pools for some reason, probably to make it easier for people migrating from ESX or others. It makes sense but it can get confusing when all these terms are being tossed around.
==Here We Go==