[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] RFC: Configuring rumprun-xen application stacks from Xenstore
(Cc-ing xen-devel as this is relevant to general use of "application-specific" domains, MirageOS, etc.) Hi, back in July there was some discussion on configuring rump kernel application stacks: http://thread.gmane.org/gmane.comp.rumpkernel.user/321 Some proposals were made, but no actual implementation work was done. In the mean time, I have implemented the simplest possible mechanism I could think of for rumprun-xen, using Xenstore. The patches are available for review as PR #12: https://github.com/rumpkernel/rumprun-xen/pull/12 Following is the high-level description from the Git commit: In order to run rumprun-xen applications that are actually useful, we need to be able to configure block devices and network interfaces. These changes implement a basic mechanism to do this using Xenstore. Conceptually the changes consist of the following parts which work together: - The rumpconfig module provides _rumprun_config() and _rumprun_deconfig() functions. These are called before and after the application main() function, and also in the case of deconfig when _exit() is called. - These functions rely on keys like the following being present in Xenstore at the time the domain is started: /local/domain/<domid>/rumprun/net/0/... (first network interface) /local/domain/<domid>/rumprun/net/1/... (second network interface) /local/domain/<domid>/rumprun/blk/0/... (first block device) /local/domain/<domid>/rumprun/blk/1/... (second block device) - The "xr" driver script, currently located in app-tools/. The motivation for this script is twofold: Firstly, in order to write the configuration to Xenstore the domain must be created in a paused state so that we can retrieve its unique . Only then do we know where in Xenstore to write the configuration data. Secondly, it is my intention with this work to provide a "docker-alike" interface for running rumprun applications. The "xr" script is therefore the CLI for running such applications. Note that in this initial version, only configuring IPv4 network interfaces with DHCP is supported, and only using image files with ffs or cd9660 filesystems for block devices is supported. Xen people: I'm especially interested in whether or not this is a valid use of Xenstore. Further: I originally wanted to just add the rumprun/* keys to the (generated) domain configuration file, but it turns out that xl does not allow adding arbitrary keys or at least they don't show up in Xenstore for the domain. Hence the "two-step" approach with first creating the paused domain, then writing the keys to Xenstore and starting the domain. Martin _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |