> 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 CloudStack:)


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:[email protected]]<mailto:[mailto:[email protected]]>
Sent: Thursday, April 19, 2012 8:59 AM
To: 
[email protected]<mailto:[email protected]>
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:[email protected]]<mailto:[mailto:[email protected]]>
Sent: Thursday, April 19, 2012 9:02 PM
To: 
[email protected]<mailto:[email protected]>
Cc: 
[email protected]<mailto:[email protected]>
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<http://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/


Reply via email to