Meandering thoughts of the Knight household, mostly work and technology related guff.

Monday, August 13, 2012

Hyper-V Integration Components for FreeBSD – Patchfiles

Call me old fashioned, but I’d much prefer a patchset than having to install a version control package and suck down a source code check out. So please find a patchset for the Hyper-V integration components for the following versions of FreeBSD:

Before booting to the Hyper-V enabled kernel it’s best to use GEOM labels to mount the partitions. Follow the instructions here to do this. This makes it easy for you to quickly swap between a Hyper-V enabled kernel and a non-Hyper-V enabled kernel – the reason being the Fast IDE storage driver presents itself as a SCSI driver, changing the device node path which prevents /etc/fstab from working correctly.

It’s worth noting that although I’ve fixed the modules from compiling (compared with the git clone source I pulled down), loading them from a non-Hyper-V enabled kernel will cause a kernel panic. So you need the integration components compiled into the kernel via the HYPERV kernel option.

The other problem I’ve found is that the network driver mostly works for UDP traffic, but regularly stalls on TCP traffic. Hadn’t had a chance to debug it yet.

Very happy with the increased disk performance, the ability to get heartbeat information and the ability to cleanly shut down the guests from the Hyper-V host. Looking forward to KVP communication and a working network driver.

@anonymous - I created the patches against the source code for the releases. If you're using freebsd-update, csup or similar tool to keep your source code up-to-date, then it would be best to re-apply the patch to fix up the modified files in the Freebsd source tree.Your English is fine. It's much better than me trying to communicate in your native language.

From https://github.com/FreeBSDonHyper-V/freebsd/wiki/Build-the-kernel-with-the-HyperV-drivers of http://freebsdonhyper-v.github.com/ the git of FreeBSD 8.2 RELEASE - the same behavior as is described above.The main concept of FreeBSD is are network operations, but this main function do not working that crosses out other done work in this direction (hyper-v integration) :(

Just an FYI for those reading, the network stall issues are long since fixed. The latest sources on github work quite nicely, I've been running a patched 9.1 on hyper-v for months with no problems. I'm soon going to try using the latest version and tools and see what improvements are in place, from what I've seen they've got kvp working.

Hi Anonymous. I've not had the time to revisit the Hyper-V patches yet. Hopefully I will have some time this weekend or next to update the patchset and see if it works with x86 builds too (I need this myself to migrate some old 4.x installs).

No I haven't. They're now integrated into the source code and works out of the box for FreeBSD 10.0 x64 and can be kernel loaded or custom kernel for FreeBSD 10.0 x86.I don't know when I'll get to updated patches for previous versions.