科技文献翻译_第1页
科技文献翻译_第2页
科技文献翻译_第3页
科技文献翻译_第4页
科技文献翻译_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、虚拟机快速透明的迁移摘要本文描述了一个系统的设计和实现,这个系统通过使用虚拟机技术来实现 应用程序的快速、透明迁移。这个系统是第一个能够将未修改的应用程序迁移至 未修改的基于x86的主流操作系统上,包括Windows, Linux和Novell NetWare 等。不管是应用程序还是与应用程序通讯的客户端都感觉不到这种迁移。从测试 数据我们可以看出,这种迁移导致的应用程序的暂停时间不超过1秒。1.绪论快速透明的迁移能够让整个系统在物理机器上实现负载均衡,同时通过将 应用程序从需要服务和更新的机器上迁移到别的机器上,可以提高系统的可用性 和服务性。本文介绍了一个叫VMotion的系统,自从200

2、3年以来,它都是VMware VirtualCenter中的一个组成部分。将来VMware的产品会使用VMotion在大量服 务器上实现自动负载均衡。本文做了以下贡献:本文第一次描述了能够在现有的应用程序和操作系统上实现虚拟机 的快速透明迁移的系统,而应用程序和操作系统都不需要修改。本文第一次使用标准测试程序来测试数百个虚拟机迁移的性能。本文描述了虚拟机迁移时的开销和所需资源。虚拟机迁移虚拟机迁移需要一个正在运行的虚拟机,并将它从一个物理机器迁移到另 一个物理机器。这种迁移对上层的guest OS,运行在guest OS上的应用程序以及 虚拟机的远程客户端来说必须是透明的。用户几乎察觉不到什么

3、变化,唯一可以 感觉到的应该是在迁移过程中程序运行速度会变慢,而在迁移后系统的性能可能 会提高,那是因为虚拟机迁移到一个拥有更多可用资源的机器上了。本文介绍的虚拟机迁移系统是VMware VirtualCenter产品中的一部分,它管 理着VMware ESX ServeroVMware ESX Server的虚拟化平台由以下两部分构成: 虚拟机监视器(VMM)和虚拟机内核(vmkernel)。Guest OS如Windows、Linux 都运行在虚拟化平台的最上层(见图1)。虚拟机监视器处理所有运行在虚拟CPU 上的指令并且模拟所有的虚拟设备。虚拟机内核调度虚拟机的运行并分配和管理 虚拟机所

4、需的资源。Ckicst OSGuest OSVLlLll bn,i-_dv,.a-rVMM* VX-IX-fiinedciccirnkcrnt 1Phca IciLdwcireFigure 1. VM plcilfonit layers 】n VMweirc SX Sclacl-.图1.VMware ESX Server的虚拟机平台层次结构通过封装虚拟机运行时所有软硬件状态,虚拟机提供了一个很好的平台来 实现迁移。当虚拟机进行迁移时需要处理以下三种状态:虚拟设备的状态,包括CPU、主板、网络和存储适配器、软盘和显 卡的状态。设备的外部连接状态,包括网络、USB设备、SCSI存储设备、可移 动媒

5、体设备如CDROM。虚拟机的物理内存。实际上,虚拟机的迁移是个复杂的过程:迁移过程的初始化:选择需要迁移的虚拟机以及迁移的目标机。当虚拟机正在运行时,预拷贝虚拟机的内存状态到目标机。暂停虚拟机并将非存储状态发送到目标机。将虚拟机的控制状态发送到目标机并在目标机上恢复虚拟机的执行。发送剩余的存储状态到目标机,删除源机器上的依赖关系。剩下的章节我们将谈到组成虚拟机最重要的三个组成部分的迁移过程,它 们是:网络、SCSI存储设备和物理内存。网络:为了实现透明的虚拟机迁移,迁移前开放的网络连接在迁移完成后 仍需对外开放,VMware ESX Server的网络结构使这种迁移成为了可能。虚拟以太网卡是V

