[CentOS-virt] how to add file-based disk space to a guest

Mon Oct 31 11:55:07 UTC 2011
thomas veymont <thomas.veymont at gmail.com>

hi there,

coming back on a old thread.  My topic is rather simple : I want to
attach a file-based hard drive to a linux guest.
I want to understand differences between doing it with command line
tools versus virt-manager GUI.

- first, creating a disk image on the physical host:
qemu-img  create -f qcow2 /mnt/qemu_disk_images/disk1.qcow2 15G

- then, appending a disk definition into the guest XML file:

$ virsh dumxml myguest > dump.xml
<disk type='file' device='disk'>
  <driver name='qemu' type='qcow2' cache='default'/>
  <source file='/mnt/qemu_disk_images/disk1.qcow2'/>
  <target dev='vdb' bus='virtio'/>

$virsh define myguest dump.xml

Then I have to reboot (virsh shudtown + virsh start) the guest to have
the new /dev/vdb device available.
If I do the same operation from the virt-manager GUI (add
hardware>storage>existing storage>virtio-disk>browse local file), the
/dev/vdb device pops up into the guest, even without rebooting.

Can someone tell me the difference between what I do and what the GUI does ?


>>Trey Dockendorf treydock at gmail.com
>>Tue Jul 26 19:44:06 EDT 2011
>>I'm not aware of a virsh attach disk command but if you duplicate the
>>entries for the existing disk you can then add the new one...something like
>># virsh -c qemu:///system edit VMname
>>  <disk type='file' device='disk'>
>>     <driver name='qemu' type='qcow2' cache='none'/>
>>     <source file='/var/lib/libvirt/images/vmname_var.qcow2'/>
>>     <target dev='vda' bus='virtio'/>
>>     <address type='pci' domain='0x0000' bus='0x00' slot='0x04'
>>   </disk>
>>You will have to adjust the values of course.

>> I'm following these documentations to add a file-based disk volume to
>> a KVM guest under Centos 6.0 :
>> http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Virtualization/chap-Virtualization-Storage_Volumes.html
>> as instructed, I created a "pool" then a "volume", file-based, e.g :
>> mkdir /mnt/raid/kvm_pool1
>> virsh # pool-define-as pool1 dir - - - - "/mnt/raid/kvm_pool1"
>> virsh # pool-autostart pool1
>> virsh # vol-create-as pool1 volume1 20G --allocation 15G --format qcow2
>> now I want to associate "volume1" to my guest OS. Following this doc:
>> http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Virtualization/sect-Virtualization-Virtualized_block_devices-Adding_storage_devices_to_guests.html
>> - why does this ask me to create a file with "dd" ? it's already been
>> created before with the virsh pool commands, isn't it? Seems to
>> me I'm bypassing the libvirt/virsh layer if I do that.
>> - after that, the doc tells me to do some stuff with guest XML files.
>> Is'nt there some specific commands provided by
>> virsh to associate a managed Pool to a managed Guest ?
>> - in this case, should I use the virsh "attach-disk" command ?
>> thanks.
>> --
>> Tom