Hi Marus, sorry If I am bit confused. What I am trying to do is run devcloud as a KVM VM (instead of a virtual box instance), but inside devlcoud-KVM used as a cloudstack host, I want to use Qemu. Is that what you are describing ?
thanks, -Sebastien On Feb 8, 2013, at 8:03 PM, Marcus Sorensen <shadow...@gmail.com> wrote: > Well, they're changes to the cloudstack code itself. It's sort of > tough to say "here's devcloud-kvm, which works fine if you run it > under Linux or VMware Fusion, but if you apply these patches to the > code you pull down, you can run it in VirtualBox". I don't mind > sharing how it's done, but I don't think it belongs in a how-to. We > should probably just decide if we want to make it work in the code. > It's probably not of much use for dev anyway unless we go through a > bit more testing and ensure that there aren't any edge cases that > would cause someone to pull their hair out. > > On Fri, Feb 8, 2013 at 11:59 AM, Sebastien Goasguen <run...@gmail.com> wrote: >> >> On Feb 8, 2013, at 7:57 PM, Marcus Sorensen <shadow...@gmail.com> wrote: >> >>> Hmm, looks like /usr/sbin/virt-what in the system vms is returning >>> 'qemu', rather than 'kvm', so cloud-early-config fails to do any >>> setup. Forcing virt-what to return kvm in place of qemu gets things >>> going, but perhaps we'd change cloud-early-config to do the same >>> things for kvm|qemu. >>> >>> So with those three changes, we have an environment that generally >>> seems to work and can be QA'd. >> >> >> Could you post those changes to the devcloud-kvm page ? >> >> I know someone who is trying to use devcloud-kvm using qemu within devcloud. >> >> thanks, >> >> -sebastien >> >>> >>> On Fri, Feb 8, 2013 at 11:42 AM, Marcus Sorensen <shadow...@gmail.com> >>> wrote: >>>> Looks like it would work, but the centos 6.3 libvirt isn't new enough. >>>> libvirt says 'unknown os type hvm' on centos, even though I've >>>> verified that os type of 'hvm' works qemu and without kvm modules on >>>> ubuntu 12.04. >>>> >>>> I upgraded libvirt to a fedora version, and it worked (at least the >>>> system vms started coming up, need to wait and see if functions work). >>>> Changes made: >>>> >>>> IsHVMEnabled returns true always >>>> hardcoded _hypervisorType to 'qemu' rather than 'kvm' >>>> >>>> Obviously this was just for the test, we would make these changes some >>>> other way. >>>> >>>> On Fri, Feb 8, 2013 at 11:15 AM, Edison Su <edison...@citrix.com> wrote: >>>>> Wondering, how do you get devcloud-kvm work? >>>> >>>> by modprobing kvm, kvm_intel in the guest it can run virtual machines. >>>> Host system needs to have nested=1 set in it's kvm_intel or kvm_amd >>>> kernel module parameters (default on many distributions now). >>>> >>>>> >>>>>> -----Original Message----- >>>>>> From: Marcus Sorensen [mailto:shadow...@gmail.com] >>>>>> Sent: Friday, February 08, 2013 10:02 AM >>>>>> To: Alex Huang >>>>>> Cc: Sebastien Goasguen; Wido den Hollander; cloudstack- >>>>>> d...@incubator.apache.org >>>>>> Subject: Re: QEMU support in CloudStack >>>>>> >>>>>> I'm running a quick sanity test here... just seeing if switching out kvm >>>>>> with >>>>>> qemu works, all else the same. Looks like there's a setHvsType for the >>>>>> LibvirtVMDef as well, that's hardcoded to 'kvm'. >>>>>> That should be easy to adjust as well, assuming everything just runs with >>>>>> these changes. >>>>>> >>>>>> On Fri, Feb 8, 2013 at 10:54 AM, Alex Huang <alex.hu...@citrix.com> >>>>>> wrote: >>>>>>> In that case, why not create two resources with the kvm resource >>>>>> extending the qemu resource and do what Marcus suggests here in the >>>>>> qemu resource? >>>>>>> >>>>>>> Effectively then we have an agent for qemu and one for kvm and they each >>>>>> can carry their own capabilities. >>>>>>> >>>>>>> --Alex >>>>>>> >>>>>>>> -----Original Message----- >>>>>>>> From: Marcus Sorensen [mailto:shadow...@gmail.com] >>>>>>>> Sent: Friday, February 08, 2013 9:41 AM >>>>>>>> To: Sebastien Goasguen >>>>>>>> Cc: Wido den Hollander; cloudstack-dev@incubator.apache.org >>>>>>>> Subject: Re: QEMU support in CloudStack >>>>>>>> >>>>>>>> You would in theory have to disable the check in the agent startup >>>>>>>> code that looks for the kvm kernel modules, and then libvirt should >>>>>>>> just fall back to qemu for everything automatically. >>>>>>>> >>>>>>>> In LibvirtComputingResource.java, comment out the check for >>>>>>>> IsHVMEnabled, and then rmmod any kvm modules, then try to do stuff >>>>>>>> with that version of cloudstack. >>>>>>>> >>>>>>>> On Fri, Feb 8, 2013 at 10:10 AM, Sebastien Goasguen >>>>>>>> <run...@gmail.com> >>>>>>>> wrote: >>>>>>>>> >>>>>>>>> On Feb 8, 2013, at 3:07 PM, Wido den Hollander <w...@widodh.nl> >>>>>> wrote: >>>>>>>>> >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> On 02/08/2013 10:34 AM, Dave Cahill wrote: >>>>>>>>>>> Hi, >>>>>>>>>>> >>>>>>>>>>> Recently I encountered two "nested virtualization" use cases >>>>>>>>>>> which >>>>>>>> made me >>>>>>>>>>> want QEMU hypervisor support in CloudStack. I'm interested to >>>>>>>>>>> hear if anyone else is interested in this feature, and any notes >>>>>>>>>>> on how it should be implemented. >>>>>>>>>>> >>>>>>>>>>> Here is a good explanation from OpenStack docs [2] on why they >>>>>>>> support QEMU: >>>>>>>>>>> "From the perspective of the Compute service, the QEMU hypervisor >>>>>>>>>>> is >>>>>>>> very >>>>>>>>>>> similar to the KVM hypervisor. Both are controlled through >>>>>>>>>>> libvirt, both support the same feature set, and all virtual >>>>>>>>>>> machine images that are compatible with KVM are also compatible >>>>>>>>>>> with QEMU. The main >>>>>>>> difference is >>>>>>>>>>> that QEMU does not support native virtualization. Consequently, >>>>>>>>>>> QEMU >>>>>>>> has >>>>>>>>>>> worse performance than KVM and is a poor choice for a production >>>>>>>>>>> deployment." >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> So, I've been reading into the code and found this on my Ubuntu >>>>>> systems. >>>>>>>>>> >>>>>>>>>> root@stack01:~# ls -l /usr/bin/kvm lrwxrwxrwx 1 root root 18 Oct >>>>>>>>>> 4 02:44 /usr/bin/kvm -> qemu-system- >>>>>>>> x86_64 >>>>>>>>>> root@stack01:~# >>>>>>>>>> >>>>>>>>>> Imho Qemu is Qemu and KVM only comes into play when the kernel >>>>>>>> module 'kvm' and 'kvm_amd' or 'kvm_intel' is loaded. >>>>>>>>>> >>>>>>>>>>> Here are the use cases I encountered: >>>>>>>>>>> >>>>>>>>>>> [Use case: Dev environment] >>>>>>>>>>> Wanted to use Vagrant [1] to create a portable multi-node dev >>>>>>>>>>> environment; however Vagrant uses VirtualBox, which doesn't >>>>>>>>>>> support >>>>>>>> KVM. >>>>>>>>>>> Also, devcloud uses VirtualBox and devcloud-kvm uses >>>>>>>>>>> kvm-within- >>>>>>>> kvm. I >>>>>>>>>>> imagine maintenance of devcloud and devcloud-kvm would be easier >>>>>>>>>>> if devcloud-kvm could use VirtualBox too. >>>>>>>>>>> Note: Of course, I'm aware of devcloud-kvm as an alternative >>>>>>>>>>> for this use case, and I'll be looking into that next. >>>>>>>>>>> >>>>>>>>>>> [Use case: Demo environment] >>>>>>>>>>> We may want to spin up a multi-node CloudStack install in >>>>>>>>>>> Amazon >>>>>>>> AWS >>>>>>>>>>> for demo purposes. >>>>>>>>>>> Again, AWS instances don't support KVM, so this is not >>>>>>>>>>> possible >>>>>>>> without >>>>>>>>>>> QEMU support. >>>>>>>>>>> >>>>>>>>>>> [Implementation ideas] >>>>>>>>>>> The management server currently does a check for KVM support >>>>>>>> ("kvm-ok") >>>>>>>>>>> on the host, and refuses to add the host if that fails. I think >>>>>>>>>>> this check could be removed, as the agent setup scripts will fail >>>>>>>>>>> anyway if the user is trying to setup a certain hypervisor on a >>>>>>>>>>> machine which doesn't >>>>>>>> support >>>>>>>>>>> it. >>>>>>>>>> >>>>>>>>>> This way you could do nested virtualization indeed, but it could >>>>>>>>>> also hurt >>>>>>>> users who have their BIOS set to disabled and could lead to long >>>>>> debugging. >>>>>>>>>> >>>>>>>>>>> Create a new setting in agent.properties like "use_qemu", >>>>>>>>>>> with a default of "false". If the person deploying CloudStack >>>>>>>>>>> agent sets this to "true", cloud-setup-agent and other setup >>>>>>>>>>> scripts would ignore lack of >>>>>>>> KVM >>>>>>>>>>> support as long as QEMU support was available. >>>>>>>>>> >>>>>>>>>> cloud-setup-agent generates a agent.properties, so at that point >>>>>>>>>> it >>>>>>>> doesn't know that the user intents to use the system without KVM >>>>>> support. >>>>>>>>>> >>>>>>>>>>> Lastly, when creating the libvirt XML file for a VM, set >>>>>>>>>>> hypervisor to QEMU rather than KVM in the XML file depending on >>>>>> the config setting. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> That's not hard coded. The Agent does a getCapabilities() call to >>>>>>>>>> libvirt >>>>>>>> which returns a list of possible emulators. >>>>>>>>>> >>>>>>>>>> /usr/bin/kvm is just one of them which is returned and matches the >>>>>>>> architecture. >>>>>>>>>> >>>>>>>>> >>>>>>>>> Wido, >>>>>>>>> >>>>>>>>> So can I add a "KVM" host that would in fact just use qemu ? >>>>>>>>> How would I do that ? >>>>>>>>> >>>>>>>>> -sebastien >>>>>>>>> >>>>>>>>> >>>>>>>>>> Wido >>>>>>>>>> >>>>>>>>>>> Thanks for reading, >>>>>>>>>>> Dave. >>>>>>>>>>> >>>>>>>>>>> [1] http://www.vagrantup.com/ >>>>>>>>>>> [2] >>>>>>>>>>> http://docs.openstack.org/trunk/openstack- >>>>>>>> compute/install/yum/content/qemu.html >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>