Introduction

Hyper-V, Microsoft’s powerful virtualization platform, supports seamless integration with Linux guest operating systems using Hyper-V Integration Services. This guide provides detailed steps to configure Rocky Linux for optimal performance on Hyper-V, including support for both AMD and Intel processors. We’ll also provide a handy Bash script to automate the setup process.


Prerequisites

  1. A Hyper-V host with Windows Server or Windows 10/11 (Pro/Enterprise).
  2. A running Rocky Linux VM.
  3. Basic knowledge of Linux commands.
  4. Administrative access to both the Hyper-V host and the guest VM.

Step 1: Update Rocky Linux

Keeping the system updated ensures compatibility and stability. Log in to your VM and run:

sudo dnf update -y

Step 2: Install Hyper-V Integration Services

The hyperv-daemons package provides the necessary services for Linux VMs on Hyper-V.

Install the Required Packages:

sudo dnf install -y hyperv-daemons hyperv-tools

Enable and Start the Services:

sudo systemctl enable --now hypervkvpd.service
sudo systemctl enable --now hypervvssd.service
sudo systemctl enable --now hypervfcopyd.service

Step 3: Load Kernel Modules

Rocky Linux comes with built-in support for Hyper-V kernel modules, which enhance the VM’s functionality.

Load the Kernel Modules:

sudo modprobe hv_vmbus
sudo modprobe hv_netvsc
sudo modprobe hv_storvsc

Configure Automatic Loading:

Add the following lines to /etc/modules-load.d/hyperv.conf:

echo -e "hv_vmbus\nhv_netvsc\nhv_storvsc" | sudo tee /etc/modules-load.d/hyperv.conf

Step 4: (Optional) Install cloud-init for Automated Provisioning

If you use cloud-init for initialization, install it as follows:

sudo dnf install -y cloud-init
sudo systemctl enable --now cloud-init

Configure /etc/cloud/cloud.cfg as needed for your environment.


Step 5: Verify Integration

  1. On the Hyper-V Manager, check that all Integration Services (e.g., Time Synchronization, Heartbeat, Shutdown) are enabled.
  2. Verify logs to ensure services are running:
sudo journalctl -u hypervkvpd.service 
sudo journalctl -u hypervvssd.service 
sudo journalctl -u hypervfcopyd.service

Step 6: Dynamic Memory Support

Dynamic memory is critical for resource efficiency. Ensure the balloon kernel module is loaded:

sudo modprobe balloon

For automatic loading, add balloon to /etc/modules-load.d/balloon.conf:

echo "balloon" | sudo tee /etc/modules-load.d/balloon.conf

Step 7: Performance Tweaks for AMD and Intel

Both AMD and Intel processors work seamlessly with Hyper-V when properly configured.

AMD-Specific Settings:

Ensure AMD-V is enabled in the BIOS/UEFI.

Intel-Specific Settings:

Ensure Intel VT-x is enabled in the BIOS/UEFI.

Additionally, confirm nested virtualization support:

sudo dmesg | grep -i nested

Bash Script: Automate the Integration

Save the following script as hyperv_setup.sh and make it executable.

Script: hyperv_setup.sh

#!/bin/bash

# Update the system
echo "Updating the system..."
sudo dnf update -y

# Install Hyper-V tools and daemons
echo "Installing Hyper-V tools and daemons..."
sudo dnf install -y hyperv-daemons hyperv-tools cloud-init

# Enable and start Hyper-V services
echo "Enabling and starting Hyper-V services..."
sudo systemctl enable --now hypervkvpd.service
sudo systemctl enable --now hypervvssd.service
sudo systemctl enable --now hypervfcopyd.service

# Load and configure kernel modules
echo "Loading Hyper-V kernel modules..."
sudo modprobe hv_vmbus hv_netvsc hv_storvsc balloon
echo -e "hv_vmbus\nhv_netvsc\nhv_storvsc\nballoon" | sudo tee /etc/modules-load.d/hyperv.conf

# Enable and start cloud-init
echo "Enabling cloud-init..."
sudo systemctl enable --now cloud-init

# Verify services
echo "Verifying services..."
sudo systemctl status hypervkvpd.service
sudo systemctl status hypervvssd.service
sudo systemctl status hypervfcopyd.service

echo "Hyper-V integration setup completed!"

Execute the Script:

chmod +x hyperv_setup.sh
sudo ./hyperv_setup.sh

Conclusion

By following this guide or using the automation script, your Rocky Linux guest on Hyper-V will fully integrate, enabling features like dynamic memory, enhanced device support, and efficient communication with the Hyper-V host. This setup ensures optimal performance for both AMD and Intel systems.