第1章 KVM虚拟化概述
Kernel-based Virtual Machine(基于内核的虚拟机)是开源的系统虚拟化模块,从Linux 2.6.20内核之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于XEN,其核心源码很少,KVM目前在开源系统中大规模使用。本书以Red Hat Enterprise Virtualization(红帽企业虚拟化)为主要平台,配合其他版本的KVM进行介绍。
1.1 XEN虚拟化介绍
XEN虚拟化技术是英国剑桥大学计算机实验室开发的一个虚拟化开源项目,XEN可以在一套物理硬件上安全地执行多个虚拟机,它和操作平台结合得极为密切,占用的资源最少。编写本书时,稳定版本为XEN 4.0。
XEN以高性能、占用资源少著称,赢得了IBM、AMD、HP、Red Hat和Novell等众多世界级软硬件厂商的高度认可和大力支持,已被国内外众多企事业用户用来搭建高性能的虚拟化平台。
1.1.1 XEN虚拟化技术简介
XEN采用ICA协议,通过一种叫作准虚拟化的技术获得高性能,甚至在某些与传统虚拟技术极度不友好的架构上(X86),XEN也有上佳的表现。与传统通过软件模拟实现硬件的虚拟机不同,在Intel VT-X支持下,3.0版本之前的XEN需要系统的来宾权限,用来和Xen API连接。到目前为止,这种技术已经可以运用在NetBSD、GNU/Linux、FreeBSD和Plan 9系统上。Sun微系统公司也正在积极地将Solaris移植到XEN平台之上。
XEN虚拟机可以在不停止的情况下,在多个物理主机之间实时迁移。在操作过程中,虚拟机在没有停止工作的情况下,内存被反复地复制到目标机器。虚拟机在最终目的地开始执行之前,会有一次60~300毫秒的非常短暂的暂停,以执行最终的同步化,给人无缝迁移的感觉。类似的技术被用来暂停一台正在运行的虚拟机到磁盘,并切换到另外一台,第一台虚拟机在以后可以恢复。
XEN已经可以运行在X86系统上,并正在向X86_64、IA64、PPC移植。移植到其他平台从技术上是可行的,未来有可能会实现。
XEN是一个基于X86架构、发展最快、性能最稳定、占用资源最少的开源虚拟化技术。XEN可以在一套物理硬件上安全地执行多个虚拟机,与Linux是一个完美的开源组合,Novell SUSE Linux Enterprise Server最先采用了XEN虚拟技术。它特别适用于整合服务器应用,可有效节省运营成本,提高设备利用率,最大化利用数据中心的IT基础架构。
1.1.2 XEN虚拟化技术的应用领域
XEN凭着独特的虚拟化性能优势赢得了以下一些应用。
1.服务器应用整合
在一台物理主机上虚拟出多台服务器, 以安装多个不同的应用,充分利用服务器的物理性能,灵活进行服务器的应用迁移。
2.软件
开发测试用户可利用Linux的低成本优势非常灵活地搭建多个应用系统开发平台,由此节省了大量的开发成本,加快了开发进程。
3.群集运算
和单独管理每个物理主机相比较,虚拟机管理更加灵活,同时在负载均衡方面,更易于控制和隔离。
4.多操作系统配置
以开发和测试为目的,同时运行多个操作系统。
5.内核开发
进行内核的测试和调试,无需为了测试而单独架设一台独立的机器。
6.为客户操作系统提供硬件技术支持
可以开发新的操作系统,以得益于现存操作系统的广泛硬件支持,如Linux。
1.1.3 XEN虚拟化技术的优缺点
XEN作为一个企业级虚拟化技术,其功能相对完善,了解其基本原理后,下面了解它的优缺点。
1.XEN虚拟化技术的优点
XEN构建于开源的虚拟机管理程序之上,结合使用半虚拟化和硬件协助的虚拟化。操作系统与虚拟化平台之间的这种协作支持开发一个较简单的虚拟机管理程序来提供高度优化的性能。
XEN提供了复杂的工作负载平衡功能,可捕获CPU、内存、磁盘I/O和网络I/O数据,它提供了两种优化模式:一种针对性能,另一种针对密度。
XEN利用一种名为Citrix Storage Link的独特的存储集成功能。使用Citrix Storage Link,系统管理员可直接利用来自HP、Dell Equal Logic、NetApp、EMC等公司的存储产品。
XEN包含多核处理器支持、实时迁移、物理服务器到虚拟机转换(P2V)和虚拟到虚拟转换(V2V)工具,集中化的多服务器管理、实时性能监控,以及Windows和Linux 的快速性能。
2.XEN虚拟化技术的缺点
XEN会占用相对较大的空间,且依赖于0号虚拟机中的Linux。
XEN依靠第三方解决方案来管理硬件设备驱动程序、存储、备份和恢复,以及容错。
任何具有高I/O速率的操作或任何会吞噬资源的操作都会使XEN陷入困境,使其他虚拟机缺乏资源。
XEN缺少802.1Q虚拟局域网(VLAN)中继,出于安全考虑,它没有提供目录服务集成、基于角色的访问控制、安全日志记录和审计或管理操作。
XEN目前最大的困难在于Linux内核社区的抵制,导致XEN相关的内核改动一直不能顺利进入内核源代码,从而无法及时得到内核最新开发成果的支持。