Xen新特性

article/2025/9/10 11:59:31

4.0

为了增强主机层面的性能和可扩展性,新的Xen 4.0虚拟机管理程序现在横跨主机服务器上的128(之前64 )个物理处理器,最多可以处理1TB的物理主系统内存。在访客环境中,基于Xen 4.0运行的虚拟机现在可以分配给多达128个虚拟处理器/VCPU(不过虚拟机方面的内存容量并不清楚)。

Xen4.0性能上的提升分为两大类,第一类是对高带宽消耗的硬件进行了性能上的优化,比如:

1. 普通PCI设备:通过优化对Intel VT-d和AMD IOMMU(I/O内存管理单元,也称为I/O虚拟化)技术的使用来提升虚拟机对PCI设备的访问效率。

2. 显卡:Xen4.0支持虚拟机对宿主机显卡的独占式访问,从而大大提升了在虚拟机中图形图像的处理速度。有过一段时间玩虚拟机经验的朋友知道,过去无论所 装显卡能力有多强,在虚拟机中玩3D游戏总是图像跳帧甚至根本不能玩,这主要是由于虚拟机需要引入额外的内存读写或建立共享内存而大大降低了显卡在虚拟机 中的性能所致。Xen4.0出现这项技术之后,用户可以将机器上额外的显卡设备指定给某个虚拟机独占使用,从而避免这些开销而获得与宿主机一样的图像体 验。

3. 网卡:Xen4.0对网卡性能的提升主要在于引入了多队列机制和对SR-IOV(单点I/O虚拟化)网卡的支持。后者是最近刚刚兴起的一种I/O设备虚拟 化技术,这种技术要求I/O设备有专门的硬件实现。Intel VT-d技术为了保证高性能使用设备,所以将某个PCI设备完全指定给某个虚拟机,这就造成一旦某个虚拟机拥有设备,则在这个虚拟机被完全关闭之前,其它 虚拟机甚至宿主机也不能访问该设备,这显然违背了虚拟化技术中“共享”的原则。而SR-IOV技术则在保证高性能使用设备基础上添加了“共享”的功能。以 SR-IOV网卡而言,可以将这种网卡视作若干个虚拟网卡(当前一般为8个,最多64个)和一个交换机的组合各个虚拟网卡之间完全隔离,这就使得每个虚拟 机可以拥有一块独占的虚拟网卡,而宿主机可以对所有虚拟网卡进行管理。

clip_image008

图4. SR-IOV设备分配示意图[3]

4. USB设备:引入对USB设备的并行虚拟化,从而提高了虚拟机访问USB设备的吞吐率。之前的方案是在通过模拟为USB1.1设备来实现的,相比之下,后者访问速度较慢且仅支持部分USB设备。

第二类则是结构优化带来的性能提升,比如:

1. TMEM技术(Transcendent Memory,超内存技术):提高了半虚拟化(Paravirtualization)中虚拟机内存的使用率。这样做可以避免某个空闲(Idle)状态虚 拟机占据大量不需要的物理内存,从而避免了可能造成的其它虚拟机上内存短缺现象。

2. 支持虚拟机间的页面共享,这样可以加快虚拟机间的通信。当前采用的实现是写时复制(Copy-On-Write)机制,即共享页面在某个共享者尝试写入 时,会首先复制一份该页面内容作为这个共享者的私有页面并重新绑定,这样可以最大限度的减少不必要的内存复制操作。

其他改进之处包括:可充分利用新的英特尔至强(Nehalem-EX)和AMD皓龙6000处理器中新的可靠性、可用性和可服务性(RAS)功能。用户现在可以热插拔物理服务器中的处理器和内存,没必要关闭虚拟机管理程序或服务器上的虚拟机。用户现在还可以调整虚拟硬盘的大小,不需要重启或关闭虚拟机,这是另一项节省时间的优良特性。

 

稳定性 :
Xen4.0突出更好发挥服务器稳定性,主要有以下两点提升:

