Overview

Linux Integration Services is a set of drivers that enable synthetic device support in Linux VMs under Hyper-V.

The stand-alone LIS package can be installed as an upgrade in older Linux distributions with LIS built-in, but the package has not been updated since March 2020 and development is mostly stalled. If you are experiencing problems on newer distribution versions, I would recommend updating the kernel instead.

Supported Linux Distributions

  • RHEL 5.2 to 7.6
  • CentOS 5.2 to 7.6
  • Oracle Linux 6.4 to 7.6, with Red Hat Compatible Kernel

Features

  • SRIOV (for example, Azure Accelerated Networking) capability for Red Hat Enterprise Linux, CentOS, and Oracle Linux with the Red Hat Compatible Kernel versions 6.7-6.10 (64-bit only)
  • Updated mlx4 and mlx5 drivers for Red Hat Enterprise Linux, CentOS, and Oracle Linux with the Red Hat Compatible Kernel versions 7.3-7.4.
  • Linux Integration Services uses the Hyper-V TimeSync protocol to implement a Precision Time Protocol service with this time source.

See Hyper-V Guest Features for recent feature development that might not be available in the LIS package.

Usage

Validate Installation

Linux Integration Services kernel modules can be listed with the modinfo command.

# modinfo hv_vmbus
filename:    /lib/modules/2.6.32-71.el6.x86_64/extra/microsoft-hyper-v/hv_vmbus.ko
version:     4.3.5
...

This command can be repeated for all kernel modules (hv_vmbus, hv_netvsc, hv_storvsc, hv_blkvsc, and hv_utils), but only out-of-tree modules will have “version” information. See also List Out-of-Tree Modules in Linux.

To verify that all subcomponents are running in the kernel, execute the following command:

/sbin/lsmod | egrep -i "^hv|hyperv"

TimeSync PTP Service

To verify the device is the TimeSync device, check the clock name:

$ ls /sys/class/ptp
ptp0  ptp1
$ cat /sys/class/ptp/ptp0/clock_name
hyperv

To switch to the host clock when using chronyd, enable TimeSync as a source in /etc/chrony.conf:

refclock PHC /dev/ptp0 poll 3 dpoll -2 offset 0

Latest documentation for TimeSync is available at https://learn.microsoft.com/en-us/azure/virtual-machines/linux/time-sync#tools-and-resources. Note the udev rule requirement and stratum 2 configuration.

References