您现在的位置是: 首页 > 系统优化 系统优化
xen虚拟机安装xp系统_虚拟机中安装xp系统
tamoadmin 2024-08-14 人已围观
简介1.Centos 虚拟化之 XEN2.虚拟机监视器Xen和虚拟化技术(二)3.虚拟机上怎样安装多个ISO文件的操作系统4.虚拟机监视器Xen和虚拟化技术(一)VirtualBoxVirtualBox最早是德国一家软件公司InnoTek所开发的虚拟系统软件,后来被Sun收购,改名为Sun VirtualBox,性能有很大的提高.因为他是开源的,不同于VM,而且功能强大,可以在 Linux/Mac 和
1.Centos 虚拟化之 XEN
2.虚拟机监视器Xen和虚拟化技术(二)
3.虚拟机上怎样安装多个ISO文件的操作系统
4.虚拟机监视器Xen和虚拟化技术(一)
VirtualBox
VirtualBox最早是德国一家软件公司InnoTek所开发的虚拟系统软件,后来被Sun收购,改名为Sun VirtualBox,性能有很大的提高.因为他是开源的,不同于VM,而且功能强大,可以在 Linux/Mac 和 Windows 主机中运行,并 支持在其中安装 Windows (NT 4.0、2000、XP、Server 2003、Vista)、DOS/Windows 3.x、Linux (2.4 和 2.6)、OpenBSD 等系列的客户操作系统.如你曾经有用过虚拟机软件的经历的话,相信使用 VirtualBox 不在话下。即便你是一个新手,也没有关系。VirtualBox 提供了详细的文档,可以助你在短期内入门.
VMware Workstation
不需要重开机就能在同一台电脑使用好几个OS.VMware主要的功能有:
1.不需要分区或重开机就能在同一台PC上使用两种以上的操作系统.
2.完全隔离并且保护不同OS的操作环境以及所有安装在OS上面的应用软件和资料.
3.不同的OS之间还能互动操作,包括网络、周边、文件分享以及复制贴上功能.
4.有复原(Undo)功能.
5.能够设定并且随时修改操作系统的操作环境,如:内存、磁碟空间、周边设备等等.
Virtual PC
它能够让你在一台 PC 上同时运行多个操作系统,使用它你不用重新启动
系统,只要点击鼠标便可以打开新的操作系统或是在操作系统之间进行切
换。安装该软件后不用对硬盘进行重新分区或是识别,就能够非常顺利地
运行你已经安装的多个操作系统,而且还能够使用拖放功能在几个虚拟 P
C 之间共享文件和应用程序。
最常用的是VMware,我们在一台安装了Windows XP操作系统的普通PC上运行VMware软件,安装完毕后这台普通PC机就具备了虚拟机运行的平台。然后我们再通过运行VMware这样的虚拟软件来安装一个Windows XP系统,这样这台PC就可以运行两个Windows XP操作系统,这样我们可以在虚拟的操作系统中做设置或做测试,就不会影响原来操作系统的稳定性。当然我们也可以在XP的环境下建立其它操作系统的虚拟机,这样用一台普通PC就能虚拟出多种操作系统,方便用户切换、转换、测试等,这样就不需要多台设备,减少了投入也节省了费用。
虚拟机软件特点:可以在一台电脑上模拟出来若干台PC,每台PC可以运行单独的操作系统而互不干扰,可以实现一台电脑“同时”运行几个操作系统,还可以将这几个操作系统连成一个网络。
虚拟机装系统的过程大体一致,但不同的虚拟机安装的因使用的虚拟机软件而异。常见的有VMware 、XEN 、Bochs 、VMlite、 Virual PC 、Virtuozzo 、Parallels等几款虚拟软件。现在很多硬件厂商都加入了硬件对虚拟机的支持。如: VMware虚拟化微软虚拟化IBM虚拟化HP虚拟化SWsoft虚拟化SUN虚拟化Intel虚拟化AMD虚拟化
Centos 虚拟化之 XEN
虚拟化的概念在近些年收到了很大程度上的普及,求其原因很简单:虚拟化能够最大程度利用,为企业节约成本。目前市面较受欢迎的虚拟架构主要有KVM、XEN和VMware,其中,KVM和XEN都是免费开源的,而VMware则是付费的,所以,此次笔者只对比KVM、XEN之间的差别。
如果给KVM、XEN简单归类的话,KVM是完全虚拟化技术又叫硬件虚拟化技术(Full?Virtualization)。相反,XEN是半虚拟化技术(parirtualization),也叫做准虚拟化技术。
全虚拟化技术(左)与半虚拟化技术(右)
KVM是在虚拟机和硬件之间加了一个软件层--Hypervisor,或者叫做虚拟机管理程序(VMM),KVM的hypervisor是直接运行在物理硬件之上的。XEN是在全虚拟化的基础上,把客户操作系统进行了修改,增加了一个专门的API,使客户操作系统集成了虚拟化方面的代码,该方法无需重新编译或引起陷阱,因为操作系统自身能够与虚拟进程进行很好的协作。
KVM架构
也有人将KVM架构分解为两部分:KVM驱动,即linux?kernel的一个模块和Qemu,即用于模拟虚拟机的用户空间组件,提供I/O设备模型,访问外设的途径。其最大的优势在于KVM使用Linux内核集成的,所以速度较快,同时,KVM是完全虚拟的,所以不需要区分pv和hvm,可以安装各种Linux发行版和Windows发行版,可以运行在支持虚拟化扩展的X86和X86-64硬件架构上。
XEN实际上出现的时间要早于KVM,它是由剑桥大学开发的,一个开源的虚拟机监视器。半虚拟化架构决定了它注定不是真正的虚拟机,只是自己运行了一个内核的例子,同时区分Xen+pv+和Xen+hvm,其中pv只支持Linux,而hvm则支持Windows系统。除此之外,XEN还拥有更好的可用、平台支持、可管理性、实施、支持动态迁移和性能基准等优势。
参考资料:
虚拟机监视器Xen和虚拟化技术(二)
我还是一个视觉系的,很多东西都感觉知道,但不能好好的去表达,还是看图好一点。
上菜。。。
OK,这是一张关于xen的架构图(来自于马哥),从这张图上,我们可以看出xen是一个type-II的虚拟化实现,type-II是在硬件之上直接安装一个Hypervisor,再在Hypervisor上安装各Guest,可上面的图好像有点不同啊。
不错,在计算机的世界里,实际就是在实现现实世界中的各种事物,如简单的1+1,又如实现一个国家的信息管控,但计算机的世界和现实世界是完全不一样的,那么要在计算机的世界里实现现实世界的事物就不可能1:1的实现。人生活现实中,而计算机的世界却是人去构建的,如何完美。
这在计算机世界中处处可见.......
上面这么多的废话,就是xen为什么不是一个我们定义的type-II的标准样子。下面我们来说说原因,xen如何要做到一个标准的type-II,那么它就要能够和所有的硬件打交道,换句话说,就是要驱动所有的硬件,而硬件的驱动一般都是由硬件生产商开发的,
(这里开启吐槽模式,intel没有提供8代cpu的部分驱动对win7的支持,导致好长一段时间我们都不能愉快的玩耍,wan e de intel !)
linux对硬件的支持都不能说很好,linux不能说多普及,但在很多领域中也是广泛使用的,但有的硬件就是不支持。
那xen呢,它没法到找所有的硬件制造商让他们开发吧,那怎么办,自己开发吗?这是不可能完成的。
办法总比问题多,好吧,没有驱动,我就用别人的好了,于是就出现 上面的那种结构,xen的hypervisor只负责对硬件cpu和内存的驱动,而其它硬件如:I/O设备等的驱动托管给了dom0(linux)。
半方大的空白?或?空白
全方大的空白?或?空白
不断行的空白?或?空白
Xen Hypervisor是直接运行在硬件与所有操作系统之间的基本软件层。它负责为运行在硬件设备上的不同种类的虚拟机(不同操作系统)进行CPU调度和内 存分配。Xen Hypervisor对虚拟机来说不单单是硬件的抽象接口,同时也控制虚拟机的执行,让他们之间共享通用的处理环境。
Xen Hypervisor不负责处理诸如网络、外部存储设备、或其他通用的I/O处理。
?Domain 0 是经过修改的Linux内核,是运行在Xen Hypervisor之上独一无二的虚拟机,拥有访问物理I/O的特权,并且可以与其他运行在Xen Hypervisor之上的其他虚拟机进行交互。所有的Xen虚拟环境都需要先运行Domain 0,然后才能运行其他的虚拟客户机。
?Domain 0 在Xen中担任管理员的角色,它负责管理其他虚拟客户机。
?在Domain 0中包含两个驱动程序,用于支持其他客户虚拟机对于网络和硬盘的访问请求。这两个驱动分别是Network Backend Driver和Block Backend Driver。 Network Backend Driver直接与本地的网络硬件进行通信,用于处理来自Domain U客户机的所有关于网络的虚拟机请求。根据Domain U发出的请求Block Backend Driver直接与本地的存储设备进行通信然后将数据读写到存储设备上。
?Domain U客户虚拟机没有直接访问物理硬件的权限。所有在Xen Hypervisor上运行的半虚拟化客户虚拟机(简称:Domain U PV Guests)都是被修改过的基于Linux的操作系统、Solaris、FreeBSD和其他基于UNIX的操作系统。所有完全虚拟化客户虚拟机(简 称:Domain U HVM Guests)则是标准的Windows和其他任何一种未被修改过的操作系统。
说了这么多,下面来说说安装,惯例,上菜...
因为这个源的针对性很强,而且其中有kernel的包,以免以后忘记出
现问题,关闭这个安装源,安装时使用"--enablerepo="来安装,另外这个repo源是Centos提供的,url为 ://mirror.centos.org ,慢就一个字,我只用镜像源。
呵呵...
一直一直就这个,好nb的启动界面(我无数次的以为死机了,无数次...,直到有一次启动的时候我去干其它事儿去了,回来一看,神奇的事情发生了,启动成功。我再呵呵)long long ago...过程我就不说了,不堪回首!
这样可以看到xen的启动
dom0的启动看不到
好吧这个问题跳过。。。。。(再次道歉ing...)
看来现在一切正常了可以建虚拟机了吧,go go go
第一步,神说:要有 硬盘 ,于是就有了qemu-img
第二步,神还说:要有 网卡 ,于是就有了我敲键盘
准备工作做完了,现在该我说了,写 配置文件
找度娘,找啊找。。。说是使用vnc可以,好,改
5900开了,连上去
轻松愉快吧,可以好像还有很多的问题不是吗?
xl 是什么?
sdl 为什么不能用?
系统 要怎么安装?
配置文件 只能手写吗?
vnclisten = '0.0.0.0' ,为什么要写这个?
虚拟机上怎样安装多个ISO文件的操作系统
XEN 方法和概述 在传统的VMM中 虚拟硬件的功能是与底层机器上的真实硬件完全相同的 这种 完全虚拟化 (full virtualization)的方法最显而易见的好处在于操作系统可以不经任何修改就直接在虚拟硬件上运行 但是它也有很多缺点 特别是针对那些当前被广泛应用的IA (或者称作x )架构 这种方法带来的缺陷更是不容忽视 x 架构的设计从来就不支持完全的虚拟化 如果要正确实现x 架构虚拟化 VMM就必须能够对某几条特定的 超级指令(supervisor instruction) 进行操作 但是 如果在没有足够特权的情况下执行这些超级指令会导致 沉默的失败(//fail silently 如果特权级不够 那么会直接导致执行失败 不会产生其它响应) 而并非产生一个便于我们使用的陷阱(trap) 另外 将x 架构中的MMU进行有效的虚拟化也是一件很困难的事情 这些问题是可以被解决的 但是在解决的同时必须要付出操作复杂度增加和系统性能降低的代价 VMware ESX Server[ ]需要动态地重写那些被VMM操控的机器码部分 在其中有可能需要VMM干涉的地方插入陷阱操作(//在什么地方插入陷阱操作 是在程序运行起来后才知道的 所以需要动态地重写相关代码) 因为务必要对所有那些不能够引起陷阱的特权指令进行捕捉和操作 所以这种转换(//动态重写代码)要被应用于整个guest OS的内核(导致了相关的转换 执行和缓存等开销) ESX Server实现中用的技术是建立系统结构(system structure)(比如页表)的影子版本 通过为每一次 更新 操作设立陷阱来解决虚拟页表和物理页表的一致性问题(//具体细节还是要看ESX Server的说明) 但是在处理 更新密集 型的操作(如创建新的应用进程)的时候 该方法会带来高昂的开销 除了x 架构非常复杂的原因 还有一些其它方面的争论反对 完全虚拟化 其中值得一提的是 *** 控的操作系统在一些情况下需要接触到真实的 例如 提供真实时间和虚拟时间以允许guest OS能够更好地支持 时间敏感 型的任务 还可以正确地操作TCP超时和RTT估算 给出真实的机器地址以允许guest OS能够利用超级页(superpage)或者页染色(page coloring)等方法改进性能 我们提出的虚拟机抽象能够避免完全虚拟化带来的种种缺陷 这种虚拟机抽象和底层硬件相似却并不完全相同 因此被称之为 准虚拟化 (//parirtualization 或者翻译为半虚拟化?后面译文沿用准虚拟化)方法 这种方法虽然需要对guest OS进行一些改动 但是它能够改善性能 还有特别重要的一点需要说明 准虚拟化方法不会对应用二进制接口(ABI)进行修改 因此用户也就不用修改那些在guest OS上执行的应用程序 我们进行的关于准虚拟化方法的讨论要遵循以下一些规则 最基本的是要支持那些不经改动的应用二进制文件的执行 即用户不用对应用程序做针对Xen的转换 因此我们必须虚拟化现有的标准ABI所需的全部体系结构特征 很重要的一点是要支持完整的多应用操作系统 这就需要将在单个guest OS实例中的复杂的服务器配置虚拟化(//例如 如果guest OS上配置了ftp服务 那么虚拟硬件就要打开相应端口) 准虚拟化务必要有很高的性能 另外针对那些不协作(//uncooperative 这里的不协作是指硬件架构不支持共享 所以才需要隔离)的机器架构 如x 架构 准虚拟化还需要能够提供很强的隔离能力 在协作(cooperative)的机器架构上 准虚拟化方法要能够完全地隐藏虚拟化带来的影响 减少guest OS在正确性和性能上面临的风险 请注意 我们在这里提出的准虚拟化的x 抽象的方法是与最近在Denali项目中提出的方法有很大差异的 Denali是为了支持数以千计的运行着网络服务的虚拟机而设计的 这些网络服务中绝大部分是小规模的 不流行(//应用的不流行也就说明了运行该应用的环境比较少 所以只要针对这些相应的特定环境作专门的虚拟化即可)的应用 与之相反的是 Xen的设计最终要支持近 个运行着业界标准应用和服务的虚拟机 由于设计目标的极大差异 我们不妨将Denali的设计选择和我们自己的设计规则做一个有益的讨论 首先 Denali不需要关注现有的ABI 因此他们的VM接口忽略掉了相关的架构特征 例如 Denali并不完全支持x 的分段机制 但是这一点却是在NetBSD Linux和Windows XP等操作系统的ABI中都有提出并且被广泛使用 例如 线程库中经常会使用分段机制来寻址线程局部数据 其次 Denali的实现没有解决在单个guest OS中支持多个应用(lication multiplexing)的问题 也没有解决多地址空间的问题 应用被显式地链接到Ilwaco guest OS实例上 这么做在某种意义上类似于之前在Exokernel中的libOS[ ] 因此每个虚拟机只能操控一个单用户单应用的没有保护措施的所谓的 操作系统 在Xen中 与之相反 每个虚拟机上能够操控一个真正的操作系统 这个操作系统上能够安全地执行数以千计个不经改动的用户级进程 虽然Denali号称开发了一个虚拟MMU原型能够对其在该领域有所帮助 但是我们没有看到公开的技术细节和评估报告 再次 在Denali体系结构中 是由VMM执行全部的内存与磁盘间的页面调度的 这可能是与虚拟层缺乏存储管理支持有关 由VMM完成页面调度是与我们的性能隔离目标相违背的 那些 有恶意 的虚拟机可能会故意产生抖动行为 导致其它虚拟机的CPU时间和磁盘带宽被不公平地剥夺(//VMM监控很多VM 各个VM上再跑操作系统 所以如果很多事情都放在VMM中做必然会影响到各个VM 所以要把一些事情放在上面的操作系统做来达到隔离性) 在Xen中 我们希望每个guest OS在其自己分配到的内存空间和磁盘区域内执行它自己的页面调度(此前已经有self paging的方法被提出) 最后 Denali为机器的全部虚拟了 名字空间 这样的话 如果一个VM不能够 叫出 另一个VM下辖的的名字 那么该VM就不能够访问这些(例如 Denali中的VM并不知道硬件地址 它们只看得到Denali创建的虚拟地址) 与此相对 我们认为hypervisor中的安全访问控制已经足以确保安全性 此外 就像之前讨论过的 当前在guest OS是否应该能够直接看到物理这一点上存在着很热烈的关于正确性和性能的争论 在后续的章节里 我们将描述Xen提出的虚拟机抽象 然后将讨论如何将一个guest OS作必要的改动以适应Xen 在这篇文章里我们定义了一些术语要提醒大家注意 例如 术语guest OS是指Xen能够操控的操作系统之一 术语domain是指一个运行中的虚拟机 在其上有一个guest OS在执行 program和process之间的区别和传统系统中的区别类似 我们称Xen本身为hypervisor 因为它运行的特权级要比它所操控的guest OS中的supervisor code运行的特权级更高 虚拟机接口 一个准虚拟化的x 接口主要包括了系统中的三个大的方面 存储管理 CPU和设备I/O 在下面 我们将依次介绍各个机器子系统的情况 并讨论在我们的准虚拟化架构中是如何体现的 虽然在我们的实现中 有相当一部分 如存储管理 是专门针对x 的 但是实际上还有很多方面(比如我们虚拟的CPU和I/O设备)都是可以很容易地应用于其它机器架构上的 更进一步地说 在与RISC架构在实现上有差异的很多地方 x 往往表现出的是该方面最坏情况时的情形 例如 对硬件页表进行有效的虚拟化就比虚拟化一个软件管理的TLB困难很多 存储 管理分段不能够使用具有完全特权级的段描述符 不能够与线性地址空间的最顶部交迭(//因为最顶部是Xen) 分页guest OS直接对硬件页表做读访问 但是更新(//就是写)是分批进行的而且要经过hypervisor确认 一个domain可以被分配在不连续的页面上 CPU保护guest OS必须运行在低于Xen的特权级上 异常guest OS必须将异常句柄的描述符表在Xen中记录 除了页面错误外 其它句柄和真实的x 架构相同 系统调用guest OS为系统调用提供一个 快速 的句柄 允许应用直接调用它所在的guest OS 而不必间接地通过Xen完成每次调用 中断硬件中断被一个轻量级的系统替换 时间每个guest OS具有一个定时器接口 可以得到 真实的 和 虚拟的 时间 设备I/O网络 磁盘 ……虚拟设备访问起来很简单 数据传递使用的是异步I/O环 由一个机制替换硬件中断来发布通告 存储管理 虚拟化存储毫无疑问是准虚拟化一个体系结构中最困难的部分 它包括hypervisor所需的机制和移植各个guest OS所需的改动 如果在架构中提供了由软件管理的TLB的话 那么这个任务会变得轻松些 它们可以以比较简单的方式被有效地虚拟化[ ] 带标记的TLB是另外一个在大部分RISC架构(这些RISC架构主要用于构建服务器 比如Alpha MIPS和SPARC)中支持的有用特征 其中 每个TLB项都有和地址空间标识符相关的标记 这使得hypervisor和各个guest OS能够有效地在被隔离开的地址空间内共存 这时在执行转移(//transferring execution 在进程执行间切换的时候 执行的指令序列从一个进程转移到另一个进程 称为执行转移)的时候 是不需要刷新(flush)整个TLB(//只对具有和自己的地址空间标识符相吻合的TLB项进行操作) 不幸的是 x 架构并没有由软件管理的TLB 取而代之的是在发生TLB失效的时候 处理器会自动通过遍历硬件页表结构来处理 因此为了获得最好的可能达到的性能 当前地址空间内所有的有效页传输)都要在硬件可访问的页表中给出(//最好情况理应如 lishixinzhi/Article/program/Ja/JSP/201311/126
虚拟机监视器Xen和虚拟化技术(一)
首页 论坛 搜索
加入Linux阵营 linux学前 安装linux操作系统 驱动软件安装 linux基本技能 linux新手必知 Redhat linux shell 红旗linux 其它linux发行版 Linux书籍软件下载 □-linux疑问解答 UniX技术文章 服务器应用 MySQL数据库 Oracle数据库 linux编程 linux内核 Ja Linux新闻 linux认证
您的位置: 首页 >> 论坛 >> linux基本技能 >> 查看帖子
最新更新主题对抗Linux系统
在Linux下增加Swap区
Linux学习笔记
linux虚拟光驱
Linux下主要文件
Linux系统中的超级权限的控制
使用Linux命令来发送信息
Linux应约界面下中文的显示
Linux小技巧
LINUX下把文件制成ISO Linux上的虚拟化技术 Xen 初学者指南
发表时间: 2006-7-17 09:03 作者: zz123 来源: linux286社区
字体: 小 中 大 | 打印
作者:北南南北 来源:LinuxSir.Org
0、本文约定;
虚拟平台是指能支持运行Xen的真实安装的操作系统;
虚拟操作系统:是指在虚拟平台上安装和虚拟运行的操作系统;
比如我在Slackware 中安装了Xen,那Slackware就是虚拟平台,通过虚拟平台就可以虚拟其它操作系统了;比如通过Slackware来虚拟Debian、Fedora ... ...
1、什么是Xen;
Xen 是一个开放源代码的para-virtualizing虚拟机(VMM),或“管理程序 ”,是为x86架构的机器而设计的。Xen 可以在一套物理硬件上安全的执行多个虚拟机;Xen是基于内核的虚拟程序,它和操作平台结合的极为密切,所以它占用的最少。
什么是虚拟机呢?可能大家知道VMWARE吧,是的,Xen就是类似这样的程序,比如我们可以在Fedora 上虚拟安装和使用Slackware、Debian、Gentoo ... ... 等发行版。因为Xen是基于内核的,相对VMWARE 来说,它占用的系统也就是VMWARE的百分之几左右。Xen是不是更有优势呢?只有您实践了才知道。这也是我写本文的最主要原因;
1.1 Xen的特性;
虚拟机的性能更接近真实硬件环境)
在真实物理环境的平台和虚拟平台间自由切换)
在每个客户虚拟机支持到 32个虚拟CPU,通过 VCPU热插拔)
支持PAE指令集的x86/32, x86/64平台
通过Intel 虚拟支持VT的支持来用虚拟原始操作系统(未经修改的)支持(包括Microsoft Windows)
优秀的硬件支持.支持几乎所有的Linux设备驱动
1.2 Xen的应用范围;
服务器整合:在虚拟机范围内,在一台物理主机上安装多个服务器, 用于演示及故障隔绝;
无硬件依赖:允许应用程序和操作系统对新硬件的移值测试;
多操作系统配置:以开发和测试为目的,同时运行多个操作系统;
内核开发:在虚拟机的沙盒中,做内核的测试和调试,无需为了测试而单独架设一立的机器;
集群运算:和单独的管理每个物理主机相比较,在VM级管理更加灵活,在负载均衡方面,更易于控制,和隔离;
为客户操作系统提供硬件技术支持:可以开发新的操作系统, 以得益于现存操作系统的广泛硬件支持,比如Linux;
1.3 Xen的操作系统支持和硬件支持;
请参阅: 《Xen v3.0 用户手册》
2、Xen的一点理论基础;
基于Xen的操作系统,有多个层,最底层和最高特权层是 Xen程序本身。Xen 可以管理多个客户操作系统,每个操作系统都能在一个安全的虚拟机中实现。在Xen的术语中,Domain由Xen控制,以高效的利用CPU的物理。每个客户操作系统可以管理它自身的应用。这种管理包括每个程序在规定时间内的响应到执行,是通过Xen调度到虚拟机中实现。
当Xen启动运行后,第一个虚拟的操作系统,就是Xen本身,我们通过xm list,会发现有一个Domain 0的虚拟机。Domain 0 是其它虚拟主机的管理者和控制者,Domain 0 可以构建其它的更多的Domain ,并管理虚拟设备。它还能执行管理任务,比如虚拟机的体眠、唤醒和迁移其它虚拟机。
一个被称为xend的服务器进程通过domain 0来管理系统,Xend 负责管理众多的虚拟主机,并且提供进入这些系统的控制台。命令经一个命令行的工具通过一个HTTP的接口被传送到xend。
3、Xen的安装;
在写本文时,Xen的当前最新版本是xen-3.0.1,它基于的内核版本是2.6.12.6的。您可以根据自己的操作系统的情况来选择一种安装方式,适合您的就是最好的;
3.1 安装Xen的准备工作;
拥有 GRUB引导的Linux做为安装平台,还要编译工具,比如gcc、binutils 及make和automake等;开发库有zlib和python-dev等;
具体明细请参阅: 《Xen v3.0 用户手册》
由于Xen用Python 开发的,所以Python 当然也是必不可少的。如果您是新手,我建议您用自己所用的操作系统软件包管理工具来安装这些软件包。
3.2 在Redhat/Fedora 操作平台上的安装;
在Fedora/Redhat平台上安装比较简单,您可以通过yum 来在线安装Xen和支持Xen的内核;因为Fedora/Redhat已经提供对Xen的支持了;Fedora/Redhat 提供的Xen内核支持比较高;不过就目前我的测试来看好象经常会机器重启,存在的问题可能是桌面环境造成的,比如GNOME桌面,打开就有重启的现象,也可能是Fedora/Redhat提供的Xen内有BUG;
安装Xen及支持Xen的请参考:《Fedora Core 5.0 用 Xen 虚拟Slackware 10.2》
对于Fedora 4.0及Redhat和Fedora 5.0类似;现在Yum的源上都有Xen和支持Xen的内核包;
3.3 通过Xen的二进制包来安装(几乎适用所有的Linux发行版);
通过Xen的二进制软件包来安装,这应该是通用的,几乎适合所有的Linux操作系统。由于二进制所是已经编译好的,我已经在Slackware 平台上用这种方法来安装,还是成功的。另外etony兄也在Debian上安装成功;
您应该到 ://.xensource/downloads 去下载二进制包,文件名中带有xen-3.0.1-install字样的,比如 xen-3.0.1-install-x86_32.tgz,这个软件包表示适用x86_32位机器的。也就是我们用的普通32位PC机。如果您用的是64位机器,应该下载文件名带有x86_64字样的软件包;
下载好后,就解压安装,我们还是以支持x86_32构架机器的xen-3.0.1-install-x86_32.tgz为例:
[root@localhost ~]# tar zxvf xen-3.0.1-install-x86_32.tgz
[root@localhost ~]# cd xen-3.0.1-install
[root@localhost xen-3.0.1-install]# sh install.sh
判断是不是安装好了,请查看/boot目录,会发现有很多文件名带有xen字样的文件,另外在/lib/moudules中也会发现有支持xen的内核模块;另外再看一看是否有/etc/xen这个目录。我想应该是有的。
3.4 通过Xen的源码包编译安装(仅供参考);
通过Xen的二进制包来安装,可能有时内核不太适应我们的需要,这时我们要通过Xen的源码包来安装。通过自己编译来安装Xen及支持Xen的内核;Xen的源码包,您可以到 ://.xensource/downloads去下载。文件名带有 xen-3.0.1-src字样的,比如 xen-3.0.1-src.tgz。
3.41 编译原理;
通过Xen的源码包编译,其实也没有什么神秘的。在Xen的源码包中提供了一些内核补丁和内核配置文件等。当我们执行编译命令时,首先编译的是Xen程序本身,然后是编译内核 。在编译内核时,程序会自动判断是否有内核源码 ,xen-3.0.1支持的内核是2.6.12.6,如果在xen的解压目录下没有,他就会自动内核的官方站 ://.kernel.org 下载 linux-2.6.12.tar.bz2。然后就是自动解压并为此内核打补丁。然后系统会根据指令要求,然后用相应的内核配置文件,或配置内核进行编译。
3.42 编译过程简说;
第一步:解压软件包,查看Xen源码包所带的文件;
[root@localhost ~]# tar zxvf xen-3.0.1-src.tgz
[root@localhost ~]# cd xen-3.0.1
[root@localhost xen-3.0.1]# ls
COPYING Config.mk README docs install.sh patches xen
ChangeLog Makefile buildconfigs extras linux-2.6-xen-sparse tools
我们解压xen-3.0.1-src.tgz 后,进入解压目录,会看到以上的文件或文件夹。patches是内核的补丁包,linux-2.6-xen-sparse是支持Xen的内核目录树,值得注意的是内核的配置文件就在这个目录中;
[root@localhost xen-3.0.1]# ls linux-2.6-xen-sparse/arch/xen/configs/
xen0_defconfig_ia64 xen0_defconfig_x86_64 xenU_defconfig_x86_32 xen_defconfig_x86_32
xen0_defconfig_x86_32 xenU_defconfig_ia64 xenU_defconfig_x86_64 xen_defconfig_x86_64
看到上面所列出的内核配置文件了吧,我们可能会发现文件名带有xen0字样的和xenU字样的两类文件。在这两类内核中,我们大多会修改的内核配置文件是运行xen的操作系统的内核配置文件,另一个是用于虚拟操作系统的内核配置文件;
xen0字样的就是我们一般是用于我们运行xen的操作系统的内核 ,而xenU字样的就是为虚拟操作系统所提供的内核。另外还有x86_32和x86_64之分,这表示CPU的架构。
比如我们用的是x86架构32位的CPU,我们在编译内核的时候就要用到 xen0_defconfig_x86_32 和xenU_defconfig_x86_32 配置文件。
举个例子:比如我的机器架构是x86_32位的,我安装xen的操作系统是Slackware,我想在Slackware 虚拟Debian 、Gentoo、Fedora等操作系统。这时编译虚拟平台Slackware所用的内核的配置文件就是 xen0_defconfig_x86_32 ,而被虚拟平台(Debian 、Gentoo、Fedora等操作系统)所用的内核就是 xenU_defconfig_x86_32 。
弄明白内核配置文件有何用?我们能明白xen在编译过程中用了哪些内核配置文件,目的是我们在编译过程中可以根据自己的需要来修改它,以编译出适合我们需要的内核。
比如我们想让Slackware 支持xen,并且还要支持NTFS文件系统;所以我们就要修改 xen0_defconfig_x86_32这个文件。找出如下一行;
# CONFIG_NTFS_FS is not set
改为
CONFIG_NTFS_FS=m
如果您想让被虚拟的操作系统(Debian 、Gentoo、Fedora等)也支持NTFS文件系统,所以要在 xenU_defconfig_x86_32找出如下一行;
# CONFIG_NTFS_FS is not set
改为
CONFIG_NTFS_FS=m
第二步:配置内核;
这一步有两种方法,一个是直接修改内核配置文件,另一个是内核配置界面来配置;
方法一:通过修改内核配置文件;
Xen所带的内核配置文件位于解压目录中的linux-2.6-xen-sparse/arch/xen/configs 。我们前面已经提到了相关配置文件的用途。请仔细看前一步的说明;
方法二:通过内核配置界面来配置;
[root@localhost xen-3.0.1]# make linux-2.6-xen0-config CONFIGMODE=menuconfig
第三步:编译和安装Xen;
[root@localhost xen-3.0.1]# make
[root@localhost xen-3.0.1]# make install
3.43 创建initrd文件;
有的系统需要initrd-XXXX.img或initrd.gz文件才能引导起来,如果您的系统用了支持xen的支持引导不起来,就要创建一个initrd-XXXX.img或initrd.gz的文件;请参考: 《Xen v3.0 用户手册》
3.44 关于xen0和xenU内核说明;
一般的情况下会在/boot目录中有两个与xen相关的内核,有的文件名带有vmlinuz-XXXX-xen0字样的,有的带有vmlinuz-XXXX-xenU字样的;比如:
[root@localhost xen-3.0.1]# ls -la /boot/vmlinuz*xen*
lrwxrwxrwx 1 root root 21 2006-04-12 07:42 /boot/vmlinuz-2.6-xen0 -> vmlinuz-2.6.12.6-xen0
lrwxrwxrwx 1 root root 21 2006-04-12 07:49 /boot/vmlinuz-2.6-xenU -> vmlinuz-2.6.12.6-xenU
lrwxrwxrwx 1 root root 21 2006-04-12 07:42 /boot/vmlinuz-2.6.12-xen0 -> vmlinuz-2.6.12.6-xen0
lrwxrwxrwx 1 root root 21 2006-04-12 07:49 /boot/vmlinuz-2.6.12-xenU -> vmlinuz-2.6.12.6-xenU
-rw-r--r-- 1 root root 2180524 2006-04-12 07:42 /boot/vmlinuz-2.6.12.6-xen0
-rw-r--r-- 1 root root 1129950 2006-04-12 07:49 /boot/vmlinuz-2.6.12.6-xenU
其实就是两个与xen相关的内核,其它的都是这两个内核文件的链接;也就是vmlinuz-2.6.12.6-xen0和vmlinuz-2.6.12.6-xenU。vmlinuz-2.6.12.6-xen0是用来引导虚拟平台的,比如我们在Slackware上安装Xen,那Slackware就是虚拟平台;所以如果要让Slackware的xen能运行起来,必须用xen相关的内核 ,也就是vmlinuz-2.6.12.6-xen0这个内核。 而XenU字样这个内核,是用来引导虚拟操作系统用的,我们在以后会提到它。
引言 现代计算机具有足够强大的能力来利用虚拟化技术支持多个虚拟机(VM: virtual machines) 并且在每个虚拟机上各自运行单独的操作系统实例 这直接导致了虚拟机技术发展的又一个春天 在本文中 我们提出了Xen 一个高性能的用于管理的虚拟机监视器(VMM: VM monitor) Xen能够支持的应用比如 server consolidation co located hosting facilities distributed web services secure puting platforms[ ]和lication mobility 成功地对一台机器进行划分 使它能够支持多个操作系统的并发执行 这个过程具有很多的挑战 首先 虚拟机必须是彼此相隔离的 如果一个虚拟机的执行会影响另一个的性能 这是不可以被接受的 这一点在操作各个虚拟机的用户相互间并不信任的情况下显得特别重要 其次 它必须支持多种多样的不同操作系统以提供给各种异构(heterogeneity)的流行应用的支持(//这里的异构指的是应用开发依托的操作系统不同 因此在实现上也就有很大差异 使得应用并不能够跨平台移植 因为Xen不需要对应用程序进行修改 那么它就必须支持各种常用的操作系统 所谓流行的应用 就是那些大家常用的 必需的应用) 第三 由虚拟化技术引入的性能开销必须要小 Xen操控(//host 操作和控制)的是常用的操作系统 但是需要对操作系统中的某些相关部分进行一些修改 在本文中描述和评估的Xen原型系统能够支持多个我们研发的XenoLinux guest OS实例的并发执行 每个实例都给出了和非虚拟化情况下的Linux 中相同的应用二进制接口 目前 我们对Windows XP到Xen的移植还没有完全完成 但是已经能够运行简单的用户空间进程 移植NetBSD的工作也在进行中 Xen使得用户能够动态地实例化一个操作系统以执行他们需要的应用 在XenoServer项目[ ]中 我们在ISP或者Internet exchange(//布置在这些场合中经济划算而且又具有战略意义的地方)的标准服务器硬件上配置了Xen 我们在启动一个新的虚拟机的时候需要执行许可控制(admission control) 希望每个虚拟机能够以某种方式为它需要的付出代价 我们在其它文章中讨论过我们在这个方向上的思路和方法[ ] 现在这篇文章则将焦点关注于虚拟机 现在有一些方法用于构建能够在共享的机器上操控多个应用和服务器(//server 这里提到的server应该是大规模应用的意思 比如数据库服务器)的系统 也许最简单的方法就是部署一个或多个运行着标准操作系统(如Linux或者Windows)的主机 然后允许用户们安装文件和启动进程— 应用间的保护是由传统的操作系统技术提供的(//这里提到的做法 就是类似并行机性质的 各个节点都是独立的主机 但是一个应用可以在多个节点上面并行执行) 实验显示 由于要针对各个脱节(//supposedly disjoint 逻辑上脱节 指的是应用不具有连贯性/兼容性 所以针对每个应用都要单独配置一次 如果能想办法将前后有关联的应用放在一起执行 可以大大减少相关的开销 如配置开销 通信开销等等)的应用进行复杂的配置 这些配置过程导致的交互行为会使系统管理任务迅速成为时间消耗巨大的任务 更重要的是 这样的系统不能够充分地支持性能隔离 某个进程的调度优先级 存储要求 网络通信量和磁盘访问等等特征都会影响到其它进程的性能 如果是在供应充足而且用户群体是限定(比如计算网格或者PlanetLab平台实验)的情况下 这个系统还是可以接受的 但是当是供不应求的时候 或者用户间不相协作(//uncooperative 不相协作 比如用户间的需求有冲突 那么一定会互相影响的)的时候就不行了 一个解决这个问题的方法是改进对操作系统性能隔离的支持 这已经在resource containers Linux/RK QLinux和SILK中被或多或少地实现了 这些方法中存在着一个难点是难以确保所有的都能够正确地分配给有相应需求的进程 例如 缓冲区cache或者存储页面的替换算法导致的在应用间的复杂的交互行为(//比如存储页面替换的时候 某个进程的页面替换序列会干扰到其它进程的 要免除这个影响就需要有复杂的机制用于进程间的协调) 这就是存在于操作系统中的 QoS干扰问题(QoS crosstalk) 在低层用多路执行技术能够缓解这个问题带来的影响 这已经在Exokerne和Nemesis操作系统中得到证明 在这些操作系统中 任务间无意识的或者不受欢迎的交互行为被最小化了 我们使用了同样的基本方法来构建Xen Xen就是以整个操作系统的粒度复用物理 它能够提供在操作系统间的性能隔离 相对于进程级的复用 Xen要允许一定范围内的guest OS 和平 共存 而并非去指定一个特殊的应用二进制接口(//如果限定了应用二进制接口 就意味着只能支持某个特定的操作系统) 为了获得这种灵活性就必须付出一些代价 — 无论是在初始化过程(比如 boot和resume与fork和exec的比较)中 还是在消费上 运行一个完整的操作系统与运行一个进程相量都要重得多 为了达到我们的能够支持多至 个 *** 控的操作系统实例的目标 我们认为这些代价是值得付出的 付出这些代价后获得的系统允许单个用户在受控的形式下 直接运行那些不需要修改的二进制代码或者二进制代码集合(例如 后端为PostgreSQL的Apache服务器) 更进一步的 因为用户能够动态地精确创建他们的软件所需要的执行环境 所以这个系统也就提供了在非常高的层次上的灵活性 另外 在各种服务和应用间的配置交互也是可以避免的(例如 每个Windows实例都有它们自己的寄存器文件) 本文的余下部分是这样组织的 第 部分解释了我们的虚拟化方法和Xen的工作概况 第 部分描述了我们的设计和实现的关键特征 第 部分给出了使用业界标准的测试程序评估运行在Xen上的XenoLinux与单独的Linux VMware Workstation和用户模式Linux(UML)的性能比较结果 最后的第 部分讨论了未来的工作并作了总结 lishixinzhi/Article/program/Ja/JSP/201311/19609