[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Control tools work
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 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |