- Manage Hyper-V Integration Services
- Turn an integration service on or off using Hyper-V Manager
- Turn an integration service on or off using PowerShell
- Checking the guest’s integration services version
- Start and stop an integration service from a Windows guest
- Use Windows Services to start or stop an integration service within a Windows guest
- Use PowerShell to start or stop an integration service within a Windows guest
- Start and stop an integration service from a Linux guest
- Examples
- Keep integration services up to date
- Install or update integration services for Hyper-V hosts earlier than Windows Server 2016 and Windows 10
- Feedback
- onpremisys
- Hyper-V Linux Integration Service for Ubuntu 18.04
Manage Hyper-V Integration Services
Hyper-V Integration Services enhance virtual machine performance and provide convenience features by leveraging two-way communication with the Hyper-V host. Many of these services are conveniences, such as guest file copy, while others are important to the virtual machine’s functionality, such as synthetic device drivers. This set of services and drivers are sometimes referred to as integration components. You can control whether or not individual convenience services operate for any given virtual machine. The driver components are not intended to be serviced manually.
For details about each integration service, see Hyper-V Integration Services.
Each service you want to use must be enabled in both the host and guest in order to function. All integration services except Hyper-V Guest Service Interface are on by default on Windows guest operating systems. The services can be turned on and off individually. The next sections show you how.
Turn an integration service on or off using Hyper-V Manager
- From the center pane, right-click the virtual machine and select Settings.
- From the left pane of the Settings window, under Management, select Integration Services.
The Integration Services pane lists all integration services available on the Hyper-V host, and whether the host has enabled the virtual machine to use them.
Turn an integration service on or off using PowerShell
The following examples demonstrate turning the guest file copy integration service on and off for a virtual machine named DemoVM.
- Get a list of running integration services:
Get-VMIntegrationService -VMName "DemoVM"
VMName Name Enabled PrimaryStatusDescription SecondaryStatusDescription ------ ---- ------- ------------------------ -------------------------- DemoVM Guest Service Interface False OK DemoVM Heartbeat True OK OK DemoVM Key-Value Pair Exchange True OK DemoVM Shutdown True OK DemoVM Time Synchronization True OK DemoVM VSS True OK
Enable-VMIntegrationService -VMName "DemoVM" -Name "Guest Service Interface"
Get-VMIntegrationService -VMName "DemoVM"
Disable-VMIntegrationService -VMName "DemoVM" -Name "Guest Service Interface"
Checking the guest’s integration services version
Some features may not work correctly or at all if the guest’s integration services are not current. To get the version information for Windows, sign in to the guest operating system, open a command prompt, and run this command:
REG QUERY "HKLM\Software\Microsoft\Virtual Machine\Auto" /v IntegrationServicesVersion
Earlier guest operating systems will not have all available services. For example, Windows Server 2008 R2 guests cannot have the Hyper-V Guest Service Interface.
Start and stop an integration service from a Windows guest
In order for an integration service to be fully functional, its corresponding service must be running within the guest in addition to being enabled on the host. In Windows guests, each integration service is listed as a standard Windows service. You can use the Services applet in Control Panel or PowerShell to stop and start these services.
Stopping an integration service may severely affect the host’s ability to manage your virtual machine. To work correctly, each integration service you want to use must be enabled on both the host and guest. As a best practice, you should only control integration services from Hyper-V using the instructions above. The matching service in the guest operating system will stop or start automatically when you change its status in Hyper-V. If you start a service in the guest operating system but it is disabled in Hyper-V, the service will stop. If you stop a service in the guest operating system that is enabled in Hyper-V, Hyper-V will eventually start it again. If you disable the service in the guest, Hyper-V will be unable to start it.
Use Windows Services to start or stop an integration service within a Windows guest
- Open Services manager by running services.msc as an Administrator or by double-clicking the Services icon in Control Panel.
- Find the services that start with Hyper-V.
- Right-click the service you want start or stop. Select the desired action.
Use PowerShell to start or stop an integration service within a Windows guest
Get-Service -Name vmic* | FT -AutoSize
Status Name DisplayName ------ ---- ----------- Running vmicguestinterface Hyper-V Guest Service Interface Running vmicheartbeat Hyper-V Heartbeat Service Running vmickvpexchange Hyper-V Data Exchange Service Running vmicrdv Hyper-V Remote Desktop Virtualization Service Running vmicshutdown Hyper-V Guest Shutdown Service Running vmictimesync Hyper-V Time Synchronization Service Stopped vmicvmsession Hyper-V PowerShell Direct Service Running vmicvss Hyper-V Volume Shadow Copy Requestor
Stop-Service -Name vmicvmsession
Start and stop an integration service from a Linux guest
Linux integration services are generally provided through the Linux kernel. The Linux integration services driver is named hv_utils.
- To find out if hv_utils is loaded, use this command:
Module Size Used by hv_utils 20480 0 hv_vmbus 61440 8 hv_balloon,hyperv_keyboard,hv_netvsc,hid_hyperv,hv_utils,hyperv_fb,hv_storvsc
root 236 2 0 Jul11 ? 00:00:00 [hv_vmbus_con] root 237 2 0 Jul11 ? 00:00:00 [hv_vmbus_ctl] . root 252 2 0 Jul11 ? 00:00:00 [hv_vmbus_ctl] root 1286 1 0 Jul11 ? 00:01:11 /usr/lib/linux-tools/3.13.0-32-generic/hv_kvp_daemon root 9333 1 0 Oct12 ? 00:00:00 /usr/lib/linux-tools/3.13.0-32-generic/hv_kvp_daemon root 9365 1 0 Oct12 ? 00:00:00 /usr/lib/linux-tools/3.13.0-32-generic/hv_vss_daemon user 43774 43755 0 21:20 pts/0 00:00:00 grep --color=auto hv
hv_vss_daemon hv_get_dhcp_info hv_get_dns_info hv_set_ifconfig hv_kvp_daemon hv_fcopy_daemon
- hv_vss_daemon: This daemon is required to create live Linux virtual machine backups.
- hv_kvp_daemon: This daemon allows setting and querying intrinsic and extrinsic key value pairs.
- hv_fcopy_daemon: This daemon implements a file copying service between the host and guest.
Examples
These examples demonstrate stopping and starting the KVP daemon, named hv_kvp_daemon .
- Use the process ID (PID) to stop the daemon’s process. To find the PID, look at the second column of the output, or use pidof . Hyper-V daemons run as root, so you’ll need root permissions.
sudo kill -15 `pidof hv_kvp_daemon`
Keep integration services up to date
We recommend that you keep integration services up to date to get the best performance and most recent features for your virtual machines. This happens for Windows guests by default if they are set up to get important updates from Windows Update. Linux guests using current kernels contain integration services built in, but there may be optional updates available. You will receive the latest integration components when you update the kernel. For more information about Linux guests, see Supported Linux and FreeBSD virtual machines for Hyper-V on Windows.
The image file Integration Services disk (vmguest.iso) isn’t included with Hyper-V starting with Windows Server 2016 and Windows 10 because it’s no longer needed. Windows Server 2012 and older require the Data Exchange integration service. If the Data Exchange integration service can’t be enabled, integration services for these guests are available from the Download Center as a cabinet (cab) file. Instructions for applying a cab are available in this Microsoft TechCommunity blog post. If your Hyper-V host is running Windows Server 2012 R2 and older, see the next section for how to install or update integration services.
Install or update integration services for Hyper-V hosts earlier than Windows Server 2016 and Windows 10
This isn’t required for Windows Server 2016 and Windows 10 or newer.
For Hyper-V hosts earlier than Windows Server 2016 and Windows 10, you’ll need to manually install or update the integration services in the guest operating systems.
To manually install or update the integration services:
- Open Hyper-V Manager.
- Connect to the virtual machine. Right-click the virtual machine and select Connect.
- From the Action menu of Virtual Machine Connection, select Insert Integration Services Setup Disk. This action loads the setup disk in the virtual DVD drive. Depending on the guest operating system, you might need to start the installation manually from File Explorer.
- After the installation finishes, integration services are available for use.
Feedback
Submit and view feedback for
onpremisys
Sharing thoughts on running an on-premise hosting platform.
Bas RooversFollow Author of onpremisys and working in IT for over 10 years. Loves good discussions and new technologies.
Hyper-V Linux Integration Service for Ubuntu 18.04
Linux Integration Services. Linux Integration Services (LIS) is a package of drivers and services that enhance the performance of Linux-based virtual machines on Hyper-V. It enables features like:
- Graceful Shutdown
- Heartbeat to Hyper-V Manager
- Firewall Management IP Address Visibility
- Hot-add memory
According to the Microsoft documentation on Ubuntu virtual machines, they state that Linux Integration Service is built into the OS. However this is not the case. So in order to make use of the benefits of LIS, you need to perform some manual steps.
# Add hv_modules to /etc/initramfs-tools/modules echo 'hv_vmbus' >> /etc/initramfs-tools/modules echo 'hv_storvsc' >> /etc/initramfs-tools/modules echo 'hv_blkvsc' >> /etc/initramfs-tools/modules echo 'hv_netvsc' >> /etc/initramfs-tools/modules # Replace Out of Box Kernal with linux-virtual apt -y install linux-virtual linux-cloud-tools-virtual linux-tools-virtual # Update Initramfs update-initramfs -u # Reboot Server reboot
For more information on virtualizing Linux workloads in Windows Server see this Channel 9 video.