Xen 4.0虚拟化基础架构的新特性
- 来源:微型计算机 smarty:if $article.tag?>
- 关键字:打印机 smarty:/if?>
- 发布时间:2010-08-25 14:53
虚拟化(Virtualization)指的是对计算机资源的抽象,虚拟化技术早在20世纪60年代就已经出现,最早由IBM提出,并且应用于计算机技术的许多领域。从整台主机到一个组件,虚拟的对象多种多样。其实使用打印机也可以说用到了虚拟化技术:在系统中运行的打印机守护进程,在操作系统看来就是一个虚拟的打印机。任何打印任务都是与它交互,只有这个进程才知道如何与真正的物理打印机正确通信,并进行正确的打印管理。
长久以来,用户常见的都是进程虚拟机,也就是作为已有操作系统的一个进程,完全通过软件的手段去模拟硬件,比如较老版本的VMWare、Virtual PC软件都属于这种。在2005年后,Intel和AMD都开发出了支持硬件虚拟化的CPU,x86平台才真正有可能实现完全虚拟化。随着整机处理能力的不断提高和虚拟化技术的发展,虚拟机已经成为云计算的基础架构核心,而其中作为最知名开源虚拟机的Xen自然引起了越来越多的关注。
Xen的起源
在2 0 0 3 年国际操作系统会议S ymp o s i um o nOperating Systems Principles(SOSP)上,一篇名为《Xenand the Art of Virtualization》的论文正式宣告了Xen虚拟机的诞生。随后在2007年,Citrix公司接管了该项目,并一直致力于Xen的维护和更新工作。Xen作为最具历史性和最著名的Linux开源虚拟机已经走过了7年。在这7年中,Xen已经先后支持x86、x86-64、安腾(Itanium)等硬件平台。
不同于传统进程虚拟机需要依赖于外部先启动的操作系统,Xen的设计目的在于开机后先启动虚拟机监视器(Hypervisor),再启动宿主OS(Host OS)和各个虚拟机,形成一个与前者相反的过程。需要注意的是,Hyper visor并不是一个图形界面,如果以Windows操作系统比喻的话,虚拟机管理辅助工具就像是Windows界面,而Hypervisor则是Windows内核。这样做的好处在于,通过尽量减小Hypervisor和原生操作系统(Native OS)之间的联系而降低Hypervisor自身和各个虚拟机被破坏和信息泄露的风险。
Xen 4.0的新特性
作为一个历史悠久的开源虚拟机,Xen于2010年4月7日发布了4.0版。相对于从2005年开始的Xen 3.x版本,Xen 4.0拥有了诸多新特性,主要包括了对可扩展性、性能、可靠性和可用性的提升,下面我们将逐一进行介绍。
可扩展性:规格显著提升
在Xen 3.x时代,对宿主机最大支持CPU数量为64;而Xen 4.0提供了更强大的可扩展性,Xen 4.0支持安装1TB内存以及128颗物理CPU的宿主机,同时对虚拟机也可支持到128个虚拟CPU(VCPU)。CPU支持数量的大幅提升,无疑大大强化了Xen 4.0对高性能平台及应用的支持。
性能:内外双管齐下
对于虚拟系统而言,所谓性能既包括虚拟机的运行性能和使用率,又包括虚拟化软件对宿主机造成的性能影响。Xen 4.0性能上的提升主要有两个方面,一是对高带宽消耗的硬件进行了性能上的优化,二是通过结构优化带来的性能提升。
1.硬件性能优化
普通PCI设备:通过优化对I n t e l V T- d和AMDIOMMU(I/O内存管理单元,也称为I/O虚拟化)技术的使用,提升虚拟机对PCI设备的访问效率。
显卡:Xen 4.0支持虚拟机对宿主机显卡的独占式访问,从而大大提升了在虚拟机中图形图像的处理速度。曾经玩过虚拟机的朋友应该知道,过去无论所装显卡能力有多强,在虚拟机中玩3D游戏总是出现图像跳帧甚至根本无法运行,这主要是因为虚拟机需要引入额外的内存读写或建立共享内存而大大降低了显卡在虚拟机中的性能。而在Xen 4.0中,用户可以将计算机上额外的显卡设备指定给某个虚拟机独占使用,从而获得与宿主机一样的图像体验。
网卡:Xen 4.0对网卡性能的提升主要在于引入了多队列机制和对SR-IOV(单点I/O虚拟化)网卡的支持。
后者是最近刚刚兴起的一种I/O设备虚拟化技术,这种技术要求I/O设备有专门的硬件实现。Intel VT-d技术为了保证高性能使用设备,采用了将某个PCI设备完全指定给某个虚拟机的做法。这就造成一旦某个虚拟机拥有了某个设备,则在这个虚拟机被完全关闭之前,其它虚拟机甚至宿主机都不能访问该设备,这显然违背了虚拟化技术中“共享”的原则。而SR-IOV则在保证高性能使用设备的基础上添加了“共享”的功能。以SR-IOV网卡而言,可以将这种网卡视作若干个虚拟网卡(当前一般为8个,最多64个)和一个交换机的组合。各个虚拟网卡之间完全隔离,这就使得每个虚拟机可以拥有一块独占的虚拟网卡,而宿主机可以对所有虚拟网卡进行管理。
USB设备:
引入对USB设备的并行虚拟化,从而提高了虚拟机访问USB设备的吞吐率。之前的方案是通过模拟为USB 1.1设备来实现的,相比之下后者访问速度较慢且仅支持部分USB设备。
2.结构性能优化
T MEM技术( Tr a n s c e n d e n tMemory,超内存技术):提高了半虚拟化(Paravirtualization)中虚拟机内存的使用率。这样做可以避免某个空闲(Idle)状态的虚拟机占据大量不需要的物理内存,从而避免了可能造成的其它虚拟机上内存短缺现象。
内存页共享:Xen 4.0支持虚拟机间的内存页面共享,这样可以加快虚拟机间的通信。目前采用的实现方式是写时复制(Copy-On-Write)机制,这只是一个初步的尝试,后续还会进行改进。
注:读取共享数据时直接读取而不需要同步;当修改数据时会先把当前数据Copy一份副本,然后在这个副本上进行修改,完成后再用修改后的副本替换掉原来的数据。这种方法叫做Copy On Write。
可靠性:避免服务停顿众所周知,每台计算机即使在使用寿命中,每天仍有一定的概率发生故障,这种故障被称为单点故障。对于服务器而言,由于发生故障而造成的服务中断会带来大量的金钱损失,有时这种损失甚至会远远超过服务器本身的价值。为了将这种损失发生的可能性降到最低,大公司必须未雨绸缪实施多种方案。当今在工业界使用最多的是主从复制(Primary-Backup)方案,通过构建备份的方法来大大降低全系统故障概率。
Xen 4.0为了更好地提高服务器的稳定性,主要有以下两点提升:
1.Remus容错:借鉴了Remus,实现了对虚拟机状态的热备份,通过实现Primary-Backup方案来抵御因为硬件损坏造成的虚拟机失效。
2.RAS特性:支持运行时热插拔CPU和内存条。这一特性对于服务器来说很有用,由于大型服务器上拥有数量众多的CPU和内存,因而发生配件损坏的可能性也大大增加。热插拔技术的诞生使得服务器可以不用断电即可完成对故障元件的更换,从而避免了由于更换配件而产生大量的不可服务时间。Xen 4.0对该特性的支持使得Xen可以充分发挥服务器的可靠性,并使得部署在更大规模服务器上成为现实。
可用性:强化技术细节
Xen 4.0除了上述提升外,还引入了众多新功能以提升可用性。这些特性使得Xen不仅可以更好地用于个人电脑,还可以充分发挥服务器的稳定性,可以更好地应用于实际场合中。
1.更新blktap,加入对VHD格式的支持,并且提升了快照和备份的效率。而在Xen 3.x时代,主要支持的是RAW格式虚拟磁盘文件。
VHD和RAW
VHD和RAW均为虚拟磁盘文件格式,两者都用于在宿主机上以文件格式存储虚拟机整个文件系统,对虚拟机提供硬盘视图。两者的诞生是由于虚拟机软件曾经出现过一个百花齐放的时代,发展到最后这两种格式分别被不同虚拟机软件阵营支持,比如VHD格式虚拟机磁盘文件就常用于Virtual PC和Hyper-V等微软公司出品的虚拟机软件,而RAW格式则一直被Xen和QEMU等开源虚拟机支持。除这两者外还有VMDK格式虚拟磁盘文件,常用于VMWare虚拟机软件系列。VHD和RAW格式之间存在差异,这导致两者之间不太容易相互转换。在性能上RAW格式虚拟磁盘稍快,原因在于VHD格式虚拟磁盘文件可视做在RAW格式基础上增加额外管理功能,产生了一定的系统开销。在Xen 4.0中引入对VHD格式虚拟磁盘文件的支持,可以说意在蚕食微软阵营的份额。
……
长久以来,用户常见的都是进程虚拟机,也就是作为已有操作系统的一个进程,完全通过软件的手段去模拟硬件,比如较老版本的VMWare、Virtual PC软件都属于这种。在2005年后,Intel和AMD都开发出了支持硬件虚拟化的CPU,x86平台才真正有可能实现完全虚拟化。随着整机处理能力的不断提高和虚拟化技术的发展,虚拟机已经成为云计算的基础架构核心,而其中作为最知名开源虚拟机的Xen自然引起了越来越多的关注。
Xen的起源
在2 0 0 3 年国际操作系统会议S ymp o s i um o nOperating Systems Principles(SOSP)上,一篇名为《Xenand the Art of Virtualization》的论文正式宣告了Xen虚拟机的诞生。随后在2007年,Citrix公司接管了该项目,并一直致力于Xen的维护和更新工作。Xen作为最具历史性和最著名的Linux开源虚拟机已经走过了7年。在这7年中,Xen已经先后支持x86、x86-64、安腾(Itanium)等硬件平台。
不同于传统进程虚拟机需要依赖于外部先启动的操作系统,Xen的设计目的在于开机后先启动虚拟机监视器(Hypervisor),再启动宿主OS(Host OS)和各个虚拟机,形成一个与前者相反的过程。需要注意的是,Hyper visor并不是一个图形界面,如果以Windows操作系统比喻的话,虚拟机管理辅助工具就像是Windows界面,而Hypervisor则是Windows内核。这样做的好处在于,通过尽量减小Hypervisor和原生操作系统(Native OS)之间的联系而降低Hypervisor自身和各个虚拟机被破坏和信息泄露的风险。
Xen 4.0的新特性
作为一个历史悠久的开源虚拟机,Xen于2010年4月7日发布了4.0版。相对于从2005年开始的Xen 3.x版本,Xen 4.0拥有了诸多新特性,主要包括了对可扩展性、性能、可靠性和可用性的提升,下面我们将逐一进行介绍。
可扩展性:规格显著提升
在Xen 3.x时代,对宿主机最大支持CPU数量为64;而Xen 4.0提供了更强大的可扩展性,Xen 4.0支持安装1TB内存以及128颗物理CPU的宿主机,同时对虚拟机也可支持到128个虚拟CPU(VCPU)。CPU支持数量的大幅提升,无疑大大强化了Xen 4.0对高性能平台及应用的支持。
性能:内外双管齐下
对于虚拟系统而言,所谓性能既包括虚拟机的运行性能和使用率,又包括虚拟化软件对宿主机造成的性能影响。Xen 4.0性能上的提升主要有两个方面,一是对高带宽消耗的硬件进行了性能上的优化,二是通过结构优化带来的性能提升。
1.硬件性能优化
普通PCI设备:通过优化对I n t e l V T- d和AMDIOMMU(I/O内存管理单元,也称为I/O虚拟化)技术的使用,提升虚拟机对PCI设备的访问效率。
显卡:Xen 4.0支持虚拟机对宿主机显卡的独占式访问,从而大大提升了在虚拟机中图形图像的处理速度。曾经玩过虚拟机的朋友应该知道,过去无论所装显卡能力有多强,在虚拟机中玩3D游戏总是出现图像跳帧甚至根本无法运行,这主要是因为虚拟机需要引入额外的内存读写或建立共享内存而大大降低了显卡在虚拟机中的性能。而在Xen 4.0中,用户可以将计算机上额外的显卡设备指定给某个虚拟机独占使用,从而获得与宿主机一样的图像体验。
网卡:Xen 4.0对网卡性能的提升主要在于引入了多队列机制和对SR-IOV(单点I/O虚拟化)网卡的支持。
后者是最近刚刚兴起的一种I/O设备虚拟化技术,这种技术要求I/O设备有专门的硬件实现。Intel VT-d技术为了保证高性能使用设备,采用了将某个PCI设备完全指定给某个虚拟机的做法。这就造成一旦某个虚拟机拥有了某个设备,则在这个虚拟机被完全关闭之前,其它虚拟机甚至宿主机都不能访问该设备,这显然违背了虚拟化技术中“共享”的原则。而SR-IOV则在保证高性能使用设备的基础上添加了“共享”的功能。以SR-IOV网卡而言,可以将这种网卡视作若干个虚拟网卡(当前一般为8个,最多64个)和一个交换机的组合。各个虚拟网卡之间完全隔离,这就使得每个虚拟机可以拥有一块独占的虚拟网卡,而宿主机可以对所有虚拟网卡进行管理。
USB设备:
引入对USB设备的并行虚拟化,从而提高了虚拟机访问USB设备的吞吐率。之前的方案是通过模拟为USB 1.1设备来实现的,相比之下后者访问速度较慢且仅支持部分USB设备。
2.结构性能优化
T MEM技术( Tr a n s c e n d e n tMemory,超内存技术):提高了半虚拟化(Paravirtualization)中虚拟机内存的使用率。这样做可以避免某个空闲(Idle)状态的虚拟机占据大量不需要的物理内存,从而避免了可能造成的其它虚拟机上内存短缺现象。
内存页共享:Xen 4.0支持虚拟机间的内存页面共享,这样可以加快虚拟机间的通信。目前采用的实现方式是写时复制(Copy-On-Write)机制,这只是一个初步的尝试,后续还会进行改进。
注:读取共享数据时直接读取而不需要同步;当修改数据时会先把当前数据Copy一份副本,然后在这个副本上进行修改,完成后再用修改后的副本替换掉原来的数据。这种方法叫做Copy On Write。
可靠性:避免服务停顿众所周知,每台计算机即使在使用寿命中,每天仍有一定的概率发生故障,这种故障被称为单点故障。对于服务器而言,由于发生故障而造成的服务中断会带来大量的金钱损失,有时这种损失甚至会远远超过服务器本身的价值。为了将这种损失发生的可能性降到最低,大公司必须未雨绸缪实施多种方案。当今在工业界使用最多的是主从复制(Primary-Backup)方案,通过构建备份的方法来大大降低全系统故障概率。
Xen 4.0为了更好地提高服务器的稳定性,主要有以下两点提升:
1.Remus容错:借鉴了Remus,实现了对虚拟机状态的热备份,通过实现Primary-Backup方案来抵御因为硬件损坏造成的虚拟机失效。
2.RAS特性:支持运行时热插拔CPU和内存条。这一特性对于服务器来说很有用,由于大型服务器上拥有数量众多的CPU和内存,因而发生配件损坏的可能性也大大增加。热插拔技术的诞生使得服务器可以不用断电即可完成对故障元件的更换,从而避免了由于更换配件而产生大量的不可服务时间。Xen 4.0对该特性的支持使得Xen可以充分发挥服务器的可靠性,并使得部署在更大规模服务器上成为现实。
可用性:强化技术细节
Xen 4.0除了上述提升外,还引入了众多新功能以提升可用性。这些特性使得Xen不仅可以更好地用于个人电脑,还可以充分发挥服务器的稳定性,可以更好地应用于实际场合中。
1.更新blktap,加入对VHD格式的支持,并且提升了快照和备份的效率。而在Xen 3.x时代,主要支持的是RAW格式虚拟磁盘文件。
VHD和RAW
VHD和RAW均为虚拟磁盘文件格式,两者都用于在宿主机上以文件格式存储虚拟机整个文件系统,对虚拟机提供硬盘视图。两者的诞生是由于虚拟机软件曾经出现过一个百花齐放的时代,发展到最后这两种格式分别被不同虚拟机软件阵营支持,比如VHD格式虚拟机磁盘文件就常用于Virtual PC和Hyper-V等微软公司出品的虚拟机软件,而RAW格式则一直被Xen和QEMU等开源虚拟机支持。除这两者外还有VMDK格式虚拟磁盘文件,常用于VMWare虚拟机软件系列。VHD和RAW格式之间存在差异,这导致两者之间不太容易相互转换。在性能上RAW格式虚拟磁盘稍快,原因在于VHD格式虚拟磁盘文件可视做在RAW格式基础上增加额外管理功能,产生了一定的系统开销。在Xen 4.0中引入对VHD格式虚拟磁盘文件的支持,可以说意在蚕食微软阵营的份额。
关注读览天下微信,
100万篇深度好文,
等你来看……