1. 借鉴了Remus ,实现了对虚拟机状态的热备份,通过实现Primary-Backup方案来抵御因为硬件损坏造成的虚拟机失效,图5为Remus 架构图。

2. RAS特性:支持运行时热插拔CPU和内存条。这一特性对于服务器来说很有用,由于大型服务器上拥有数量众多的内存和CPU,因而频繁发生元件损坏。热插 拔技术的诞生使得服务器可以不用断电即可完成对故障元件的更换,从而避免了由于该因素造成的大量不可服务时间。Xen4.0对该特性的支持使得Xen可以 充分发挥服务器的可靠性,并使得部署在更大规模服务器上成为现实。

clip_image010

图5. Remus 架构图[4]

可用性:

Xen4.0除了上述提升外,还引入了众多新功能以提升可用性,包括:

1. 更新blktap,引入对VHD格式的支持,并且提升快照和备份的效率。在Xen3.x时代,主要支持RAW格式虚拟磁盘文件。在这里,VHD格式和 RAW格式均指虚拟磁盘文件格式,两者都用于在宿主机上以文件格式存储虚拟机整个文件系统,对虚拟机提供硬盘视图。两者的诞生是由于虚拟机软件曾经出现过 一个百花齐放的时代,发展到最后这两种格式分别被不同虚拟机软件阵营支持,比如VHD格式虚拟机磁盘文件就常见于Virtual PC和HyperV等微软公司出品的虚拟机软件,而RAW格式就被Xen和QEMU等开源虚拟机一直支持,除这两者外还有VMDK格式虚拟磁盘文件,常用 于VMWare虚拟机软件系列。 VHD和RAW格式之间存在差异,这导致两者之间不太容易相互转换,并且在性能上RAW格式虚拟磁盘稍快,原因主要是VHD格式虚拟磁盘文件可视做在 RAW格式基础上增加额外管理功能,引入一定开销。因此在Xen4.0中引入对VHD格式虚拟磁盘文件的支持可以说意在蚕食微软阵营的份额。

2. 引入运行时更改虚拟机磁盘大小的功能。这样做可以有效避免宿主机硬盘空间的浪费。

3. 对于并行虚拟化,Xen4.0对Dom0可以支持到pvops-kernel 2.6.31.x,最高到2.6.32.x,同时对已经使用很长时间(大约三年)的linux-2.6.18 Dom0内核仍然提供支持。不过根据笔者的实验,对于自己手动编译安装Xen来说,linux-2.6.18 Dom0内核仍然是最好的选择。

4. 新提供libxl库,用于开发者开发一系列上层控制Xen的工具,从而实现对各虚拟机状态的监控和管理,进而便于开发无人值守虚拟机服务器管理程序组。

5. 对Citrix WHQL认证的Windows并行虚拟化驱动的支持。

这些特性使得Xen不仅可以更好的用于个人电脑,还可以充分发挥服务器的稳定性,可以更好的应用于实际场合中。

总结

通 过上文介绍我们可以看出,Xen4.0作为最新的虚拟机系统,充分使用了最新虚拟化技术,从可扩展性、性能、可靠性和可用性上均较前代产品有很大提升。在 实际应用中,Amazon的EC2云计算平台基础架构就使用Xen构建,由此可以看出Xen并不只是一个各种新技术堆积起来的玩具,而是一个可应用到实际 环境中的系统。

当然Xen也存在很多缺点。比如从可用性上来说,VMWare就做得比Xen要好很多,比如鼠标指针漂移问题就没有出现在 VMWare的虚拟机中。另一个例子是VMWare提供了强大的VMWare Unity功能,使得虚拟机中的窗口可以整合在宿主机桌面上,并且可以从宿主机直接点击,编缉,拖曳这些窗口。类似的功能并未出现在当前版本的Xen上, 当然这个问题受制于Xen的表现层架构设计以及其它非Xen维护的相关项目,不过相信这些问题会在未来某一天解决,从而在Linux越来越盛行的今天给用 户带来更好的体验。

 

 

 

 

 

