One being involved into multiple commercial OpenStack deployments can’t help noticing that one of the most frequent requests from customers is the support of Windows as a guest operating system. At the same time customers expect this support to be somewhat smart compared to the *nix like systems support. Currently there seems to be no better non-hackish solution than guest agents once proposed and implemented by the Rackspace company for Xen-based OpenStack installations. The guest agent is a background service which runs within the guest operating system, receives and executes commands issued by a cloud user via the CLI or web-interface. The sphere of guest agent applications is not limited with Windows-related features support, it includes lots of guest side magic for other guest types as well. Scope of possible applications for guest agents - Instance access recovery = Resetting administrator’s password in a secure manner = Resetting networking configuration to default one - Guest-side preparation of an instance for further snapshotting (in particular actual for Windows instances) - Guest side software installation and configuration (serving as a Chef/Puppet bootstrap) - Block device management = Optional creation of file system on newly attached block devices = Resizing of system partition on instance spawn according to the flavor used - Advanced monitoring of an instance state = Collection of some sophisticated parameters (e.g. disk or memory usage) which can’t be obtained from outside - Updating of guest side PV drivers for a specific hypervisor (e.g. Xen Guest tools) - File system-agnostic file injection Proposed agenda for brainstorming - Responsibilities and functions of guest-side agent - Security considerations, restricting access to instances - Implementation details = Programming language, toolset and packaging for various target OS - OpenStack and guest agent interoperation details = Communication channels in case of different hypervisors = Choosing an appropriate communication model (pull/push, persistent connection/polling etc.) = Definition of low-level communication protocol details - OpenStack-side support for guest agent functions = Existing management command support (like nova set-root-password) = Additional management commands definition and implementation = Extension of Nova API (if required) = Dashboard extension (Session lead is Artem Andreev)
Wednesday April 18, 2012 5:30pm - 5:55pm PDT
Marina