New guest tools ISO for Linux and FreeBSD. Can you help with the tests?
stormi Vates 🪐 XCP-ng Team 🚀
Actually, on any recent enough Linux system (ie not many years old) , the PV drivers are directly included in the kernel. Unless, maybe, a very specific distro decides that they don't want Xen support in their kernel.
So the tools you install on the VMs are merely an agent to make the VM more cooperative with the hypervisor, but they don't affect performance.
The situation is different on Windows systems where you need to install PV drivers to achieve better performance.
I had a look at getting the xe-guest-utilities working on Ipfire v2 now (core 173, the latest version).
Using a new /usr/sbin/xe-linux-distribution script, like suggested here, allows it to detect the ipfire.
I then manually copied the binaries and scripts from the linux tar file, into the folders in Ipfire, since the install script did not seem to handle Ipfire properly.
When starting the daemon using /etc/init.d/xe-linux-distribution, the next problem was that the "action" function does not exist in the /etc/init.d/functions file in Ipfire.
So I just edited the script, replacing the "else" with an "fi" in the if testing where the functions file is sources, so that the locally defined action method is used.
Then the agent started fine.
Then I also saw the issue of the IP address not being reported.
In my setup, there are two reasons for this. One is that Ipfire uses "red0", "green0", "blue0" etc as interface names, which the xe-guest-utilities will not consider.
The other reason is that I do PCI passthrough of 3 network cards to the Ipfire, and hence does not use the "vif" interface/network that XCP-ng makes available to the Ipfire. Althought the "green0" is really on the same network as the "vif" in my setup.
This was using the 7.30 tar file from the XCP ISO, I think.
I then cloned the 7.33 / master version of xe-guest-utilities from github, and used that thereafter.
I manually changed and built the xe-guest-utilities, adding "red", "green", "blue" to the list of interface prefixes that got considered, but it did not help.
I suspect the reason is that these interfaces does not have a /sys/class/net/eth0/device/nodename entry, which contains a reference to the "vif" that XCP-ng knows about, as I understand it.
/sys/class/net/eth0/device/nodename exists, but the eth0 is not assigned any IP address, since it is not used by IPfire.
While there is no /sys/class/net/green0/device/nodename entry.
I am not sure who is "creating" this "nodename" entry, but I suspect is it Xen.
And I suspect it is missing, since the green0 interface has no relationsship with the dom0 really.
But then I also got more questions around what is actually meant to be displayed of "network" info in the XOA web UI. Is it only the network between dom0 and domU ? Or ideally all networks defined on domU ? (i.e. red0 and blue0 and orange0 ) ?
And I also think I spotted a bug on the "Stats" page of XOA, since under "Disk throughput", it seems like always "xvda" and "xvdd" is displayed, even if the host only has one disk, "xvda". But that I should report as a bug, if I do not find it as already reported / known.
While playing with this, I also noticed that the management agent version was not properly displayed, i.e. not at all. And this seems to be caused by the the version constants not being replaced while building the daemon.
I am not a go build expert, so I'll investigate it a bit more. But it seems like I'm not the only one with that issue, because the same problem seems to exist with the xe-guest-utilities that are part of Alpine Linux 3.17 distribution.
I do not think that there are that many running Ipfire on XCP-ng/Xen. I've been briefly involved in some pull requests against Ipfire, so I might look at making one for getting the xe-guest-utilities into Ipfire itself, but since the use is not high, I have a doubt it makes much sense.
Thanks for a great tool in XCP-ng, I enjoy using it in my home setup.