Yes. If you are using the provided devcloud-kvm image
(https://cwiki.apache.org/confluence/display/CLOUDSTACK/devcloud-kvm),
it is set up to use the kvm modules. The changes I described seem to
allow it to use the qemu emulation that doesn't require hardware
support/kvm modules. But since they're code-based changes (even though
the'yre simple), it seems rather a pain to develop against any given
branch + your local changes to make it run in qemu, and keep things
straight.

On Sun, Feb 10, 2013 at 1:26 PM, Sebastien Goasguen <run...@gmail.com> wrote:
> 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
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>
>

Reply via email to