What's your timeframe you'd like to see here?  Do you plan on working on this 
yourself or are you looking for some people from the community to take this up.

I have some interest in this.  I'd like to enhance ACS to make adding 
hypervisors easier and using xen arm as a POC would be good.  I want a 
practical example of how to do it but I'm not interested in creating a fully 
supported new hypervisor.  But the enhancements I'm thinking of may take me 3 
months to do.

Darren

On Aug 27, 2013, at 8:42 AM, Sebastien Goasguen <run...@gmail.com> wrote:

> 
> On Aug 27, 2013, at 11:21 AM, Darren Shepherd <darren.s.sheph...@gmail.com> 
> wrote:
> 
>> Just to throw in my two cents.  I personally think the effort of adding a 
>> new hypervisor to CloudStack is too difficult.  This is an area I'd like to 
>> focus on, along with another 15 things :)
>> 
>> I personally see a motivation for an xl integration.  This is something I've 
>> researched in the past (and did).  Xen is very small, especially if you 
>> focus on only PV (with no qemu).  You can build a Xen busybox system that is 
>> less that 50mb.  This opens up a great new way to look at hypervisors in 
>> that you can PXE boot them and the whole OS is stateless and in memory.  
>> Basically what CoreOS is doing.  
>> 
>> Supporting a pure xl implementation is far more advanced thing though.  
>> XenServer handles a lot of nuisances of Xen, plus it makes storage easier 
>> (but networking more difficult).  So if it was easy to add hypervisors I 
>> could see someone creating a specialized xl integration.  If you want to 
>> support all the various networking and storage stuff, then libvirt or 
>> XenServer are a better way to go. 
>> 
>> Darren
> 
> Thanks for the thought.
> 
> I am interested in having Xen on ARM being supported by CloudStack as a proof 
> of concept.
> XenServer and Xen + xapi are not candidates right now. So we would need to 
> look at XenProject (formerly xen) without xapi.
> 
> That indeed leaves two choices directly writing an agent to talks to xl or 
> using libvirt.
> 
> I have not run Xenproject lately so I don't know what would be available.
> 
> Of course there is a short term mindset (getting a POC for Xen on ARM) and a 
> long term view of better hypervisor (and better xen support) in CloudStack.
> 
> -sebastien
> 
>> 
>> On Aug 27, 2013, at 7:10 AM, Sebastien Goasguen <run...@gmail.com> wrote:
>> 
>>> 
>>> On Aug 19, 2013, at 3:09 PM, Chiradeep Vittal <chiradeep.vit...@citrix.com> 
>>> wrote:
>>> 
>>>> On XenServer (from Citrix), there is no JVM, not sure if you can install
>>>> it even after the open sourcing.
>>> 
>>> I'd be surprised if you could not do it on Xen Project.
>>> 
>>>> On 8/19/13 10:38 AM, "Sebastien Goasguen" <run...@gmail.com> wrote:
>>>> 
>>>>> 
>>>>> On Aug 19, 2013, at 1:25 PM, Chiradeep Vittal
>>>>> <chiradeep.vit...@citrix.com> wrote:
>>>>> 
>>>>>> I thought libvirt supports xen as well? Why "modify libvirt calls to
>>>>>> talk
>>>>>> to xl" ?
>>>>> 
>>>>> what I meant is that I believe our current Xen support makes use of xapi
>>>>> not libvrit.
>>>>> 
>>>>> So I would think we could "copy" the KVM agent and modify the "libvirt
>>>>> calls" -not libvrt itself- to use the xl tool.
>>>>> 
>>>>> That said I have not looked at the code for our Xen support.
>>>>> 
>>>>> 
>>>>>> On 8/19/13 6:40 AM, "Sebastien Goasguen" <run...@gmail.com> wrote:
>>>>>> 
>>>>>>> Kind of on that same vein:
>>>>>>> 
>>>>>>> Anyone interested in modifying the KVM agent to support "pure" Xen
>>>>>>> without xapi.
>>>>>>> 
>>>>>>> I think it might be possible to just use the kvm agent and modify the
>>>>>>> libvirt calls to talk to xl , that way there would be no need for
>>>>>>> xapi...
>>>>>>> 
>>>>>>> Which if I am not mistaken would give us Xen on ARM support instantly
>>>>>>> in
>>>>>>> CloudStack
>>>>>>> 
>>>>>>> Any takers ? or anyone telling me I got this completely wrong ?
>>>>>>> 
>>>>>>> -Sebastien
>>>>>>> 
>>>>>>> On Aug 16, 2013, at 2:42 AM, Likitha Shetty <likitha.she...@citrix.com>
>>>>>>> wrote:
>>>>>>> 
>>>>>>>> Ian, with AWS it¹s the other way around. The package allows us to spin
>>>>>>>> up VMs in CS using AWS EC2 API's.
>>>>>>>> 
>>>>>>>> -Likitha
>>>>>>>> 
>>>>>>>>> -----Original Message-----
>>>>>>>>> From: Ian Duffy [mailto:i...@ianduffy.ie]
>>>>>>>>> Sent: Friday, August 16, 2013 12:07 PM
>>>>>>>>> To: CloudStack Dev
>>>>>>>>> Subject: Re: Whats involved in adding an extra hypervisor
>>>>>>>>> 
>>>>>>>>> Hi Donal and Chiradeep,
>>>>>>>>> 
>>>>>>>>> Thanks for your comments. It was an interesting read.
>>>>>>>>> 
>>>>>>>>> I might be missing something here but I will ask anyways. If I
>>>>>>>>> understand
>>>>>>>>> correctly, at current with awsapi we are able to submit our aws api
>>>>>>>>> credentials
>>>>>>>>> to Cloudstack and spin up VMs on aws correct? Is there a reason the
>>>>>>>>> communication with aws could not be provided like a standard
>>>>>>>>> hypervisor? what
>>>>>>>>> is the reasoning behind keeping it as an almost separate package?
>>>>>>>>> 
>>>>>>>>> The reason I'm asking is because I'm wanting to do something
>>>>>>>>> Cloudstack based
>>>>>>>>> for a college project next year. However there is a hard 1 month
>>>>>>>>> deadline. I was
>>>>>>>>> interested to see could a base(or something of demoable quality) for
>>>>>>>>> supporting
>>>>>>>>> Google Compute Engine be completed in such a short deadline.
>>>>>>>>> 
>>>>>>>>> On 15 August 2013 09:29, Donal Lafferty <donal.laffe...@citrix.com>
>>>>>>>>> wrote:
>>>>>>>>>> Definitely possible to add new Hypervisor types, if that's what
>>>>>>>>>> you're asking.
>>>>>>>>>> 
>>>>>>>>>> How easy it is depends on how much existing CloudStack
>>>>>>>>>> infrastructure
>>>>>>>>>> you
>>>>>>>>> can exploit.  Let me out line the task with the help of some planning
>>>>>>>>> questions:
>>>>>>>>>> 
>>>>>>>>>> 1. What will be your agent model?  Will you talk directly to the
>>>>>>>>>> hypervisor
>>>>>>>>> (direct connect agent), or will you install a remote agent on the
>>>>>>>>> hypervisor
>>>>>>>>> (connected agent).  This comes down to whether the hypervisor exposes
>>>>>>>>> a high
>>>>>>>>> level API remotely.
>>>>>>>>>> 
>>>>>>>>>> 2. What will be your secondary storage model?  Secondary storage
>>>>>>>>>> provides
>>>>>>>>> low IOPS storage accessible to all hypervisors in the zone.  Thus, we
>>>>>>>>> store the
>>>>>>>>> templates in secondary storage.  IIRC, CloudStack supports NFS, S3
>>>>>>>>> and
>>>>>>>>> Swift.
>>>>>>>>> Does one of these options suit your data centre, or do you need to
>>>>>>>>> expand the
>>>>>>>>> list?  Will your agent be able to download disk images in secondary
>>>>>>>>> storage to
>>>>>>>>> the hypervisor?
>>>>>>>>>> 
>>>>>>>>>> 3. What will be your primary storage model?  Typically, primary
>>>>>>>>>> storage is
>>>>>>>>> high IOPS storage specific to a hypervisor or cluster of hypervisors.
>>>>>>>>> The easiest
>>>>>>>>> to setup is local storage, which can be a hard disk or storage you
>>>>>>>>> mount
>>>>>>>>> manually on the hypervisor.  Alternatively, you may want to automate
>>>>>>>>> mounting
>>>>>>>>> storage on the hypervisor.
>>>>>>>>>> 
>>>>>>>>>> 4.  What will be your system VM model?  System VMs offload the
>>>>>>>>>> following
>>>>>>>>> functionality from the management server:  VM console access,
>>>>>>>>> networking
>>>>>>>>> services, and secondary storage (upload) service.  You could skip
>>>>>>>>> system VMs
>>>>>>>>> and run these services in the management server's host using
>>>>>>>>> QuickCloud.  You
>>>>>>>>> could run system VMs on an existing hypervisor type, or you could add
>>>>>>>>> a new
>>>>>>>>> system VM type for your hypervisor.  Keep in mind that QuickCloud
>>>>>>>>> can't run
>>>>>>>>> your networking services.  Also, if you want to create a new system
>>>>>>>>> VM
>>>>>>>>> type, you
>>>>>>>>> have to come up with VM image.
>>>>>>>>>> 
>>>>>>>>>> The tricky bits:
>>>>>>>>>> 
>>>>>>>>>> 5. What language will your agent use?  A direct connect agent sits
>>>>>>>>>> in
>>>>>>>>>> the
>>>>>>>>> CloudStack process, so it is written in Java.  Alternatively, there
>>>>>>>>> is
>>>>>>>>> infrastructure
>>>>>>>>> for a Java-based remote agent, which handles all your communications.
>>>>>>>>> If you
>>>>>>>>> need a non-Java remote agent, you are better off sending the kernel
>>>>>>>>> commands
>>>>>>>>> over HTTP, which looks more like an RPC mechanism than REST.
>>>>>>>>>> 
>>>>>>>>>> 6. How will you know what instructions to implement?  You can look
>>>>>>>>>> at
>>>>>>>>>> an
>>>>>>>>> existing ServerResource class for a hypervisor to know what command
>>>>>>>>> types
>>>>>>>>> there are.  The relevant pieces of data in each command can be found
>>>>>>>>> out from
>>>>>>>>> existing hypervisor implementations.  Alternatively, you can look at
>>>>>>>>> test logs,
>>>>>>>>> which contain the data from each command.  Eventually you'll want to
>>>>>>>>> try your
>>>>>>>>> plugin with CloudStack itself.
>>>>>>>>>> 
>>>>>>>>>> Chiradeep's comments relate to #6 above.
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>> -----Original Message-----
>>>>>>>>>>> From: Chiradeep Vittal [mailto:chiradeep.vit...@citrix.com]
>>>>>>>>>>> Sent: 15 August 2013 02:51
>>>>>>>>>>> To: dev@cloudstack.apache.org
>>>>>>>>>>> Subject: Re: Whats involved in adding an extra hypervisor
>>>>>>>>>>> 
>>>>>>>>>>> Yes, it is a hypervisor plugin. While the extension method may be
>>>>>>>>>>> simple, the impedance mismatch between the CloudStack virtual model
>>>>>>>>>>> and the hypervisor API is what causes the most pain.
>>>>>>>>>>> E.g., CloudStack will hand a VirtualMachineTO object (consisting of
>>>>>>>>>>> cpu/mem/nic) and then you have to use the hypervisor API to
>>>>>>>>>>> construct it.
>>>>>>>>>>> For XS, it involves calling a bunch of XS APIs to 'construct' the
>>>>>>>>>>> VM.
>>>>>>>>>>> For KVM, it involves constructing an XML file and passing it to
>>>>>>>>>>> libvirt, etc.
>>>>>>>>>>> I'd say stuff like snapshots, stuff that involves a lot of firewall
>>>>>>>>>>> configuration tends to be harder.
>>>>>>>>>>> 
>>>>>>>>>>> On 8/14/13 3:28 PM, "Ian Duffy" <i...@ianduffy.ie> wrote:
>>>>>>>>>>> 
>>>>>>>>>>>> Hi Guys,
>>>>>>>>>>>> 
>>>>>>>>>>>> Just asking this off the top of my head with no research done at
>>>>>>>>>>>> all.
>>>>>>>>>>>> Its a pure "Just out of interest" query.
>>>>>>>>>>>> 
>>>>>>>>>>>> Would it be a difficult task to add an interface to Cloudstack in
>>>>>>>>>>>> order to enable it to communicate with some REST based API that
>>>>>>>>>>>> goes
>>>>>>>>>>>> back to some hypervisor?
>>>>>>>>>>>> 
>>>>>>>>>>>> Can anybody point in the direction of code/files I should look at
>>>>>>>>>>>> to
>>>>>>>>>>>> get an idea of the amount of work involved? Is the plugin model in
>>>>>>>>>>>> such a state where such functionality could be abstracted out as a
>>>>>>>>>>>> plugin?
>>>>>>>>>>>> With my previous experiences of dealing with the cloudstack code
>>>>>>>>>>>> base I recall seeing a hypervisor folder in the plugins folder, is
>>>>>>>>>>>> it just as simple as extending a few classes in there?
>>>>>>>>>>>> 
>>>>>>>>>>>> Thanks,
>>>>>>>>>>>> 
>>>>>>>>>>>> Ian
> 

Reply via email to