通过 Hyper-V 及 Windows Azure 供应 Linux,这是微软改善对开源软件支持情况的一大举措。作为该倡议的一部分,微软的 Linux 集成服务(LIS)团队持续开发着先进的 Linux 驱动,并直接由 Linux 的内核团队进行检查,因此 CentOS、Debian、Red Hat、SUSE 及 Ubuntu 等主要发行版的后续新版本都能直接进行集成。
该集成服务最初是通过微软网站提供下载的。Linux 用户下载并安装这些驱动,并在需要获得支持时直接联系微软。随着驱动的逐渐成熟,现已直接包含在 Linux 发行版中。这样不仅可以避免从微软网站额外下载内容,还可以让用户充分使用与 Linux 供应商的现有技术支持。
Hyper-V在Linux上的支持主要体现在:
1. 64 颗虚拟处理器的支持及更深入的集成服务支持
随着 Windows Server 2012 及后续 Windows Server 2012 R2 的发布,Hyper-V 支持通过虚拟机最多使用 64 颗虚拟处理器运行 Linux,这样即可大幅提高 CPU 密集型负载的扩展性与性能。此外 Linux 集成服务也有巨大的改进,可进一步提高网络与存储控制器性能,支持 Fastpath Boot、Time Keeping、集成式关机等。
2. 合成桢缓冲区驱动
缓冲区驱动能极大提升 Hyper-V 宿主机上运行 Linux 虚拟机时的图形性能。此外该驱动能为 Hyper-V 上桌面模式的 Linux 来宾系统提供完整的高清模式分辨率(1920x1080)。
合成桢缓冲区驱动另一个显著影响在于,新版解决了双重光标问题。不过使用较老 Linux 发行版桌面模式的一些客户依然汇报说会在屏幕上看到两个相互追逐的光标指针。这个令人分心的问题已经通过合成 2D 桢缓冲区驱动顺利解决,能为 Linux 桌面用户带来更好的体验。
3. 动态内存支持
Linux 来宾系统通过使用动态内存,可在每台宿主机上实现更高的虚拟机密度。对于希望使用 Hyper-V 整合服务器负载的 Linux 管理员,这一特性将带来巨大价值。内部测试显示,运行 Linux 的虚拟机启用动态内存后,服务器容量提升了 30-40%。
Linux 动态内存驱动会监控 Linux 虚拟机的内存用量,并定期将其上报给 Hyper-V。根据报告的用量,Hyper-V 可针对所托管的多个虚拟机动态调整内存分配情况。另外要注意,Linux 与 Windows 虚拟机配置动态内存的界面是相同的。
Linux 虚拟机的动态内存驱动可提供热添加及 Ballooning 支持,并可在 Hyper-V 管理器中配置启动、最小内存,及最大内存参数。
系统启动时,Linux 虚拟机会使用启动参数配置的内存数量进行引导。如果虚拟机需要更多内存,Hyper-V 会使用热添加机制动态增加虚拟机可用的内存数量。
另外如果虚拟机需要的内存小于分配的值,Hyper-V 会使用 Ballooning 机制将虚拟机可用内存数量减少到一个合适的值。
4. 实时虚拟机备份支持
对于在 Hyper-V 上运行 Linux,很多客户希望能为运行中的 Linux 虚拟机创建无缝备份。过去客户必须挂起或关闭 Linux 虚拟机以创建备份。这一过程不仅难以自动化实现,而且会导致关键负载停机。
为解决这一问题,现在 Hyper-V 上运行的 Linux 来宾系统可使用文件系统快照驱动。Hyper-V 标准的备份 API 可触发该驱动,为运行 Linux 的虚拟机所连接的 VHD 创建文件系统一致性快照,但不影响或打断虚拟机内的任何操作。
Linux 虚拟机与 Windows 虚拟机备份功能的一个重要差异在于,Linux 的备份只能确保与文件系统的一致性,而 Windows 备份可确保文件系统与应用程序的一致性。这是因为 Linux 缺乏标准化的卷影复制服务(VSS)基础结构。
5. 实时动态扩展固定容量的 VHDX
动态调整 VHDX 容量的功能使得管理员能够在为 VHD 分配存储的同时通过新格式改善性能。该功能现在也可用于 Hyper-V 上运行的 Linux 虚拟机。另外要注意,Linux 文件系统非常能够适应底层磁盘驱动器的动态容量变更。
6. Linux kdump/kexec 支持
托管商在 Windows Server 2012 与 Windows Server 2012 R2 环境中运行 Linux 的一个主要痛点在于,必须使用遗留的驱动(参见 KB 2858695)为 Linux 虚拟机创建内核转储。
在 Windows Server 2012 R2 中,Hyper-V 基础结构通过改进,可使用存储与网络驱动无缝创建崩溃转储,因此不再需要任何特殊的配置,Linux 用户可随意对网络或附加存储设备的内核创建转储。
7. NMI 支持
如果运行在 Hyper-V 上的 Linux 系统彻底失去响应,现在用户可以使用 Non-Maskable Interrupts(NMI)与系统通讯。这种方法非常适合对由于内核或用户模式组件导致的系统锁死问题进行诊断。
8. 内存映射 I/O(MMIO)Gap 规范
基于 Linux 的设备制造商都使用 MMIO gap(也叫做 PCI Hole)在用于启动设备的 Just Enough Operating System(JeOS)与驱动设备的实际软件基础结构间分配可用物理内存。无法配置 MMIO gap 会导致 JeOS 耗尽所有可用内存,使设备的自定义软件基础结构无内存可用。这一缺陷使得我们无法开发基于 Hyper-V 的虚拟设备。
设备制造商可以借助 Windows Server 2012 R2 Hyper-V 基础结构配置 MMIO gap 的位置。该功能促进了在虚拟化环境中供应 Hyper-V 驱动的虚拟设备的做法。
本篇幅演示使用Hyper-V创建Linux虚拟机,并安装Hyper-V集成服务,由于CentOS版本6.4开始已集成Hyper-V集成服务,因此这里以CentOS6.3为例。
一、 创建Linux虚拟机
1,登陆Hyper-V服务器,打开Hyper-V管理器,右键Hyper-V服务器名称,选择新建,点击虚拟机
2,新建虚拟机向导页面,点击下一步
3,指定虚拟机名称以及存储位置,点击下一步
4,选择虚拟机代数,这里选择第一代虚拟机,稍后将创建基于第二代的Linux虚拟机,点击下一步
5,分配虚拟机内存
6,配置网络
7,连接的虚拟硬盘,这里选择创建虚拟硬盘,点击下一步
8,安装选项页面,选择从可启动的CD/DVD安装操作系统,点击下一步
9,摘要页面确认无误后,点击完成,等待虚拟机创建完成
10, 右键创建的虚拟机“BJ-CentOS-01”,选择连接,点击菜单栏中开机按钮
11, 选择第一项,安装或升级操作系统
12, 由于未安装Hyper-V集成服务,当使用鼠标进行操作时,会提示
13, 等待CentOS6.3安装完成
二、 安装Hyper-V集成服务
Linux集成服务主要提供如下功能实现Hyper-V与Linux虚拟机进行交互与通信
1) Driver support: Linux Integration Services supports the network controller and the IDE and SCSI storage controllers that were developed specifically for Hyper-V.
2) Fastpath Boot Support for Hyper-V: Boot devices now take advantage of the block Virtualization Service Client (VSC) to provide enhanced performance
3) Time Keeping: The clock inside the virtual machine will remain accurate by synchronizing to the clock on the virtualization server via Timesync service, and with the help of the pluggable time source device.
4) Integrated Shutdown: Virtual machines running Linux can be shut down from either Hyper-V Manager or System Center Virtual Machine Manager by using the “Shut down” command.
5) Symmetric Multi-Processing (SMP) Support: Supported Linux distributions can use multiple virtual processors per virtual machine. The actual number of virtual processors that can be allocated to a virtual machine is only limited by the underlying hypervisor.
6) Heartbeat: This feature allows the virtualization server to detect whether the virtual machine is running and responsive.
7) KVP (Key Value Pair) Exchange: Information about the running Linux virtual machine can be obtained by using the Key Value Pair exchange functionality on the Windows Server virtualization server.
8) Integrated Mouse Support: Linux Integration Services provides full mouse support for Linux guest virtual machines.
9) Live Migration: Linux virtual machines can undergo live migration for load balancing purposes
10) Jumbo Frames: Linux virtual machines can be configured to use Ethernet frames with more than 1500 bytes of payload
11) VLAN tagging and trunking: Administrators can attach single or multiple VLAN ids to synthetic network adapters
12) Static IP Injection: Allows migration of Linux virtual machines with static IP addresses.
13) Linux VHDX resize: Allows dynamic resizing of VHDX storage attached to a Linux virtual machine.
14) Synthetic Fibre Channel Support: Linux virtual machines can natively access high performance SAN networks.
15) Live Linux virtual machine backup support: Facilitates zero downtime backup of running Linux virtual machines.
16) Dynamic memory ballooning support: Improves Linux virtual machine density for a given Hyper-V host.
17) Synthetic video device support: Provides improved graphics performance for Linux virtual machines.
18) PAE kernel support: Provides drivers that are compatible with PAE enabled Linux virtual machines.
1. 首先需要在微软官方网站下载Linux版Hyper-V集成服务
http://www.microsoft.com/zh-CN/download/details.aspx?id=41554
2. 插入下载的LinuxICv35.iso集成服务镜像文件
3. 使用如下命令查看挂在的ISO文件
# mount /dev/cdrom /media
4. 根据Linux系统版本进入以下目录(RHEL与CentOS工用一个集成服务)
cd /media/CDROM/RHEL63
5. 执行以下命令完成安装Hyper-V集成服务
# ./upgrade.sh
6. 升级完成之后重启虚拟机“BJ-CentOS-01”
7. 虚拟机“BJ-CentOS-01”重启之后,可以使用鼠标对虚拟机进行相关操作以及直接使用 管理Linux虚拟机
8. 验证Linux版的Hyper-V集成服务
使用# /sbin/modinfo hv_vmbus filename验证这个Hyper-V vmbus名称
使用# /sbin/lsmod | grep hv验证所有Hyper-V组件
1) hv_utils:provides integrated shutdown, key-value pair(KVP) data exchange, heartbeat, mouse and live backup.
2) hv_timesource:is the pluggable time source module to assist in accurate timekeeping in the virtual machine
3) hv_storvsc:provides support for all storage devices attached to a virtual machine
4) hv_vmbus:is the fast communication channel between the server running Hyper-V and the virtual machine
9. 创建基于Hyper-V二代虚拟机的CentOS6.6虚拟机
首先下载CentOS6.6安装镜像文件,建议使用英文版并且进行系统补丁
http://www.centos.org/
Hyper-V虚拟机代数页面,选择第二代虚拟机,点击下一步
选择从可启动的映像文件安装操作系统,点击下一步
新建虚拟机摘要页面,确认无误后点击完成,等待虚拟机创建完成
10.返回Hyper-V管理控制台,右键创建的虚拟机“BJ-CentOS-02”,选择开机
11.选择CentOS6.6,开始进入系统安装向导
更多Hyper-V虚拟化与Linux相关知识请见
http://technet.microsoft.com/en-us/library/dn531030.aspx