运行Xen:虚拟化艺术指南
本书主要介绍了目前IT技术热点虚拟化技术领域中最受关注的虚拟化系统软件Xen的安装、部署、运行、管理和维护方法,实际上相当于Xen使用手册。内容包括在Xen中对于各种虚拟化技术的操作和使用,书中用大量篇幅给出了基于Xen进行虚拟化试验的案例。 本书适合研究虚拟化技术的科研人员和工程人员阅读,尤其适合从事系统软件分析和开发、服务器端高可靠性软件研发的人员阅读。
基本信息
- 外文名
Running Xen:a Hands-on Guide to the Art of Virtualization
- 出版社
北京航空航天大学出版社
- 作者
马修斯(Jeanna Matthews)
- 开本
16
- 译者
张炯
基本介绍
内容简介
《运行Xen:虚拟化艺术指南》适合研究虚拟化技术的科研人员和工程人员阅读,尤其适合从事系统软件分析和开发、服务器端高可靠性软件研发的人员阅读。
作者简介
作者:(美国)马修斯(Jeanna Matthews) 译者:张炯 吕孟轩 刘铭 杨漾 马修斯(Jeanna Matthews)是克拉克森大学(波茨坦,纽约)计算机科学系的副教授,她管理着几个计算机实验室的实践,包括克拉克森开源研究所和克拉克森网络教学实验室。在这些实验室和修习她课程的学生已经在一些著名的计算机比赛获得荣誉,包括2001年、2002年和2004年的IBM Linux的挑战赛,2005年的IBM北美网格学者挑战赛,2005年Unisys Tuxmaster竞赛,2006年VMware的终极虚拟设备挑战赛。她的研究兴趣包括虚拟化、操作系统、计算机网络和计算机安全。她积极参与美国计算机协会,是操作系统特殊兴趣小组的财务主任,“操作系统回顾”的编辑,并且是ACMs U.S.公共政策委员会执行委员会US—ACM委员。她也是一本计算机网络教材《Computer Networking:Internet Protocols in Action》的作者,已被翻译成多种语言。Jeanna于1999年从加州大学伯克利分校获得了计算机科学博士学位。
图书目录
第1章Xen背景和虚拟化基本原理1 1.1虚拟化的特征和优势1 1.2虚拟化技术的类型3 1.2.1仿真4 1.2.2完全虚拟化技术4 1.2.3半虚拟化技术5 1.2.4操作系统级虚拟化技术6 1.2.5其他虚拟化技术8 1.2.6虚拟化技术类型概括8 1.3虚拟化技术的历史9 1.3.1IBM大型机9 1.3.2商业硬件的虚拟化10 1.3.3对x86体系结构虚拟化的扩充10 1.3.4Xen的起源和时间表10 1.4其他的虚拟化系统12 1.4.1仿真(Emulation)12 1.4.2完全虚拟化13 1.4.3半虚拟化14 1.4.4操作系统级虚拟化15 1.4.5流行的虚拟化产品16 小结17 参考文献和扩展阅读18 第2章使用Xen LiveCD进行快速漫游19 2.1运行LiveCD19 2.2第1步:下载LiveCD镜像,并创建光盘20 2.3第2步:从GRUB菜单中选择Domain0镜像21 2.4第3步:登录和桌面22 2.5第4步:创建客户机24 2.6第5步:删除一个客户机28 2.7第6步:与你的客户机交互28 2.8第7步:测试网络31 2.9太多客户机了33 小结34 参考文献和扩展阅读34 第3章The Xen Hypervisor35 3.1Xen Hypervisor35 3.2特权管理36 3.3 Domain038 3.4 Xen的启动选项39 3.5为Domain0选择合适的操作系统45 3.6 xend45 3.6.1xend的管理45 3.6.2xend的日志46 3.6.3xend的配置48 3.7XenStore51 小结56 参考文献和扩展阅读57 第4章安装Xen Domain0的方法和硬件要求58 4.1Xen Domain0的处理器要求58 4.1.1.Intel VT59 4.1.2AMD—V59 4.1.3HVM60 4.2 推荐的硬件设备支持60 4.2.1磁盘和控制器60 4.2.2网络设备61 4.2.3显卡设备61 4.2.4电源管理62 4.2.5对不支持的硬件的帮助62 4.3 内存要求62 4.4选择并获取Xen的一个版本64 4.4.1开源的发行版64 4.4.2商业支持的选择65 4.5安装Domain0宿主机的方法66 4.6Linux发行版67 4.6.1OpenSUSE68 4.6.2CentOS70 4.6.3Ubuntu76 4.6.4二进制包的Xen79 4.6.5Gentoo83 4.7 XenExpress88 4.8非Linux Domain0的安装90 4.9从源码编译安装91 小结93 参考文献和扩展阅读93 第5章使用Prebuilt Guest镜像95 5.1 介绍DomU Guest95 5.1.1Guest镜像95 5.1.2操作系统内核96 5.1.3配置文件96 5.2使用Prebuilt Guest镜像100 5.2.1Guest镜像的类型100 5.2.2下载Prebuilt Guest镜像102 5.2.3挂载和引导Prebuilt镜像102 5.2.4下载压缩文件(Compressed File )Guest镜像114 5.3转换其他虚拟化平台的镜像127 小结127 参考文献和扩展阅读128 第6章管理非特权级Domain130 6.1xm命令的介绍130 6.1.1运行xm命令的先决条件130 6.1.2 xm命令的普通格式131 6.2 xm list子命令132 6.2.1基本的List信息132 6.2.2列出关于一个特定的Guest的信息134 6.2.3long选项135 6.2.4Label选项136 6.2 xm create子命令136 6.3.1运行xm create命令的先决条件136 6.3.2xm create的简单例子137 6.4Guest配置文件139 6.4.1Python格式140 6.4.2常用的配置选项140 6.4.3SExpression(SXP)格式142 6.4.4配置文件的路径142 6.5诊断Guest创建的问题143 6.5.1Dry Run143 6.5.2控制台输出144 6.5.3问题实例145 6.6 自动启动DomU151 6.7关闭Guest Domain152 6.7.1xm shutdown152 6.7.2xm reboot155 6.7.3xm destroy156 6.8中止Domain158 6.8.1xm pause158 6.8.2xm unpause159 6.9 以非图形化方式同Guest交互159 6.9.1xm console160 6.9.2SSH161 6.10 以图形化的方式同Guest交互162 6.10.1使用SSH的X Forwarding 162 6.10.2SSH服务器和客户端的配置163 6.10.3VNC164 6.10.4虚拟帧缓冲和集成的VNC/SDL库166 6.10.5Freenx169 6.10.6远程桌面169 小结171 参考文献和扩展阅读171 第7章制作Guest镜像172 7.1 硬件虚拟机(HVM)Guest的制作172 7.1.1用一个光盘或光盘镜像(以WindowsXP为例) 制作一个Guest镜像173 7.1.2用virtinstall自动制作Guest镜像178 7.2半虚拟化(PV)Guest的制作181 7.2.1OpenSUSE:YaST虚拟机管理工具182 7.2.2CentOS/Fedora:virtmanager184 7.2.3Debian/Ubuntu:debootstrap192 7.2.4Gentoo:quickpkg和domi脚本194 7.2.5Xen Express203 7.3 Guest镜像的定制210 7.3.1定制主机名210 7.3.2定制用户210 7.3.3定制软件包和服务211 7.3.4定制文件系统表(/etc/fstab)211 7.4 转换已经安装的OS212 小结216 参考文献和扩展阅读216 第8章客户映像的存储219 8.1 逻辑卷219 8.1.1基本的LVM使用220 8.1.2重新设置映像大小222 8.1.3使用写时复制的映像快照技术225 8.2网络镜像存储的选择226 8.2.1iSCSI227 8.2.2 ATA over Ethernet (AoE)231 8.2.3 NFS234 8.2.4比较网络存储选择237 8.3映像文件237 8.3.1准备压缩存档映像文件237 8.3.2准备磁盘映像文件238 8.3.3准备客户分区映像文件246 8.3.4挂载磁盘和分区映像247 小结249 参考文献和扩展阅读249 第9章设备虚拟化及其管理252 9.1设备虚拟化252 9.1.1半虚拟化设备252 9.1.2全虚拟化设备253 9.1.3不虚拟化的设备253 9.2 前端和后端253 9.2.1Xenstore中的后端信息255 9.2.2Xenstore中的前端信息256 9.3 PCI设备的授权控制257 9.3.1标识PCI设备257 9.3.2在启动时对Domain 0隐藏PCI设备258 9.3.3在运行时手动绑定/解除PCI设备259 9.3.4授权PCI设备给其他domain259 9.4可信domain的专用设备访问260 9.4.1专用的设备访问261 9.4.2可信的driver domain261 9.4.3使用可信driver domain的问题262 9.5Qemudm的设备仿真263 9.6 将来的方向264 9.6.1更多的设备264 9.6.2智能设备264 小结264 参考文献和扩展阅读265 第10章网络配置266 10.1网络虚拟化回顾266 10.2设计虚拟网络的拓扑结构267 10.3桥接,路由和网络地址转换268 10.4前后端网卡驱动和命名271 10.5 Xen网络配置概述272 10.5.1大体步骤272 10.5.2Xend配置文件273 10.5.3客户domain的配置文件274 10.6桥模式细节275 10.6.3桥连接配置实例276 10.6.2测试结果281 10.7 路由模式细节283 10.7.1路由模式配置实例284 10.7.2测试结果289 10.8关于网络地址转换模型的细节291 10.8.1NAT配置的一些例子292 10.8.2测试结果296 10.9配置纯虚拟化的网段298 10.9.1配置dummy0299 10.9.2测试dummy0300 10.9.3配置dummy网桥301 10.9.4测试Dummy网桥302 10.10将MAC地址分配到虚拟网络接口中303 10.10.1MAC地址304 10.10.2通过指定或自动生成guest domain的MAC地址304 10.11分配IP地址305 10.11.1Guest domain通过外部动态分配服务器获得IP地址306 10.11.2手动设置guest domain的IP地址306 10.11.3Guest Domain通过内部动态分配服务器获取IP地址307 10.12在一个Domain中处理多个网络接口308 10.12.1在driver domain中处理多个网络接口308 10.12.2在guest domain中处理多个网络接口309 10.13 VnetDomain虚拟网络312 10.13.1安装vnet313 10.13.2运行vnet313 小结315 参考文献和扩展阅读315 第11章安全的Xen系统317 11.1安全系统的结构317 11.1.1特殊目的的虚拟机317 11.1.2创建虚拟网段318 11.2特权Domain的安全性318 11.2.1移除软件和服务318 11.2.2限制远程访问319 11.2.3限制本地用户322 11.2.4将设备驱动移入driver domain322 11.3防火墙和网络监视器322 11.3.1运行iptable防火墙322 11.3.2iptable的回顾323 11.3.3iptables的配置323 11.3.4一个iptable的例子324 11.3.5Snort327 11.4通过SHype的代理访问控制和Xen的安全模块330 11.4.1SHype330 11.4.2把SHype加入Xen331 11.4.3配置SHype策略332 11.4.4Xen的安全模块XSM338 11.5Dom U的安全339 11.5.1只在需要的时候运行VM339 11.5.2VM映像的备份339 11.5.3VM备份和restore的威胁340 小结340 参考文献和扩展阅读340 第12章管理客户机资源342 12.1获取客户机与Hypervisor信息342 12.1.1xm info342 12.1.2xm dmesg346 12.1.3xm log347 12.1.4xm top348 12.1.5xm uptime351 12.2分配客户机内存351 12.2.1影子页表352 12.2.2气球驱动程序353 12.2.3改进交换空间的稳定性355 12.2.4管理客户机内存的分配355 12.3管理客户机虚拟CPU358 12.3.1比较虚拟、逻辑和物理处理器358 12.3.2HVM VCPU管理360 12.3.3VCPU子命令360 12.3.4何时手工管理VCPU362 12.4协调Hypervisor调度器362 12.4.1Weight和Cap363 12.4.2保护客户机不受异常客户机的影响364 12.4.3应用信用调度器命令364 12.5选择客户机I/O调度器365 12.5.1Noop调度器365 12.5.2Deadline调度器365 12.5.3Anticipatory调度器(as)366 12.5.4Complete Fair Queuing调度器(cfq)366 12.5.5应用I/O调度器366 小结368 参考文献和扩展阅读368 第13章客户机的保存、恢复和动态迁移370 13.1描绘虚拟机状态370 13.2基本客户机域的保存和恢复371 13.2.1 xm save372 13.2.2 xm restore374 13.2.3可能的保存错误和恢复错误375 13.3客户机迁移类型376 13.3.1静态冷迁移377 13.3.2静态暖(规则)迁移378 13.3.3动态迁移379 13.4为xm migrate做准备380 13.4.1配置xend381 13.4.2网络上源与目的的接近度384 13.4.3网络可访问的存储384 13.4.4客户机域的配置385 13.4.5对版本和物理资源的要求386 13.5了解xm migrate386 13.5.1xm migrate386 13.5.2对静态暖迁移应用xm migrate387 13.5.3对动态迁移应用xm migrate388 13.5.4可能的迁移错误390 小结391 参考文献和扩展阅读391 第14章Xen企业管理工具概述392 14.1针对Xen hypervisor的可编程接口392 14.1.1Libvirt392 14.1.2XenCIM393 14.1.3Xen API393 14.1.4Xend的传统接口393 14.2Citrix XenServer Enterprise、Standard和XenExpress版本394 14.3Virtual Iron396 14.4IBM的Virtualization Manager397 14.5Enomalism398 14.6virtmanager400 14.7XenMan403 14.8管理多系统406 小结407 参考文献和扩展阅读407 附录A 资源409 Xen 社区409 Xen维基百科410 Xen 邮件清单和错误报告411 Xen峰会412 Xen源码413 学术论文和会议415 专用资源分配416 附录B xm命令418 附录C Xen配置参数422 附录D 客户机配置参数424 附录E Xen的性能评价427 Xen的性能测量427 Xen团队的结果的可重复性428 Xen和虚拟网主机429 在早期PC硬件上比较XenoLinux和native Linux431 在x86上运行Xen与在IBM zServer上运行Xen432 Xen的隔离性能434 Xen虚拟网络和实体网络的性能436 小结438
序言
虚拟化技术(Virtualization Technology)无疑是最近几年以及未来十年计算机系统软件的热点。虽然它并非新出现的概念,甚至可以说是已经出现40年之久,但是它的热度似乎昭示IT界,一波新的技术浪潮将伴随着虚拟化而席卷计算系统的主要组成部分乃至各个角落。从高性能到嵌入式,从云计算到移动,从处理器到存储,从显示到无线,虚拟化技术在各种相当成熟或仍然活跃的系统中迸发出全新的解决方案和热点结合,这种情景让人感慨虚拟化的洗礼也许会全面颠覆计算机系统的应用模式乃至开发模式,未知的、全新的计算机系统将脱胎换骨于这个过程,也带来可以参与其中的无数机会。但是,“工欲善其事,必先利其器”,要参与其中,就必须熟悉和了解何为虚拟化技术,熟悉应用和研究虚拟化技术的工具。Learning by doing,即在实践中学习也许不失为参与其中的一个好办法。如果读者想尽快熟悉和了解虚拟化,可以从了解最炙手可热的开源的虚拟化系统软件Xen开始,从一个个围绕Xen的具体实验开始。那么,本书将是有这种想法的读者的有力助手。Xen相关的内容林林总总,千头万绪,需要抓住重点,集中分析,但在具体使用上则需要熟悉操作细节。这本书重点给出了12个实验,篇幅固然较多,但讲解上要点俱在,并充分注意细节,不会出现读者在对照讲解做实验时出现断点而无法继续的情形。本书的主要作者Jeanna Matthews女士以及她的学生们都是很早就进入了Xen社区,并进行了多年的研究工作,发表了多篇论文和研究成果,这使得这本书既有学术气息,也有其便于阅读和使用的特点,相信对于读者进行Xen的学习和使用会有很大的帮助。