|   xen-cim
Re: VSManagmentService implementation discussion (was: [Xen-cim]	Bridge) 
| 
Gareth S Bestor wrote:
 
>1. Should we support start/stop service?  Currently these methods
>start/stop xend - seems like suicide and not nice for other management
>tools :-).  I think we should mark these "not supported" for the time.
The CIM_Service superclass includes a StartService and StopService 
methods, to basically turn said service on and off. I dont have a 
strong opinion, but I guess if there is a way to turn a host system's 
Xen virtualization "on" or "off" then we should probably be thorough 
in implementing the CIM model and support it. Of course, 
starting/stopping xend will cause serious problems, so whilst it may 
be 'supported' it certainly wouldn't be 'recommended'.... 
I look at it this way - NFS is an exposed host's service too and being 
able to turn it on and off is a legitimate management function. Is Xen 
so different? [that's an honest question, not a statement]. 
Thoughts?
 
I think Xen is different.  The hypervisor is not a service you can stop 
/ start.  Shutting down xend just disables management - currently 
running guests continue to operate with no way to manage them.  I agree 
we should support start service, i.e. start xend if it is not running, 
but I'm a little uncomfortable with stopping xend on stop service.  
Perhaps we can implement stop service at a higher level if the need is 
there to support it at all, e.g. in the provider itself. 
 
>3. We talked about implementing RequestStateChange() intrinsic method in
>Xen_ComputerSystem.  Should we implement the corresponding extrinsic
>methods in VirtualSystemManagementService or just map them to
>appropriate RequestStateChange?  For example, should
>PauseVirtualSystem() just call RequestStateChange("Paused") on the
>referenced Xen_ComputerSystem or provide an implementation?
I initially had the lifecycle operations - 
Start/Stop/Pause/Suspend/Resume - on the Xen_ComputerSystem itself 
early on in the development of the IBM LTC providers itself as a 
personal preference (fewer classes that had to be implemented) and the 
fact there was so much churn about this in the DMTF WG at the time :-) 
But in the formal DMTF model all the lifecycle stuff now officially 
lives in the VirtualSystemManagementService; duplicating support for 
it in Xen_ComputerSystem is optional (and not prescribed by the DMTF). 
Personally, I kinda like having to be able to control an object by 
methods on the object itself, rather than having to go off to a 
service somewhere, but for DMTF conformity we should probbaly just to 
the lifecycle ops in VirtualSystemManagementService and drop them from 
Xen_ComputerSystem just so that there is no confusion (and risk mgmt 
clients being built not using the one always guaranteed to be present).
As for RequestStateChange(), this does exist in the 
Xen_ComputerSystem. I need to check with Michael (DMTF VS lifecycle 
owner) if supporting this is method mandatory or optional, bust as 
described in section 9.3 of the "System Virtualizetion Profile" doc, 
the state changes supported by this extrinsic will map pretty much 
directly to the extroinsic lifecycle methods in 
VirtualSystemManagementService. 
Also, we should consider whether or not to also implement the optional 
Server Power State profile; ie RequestPowerStateChange() in 
Xen_ComputerSystem too. Also from the "System Virtualizetion Profile" doc: 
A virtual computer system can be in one of several states. The 
intrinsic RequestStateChange() operation may be used on an instance of 
CIM_ComputerSystem representing a virtual system to effect virtual 
system state changes. If the Server Power State Profile is implemented 
by a virtualization platform instrumentation, alternatively the 
RequestPowerStateChange() method of the CIM_PowerManagementService may 
be used. 
As for the implementation question you asked, my personal preference 
would be to have the actual DomU lifecycle change code located in with 
the Xen_ComputerSystem provider code, and have 
VirtualSystemManagementService make upcalls as necessary to these 
methods, rather than have all this code located externally in the 
latter provider, or worse still, duplicated in both. But that's just a 
purely aesthetic preference of mine and implementation-wise is doesnt 
matter which provider is calling which to do the actual grunt work. 
 
Looking at the latest System Virtualization Profile (posted by Michael 
today), we must support RequestStateChange() on the ComputerSystem 
object as this is the only mechanism for state transition.  
VirtualSystemManagementService only contains the following extrinsic 
methods: CloneVirtualSystem(), CreateVirtualSystemConfiguration(), 
DefineVirtualSystem(), DestroyVirtualSystem(), 
DestroyVirtualSystemConfiguration(), and ModifyVirtualSystem().  I 
agree, as you mentioned above, that it is preferable to invoke methods 
on the object itself.  So this is good :-). 
As far as Power State Profile goes, Novell SMASH project will have an 
implementation of this profile.  Does it make sense to have that 
implementation virtualization aware?  That is, if running on virt 
platform (Xen) do the right thing?  From an implementation perspective 
it's not yet clear to me how these various profiles integrate. 
Jim
_______________________________________________
Xen-cim mailing list
Xen-cim@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-cim
 | 
 |  |