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