Linux on Hyper-V
Tudor Damian, Microsoft Virtual Machine MVP
@tudydamian – www.tudy.tel
Agenda
• Short overview
• Enlightened vs. emulated
• A bit of history
• What’s officially supported?
• What actually works?
• How does it work?
• More about Linux Integration Services
• Linux P2V conversions for Hyper-V
• Backing-up Linux VMs
• MAP Toolkit 6.5
• The future of Linux on Hyper-V
Hyper-V architecture
How does it work?
• VSP (virtualization service provider)
• Hyper-V component in the”parent partition”
• Communicates with the hardware drivers
• Gives access to the host resources
• VSC (virtualization service client)
• Drivers for”synthetic devices” installed in the enlightened guest OS
• Exposes every virtual device and translates I/O requests
• There’s always a VSP/VSC pair
• VMBus (virtual machine bus)
• A high-speed point-to-point in-memory bus
• Allows the communication between VSPs and VSCs through Hyper-V
• For Linux, every VSC has a DIM (Driver Interface Mapper)
• DIMs interact with the Linux Kernel like any other driver
• There’s also a “VSC core” based on each existing VSP
Emulated vs. enlightened
• Emulated drivers• Drivers are “emulated”
• All requests targeting the hardware (HDD, network, etc) are not direct
• “Translated” in both directions (VM-hw, hw-VM) by the hypervisor
• They bring in a performance overhead
• The emulated drivers are pretty similar to what we had in Virtual Server:
• Video = S3 Trio64+ SVGA (VESA)
• Network = Intel/DEC ”Tulip” 21x4x
• IDE = Intel 440BX chipset MB
• ”Enlightened” drivers• Also known as “synthetic drivers”
• These make the VM ”hypervisor aware”
• Written especially for virtualized environments => paravirtualization
• They’re basically just pointers to the drivers in the ”parent partition”
• Huge performance boost!
• What’s been done so far?
• July 2009 – Microsoft contributes with over 20.000 lines of code in the Linux kernel
• December 2009 – The drivers (in staging) are included in the 2.6.32 Kernel
• July 1st 2010 – Microsoft presents at the Red Hat Summit
• Official support list: http://technet.microsoft.com/en-us/library/cc794868(WS.10).aspx
• Linux Integration Services 2.1 RTM (July 29th 2010)
• SUSE Linux Enterprise Server (10 SP1/SP2/SP3, 11)
• Red Hat Enterprise Linux (5.2, 5.3, 5.4, 5.5)
• Linux Integration Services 3.2 RTM (January 12th 2012)
• Red Hat Enterprise Linux 6.0 and 6.1 x86 and x64 (Up to 4 vCPU)
• CentOS 6.0/6.1 x86 and x64 (Up to 4 vCPU)
• Requirements
• A Linux ISO or DVD, using distributions based on the 2.6.16-27 or 2.6.32+ Linux kernel
• Linux Development Tools (gcc, kernel-devel / linux source) for older versions of the IS
• Linux Integration Services for Hyper-V
• (optional) Enlightened mouse driver
• Total install duration: ~40-45 minutes
The road so far
• There’s no need for the Integration Services to install Linux on Hyper-V
• Most distributions work just fine in an emulated environment (lower performance)
• So why don’t we have more supported Linux distros?
• …such as Hannah Montana Linux - http://hannahmontana.sourceforge.net/
• The answer is simple: there are no companies to offer dedicated support
• Support is usually offered by the community
• Microsoft doesn’t have anyone to create a support agreement with
• They don’t officially cover these under standard support incidents
• They do recommend the communities for help (MVPs, Linux distro-related communities)
• Users have reported successful installs of:
• Ubuntu, Debian, Fedora, CentOS, other distros (e.g. Hannah Montana Linux)
• Even FreeBSD and Open Solaris
Linux ”unofficial” support
The road to “enlightment”
• Driver support for synthetic devices (v1 – original distro code, created by Citrix)• Synthetic network controller & Synthetic storage controller (IDE/SCSI)
• Fastpath Boot Support for Hyper-V (v2.0 – December 2009)• Block VSC – increased boot performance
• Timesync (v2.1 – July 2010)• The clock inside the virtual machine will remain synchronized with the clock on the host
• Integrated Shutdown (v2.1 – July 2010)• VMs can be cleanly shut down from Hyper-V
• Symmetric Multi-Processing (SMP) Support (v2.1 – July 2010)• Supported Linux distributions can use up to 4 virtual processors (VP) per virtual machine
• Heartbeat (v2.1 – July 2010)• Allows the host to detect whether the guest is running and responsive
• Pluggable Time Source (v2.1 – July 2010)• A pluggable clock source module is included to provide a more accurate time source to the guest.
• KVP (Key Value Pair) Exchange (v3.1 – July 2011)• Information about the running Linux VM can be obtained by using the Key Value Pair exchange functionality on the host
(FQDN, Linux IS version, IP addresses, OS version/distro/kernel, CPU architecture x86/x64)
• Integrated Mouse Support (v3.2 – January 2012)• The cursor is no longer bound to the VMConnect window when used with the Linux Graphical User Interface
• http://www.xen.org/products/satori.html
• A collaboration project between Citrix and Microsoft
• The main components of project Satori became Linux IS for Hyper-V
• The old Linux IS did not have ”input devices” support
• No mouse support in “non-enlightened” guests accessed through cascaded TS/RDP
• Workaround: local Hyper-V Console (RSAT) or direct connection into the VM
• The “captured mouse” experience on Linux guests is not fun
• Most Linux installs don’t need a GUI
• Project Satori brings in InputVSC
• Enlightened mouse drivers
• They require Linux IS 2.x to be installed
• Root access required
• Available under a GPL 2.0 license
Project Satori
Comparing to IS on Windows
• Synthetic Drivers
• IDE driver
• SCSI driver
• Network Drive
• Mouse Integration
• Video
• Integration Services
• Operating System Shutdown
• Time Synchronization
• Heartbeat
• Data Exchange
• Backup (VSS)
TechEd 2010 - WSV305
IS on WindowsTechEd 2010 - WSV305
IS on WindowsTechEd 2010 - WSV305
• Red Hat updates
– yum install kernel-devel
– yum groupinstall "development tools"
– yum update
• SLES updates
– yast –i kernel-devel
– yast –i kernel-source
– yast –i gcc
Linux IS v2.1 prerequisitesTechEd 2010 - WSV305
Installing Linux IS – RHEL 5 x64TechEd 2010 - WSV305
Installing Linux IS – SLES 10 SP2TechEd 2010 - WSV305
Linux IS v2.1 installation
• Copy the .iso content locallymkdir -p /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
cp -rp /mnt/cdrom /opt/linux_is
umount /mnt/cdrom
• Install the driverscd /opt/linux_is
make
make install
• Before IS 2.1, the install was done using a Perl script./setup.pl drivers
• Reboot
Linux IS v3.2 installation
• Linux IS 3.x brings RPM support
• Install the driversmount /dev/cdrom /media
cd /media
./install.sh
•Reboot the VM
Verifying the install - lsmodTechEd 2010 - WSV305
Verifying the install - GUITechEd 2010 - WSV305
modinfo support (Linux IS 2.1+)TechEd 2010 - WSV305
modinfo support (Linux IS 2.1+)TechEd 2010 - WSV305
Wrap-up: Linux IS components
• hv_vmbus - VMBus
• hv_storvsc – storage VSC
• hv_netvsc – network VSC
• hv_timesource – pluggable time source
• hv_mouse – enlightened mouse
• hv_utils – graceful shutdown, timesync, heartbeat
Linux IS on 2.6.32+ Kernel
Example: Ubuntu 10.4 LTS
TechEd 2010 - WSV305
• Edit /etc/initramfs-tools/modules
– sudo gedit /etc/initramfs-tools/modules
• Add the following lines:
– hv_vmbus
– hv_storvsc
– hv_blkvsc
– hv_netvsc
• Update
– sudo update-initramfs –u
• Reboot
Linux IS on 2.6.32+ Kernel TechEd 2010 - WSV305
• You can verify the install just like before
– /sbin/lsmod | grep vsc
Linux IS on 2.6.32+ Kernel TechEd 2010 - WSV305
Ubuntu Server 10.10 x64
http://blogs.msdn.com/b/virtual_pc_guy/archive/2010/10/21/installing-ubuntu-server-10-10-on-hyper-v.aspx
Ubuntu Server 10.10 x64
Ubuntu Server 10.10 x64
Ubuntu Server 10.10 x64
Ubuntu Server 10.10 x64
Ubuntu Server 10.10 x64
Ubuntu Server 10.10 x64
Ubuntu Server 10.10 x64
Ubuntu Server 10.10 x64
Ubuntu Server 10.10 x64
Ubuntu Server 10.10 x64
Ubuntu Server 10.10 x64
Ubuntu Server 10.10 x64
Ubuntu Server 10.10 x64
SCRIPTING EVERYTHING
Native PowerShell support and in-box metering
Hyper-V Resource Meters
• Historic Resource utilization information• Persistent through live migrations
Network• Incoming & Outgoing
Traffic per IP Address Range
Storage• High Water-Mark Disk
AllocationMemory• Low & High Water-Mark
Memory Utilization• Average Memory
UtilizationCPU• Average CPU Utilization
LINUX P2V
Converting Linux physical machines to Hyper-V VMs
http://blogs.technet.com/b/enterprise_admin/archive/2010/05/13/linux-p2v-with-dd-and-vhdtool-easy-and-cheap.aspx
• You can use DD and VHDtool
– DD works both on Windows and Linux
– One case: you attach the Linux HDD on a Windows machine
Linux P2V conversionTechEd 2010 - WSV305
• From a command line, you convert the HDD into a RAW image format (.img)• dd if=\\?\Device\Harddisk1\DR2 of=D:\rhel54.img bs=1M --progress
Linux P2V (DD)TechEd 2010 - WSV305
http://archive.msdn.microsoft.com/vhdtool
• A command-line tool, open-source
– Includes functions to manipulate VHD files (create, convert, extend, repair)
– An excelent P2V conversion tool for Linux machines
– It convers RAW images into VHDs
Linux P2V (VHDTool)TechEd 2010 - WSV305
DD on Linux to NTFS/USB drive
DD on Linux over the network
BACKING UP LINUX VMS
System Center Data Protection Manager
DPM for Hyper-V
OFFLINEONLINE
OS supports VSS
Recursive VSS call
OS without VSS
Save VM state
DPMAGENT
Linux
DPM, non-VSS aware guests
1. DPM marks the start of the backup
2. Save OS state (<1 min)(hibernate, save RAM)
3. VSS snapshot (~10 sec)
4. Resume OS
5. Actual DPM backup is taken
OFF
LIN
E
MAP TOOLKIT 6.5
Heterogeneous network-wide inventory tool
MAP Toolkit 6.5
http://technet.microsoft.com/en-us/library/bb977556.aspx
• Secure, agentless, network-wide inventory• Windows XP Professional, Vista, 7
• Office 2010 and previous versions
• Windows Server 2008 or Windows Server 2008 R2
• Windows Server 2003 or Windows Server 2003 R2
• Windows 2000 Professional or Windows 2000 Server
• Windows Internet Explorer 9 and previous versions
• VMware vSphere, vCenter, ESX, ESXi, Server
• Selected Linux distributions
• LAMP application stack discovery
• SQL Server
• MySQL
• Oracle
• Sybase
• Hyper-V
MAP ToolkitTechEd 2010 - WSV305
MAP ToolkitTechEd 2010 - WSV305
THE FUTURE OF LINUX IS
Upcoming Functionality
• Dynamic Memory for Linux guests
• Ballooning only for first implementation
• Bi-Directional KVP
• Jumbo Frames
• VLAN Tag support (requires Win8)
• 802.1q support (requires Win8)
• Ubuntu 12.04 LTS support
Driver Status
Drivers getting out of staging:
• Kernel v3.2: hv_vmbus, hv_utils
• Kernel v3.3: hv_netvsc; hv_mouse
• Kernel v3.4: hv_storvsc
Net Result:
• All Hyper-V drivers out of staging and part of the
mainline Linux kernel by v3.4
• Linux = first-class citizen on Hyper-V
Q&A
Don’t forget to submit
your feedback and win a
great Nokia smartphone
and Kindle e-reader!