cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nitin Mehta <Nitin.Me...@citrix.com>
Subject RE: [cloudstack-devel] Hyper-V Support
Date Fri, 01 Jun 2012 12:58:18 GMT
Hi Alessandro,
SSVM needs to have agent running which connects to MS on port 8250 (it is a remote agent).
The responsibility of this agent is to take commands from MS and take some action.
One example of this is - MS instructing the SSVM to download a template on secondary storage
and the agent doing to real work of downloading it.

You can just simulate an agent which can understand these commands to get going (Look at NfsSecondaryStorageResource.java
for all the commands SSVM agent understands)

Thanks,
-Nitin

-----Original Message-----
From: Alessandro Pilotti [mailto:ap@pilotti.it]
Sent: Friday, June 01, 2012 6:16 PM
To: cloudstack-dev@incubator.apache.org
Cc: Development discussions for CloudStack
Subject: Re: [cloudstack-devel] Hyper-V Support

Hi Rajesh,

here's the error. It happens when we try to add a template. We need to find a way to replace
this with a dummy implementation.

[java] WARN  [storage.download.DownloadMonitorImpl] (http-8080-5:) There is no secondary storage
VM for secondary storage host nfs://10.73.76.36/export/secondary

The fake secondary storage VM exists and is shown as in "Running" state in the admin panel.


Thanks!

Alessandro




On Jun 1, 2012, at 15:06 , Rajesh Battala wrote:

> Can you please send the error in detail and log which can help us to find what is the
error.
>
> Thanks
> Rajesh Battala
>
>> -----Original Message-----
>> From: Alessandro Pilotti [mailto:ap@pilotti.it]
>> Sent: Friday, June 01, 2012 4:53 PM
>> To: cloudstack-dev@incubator.apache.org
>> Cc: Development discussions for CloudStack
>> Subject: Re: [cloudstack-devel] Hyper-V Support
>>
>> Hi guys,
>>
>> we are moving forward pretty fast in the development of support for
>> Hyper- V, we'll be able to share the first bits hopefully very soon.
>> :-)
>>
>> In the meantime we have a small problem to solve with the secondary
>> storage: in our test environment, we created a dummy Hyper-V
>> resource, but we have troubles in deploying dummy instances as
>> CloudStack cannot see and initialize a secondary storage.
>>
>> Do you have any suggestion on how to get around that?
>>
>>
>> Thanks!
>>
>> Alessandro Pilotti
>> Cloudbase Solutions Srl
>> ------------------------------------------------------------
>> IT Consultant & Technical Speaker
>>
>> MVP ASP.Net / IIS
>> Windows Azure Insider
>> Microsoft Certified Professional & Trainer MCSD, MCAD, MCSE, MCDBA,
>> MCTS, MCT RHCE - Red Hat Certified Engineer
>> ------------------------------------------------------------
>>
>>
>>
>>
>> On Apr 22, 2012, at 03:54 , Kelven Yang wrote:
>>
>>>>> 1) I'm looking at the commands in com.cloud.agent.api. Is there
>>>>> some
>> documentation?
>>> Unfortunately, we haven't put a detail document on this. Vmware or
>> XenServer resource is a good place to look at
>>>
>>>>> 2) Commands are synchronous or asynchronous? In case how do you
>> handle running jobs?
>>>
>>> There is a design principal that command executors are dumb
>>> executors,
>> the command flow business logic should be implemented in
>> corresponding managers running inside management server, therefore a
>> resource implementation will be easily hosted either locally within
>> the management server or remotely at agent side.
>>>
>>> Command is usually executed synchronously(we actually provides
>> mechanism to execute command asynchronously), managers can schedule
>> asynchronous jobs.
>>>
>>>>> 3) Configuration: how do I tell CS that a new HyperVisor Resource
>>>>> type
>> exists? (both cases: Manager based / Agent based)
>>> To add a new hypervisor, there are a number of things you need to do
>> together,
>>>     1) Hypervisor.java, add a new type into the enum
>>>     2) Config.java, add the new type to HypervisorList so that UI may
>>> be
>> aware of
>>>     3) Add the resource discover class, refer to
>>> XcpServerDiscover.java,
>> KvmServerDiscover.java, etc
>>>     4) Add the resource class(for managed resource), refer to
>> VmwareResource.java/CitrixResourceBase.java, etc.
>>>     5) Populate guest OS types and system template data for the
>> hypervisor to database, refer to create-schema.sql and template.sql
>>>     6) Prepare the default system template for the hypervisor
>>>
>>>>> 4) Storage:
>>> This is the part that needs a lot of discussions.
>>> We are talking about secondary storage. Usually only hypervisor host
>>> and
>> storage system VM need to access to it, VMware does one special step
>> that management server needs to access to it to bootstrap system VMs.
>> So to support hybrid deployment option, we would require secondary
>> storage to be accessible from all of them, giving the fact that
>> Xen/KVM/VMware only supports NFS shares, it would be better to make
>> secondary storage dual faces for Hyper-V, in this way, the same
>> secondary storage will be able to serve XenServer/VMware/KVM/Hyper-V within the same
zone.
>>>
>>> We do have a Hyper-V prototype in current CloudStack code base, you
>>> may
>> also want to check it out before you start.
>>>
>>> Kelven
>>>
>>>
>>> -----Original Message-----
>>> From: Alessandro Pilotti [mailto:ap@pilotti.it]
>>> Sent: Saturday, April 21, 2012 1:35 PM
>>> To: cloudstack-dev@incubator.apache.org
>>> Cc: Development discussions for CloudStack
>>> Subject: Re: [cloudstack-devel] Hyper-V Support
>>>
>>> I started looking into the code for VMWare and KVM resources in
>>> order to
>> develop the Hyper-V Resource, the proxy based architecture is clear.
>>>
>>>
>>> I have some basic questions to start with :-)
>>>
>>> 1) I'm looking at the commands in com.cloud.agent.api. Is there some
>> documentation? To start coding the HyperV adapter, is there a list of
>> mandatory and optional commands? I'm "reverse engineering" their
>> semantyc looking at the VMWare resources, but it's not so trivial :)
>>>
>>> 2) Commands are synchronous or asynchronous? In case how do you
>> handle running jobs?
>>>
>>> 3) Configuration: how do I tell CS that a new HyperVisor Resource
>>> type
>> exists? (both cases: Manager based / Agent based)
>>>
>>> 4) Storage: the free Hyper-V server does not contain an NFS client.
>>> There
>> are of course open source NFS clients (Cygwin, etc) that can be
>> installed, but supporting SMB might be easier. What do you think
>> about adding support for SMB shares in CS?
>>>
>>>
>>>
>>> Thanks!
>>>
>>> Alessandro
>>>
>>>
>>> On Apr 20, 2012, at 02:30 , Frank Zhang wrote:
>>>
>>>>
>>>>> There's a JSON-based protocol to pass commands between
>> Management Server and host.
>>>>
>>>>>> That sounds great! Do you maybe have a link for some
>>>>>> documentation
>> and samples? :)
>>>>               CloudStack has two types of managing host. Agent
>>>> based and
>> manager based. Agent based means installing an agent on host and
>> management server directly controls host through the agent. KVM and
>> XenServer falls into this category,  as KVM agent is written by
>> CloudStack developer while agent of XenServer is provided by Xapi.
>> The manager based approach applies to VMWare, HyperV, OVM3 where
>> CloudStack invokes API of SDK provided by hypervisor vendor to
>> communicate with *the manager*, for example, VCenter of VMWare, the
>> manager is on behalf of CloudStack to control the host. in our code paths, these
two approaches look like:
>>>>
>>>> 1.       Agent Based:
>>>> CloudStack business logic -------à Resource -----(XMLRPC or
>>>> something) ---
>> ------à Agent on host
>>>> 2.       Manager Based:
>>>> CloudStack business logic ------à Resource -----(API in SDK)
>>>> ----------à
>> hypervisor manager provided by vendor ------à host
>>>>
>>>>               To support a new type of hypervisor, the key is to
>>>> implement a
>> *Resource* showed in above. The Resource is a command executor which
>> receives commands from CloudStack business logic(known as various
>> managers, like networkManager, StorageManager, UserVmManager . in our
>> code) and performs these commands to hypervisor by means of either
>> XmlRpc or SDK API. In GoF design patterns, the Resource is a proxy
>> pattern that works as a surrogate between CloudStack and hypervisors.
>>>>               If you open one of hypervisor resources source file
>>>> (for example,
>> VmwareResource.java, LibvirtComputingResource.java,
>> CitrixResourceBase.java), you will find all of them implement the
>> same set of commands that are exhibited by method:
>>>> public Answer executeRequest(Command cmd)
>>>>
>>>> take a look at that method and implement a similar resource like
>>>> others,
>> then you add HyperV support into CloudStackJ
>>>>
>>>>
>>>> Thanks,
>>>>
>>>> Alessandro
>>>>
>>>>
>>>> On Apr 19, 2012, at 19:16 , Kevin Kluge wrote:
>>>>
>>>>
>>>> Yes, very interesting.   Can you elaborate on the getThumbnail function.
>> One issue we have been thinking about with Hyper-V is how to do guest
>> console display (console proxy functionality, in CloudStack terms).
>> Since only RDP is available with Hyper-V, and CloudStack knows only
>> VNC, we've been expecting that RDP is needed in CloudStack to provide console view.
>>>>
>>>> Did you integrate with Hyper-V in Windows Server 2008 R2?   Or
>> something else?
>>>>
>>>> The CloudStack has existing code/framework to implement what we
>>>> call a
>> remote agent (your scenario 3).   Take a look at how KVM hosts are
>> managed.   There's a JSON-based protocol to pass commands between
>> Management Server and host.
>>>>
>>>> -kevin
>>>>
>>>>
>>>>
>>>> -----Original Message-----
>>>> From: Rajesh Battala [mailto:rajesh.battala@citrix.com]
>>>> Sent: Thursday, April 19, 2012 8:59 AM
>>>> To: cloudstack-dev@incubator.apache.org
>>>> Subject: RE: Hyper-V Support
>>>>
>>>> Idea is great.
>>>> All these Hyper-V operations are implement to manage the Hyper-V
>>>> box directly  using WMI calls right?
>>>> Or these operations are implemented via SCVMM?
>>>>
>>>> Thanks
>>>> Rajesh Battala
>>>>
>>>>
>>>>
>>>>
>>>> -----Original Message-----
>>>> From: Alessandro Pilotti [mailto:ap@pilotti.it]
>>>> Sent: Thursday, April 19, 2012 9:02 PM
>>>> To: cloudstack-dev@incubator.apache.org
>>>> Cc: cloudstack-devel@lists.sourceforge.net
>>>> Subject: Hyper-V Support
>>>>
>>>> Hi guys,
>>>>
>>>> I'm new to this list, so hi everybody :-)
>>>>
>>>> I'm interested in providing code for integrating Cloudstack with Hyper-V.
>> We
>>>> developend an Hyper-V management framework that we use in our cloud
>>>> products that can be used (at least as as a starting point).
>>>>
>>>> I'm summing up at the bottom of this email what we already have in
>> terms of
>>>> Hyper-V features handled by our framework (completed and tested).
>>>> We basically cover everything needed for CloudStack and more. :-)
>>>>
>>>> Beside that we also just released an open source Hyper-V backup
>>>> library
>> and
>>>> CLI tool: http://hypervbackup.codeplex.com/ So far it's the only
>>>> open
>> source
>>>> tool handling VSS backups of VMs on CSV storage :-)
>>>>
>>>> The assemblies are written in C# with .Net as the only dependency.
>>>>
>>>> I see 3 options to integrate our work with CloudStack:
>>>>
>>>> Write a Java adapter on top of the C# assembly (via JNI) Rewrite
>>>> the C#
>> code
>>>> in Java, considering the quirkness for accessing WMI from java
>>>> (jWMI, etc) Deploy the assembly on the Hyper-V hosts and add a
>>>> RESTful layer on top
>> to
>>>> be consumed by a Java adapter (locally or remotely). That would be
>>>> the
>> best
>>>> option in terms of performance and security (and the fastest to
>>>> release :-)
>> ).
>>>>
>>>> I prefer the third option, but I'm open to any idea!
>>>> Looking forward for your opinion!
>>>>
>>>> BTW We plan to setup a CloudStack Hyper-V service in our datacenter
>>>> on
>> top
>>>> of one of the clusters as soon as we have a working beta.
>>>>
>>>>
>>>> Thanks,
>>>>
>>>> Alessandro Pilotti
>>>> Cloudbase Solutions Srl
>>>> ------------------------------------------------------------
>>>> IT Consultant & Technical Speaker
>>>>
>>>> MVP ASP.Net / IIS
>>>> MCSD, MCAD, MCSE, MCDBA, MCTS, MCT
>>>> RHCE - Red Hat Certified Engineer
>>>> ------------------------------------------------------------
>>>>
>>>>
>>>>
>>>> VM
>>>> Create
>>>> Update
>>>> Delete
>>>> Add / update / remove any type of resource (ethernet
>> emulated/synthetic
>>>> adapther, VHDs, ISO images etc) List Get summary Get thumbnail Get
>>>> integration tools status and KV data Get IP addresses Start Stop
>>>> Pause
>> Save
>>>> Shutdown Take snapshot List snapshots Revert to snapshot Remove
>>>> snapshots Export Import Network
>>>>
>>>> Create VirtualSwitch
>>>> Delete VirtualSwitch
>>>> List VirtualSwitches
>>>> Create VirtualSwitch port
>>>> remove VirtualSwitch port
>>>> Bind external ethernet port
>>>> Setup VirtualSwitch (connect to external ethernet port) Terdown
>>>> switch Create internal ethernet port Remove internal ethernet port
>>>> Connect VirtualSwitch port to VM or other ports Disconnect
>>>> VirtualSwitch port
>>>>
>>>> Storage
>>>>
>>>> Create VHD (fixed, dynamic, differencing) Compact VHD Convert VHD
>> type
>>>> Merge VHD with parent Validate VHD Mount / unmount VHD Reconnect
>>>> parent VHD Get VHD info Expand VHD Create Virtual Floppy Disk
>>>>
>>>> Utility
>>>>
>>>> Get async job info
>>>> Wait for async job info
>>>> Remote file system management
>>>>
>>>> Cluster
>>>>
>>>> Create VM resource
>>>> Remove VM resource
>>>> Live migrate VM
>>>> Create CSV
>>>> Move CSV
>>>>
>>>> Backup / Restore
>>>>
>>>> http://hypervbackup.codeplex.com/
>>>>
>>>>
>>>> -------------------------------------------------------------------
>>>> ----------- For Developers, A Lot Can Happen In A Second.
>>>> Boundary is the first to Know...and Tell You.
>>>> Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
>>>> http://p.sf.net/sfu/Boundary-
>> d2dvs2_______________________________________________
>>>> cloudstack-devel mailing list
>>>> cloudstack-devel@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/cloudstack-devel
>>>
>


Mime
View raw message