>>About the Agent based option: How do you handle the authentication between CS >>and the Agents on hypervisor hosts? Do you have a common authentication / >>identity framework? We use basic authentication of XmlRpc, each time Resource that works as a XmlRpc client connects to Agent that works as a XmlRpc server, account/password is required.
-----Original Message----- From: Alessandro Pilotti [mailto:[email protected]] Sent: Friday, April 20, 2012 4:39 AM To: [email protected] Cc: Development discussions for CloudStack Subject: Re: [cloudstack-devel] Hyper-V Support Frank, thanks for the architectural explanation. The Manager based approach looks more interesting in this case, as it's probably easier to deploy only the .Net assemblies + JSON APIs and writing a custom resource. I'm of course open to any idea at this stage. I'll start digging into the CS code today. About the Agent based option: How do you handle the authentication between CS and the Agents on hypervisor hosts? Do you have a common authentication / identity framework? 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:[email protected]] > Sent: Thursday, April 19, 2012 8:59 AM > To: [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]] > Sent: Thursday, April 19, 2012 9:02 PM > To: [email protected] > Cc: [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 / 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 > [email protected] > https://lists.sourceforge.net/lists/listinfo/cloudstack-devel
