All of lore.kernel.org
 help / color / mirror / Atom feed
* Control tools work
@ 2005-05-31 17:57 Charles Coffing
  2005-05-31 21:07 ` Christian Limpach
  2005-05-31 23:33 ` Jacob Gorm Hansen
  0 siblings, 2 replies; 12+ messages in thread
From: Charles Coffing @ 2005-05-31 17:57 UTC (permalink / raw)
  To: xen-devel

I've been looking at the next-generation of control tools, and see some areas that I think still need some work.  I'm working on some code that will be ready "soon", but I wanted to post and get feedback on my ideas now rather than later.  Here are the things I'm working on:

1.  Providing a higher-level consistent API for domain actions (create, save, migrate, restore, pause, etc).

2.  Making the tools/libraries agnostic w.r.t. the guest OS type.

3.  Pushing rate-limiting lower into the IO streams.

4.  Making xfrd's functionality available as a library.


I'll give you some of my motivation, for each of these items:

1.  Higher-level API:  This is listed as a task in Andrew/Keir/Christian's Xen Control Tools Design Plan.  This is also becoming important to support items #2 and #4.

2.  OS agnostic:  I can give some examples of where this is not the case (migrations assume Linux; rate limiting is only Linux, etc).  But beyond specific examples, making things OS agnostic forces some concepts to be clarified in the code.  High-level commands (such as "create") logically have a fixed sequence of steps, regardless of the OS type.  Those high-level logical steps should be separate from OS-specific implementation details.  Mixing the two creates maintenance and portability headaches.

3.  Rate limiting:  Rate limiting should be available to all IO streams, regardless of OS and regardless of the current action.  Currently it is only available for a Linux domain.  I'm pushing this down the stack, so that it is more transparent (but optional still).

4.  libxfrd:  Xend and xfrd are tied pretty tightly together via an SXP-based protocol.  Once xend is gone, either xfrd will need to be reworked or the xend replacement will need to adhere to this protocol.  Since we're moving towards multiple single-purpose tools (e.g., VM-tools), continuing to maintain this protocol would be awkward.  I would prefer to have xfrd's functionality available as a library, that any tool can link against.  I still see the receiving end of xfrd running as a daemon (a small daemon using the xfrd library, that is).  But commands that want to initiate xfrd-style sends can call the library directly.  Other advantages of this are that progress reports can be done via a simple C callback, and you can get finer-grained error reporting (rather than the current success/failure code).  Once you start looking at this within a larger management framework, these things become important.


I'm refactoring / rewriting / writing code in xutil, libxc, and xfrd (although it wouldn't be hard to slip libxen in there instead of libxc if that is the ultimate direction).  I hope to have something to show in a week or two.

Cheers,
Charles

^ permalink raw reply	[flat|nested] 12+ messages in thread
* Re: Control tools work
@ 2005-05-31 21:29 Charles Coffing
  2005-05-31 21:48 ` Daniel Stekloff
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Charles Coffing @ 2005-05-31 21:29 UTC (permalink / raw)
  To: christian.limpach; +Cc: xen-devel

Christian,

I've done a pull and now see the functionality in XendCheckpoint.py; thanks for the heads-up.

But how do you see things outside of xm & xend accessing this functionality?  In particular, I'm thinking of a CIMOM provider written in C++.  Forking/exec-ing an "xm migrate" command is less than ideal, for several reasons (progress reporting, error reporting without having to grok text, overhead on a busy server, ...)  In my ideal world, this level of functionality would be in C or C++ libraries, so you can put whatever you want on top of it, be it Python commands or C++ CIMOM code or anything else.

I don't necessarily want to revive the old Python debate, but this does complicate things.

Thanks,
Charles


>>>christian.limpach@gmail.com 05/31/05 3:07 pm >>> 
On 5/31/05, Charles Coffing <ccoffing@novell.com> wrote: 
 
>1.  Providing a higher-level consistent API for domain actions 
>(create, save, migrate, restore, pause, etc). 
 
I'm no longer convinced there is a much higher API to have.  Except 
for create and migrate, all the actions you list are already single 
functions in libxc, migrate is save | restore.  It might be useful to 
group several functions together for create, but it's not quite clear 
how/where device configuration fits in there. 
 
>I'm refactoring / rewriting / writing code in xutil, libxc, and xfrd 
>(although it wouldn't be hard to slip libxen in there instead of libxc 
>if that is the ultimate direction).  I hope to have something to show 
>in a week or two. 
 
Please note that xfrd does no longer exist in -unstable.  Also we 
don't use libxutil anymore. 
Xend handles the first half of a relocation itself and then runs the 
xc_save or xc_restore helper programs to do the second part. During 
the first part of a relocation, the xend domain configuration is 
exchanged and the format of this part is specific to xend.  The 
xc_save and xc_restore helpers are merely wrappers for the 
xc_linux_save and xc_linux_restore functions and use pipes to 
communicate with xend and write/read the virtual machine image to/from 
a file handle or socket. 
 
   christian 
 
 
Xen-devel mailing list 
Xen-devel@lists.xensource.com 
http://lists.xensource.com/xen-devel 

^ permalink raw reply	[flat|nested] 12+ messages in thread
[parent not found: <s29c82f6.030@sinclair.provo.novell.com>]
* Re: Control tools work
@ 2005-06-01 13:56 Charles Coffing
  0 siblings, 0 replies; 12+ messages in thread
From: Charles Coffing @ 2005-06-01 13:56 UTC (permalink / raw)
  To: Christian.Limpach; +Cc: xen-devel

Christian,

> [1] I think I'll make the control pipe and error/progress reporting 
> filehandles function call arguments to make it easier to use 
> {save,restore} when you link libxc into your application. 
> Although I really think you want to run these in a seperate process to 
> isolate them from your main application.  If there's real demand we 
> could bring back something like ioctxt to give you callbacks for 
> control/error/progress. 

Is there a specific reason you suggest running these in a separate process?  I'm wondering if this is just a general preference because isolation tends to be a good thing, or if you suspect, say, a maliciously crafted domain could somehow crash the domain builder function.

Thanks for your explanations, by the way.

Charles

^ permalink raw reply	[flat|nested] 12+ messages in thread
[parent not found: <s29d6a51.010@sinclair.provo.novell.com>]

end of thread, other threads:[~2005-06-03  1:01 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-05-31 17:57 Control tools work Charles Coffing
2005-05-31 21:07 ` Christian Limpach
2005-05-31 23:33 ` Jacob Gorm Hansen
2005-06-01 10:28   ` Grzegorz Milos
  -- strict thread matches above, loose matches on Subject: below --
2005-05-31 21:29 Charles Coffing
2005-05-31 21:48 ` Daniel Stekloff
2005-05-31 22:25 ` Steven Hand
2005-06-01  0:25   ` Christian Limpach
2005-06-03  1:01 ` Anthony Liguori
     [not found] <s29c82f6.030@sinclair.provo.novell.com>
2005-06-01  0:15 ` Christian Limpach
2005-06-01 13:56 Charles Coffing
     [not found] <s29d6a51.010@sinclair.provo.novell.com>
2005-06-01 20:13 ` Christian Limpach

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.