赛迪网 > IT技术 热点推荐 > 文章
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

Linux系统上的虚拟化技术 (2)

发布时间:2008.04.24 21:09     来源:赛迪网    作者:M. Tim Jones 文/赵珂 译

库级的虚拟化

这里没有讨论另一个虚拟化技术, 它通过库来模拟操作系统的一部分. 比如Wine(一部分为linux开发的win32 API)和LxRun(一部分为Solaris开发的Linux API).

QEMU(模拟器)

QEMU是另一个类似于Bochs的模拟器, 它有一些值得注意的地方. QEMU支持2个操作模式. 一个是全系统模拟模式. 该模式类似Bochs模拟整个计算机系统(包括处理器和外设). 而且能在合理的速度下使用动态翻译模拟一些处理器架构如X86, X86_64, ARM, SPARC, PowerPC和MIPS. 你还可以在Linux, Solaris和FreeBSD系统上模拟Windows系统(包括XP)和Linux系统. QEMU支持其它的操作系统组合(更多信息见参考资料栏目).

QEMU的第二个模式: 用户模式模拟. 该模式能寄存在Linux上, 不同平台的二进制程序也能运行. 比如, 一个MIPS平台上的二进制程序能够运行在x86平台上的Linux系统. 其它支持的平台包括ARM, SPARC和PowerPC, 而且还有更多正在开发的平台.

VMware(全虚拟化)

VMware是一个商业级的全虚拟化技术. Hypervisor是客户操作系统和硬件之间的抽象层. 该抽象层允许任何其它客户操作系统运行在主机操作系统之上.

VMware也能虚拟I/O硬件, 增加了高性能设备驱动到Hypervisor中.

整个虚拟(机)环境实际上是一个单独的文件, 这意味整个系统(包括客户操作系统, 虚拟机和虚拟硬件)可以简单快速地整合到一个新的主机, 从而实现负载均衡.

z/VM(全虚拟化)

当IBM System z™是一个全新名称的时候, 事实上可以追述到1960年. System/360在1965年使用虚拟机方法实现了虚拟技术. 令人感兴趣的是System z能够与最老的System/360系列主机兼容.

z/VM®是System z操作系统的Hypervisor. 核心程序是控制程序(CP), 向客户机操作系统提供硬件资源虚拟, 包括Linux(见图5). 允许在多个客户操作系统上虚拟多个处理器和其它资源.

图5. 使用z/VM的操作系统级虚拟化技术

z/VM可以为那些需要相互通讯的客户操作系统虚拟一个客户局域网(LAN). 整个客户局域网位于Hypervisor中, 所以很安全.

Xen(半虚拟化)

Xen由XenSource开发, 一个开源免费的操作系统级准虚拟技术. 回顾一下半虚拟技术, Hypervisor和操作系统共同协作, 虽然操作系统需要做一些修改, 但是性能上比较接近于原始性能.

Xen需要与系统共同协作(客户操作系统需要修改), 只有打过补丁的系统才能使用Xen. 从Linux角度来看, Linux本身是开源的, 结果是Xen的性能要好于全虚拟化技术. 但是从系统支持(比如支持其它非开源的操作系统)的角度来看, 这显然是一个不足之处.

在Xen上可以运行Windows客户机, 但需要Intel Vanderpool或AMD Pacifica处理器的支持. 其它支持的操作系统包括Minix, Plan 9, NetBSD, FreeBSD, 和OpenSolaris.

用户模式Linux(半虚拟化)

用户模式Linux(UML, User-Mode Linux)支持在linux系统的用户空间运行其它Linux操作系统. 每一个客户操作系统是主机Linux系统上的一个标准的进程(见图6). UML允许多个Linux内核(有自己的用户空间)运行在单个Linux内核之中.

图6. 用户模式Linux: Linux寄存

在Linux 2.6内核中, UML存在于主内核树中, 但是必须打开和重新编译才能使用UML. 一些修改包括, 设备虚拟, 允许客户操作系统分享存在的物理设备, 比如块设备(磁盘, CD-ROM, 和文件系统), 控制台, 网卡, 声卡等.

注: 客户操作系统内核运行在用户空间模式, 内核必须专门编译才能在客户系统中使用(可与主机操作系统内核版本不同). 整个主机存在两套内核, 一个是主机内核(直接位于物理硬件之上), 另一个是客户内核(运行在主机内核的用户空间之中). 这些内核甚至可以相互嵌套, 允许客户机内核运行在另外一个客户机内核之中.

Linux-VServer(操作系统级虚拟化)

Linux-VServer是操作系统级的虚拟化解决方案. Linux-VServer虚拟Linux内核, 可以有多个用户空间环境, 也称做虚拟专用服务器(VPS), 各个VPS各自独立运行. Linux-VServer是通过修改Linux内核来隔离用户空间.

为了隔离每个单独的用户空间, 我们先了解上下文环境. 上下文是一个VPS进程的容器, 因此我们可以使用ps等工具来了解vps进程的状况. 系统首次初始化后, 内核定义了一个缺省的上下文, 管理端能够查看所有的上下文(所有正在执行的进程). 你会猜到, 内核和内部数据结构需做一些修改来支持虚拟化.

Linux-VServer使用chroot隔离每个VPS的root目录. 我们知道chroot允许指定新的root目录, 但需额外的功能(叫做chroot-Barrier)来限制VPS不会跨越到上级目录. 在设定一个隔离的root目录后, 每一个VPS有自己的用户列表和root口令.

Linux 2.4和2.6内核支持Linux-VServer, 可运行在许多平台上, 包括x86, x86-64, SPARC, MIPS, ARM和PowerPC.

OpenVZ(操作系统级虚拟化)

OpenVZ是一个类似于Linux-VServer的操作系级级虚拟化解决方案. 它有一些自己独特的地方. OpenVZ是一个内嵌虚拟化的内核(修改过的), 它支持用户空间隔离, 虚拟专用主机(VPS)和一套用户管理工具. 比如, 你可以通过下面命令简单创建一个新的VPS:

列表1. 从命令行创建一个VPS

$ vzctl create 42 --ostemplate fedora-core-4
Creating VPS private area 正在创建VPS专用区域
VPS private area was created VPS专用区域成功创建
$ vzctl start 42
Starting VPS ... 启动VPS
VPS is mounted 加载VPS分区

你也可以使用vzlist命令列出所有已创建的VPS, 这有点类似于标准的Linux命令ps(查看进程的状态).

OpenVZ包含一个两级的CPU调度器来调度进程. 首先, 调度器确定需要使用CPU的VPS. 然后第二级调度器根据进程的优先级来执行vps进程.

OpenVZ支持beancounters. 一个beancounters包含了定义vps资源属性的许多参数. 这为vps提供了控制, 定义多少可有内存, 多少可用IPC资源, 等.

OpenVZ独特的地方是能够设置检查点和vps迁移(从一台服务器迁移到另一台服务器). 检查点能够停止正在运行vps并保存当前状态到一个文件. 该文件在迁移过程中可用于在新服务器上恢复运行VPS.

OpenVZ支持许多硬件结构, 包括x86, x86-64, 和PowerPC.

全虚拟化和半虚拟化的硬件支持

回顾一下IA-32(x86)体系结构上存在的一些问题. 某个特权指令不能够引起陷阱, 可基于模式返回不同结果. 比如, x86的STR指令可以获取安全状态, 但返回值是基于特别请求者的权限级别. 当试图在不同级别虚拟不同操作系统的时候是一个问题. 比如, x86支持4环保护, 0级(最高权限)通常运行操作系统, 1和2级支持操作系统服务, 3级(最低级别)支持应用程序. 不过硬件厂商已经认识到这些问题(和其它的问题), 而且开发了新的设计来支持和加速虚拟化技术.

Intel正在开发新的虚拟技术, 能在x86(VT-x)和Itanium(VT-i)结构上支持Hypervisors. VT-x支持两个新的操作. 一个是VMM(root), 另一个是客户操作系统(非root). root方式具有最高权限, 而非root方式是非特权的(甚至ring 0). 结构方面也支持自定义指令(使用vmm)终止VM(客户操作系统)和保存处理器状态. 其它功能请查阅参考资源栏目.

AMD也正在开发硬件级的虚拟化技术, 代号为Pacifica. Pacifica维护了一个客户操作系统的控制块(通过特殊指令保存执行状态). VMRUN指令允许虚拟机(和它相联系的客户操作系统)运行直到VMM重新获得控制权(可自定义). 可配置性允许VMM为每一个客户机自定义权限. Pacifica也能使用主机和客户机内存管理单元(MMU)表来提高地址翻译.

这些硬件虚拟化技术能够应用到许多的虚拟化技术当中, 包括Xen, VMware, User-mode Linux, 和其它的.

Linux KVM(内核虚拟机)

最近的Linux新闻经常报道Linux 2.6.20内核增加了KVM虚拟化技术. KVM是全虚拟化的解决方案, 它的特点是系统内核通过添加内核模块使内核自身成为一个Hypervisor(虚拟机管理程序). 内核中的KVM模块通过/dev/kvm字符串设备显示被虚拟的硬件. KVM使用修改过的QEMU进程做为客户操作系统接口.

图7. KVM的虚拟化

KVM模块向内核增加了一个新的执行模式: 客户模式. 官方原始内核(vanilla kernel)支持内核和用户模式. 客户模式用于执行所有非I/O客户代码, 普通用户模式支持客户I/O.

增加KVM到Linux内核是Linux发展的一个重要里程碑, 这也是第一个整合到Linux主线内核的虚拟化技术. KVM将包含于2.6.20内核数中, 现在你也可以通过内核模块方式在2.6.19内核使用kvm. 当运行在支持的硬件(需Intel VT和AMD SVM处理器)上, kvm支持Linux(32和64为)和Windows(32为)客户机. 更多KVM信息, 请查阅参考资源栏目

总结

虚拟化技术是一个新的而且重要的领域, 如果"新"包括了过去的40年. 在过去它已经使用于许多场合, 但是现在最主要的一个焦点是服务器和操作系统的虚拟化. 比如像Linux, 虚拟化给性能, 可移植性和复杂性提供了许多选项. 这也意味者你能够为你的应用程序和项目选择最合适的虚拟化方法.

参考资源

学习

您可以参阅本文在 developerWorks 全球站点上的 英文原文 。

如果你不熟悉IBM系统, New to IBM Systems页面提供了大量有关System i, p, x, z,等的详细信息.

IBM的网格计算基于一套开放的标准和协议, 通过虚拟分布式的计算机来创建一个单一强大的系统.

在 developerWorks Linux 专区 中可以找到为 Linux 开发人员准备的更多资源.

随时关注 developerWorks 技术事件和网络广播.

获得产品和技术

Bochs和QEMU是PC模拟器, 允许如Windows或Linux运行在linux操作系统的用户空间.

VMware是一个流行的全虚拟化解决方案, 能够虚拟无需修改的操作系统.

z/VM是一个最新的基于64位z/架构的虚拟机操作系统. z/VM提供全虚拟化和支持大多的操作系统, 包括Linux.

Xen是一个开源的半虚拟化解决方案, 需修改客户机的操作系统, 通过与hypervisor的协作能获得接近于原始系统的性能.

User-mode Linux是另外一个开源的半虚拟化解决方案. 每一个客户操作系统是主机操作系统的一个标准进程.

coLinux, 或协作Linux, 是一个提供两个操作系统共同分享底层硬件的虚拟化解决方案.

Linux-Vserver是一个linux上的操作系统级的虚拟解决方案, 每一个客户服务器都被安全的隔离开来.

OpenVZ是一个操作系统级的虚拟化解决方案, 支持检查点和动态迁移.

Linux KVM是第一个整合到Linux主线内核的虚拟化技术. Linux内核在载入一个内核可加载模块(kvm)后, 内核自身成为了一个Hypervisor程序, 如果有合适的硬件支持(Intel VT或AMD SVM处理器), 系统可运行未修改过的linux和windows客户机操作系统.

订购免费的 SEK for Linux,这有两张 DVD,包括最新的 IBM for Linux 的试用软件,包括 DB2®、Lotus®、Rational®、Tivoli® 和 WebSphere®.

在您的下一个开发项目中采用 IBM 试用软件,这可以从 developerWorks 上直接下载。

<<上一页 1 2


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 虚拟化2.0 以数据中心之名 (04-24) · 三种服务器虚拟化技术解析 (04-24)
· X86虚拟化技术和Unix虚拟化技术有何不同 (04-24) · Xen和虚拟化技术学习指南(4) (04-24)
· Xen和虚拟化技术学习指南(3) (04-24) · Xen和虚拟化技术学习指南(2) (04-24)
· Xen和虚拟化技术学习指南(1) (04-24) · BMW采用Novell SUSE Linux与Xen虚拟化技术 (04-24)
· 虚拟机的概念 (04-24) · 什么是虚拟化软件? (04-24)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 电子商务盈利新招:垂直化渠道管理新趋势
· 互联网加速蜕变 运营商进军搅动市场格局
· 08 IT技术风起云涌 专访 ITIL落地难在哪
· 视频加密保护解决方案 文档安全解决方案
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统