6、Mware ESX Server虚拟平台的一部分,就像物理网卡一 样,虚拟网卡也有一个在本地网络上独一无二的MAC地址。一个虚拟网卡可以 对应一个或多个物理网卡,虚拟内核管理着这种映射关系。同样地,多个虚拟机 的网卡也可以映射到同一个物理网卡。由于每一个虚拟网卡都有一个与物理网卡独立的MAC地址,只要目标机与 源机器位于同一个子网中,我们就可以迁移正在运行的虚拟机而保持网络连接活 跃。SCSI存储:我们使用存储域网络(SAN)或NAS来迁移SCSI设备的连接 状态。假设所有迁移中的物理机器都连接到相同的SAN或NAS服务上。这样我 们可以通过在目标机上重新恢复磁盘的连接状态来迁移SCSI磁盘。

7、物理内存:虚拟机上物理内存的状态是迁移过程中需要处理的最重要的一 个状态。通过暂停虚拟机来传输内存状态会使虚拟很长时间都不能对外提供服 务。我们需要处理的问题是如何才能在虚拟机运行时将内存状态从源机器拷贝到 目标机上。通过改变管理虚拟机内存的方式就可以实现动态迁移。每个虚拟机都期望能有一段映射到固定地址范围的内存空间,VMware ESX Server动态的为每个虚拟机分配实际机器上的内存。这需要增加一个间接映射层 来完成这一功能。所有直接对虚拟机内存进行的写操作和对页表的写操作都将被 VMM截获,然后VMM将虚拟机物理地址映射到机器地址。一旦设置好虚拟机 的内存映射部件和页表,虚拟机在运行过

8、程中就不会在地址翻译上产生额外的开 销。当虚拟机在源机器上运行时,我们使用间接映射层来完成预拷贝。第一步 就是拷贝虚拟机所有的物理内存。在拷贝之前,将每一个页面设为只读,因此任 何的写操作都会被虚拟机监视器检测到。当第一步完成时,有些页面已经被修改, 这些被修改的页面将拷贝到目标机上,而此时虚拟机仍然在运行。这一过程将重 复多次,直到被修改的页面数足够小或数量不再发生变化。当被修改的页面大小 小于16MB或被修改的页面大小的减少量小于1MB时,停止预拷贝。性能评测本节我们将研究上文提到的虚拟机迁移的性能。我们不但测试虚拟机迁移 时不能对外服务的时间,而且测试了迁移对CPU在资源分配上的影响。更

9、重要 的是,在高负荷的情况下虚拟机仍然能实现快速透明的迁移。3.1开始实验所有的实验都是在一组Dell 1600SC服务器上进行的,每个服务器都有两个 Intel Xeon处理器和1GB内存。所有服务器都通过Qlogic 2300光纤通道卡连接 在EMC CLARiiON存储域网络上。他们使用Intel Pro/1000千兆网卡来传输虚拟 机的状态。每一次实验都是在两个服务器之间进行,每5秒迁移一个虚拟机,累积迁 移50次。实验中的虚拟机都在进行以下工作:空闲操作:一个空闲的Windows Server 2000编译内核:在RedHat 7.2上编译Linux内核仿真程序:仿真程序运行在Win

10、dows Server 2000系统上。仿真程序会启动 3个工作线程来完成磁盘I/O,每个线程会对500MB的文件进行至少5次以上的 写操作。memtest86: Memtest86会不断地对内存进行读写操作,它会在循环里运行 1号测试程序。_ 一dhhammer: Database Hammer 是-一个运行在 Windows Server 2000上的数据 库装载器,它使用客户机/服务器体系结构。当客户端运行在第三方物理机器上 时,服务器正进行迁移。除了在3, 4节进行测评时,目的机上也运行有虚拟机,其他几种测试中只 有源主机上运行有虚拟机。3.2迁移所用时间虚拟机迁移会在几个不同步骤之间

11、依次进行,但我们最感兴趣的并不是它 的迁移过程,而是迁移过程中虚拟机的停机时间。这个时间必须足够短,以避免 服务性能产生太大的损失。我们同样还关心虚拟机在端到端之间迁移时所花费的 时间。停机时间:整个停机时间就是虚拟机在源机器上停止运行的时间,主要由 以下几部分构成:传输设备状态到目的主机上的时间、装载设备状态的时间、拷 贝所有剩余的内存页面和正在装载的设备状态的时间。从图2我们可以看出,除了 memtest86测试程序以外,运行其他测试程序 的虚拟机的迁移时间都小于1秒。同时运行memtest86测试程序的虚拟机迁移时 所需迁移的内存大小有所增加。由于memtest86比较特殊,在预拷贝时所

