Hi Marcus,
This is somewhat a rhetorical question, but I wanted to confirm anyway.
The 4.2 SystemVMs use a VirtIO socket on KVM to get their boot
arguments. That is great, since there is no longer a need for patch
disks which enables them to run on RBD.
One of the things I dislike about the KVM agent is all the scripts it
runs, I'd rather see them all disappear since executing scripts and
getting the correct exit statuses is always a difficult thing.
Anyway, the patchviasocket.pl script opens the VirtIO Unix Socket on the
hypervisor and writes some data to it.
I've been searching and with some third party libraries it is also
possible to do this natively from Java, for example:
* http://www.matthew.ath.cx/projects/java/
* http://code.google.com/p/junixsocket/
They require libraries on the system with JNI though, so it will make
our packaging efforts harder. Was this the reasoning behind doing this
in Perl?
If so, why Perl? Since most of the stuff in CloudStack is done in Java,
Python or Bash, why Perl? Couldn't we rewrite this in Python if we don't
want to do this in Java?
Wido