4.0.1

1. blktap2 ,这是一个高性能的 VHD 实现,支持快照和克隆;
2. Netchannel2 支持新的智能网卡和多队列以及 SR-IOV 功能;
3. 不同物理服务器间的虚拟机状态在线事务同步支持容错;
4. 新的库 Libxenlight 用来提供更高级别的 Xen 控制;
5. 实现 PV-USB 和 VGA 的传递;
6. 性能和可伸缩性方面有新的提升;
7. 修复不少的bug。


http://chatgpt.dhexx.cn/article/JulJXE1B.shtml

相关文章

Xen - Networking

Xen - Networking Step 0 : Xen底下的網路架構 Step 1 : 虛擬還是實體 Step 2 : network-bridge Step 3 : network-nat Step 4 : network-route Step 5 : 參考網頁 Step 0 : Xen底下的網路架構 在虛擬化下的環境就屬網路裝置最為複雜難懂,不過模式大致可以畫分成 3 種 1.netw…

Xen虚拟化之一:Xen环境组件详解

Xen是一个开放源代码虚拟机监视器(Virtual Machine Monitor,简称为VMM),由剑桥大学开发,它致力于实现在单个计算机上运行多达128个有完全功能的操作系统。Xen通过一种叫做半虚拟化(paravirtualization)的技术获得高效能的表现(较少…

浅谈Xen和半虚拟化技术

研究生入学的时候,看了一篇论文——《Xen and the art of virtualization》。现在时隔一年,准备对此进行一番整理。下文是我Xen为例的半虚拟化技术的理解: 虚拟机概况 首先从虚拟机说起,虚拟机技术最早由IBM于上世纪六七十年代提…

xen架构

Xen是一个虚拟机监视器(Virtual machine monitor),针对X86系列计算机设计,它能够支持多个客户计算机的同时运行,并且能够达到较好的一个性能水平和资源隔离。Xen是一个开放源代码软件,在GNU General Public…

Xen概述

http://my.oschina.net/davehe/blog/94039 1 Xen概述 1.1 简介 Xen是由剑桥大学计算机实验室开发的一个开源项目。是一个直接运行在计算机硬件之上的用以替代操作系统的软件层,它能够在计算机硬件上并发的运行多个客户操作系统(Guest OS&#xff…

KVM和Xen虚拟化有什么区别?Xen和KVM优缺点对比

KVM和Xen是两大虚拟化技术,KVM和Xen又是免费开源的管理程序,新手站长网分享虚拟化技术KVM和Xen的区别优势对比: KVM和Xen的区别 KVM:KVM是轻量级的虚拟化管理程序模块,该模块主要来自Linux内核;KVM的虚拟…

Xen与XenServer的区别

说到XenServer,总是离不开Xen,所以我要说他们的区别,得首先从Xen开始说起! Xen体系架构 Xen hypervisor体系架构 Xen 的 VMM ( Xen Hypervisor ) 位于操作系统和硬件之间,负责为上层运行的操作系统内核提供虚拟化的硬件…

xen的安装

一、 Xen介绍 : 在虚拟化软件的部份,可分为VMWare、Xen、KVM、VritualBox是较为常见的。在Xen这到自由软件上主要可分为半虚拟化(Para-virtualization) 及全虚拟化 (Full virtualization) 两种,其中半虚拟化主要是透过修改 Linux 核心来达成的虚拟技术。…

虚拟机体验之 Xen 篇 —— 令人脑洞大开的奇异架构

转载于https://www.cnblogs.com/youxia/p/linux022.html#_label0 阅读目录 总结: 这一篇我要体验的虚拟机系统是 Xen。在虚拟机领域,Xen 具有非常高的知名度,其名字经常在各类文章中出现。同时 Xen 也具有非常高的难度,别说玩转…

xen基础

xen结构概述 一个 Xen 虚拟化环境包括一组项目,它们一起工作来提供虚拟化环境:Xen hypervisor;dom0;domain management and control,域的管理和控制;domU PV 客户机;domU HVM 客户机。 它们之间…

Xen 简介

---------------------------------同样来自 IBM ------------------------------------ Xen 是一种类型 1 虚拟机管理程序,它创建系统资源的逻辑池,使许多虚拟机可共享相同的物理资源。 Xen 是一个直接在系统硬件上运行的虚拟机管理程序。Xen 在系统硬…

全面详解Python与Ruby,到底哪款更优秀

今天,我和大家讨论一下是Python开发语言web好还是Ruby开发语言web好,有需要的小伙伴,可以参考一下。对这方面有自己见解的大神,可以交流一下。希望大家可以认真阅读哦! Python 和 Ruby 都是目前用来开发 websites、web-based apps 和 web services 的流行编程语言之一。 …

Ruby入门级示例代码

【实例简介】 针对入门级的新手参考 【实例截图】 目录结构&#xff1a; 文件&#xff1a;590m.com/f/25127180-494436327-f5ef7f&#xff08;访问密码&#xff1a;551685&#xff09; 【核心代码】class ItemController < ApplicationControllerscaffold :itemdef creat…

Ruby基础教程(Day1)—— Ruby初探

前提&#xff1a;自行安装ruby 一、Ruby初探 最常见的方法是使用ruby命令执行&#xff08;在helloruby.rb中输入print("Hello,Ruby.\n")&#xff09; 在命令行输入ruby helloruby.rb irb命令&#xff0c;以交互命令行方式来执行 在控制台执行irb如下图所示 对象 …

RubyPloticus

原文&#xff1a; RubyPloticus ruby 2006年6月19日 Bliki 索引 译注&#xff1a;代码和生成的图片示例可从这里下载。 在最近的帖子“ 评估Ruby”中&#xff0c;我提到一位同事曾在一个Web应用中加入了一些漂亮的数据图表&#xff0c;有人email问我是…

Ruby(一)

Ruby 是一种开源的面向对象程序设计的服务器端脚本语言&#xff0c;可运行于多种平台&#xff0c;如 Windows、MAC OS 和 UNIX 的各种版本。Ruby流行起来的根本原因是因为基于Ruby的Web开发框架Rails的广泛使。 1、ruby环境 windows&#xff1a;Downloads (rubyinstaller.org…

Python 和 Ruby 的对比

&#xff08;点击上方公众号&#xff0c;可快速关注&#xff09; 来源&#xff1a;js信仰者 segmentfault.com/a/1190000010756033 如有好文章投稿&#xff0c;请点击 → 这里了解详情 最近在考虑学习一门后端语言&#xff0c;在ruby和python直接犹豫&#xff0c;然后自己做了…

【Python】Pyyaml和ruamel.yaml

目录 PYYAML 读取yaml 保存yaml 读取保存的yaml文件 yaml文件规则 yaml文件数据结构 ruamel.yaml 格式化保存yaml 使用ruamel.yaml读取yaml 使用ruamel.yaml时python中符号对应于yaml中符号 PYYAML config.yaml文件 username: zxx age: 18 orther:height: 175CMwei…

Ruby教程(基础篇)

1. Print和puts的区别 puts输出内容独立成行、自动换行&#xff0c;而print会把输出的内容打印在同一行。 2. 变量和常量 character_name "Kevin" #variable name变量character_age "21"puts ("name:" character_name)puts (character_a…

Ruby语言简介

Ruby是一种解释型、面向对象、动态类型的语言。Ruby采取的策略是在灵活性和运行时安全之间寻找平衡点。随着Rails框架的出现&#xff0c;Ruby也在2006年前后一鸣惊人&#xff0c;同时也指引人们重新找回编程乐趣。尽管从执行速度上说&#xff0c;Ruby谈不上有多高效&#xff0c…