WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH 0/8] Domain Groups: Introduction

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH 0/8] Domain Groups: Introduction
From: Chris <hap10@xxxxxxxxxxxxxx>
Date: Tue, 20 Feb 2007 14:55:33 -0500
Delivery-date: Tue, 20 Feb 2007 11:56:17 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird 1.5.0.9 (Macintosh/20061207)
This patchset allows the user to define and manage groups of domains.
The patch augments the xm utility with the following commands:
grp-create, grp-shutdown, grp-destroy, grp-reboot, grp-pause,
grp-unpause, grp-save, grp-restore, grp-join, and grp-migrate.

A goal during development of group operations was to match support for
common domain operations: create, shutdown, destroy, reboot, pause,
unpause, save, restore, and migrate.  Their group-specific counterparts
do what you would expect, but operate on a group of domains instead of
on a single domain.

Groups are defined using a configuration file (similar to the domain
configuration file) that specifies member domains.  Groups have names,
IDs, and UUIDs, much like domains.  Group membership is dynamic; running
domains can be moved between groups using the 'xm grp-join' command.
Domains can be a member of one and only one group at any time.

We also made use of the Xen API, so third party developers should find
it feasible to drive group operations without relying solely on the xm
interface.

To achieve grouping functionality we chose to augment both the control
stack and the hypervisor.  Augmenting the hypervisor allows, among other
things, integration with a MAC framework (either the proposed XSM
framework or existing the ACM framework), which will produce a powerful
policy mechanism to define access control properties in terms of domain
groups.

Two default groups are defined: Group-0 and the Null-Group.  Domain-0
is, by default, the only domain in Group-0.  It is our hope that Group-0
will be a useful way to collect and isolate privileged domains,
particularly during the decomposition of domain 0.  The Null-Group is
used for domains that have not been explicitly put into a group.  Upon
integration with a MAC framework it would be possible to impose rules on
the Null-Group to make it a jail where no two members can communicate;
it should also be equally feasible to make the Null-Group a "don't care"
zone where any inter-domain interactions are allowed.

On the purely practical side, we believe group migration will be an
attractive tool allowing system administrators to move groups of domains
between machines.  Live migration is also supported.  For usage we
envision, for example, a group of interdependent database, web, and mail
servers, where migrating these domains as a group has obvious
operational advantages.  Also, for hosting service providers, it seems
useful to group domains belonging to a specific customer.

Future Work:

1. Currently lacking is support for grp-suspend/grp-resume.  Work is
underway on this feature.
2. Operation ordering: it is advantageous to guarantee the order of
group operations.  A practical example is to ensure that the group's
database server is always running before and after the group's web server.

Patch Application:
- Patches should apply cleanly to cs 14006
- Apply patches in any order.

----

 b/tools/examples/xmexample.grp                 |   20 +
 b/tools/libxc/xc_domain_group.c                |  100 +++++++
 b/tools/python/xen/xend/XendDomainGroup.py     |  345
+++++++++++++++++++++++++
 b/tools/python/xen/xend/XendDomainGroupInfo.py |  239 +++++++++++++++++
 b/tools/python/xen/xm/group.py                 |  274 +++++++++++++++++++
 b/xen/common/domgrp.c                          |  317
++++++++++++++++++++++
 b/xen/common/domgrpctl.c                       |  134 +++++++++
 b/xen/include/public/domgrpctl.h               |   86 ++++++
 b/xen/include/xen/domgrp.h                     |   36 ++
 tools/examples/Makefile                        |    1
 tools/libxc/Makefile                           |    1
 tools/libxc/xc_domain.c                        |    4
 tools/libxc/xc_private.h                       |   31 ++
 tools/libxc/xenctrl.h                          |   31 ++
 tools/python/xen/lowlevel/xc/xc.c              |  241 +++++++++++++++--
 tools/python/xen/xend/XendCheckpoint.py        |   49 +++
 tools/python/xen/xend/XendClient.py            |    1
 tools/python/xen/xend/XendConfig.py            |   25 +
 tools/python/xen/xend/XendConstants.py         |   11
 tools/python/xen/xend/XendDomain.py            |   10
 tools/python/xen/xend/XendDomainInfo.py        |   26 +
 tools/python/xen/xend/XendError.py             |    4
 tools/python/xen/xend/server/XMLRPCServer.py   |   34 ++
 tools/python/xen/xm/create.py                  |    8
 tools/python/xen/xm/main.py                    |  161 +++++++++++
 xen/arch/ia64/xen/xensetup.c                   |    7
 xen/arch/powerpc/powerpc64/hypercall_table.S   |    1
 xen/arch/powerpc/setup.c                       |    7
 xen/arch/x86/setup.c                           |    7
 xen/arch/x86/x86_32/entry.S                    |    2
 xen/arch/x86/x86_64/entry.S                    |    2
 xen/common/Makefile                            |    2
 xen/common/domain.c                            |    8
 xen/common/domctl.c                            |   11
 xen/include/public/domctl.h                    |    2
 xen/include/public/xen.h                       |    5
 xen/include/xen/hypercall.h                    |    5
 xen/include/xen/sched.h                        |   21 +
 38 files changed, 2220 insertions(+), 49 deletions(-)



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel