Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have a machine setup with Centos6 as a virtualisation host. It has a single 250G hard drive that is configured as a single lvm volume group(vg_fluke). Now I would like to use the host's lvm as a storage pool for KVM.

I found this question on SF and method one describes what I would like to achieve. But I can't find a way to go about it.

I tried the following, but since the documentation is sketchy, I am certain that I am doing something wrong.

virsh # pool-define-as guest_images_lvm logical - - - - /dev/vg_fluke
Pool guest_images_lvm defined

And followed it with,

virsh # pool-start guest_images_lvm
error: Failed to start pool guest_images_lvm
error: internal error Child process (/sbin/vgchange -ay -) status unexpected: exit status 5

More Information on the LVM setup:

[root@fluke ~]# pvs
  PV         VG       Fmt  Attr PSize   PFree  
  /dev/sdb2  vg_fluke lvm2 a--  232.39g 125.45g
[root@fluke ~]# lvs
  LV      VG       Attr   LSize   Origin Snap%  Move Log Copy%  Convert
  lv_home vg_fluke -wi-ao   5.00g                                      
  lv_root vg_fluke -wi-ao 100.00g                                      
  lv_swap vg_fluke -wi-ao   1.94g                                      
[root@fluke ~]# vgs
  VG       #PV #LV #SN Attr   VSize   VFree  
  vg_fluke   1   3   0 wz--n- 232.39g 125.45g

Update:

Followed @sitaktif's advice and now get the following error:

virsh # pool-define-as lv_guest_vm logical --target /dev/vg-main
Pool lv_guest_vm defined

virsh # pool-start lv_guest_vm
error: Failed to start pool lv_guest_vm
error: internal error '/sbin/vgchange -ay lv_guest_vm' exited with non-zero status 5 and signal 0:   Volume group "lv_guest_vm" not found

Note: I am on trying this on a different machine where the VG is vg-main. Do I have to create a second VG for libvirt to use for virtual machines? How can I set it up use a LV in the existing VG?

share|improve this question

2 Answers 2

The following command is incorrect:

virsh # pool-define-as guest_images_lvm logical - - - - /dev/vg_fluke

...because it executes:

/sbin/vgchange -ay -

...instead of:

/sbin/vgchange -ay /dev/vg_fluke

Just explicitely name the parameter instead of using dashes:

pool-define-as guest_images_lvm logical --target /dev/vg_fluke

That should solve your problem.

share|improve this answer
    
Thanks for reply. I just got around to trying it, but there is a new error now. I updated the question with the relevant details. –  Shoan Apr 26 '12 at 12:51

By default, libvirt uses the pool name as the name of the vg. You can see it's doing that with the /sbin/vgchange -ay lv_guest_vm command that it tried to execute. Just do:

pool-define-as lv_guest_vm logical --source-name vg-main --target /dev/vg-main

and it should work.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.