cloudstack/systemvm
Wido den Hollander 2a5f37c1b1
CLOUDSTACK-8715: Add channel to Instances for Qemu Guest Agent
This commit adds a additional VirtIO channel with the name
'org.qemu.guest_agent.0' to all Instances.

With the Qemu Guest Agent the Hypervisor gains more control over the Instance if
these tools are present inside the Instance, for example:

* Power control
* Flushing filesystems
* Fetching Network information

In the future this should allow safer snapshots on KVM since we can instruct the
Instance to flush the filesystems prior to snapshotting the disk.

More information: http://wiki.qemu.org/Features/QAPI/GuestAgent

Keep in mind that on Ubuntu AppArmor still needs to be disabled since the default
AppArmor profile doesn't allow libvirt to write into /var/lib/libvirt/qemu

This commit does not add any communication methods through API-calls, it merely
adds the channel to the Instances and installs the Guest Agent in the SSVMs.

With the addition of the Qemu Guest Agent channel a second channel appears in /dev
on a SSVM as a VirtIO port.

The order in which the ports are defined in the XML matters for the naming inside
the SSVM VM and by not relying on /dev/vportXX but looking for a static name the
SSVM still boots properly if the order in the XML definition is changed.

A SSVM with both ports attached will have something like this:

  root@v-215-VM:~# ls -l /dev/virtio-ports
  total 0
  lrwxrwxrwx 1 root root 11 May 13 21:41 org.qemu.guest_agent.0 -> ../vport0p2
  lrwxrwxrwx 1 root root 11 May 13 21:41 v-215-VM.vport -> ../vport0p1
  root@v-215-VM:~# ls -l /dev/vport*
  crw------- 1 root root 251, 1 May 13 21:41 /dev/vport0p1
  crw------- 1 root root 251, 2 May 13 21:41 /dev/vport0p2
  root@v-215-VM:~#

In this case the SSVM port points to /dev/vport0p1, but if the order in the XML
is different it might point to /dev/vport0p2

By looking for a portname with a pre-defined pattern in /dev/virtio-ports we
do not rely on the order in the XML definition.

Signed-off-by: Wido den Hollander <wido@widodh.nl>
2016-11-23 16:01:08 +01:00
..
bindir Move the system vm to a separate maven project. 2013-09-20 18:31:02 +08:00
certs Move the system vm to a separate maven project. 2013-09-20 18:31:02 +08:00
conf CLOUDSTACK-9062: Improve S3 implementation. 2015-11-19 15:29:10 +01:00
conf.dom0 CLOUDSTACK-9105: Logging enhancement: Handle/reference to track API calls end to end in the MS logs 2015-12-04 12:45:57 +05:30
css console-proxy add support of AltGr key and FR azerty keyboard 2014-12-08 18:05:43 +05:30
distro CLOUDSTACK-6220: Take 2, Fix cloudstack init scripts so that they 2014-03-10 16:11:52 -06:00
images Move the system vm to a separate maven project. 2013-09-20 18:31:02 +08:00
js CLOUDSTACK-9164: Prevent firefox's quick search from opening in VM console 2016-04-25 11:37:43 +05:30
libexec Move the system vm to a separate maven project. 2013-09-20 18:31:02 +08:00
patches/debian CLOUDSTACK-8715: Add channel to Instances for Qemu Guest Agent 2016-11-23 16:01:08 +01:00
scripts Add Java Default Certificat Authorities into the keystore if using a custom cert SSL 2016-05-25 06:34:15 +01:00
test/python Fixed defaultroute on VPC routers in CsRoute and CsAddress 2015-08-24 13:35:29 +02:00
ui Move the system vm to a separate maven project. 2013-09-20 18:31:02 +08:00
vm-script Move the system vm to a separate maven project. 2013-09-20 18:31:02 +08:00
pom.xml Adds support for four position versions and optional db upgrades 2016-08-30 13:32:32 +05:30
systemvm-descriptor.xml Remove duplicate scripts and move the remaining items to the systemvm project 2013-10-14 08:02:35 +02:00