You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cloudstack.apache.org by Donal Lafferty <do...@citrix.com> on 2013/07/10 16:34:38 UTC

[Proposal] Configuration of Hyper-V SystemVMs

Could I get some comments on the following proposal?


Background:
System VMs are passed their configuration details in the 'bootArgs' field of the StartCommand used to create and start them.  For instance, with XenServer, the vm.set_PV_args command is used.
When the SystemVM is launched, the cloud-early-config script reads this information and sets up the system VM accordingly.

Problem:
The current SystemVM does not process its configuration when running on a Hyper-V hypervisor.  See https://issues.apache.org/jira/browse/CLOUDSTACK-3449

Proposed solution:
Pass the data in the KVP service.  KVP is short for key value pair.  This service allows key / value strings to be passed between host and guest VM in either direction.
Drivers for Hyper-V's KVP exist in the Debian distro used by the current SystemVM (Debian Wheezy).  In addition, a user mode daemon, hv_kvp_daemon, must running on the SystemVM.  This daemon writes the key / value pairs to a file.

Complications:
-KVP will not work until the O/S is running, which will delay the completion of the StartCommand.
-A binary of hv_kvp_daemon needs to be found.  One option is to build from source, as hv_kvp_daemon is in the Linux kernel repo.
-If the Hyper-V host does not get proper feedback about whether hv_kvp_daemon wrote a KVP to file, it will be difficult to tell if the data was passed properly.
-An alternative to the KVP service is to place bootargs in a file on a new volume and attach this to the system VM.  However, this broadens bootargs functionality to include volume management.