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.