1.1 Xen虚拟化介绍
学习开源虚拟化平台前,需要了解什么是虚拟化以及为什么要使用虚拟化。以一台物理服务器为例,如果不使用虚拟化技术,这台物理服务器只能安装一个Windows或Linux操作系统(不讨论双操作系统);如果使用虚拟化技术,这台物理服务器可以安装多个操作系统并且同时运行,每个操作系统独立运行且互相不受影响,这就是虚拟化技术。
Xen虚拟化技术是英国剑桥大学计算机实验室开发的一个虚拟化开源项目,通过它可以在一套物理硬件上安全地运行多个虚拟机。Xen和操作系统平台结合得极为密切,占用的资源较少。
Xen以高性能、占用资源少著称,赢得了IBM、AMD、HP、Red Hat以及Novell等众多软、硬件厂商的高度认可和大力支持,已被国内外众多企、事业用户用来搭建高性能的虚拟化平台。
1.1.1 Xen虚拟化简介
Xen采用独立计算体系结构(Intelligent Console Architecture,ICA)协议,通过一种叫作准虚拟化的技术获得高性能,甚至在某些对传统虚拟化技术“极度不友好”的架构(如x86)上,Xen也有上佳的表现。与传统通过软件模拟实现硬件的虚拟机不同,在Intel VT-x的支持下,3.0版本之前的Xen需要系统的来宾权限和Xen API进行连接。到目前为止,这种技术已经可以运用在NetBSD、GNU、Linux、FreeBSD以及Plan 9等操作系统上。
Xen虚拟机可以在不停止工作的情况下在多个物理主机之间实时迁移。在操作过程中,虚拟机在没有停止工作的情况下内存被反复地复制到目标机器上。虚拟机在最终目的开始执行之前,会有一次60~300ms的暂停以执行最终的同步,给人“无缝迁移”的感觉。类似的技术被用来暂停一台正在运行的虚拟机,并切换到另一台虚拟机,第一台虚拟机在切换后可以恢复工作。
Xen是一种基于x86架构、发展较快、性能较稳定、占用资源较少的开源虚拟化技术。Xen可以在一套物理硬件上安全地运行多个虚拟机,与Linux形成一个完美的开源组合。Novell SUSE Linux Enterprise Server最先采用了Xen虚拟化技术。Xen特别适用于服务器应用整合,可有效节省运营成本,提高设备利用率,最大化利用数据中心的IT基础架构。
1.1.2 Xen虚拟化类型
在介绍Xen虚拟化类型之前,需要了解一下x86平台指令集的模式。x86平台指令集使用Ring 0、Ring 1、Ring 2、Ring 3共4种级别来管理和使用物理服务器硬件,如图1-1-1所示。其中操作系统内核使用Ring 0级别,驱动程序使用Ring 1、Ring 2级别,应用程序使用Ring 3级别。对于不使用虚拟化技术的操作系统来说,这样的机制没有任何问题。但如果使用虚拟化技术,如何让虚拟机越级使用x86平台指令集是需要解决的问题。
图1-1-1
为解决虚拟机越级使用x86平台指令集的问题,Xen虚拟化使用两种技术:半虚拟化(如图1-1-2所示)和全虚拟化(如图1-1-3所示)。
1)半虚拟化(Para Virtualization):半虚拟化也可以称为超虚拟化。使用这种虚拟化技术,虚拟机操作系统认为自己运行在Hypervisor上而不是运行在物理服务器上,Hypervisor对虚拟机操作的Ring 0级别的指令进行转换,模拟CPU给虚拟机使用(实际使用的是Ring 1级别),虚拟机不直接使用真实的CPU。在半虚拟化环境下,虚拟机操作系统感应到自己是虚拟机,因此需要安装半虚拟化驱动程序,数据直接发送给半虚拟化设备,经过特殊处理再发给物理硬件。
2)全虚拟化(Full Virtualization):全虚拟化也可以称为硬件虚拟化。需要注意,全虚拟化技术需要Intel VT和AMD-V的支持,相当于Intel VT和AMD-V创建了一个新的Ring 1级别单独给Hypervisor使用,但虚拟机操作系统认为自己直接运行在Ring 0级别上。在全虚拟化的环境下,虚拟机操作系统不知道自己是虚拟机,其数据的传输方式与在物理服务器上一致,但数据会被Hypervisor拦截再转发给物理硬件。
图1-1-2
图1-1-3
1.1.3 Xen虚拟化组件
Xen虚拟化组件主要包括图1-1-4所示的几个部分。
图1-1-4
1)物理硬件:物理硬件层是最底层,包括物理服务器配置的CPU、内存、硬盘以及网卡等硬件资源。
2)Hypervisor:运行在物理硬件与虚拟机层之间的基本软件层,其本身也是一种特殊的操作系统,负责为运行在上层的虚拟机分配、调度各种硬件资源。
3)Domain 0虚拟机:Domain 0虚拟机是Xen虚拟化技术中特殊的虚拟机,具有访问物理资源的特权,简单来说,Xen虚拟化环境必须运行Domain 0虚拟机后,才能够安装运行其他虚拟机。
4)Domain U虚拟机:无特权Domain也称为Domain U,可以把除Domain 0虚拟机外的虚拟机称为Domain U虚拟机。Domain U虚拟机不能直接访问物理硬件,每个Domain U虚拟机拥有独立的虚拟硬件资源并独立存在,一个Domain U虚拟机出现问题不影响其他Domain U虚拟机。
1.1.4 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包含多核处理器支持、实时迁移、物理服务器到虚拟机转换、虚拟机到虚拟机转换工具,具有集中化的多服务器管理、实时性能监控功能。
2.Xen虚拟化技术的缺点
Xen会占用相对较大的空间,且依赖于Domain 0虚拟机中的 Linux。
Xen依靠第三方解决方案来管理硬件设备驱动程序、存储、备份、恢复,以及容错。
任何具有高I/O速率的操作或任何会“吞噬”资源的操作都会使Xen陷入困境,使其他虚拟机缺乏资源。
Xen缺少IEEE 802.1Q虚拟局域网 (VLAN) 中继,出于安全考虑,它没有提供目录服务集成、基于角色的访问控制、安全日志记录以及审计或管理操作。