12、有页面 都会被修改,所以虚拟机的停机时间就等于传输整个内存状态所需的时间。DownftlriMFigure 2: Down Lime during migraLicn tor v aliens workkdh and VM Liiciuoiy sizes.图2.虚拟机在执行不同任务时迁移所引起的停机时间和占用内存大小端到端时间:从图3我们可以看出端到端时间主要取决于虚拟机所占用的内 存大小。虚拟机占用的内存必须足够大,以保证虚拟机能在大部分时间里正常运 行。在预拷贝时虚拟机仍然在运行,同时,内存正不断地向目的主机传输。在几种不同情况下,预拷贝的重复次数都比较少。除了 memtest86需要2到

13、 3次重复以外,其他几种情况都只需重复进行1到2次的预拷贝,被修改的页面 的数量就已经足够少,此时停止预拷贝。=512MVMl Mwmoiy BiseFigure 3. 1* end-Lii-CLid Lune Mt a migr己Liml图3.虚拟机迁移过程中端到端时间3.3预拷贝产生的影响图4是dbhammer服务器连续三次迁移时客户端所测得的实验数据,从中我 们可以看出内存的预拷贝对网络吞吐量所产生的影响,网络吞吐量在服务器停机 时会急剧下降。Figure 4. Etfeci cii Liclwcrk LluxHifilipLiL seen byIht cf a mi 见-aL】np d

14、Nmw- Krvr.图4 dbhammer客户端测得的服务器迁移对网络吞吐量的影响内存的预拷贝会使吞吐量产生20%的小幅下降,主要是由以下两个原因引起 的:虚拟机将预拷贝的页标识为只读,这需要暂停所有的虚拟CPU,这会产生 一定的开销;处理那些对只读页面进行的写操作也会产生一定的开销。R*5aurc5vs Miqnarti Gm TirrFigure 5. Hilecl cf CPU reserve lion on mifirii licit from ci ItCcivily Iccidol wuce ntciclunc.图5.高负荷运行的源机器预留不同的CPU资源对迁移的影响3.4资源管理

15、为了监视虚拟机迁移对资源管理产生的影响,源机器上运行了 20个虚拟机。 在预留不同CPU资源的情况下,我们测试了一个拥有512MB内存的虚拟机迁移 所花费的时间,此虚拟机上运行的系统是Windows Server 2000。从图5我们可 以看出,当预留30%CPU资源时,迁移时预拷贝所花费的时间最少,这意味着 为了在千兆网络中维持最大的网络吞吐量大概需要使用30%的CPU资源。当为迁移预留的CPU资源不足时,预拷贝所花费的时间会增加,但不管预留 多少CPU,虚拟机停机时间都很少,这是因为停止一个虚拟机的运行并将剩余 状态传输到目的主机所需的CPU时间是很少的。相关研究在虚拟机进程的透明迁移这一

16、方面以前已经做过很多相关的研究。Zap系统 就提供了进程的迁移,Zap的开发者还对本领域以前所做的工作做过一些讨论。Hansen和Jul实现了一种与Zap不同的虚拟机迁移系统。但是这个系统与我 们实现的系统有本质上的区别他们实现的系统需要修改客户操作系统来实 现虚拟机迁移,而我们的虚拟机迁移系统却可以迁移任何基于x86体系结构的操 作系统,包括不开源的Windows操作系统。Hansen和Jul实现的系统在实现虚 拟机的迁移时,虚拟机上运行的系统必须是可修改的开源操作系统。6.总结以前在应用程序迁移上的研究只取得了有限的成功,主要是因为封装一个正 在运行的应用程序的状态是很困难的。虚拟机却可以很轻松地解决这个问题,因 为虚拟机不但可以封装应用程序的运行状态,而且可以封装操作系统和硬件的状 态。我们实现的虚拟机迁移允许将一个正在运行的虚拟机从

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论