中关于虚拟机复制与迁移(上)

简介: 这是我曾经在 中的一篇文章试译。SnowFlock罗伊科比和安德烈斯云计算提供了一个令人难以置信的计算平台。用户通过点击几下用户可以以每小时不到10美分的价格租用在云中的服务器,节约了使用物理设备的所有相关时间,精力和前期成本。

这是我曾经在 <<the architecture of open source applications>> 中的一篇文章试译。

SnowFlock

罗伊科比安德烈斯

云计算提供了一个令人难以置信的计算平台。用户通过点击几下用户可以以每小时不到10美分的价格租用在云中的服务器,节约了使用物理设备的所有相关时间,精力和前期成本。云供应商提供虚拟机(虚拟机),而不是物理计算机来实现低成本运营。云计算的关键是虚拟化软件,被称为虚拟机监视器(虚拟机M),用来模拟一台物理机器。用户们非常安全地使用相互的客户虚拟机,而没有意识到他们通常与许多人共享物理机(主机)。

18.1 SnowFlock简介

云计算是敏捷组织的福音。对于使用物理服务器而言,用户需要焦急地等待着缓慢的审批流程,批准购买服务器,下订单,直至服务器出货,然后安装和配置操作系统(OS)和应用程序组。而云用户不需要等待数周的购买流程,只专注过程控制,并可以在几分钟内创建一个新的独立服务器。

不幸的是,云服务器很少是独立的。在快速实例化和按次使用模式的带动下,云服务器通常是在配置相似的服务器可变池中的一个实例,能够执行动态和可扩展的并行计算,数据挖掘,或web等任务。因为需要多次从相同的静态模板中启动新的实例,商业云还不能兑现真正的按需计算的承诺。服务器实例化后,云用户仍然必须管理群集成员及通过增加新的服务器来调整。

SnowFlock通过虚拟机克隆技术解决了这些问题,这就是我们所提出的云API调用。应用程序代码经常通过一个系统调用接口调用OS服务,它现在也可以以同样的方式通过类似的接口调用云服务。通过SnowFlock的虚拟机克隆技术,我们可以将资源分配,集群管理和应用程序逻辑可编程等诸多方面交织在一起,并作为一个单一的逻辑操作。

根据父虚拟机,虚拟机克隆技术实例化了云服务器的多个完全相同副本。从逻辑上讲,克隆的虚拟机继承了其父节点的所有状态,包括操作系统和应用程序级缓存。此外,虚拟机的克隆都将被自动添加到一个内部私有网络中,从而有效地加入了这个动态可扩展的群集。新的计算资源,被封装为相同的虚拟机,从而可以按需动态创建。

就实际使用而已,虚拟机克隆技术是可用,高效,而且快速的。在这一章中,我们将描述SnowFlock中对虚拟机克隆技术的实现,包括如何有效地在多个不同的编程模型和框架实现克隆,如何在应用程序运行时使服务器的开销最少,以及如何在5秒或更少的时间内来创造几十个新的虚拟机,等等。

SnowFlock非常灵活,能够使用C C + +PythonJavaAPI来实现虚拟机克隆的程序控制。我们已经成功地将SnowFlock移植到多个不同系统的原型实现中。在并行计算中,我们通过精确克隆技术有效地分担了在许多物理主机的负载,并取得了良好的效果。对于在一个专用的服务器集群上运行的使用了消息传递接口(MPI)的多个并行应用,需要修改MPI的启动管理器,从而提供了良好的性能和更少的开销,并且不需要修改应用就能够在每个新的克隆集群上运行。最后,在一些完全不同的应用案例中,我们使用SnowFlock来提高弹性服务器的效率和性能。今天,基于云服务的新业务一般需要启动新的服务器。而通过克隆运行中的虚拟机,SnowFlock带来了新的服务器功能。由于克隆的虚拟机继承他们的父节点的热缓冲区,从而使性能迅速达到峰值,使上线速度快了20倍。

18.2 虚拟机克隆

顾名思义,虚拟机克隆与父虚拟机几乎是相同的。实际上,还是有一些轻微且必要的差异的,例如避免MAC地址冲突等问题,但我们会稍后讨论。创建一个整个本地磁盘和内存状态的虚拟机克隆是必须的,这也是我们第一个主要的设计权衡:应该如何按需复制前端的状态?

实现虚拟机克隆最简单的方式是采用标准的虚拟机迁移能力。通常情况下,迁移是指将运行中的虚拟机服务移动到不同的主机上,例如如当主机超载或需要维修的情况下。但是,因为虚拟机是纯粹的软件,所以可以被封装在一个数据文件,然后将其复制到一个新的主机上,在短暂中断后重新执行。要做到这一点,现有的VMMS要包含一个检查点来创建文件,该文件包括本地文件系统,内存映像,虚拟CPUVCPU)寄存器等等。在迁移过程中,新启动的副本替换原来的虚拟机,但这个过程是可以改变的,例如离开原来的虚拟机运行时可以产生一个虚拟机克隆。在这种所谓的渴望进程中,因为整个虚拟机处于状态转移前的执行状态,所以整个虚拟机提供了最好的初始性能。这种复制的缺点是在开始执行前必须费力地复制整个虚拟机,这严重地影响了实例化的过程。

SnowFlock采用了另一种极端方式,即是延迟状态复制。不再复制全部虚拟机,而是复制虚拟机转移时所需得重要数据,在虚拟机转移后,SnowFlock在复制克隆中所需的其他数据。这有两个好处,首先,它最大限度地减少了工作量,尽可能实例化延迟加载。其次,它只复制真正使用的状态数据,实际上是提高了虚拟机克隆的效率。当然,这样做的好处取决于克隆的行为,但少量的应用程序需要访问内存和在本地文件系统的每个文件的每一页时就效果不大了。

然而,延时复制的好处不是免费的。由于状态转移被推迟到最后,需要在状态到达时,才能继续执行克隆。在时间共享工作站内将内存交换到磁盘,而并行的应用程序从高延迟的数据源获取状态可能被阻塞。在SnowFlock的用例中,这些阻塞降低了克隆的性能,其严重程度取决于应用程序。对于高性能计算应用,我们已经发现这种退化的影响不大,但可能会首先克隆的数据库服务器性能。应当指出的是,这是一个瞬态影响:在几分钟之内,大多数必要的状态已被转移且性能父节点匹配。

顺便说一句,如果你熟悉虚拟机,你可能考虑在这里使用实时迁移的优化。实时迁移的优化,可以缩短原始虚拟机的暂停和恢复执行新副本之间的间隔。要做到这一点,虚拟机监视器(VMM)需要在父节点仍在运行时预拷贝它的状态,从而使只有最近更改过的页才迁移。这项技术不会影响之间的迁移要求和副本开始执行的时间间隔,因此不会降低虚拟机克隆的实例化延迟。


目录
相关文章
|
7月前
|
存储 网络协议 虚拟化
如何操作VMware ESXi虚拟机的迁移?
如何操作VMware ESXi虚拟机的迁移?
|
安全 IDE KVM
[ 云计算相关 ] KVM虚拟化平台windows虚拟机迁移到openstack虚拟化平台(KVM虚拟化环境中Windows虚拟机安装Virtio驱动程序)
KVM虚拟化平台windows虚拟机迁移到openstack虚拟化平台(KVM虚拟化环境中Windows虚拟机安装Virtio驱动程序) 因为这也不是我的本职工作,只是这次恰巧碰到了,帮着解决了以下,我就没深究原理了,问我原理可能我也不知道,只是这个操作步骤吧,亲测有效。
584 0
[ 云计算相关 ] KVM虚拟化平台windows虚拟机迁移到openstack虚拟化平台(KVM虚拟化环境中Windows虚拟机安装Virtio驱动程序)
|
存储 弹性计算 固态存储
VMware虚拟机迁移到阿里云
各种架构的主机资源如何迁移上阿里云?本文以VMware虚拟机迁移到阿里云为例,介绍一些迁移上阿里云的方式。
VMware虚拟机迁移到阿里云
|
6月前
|
XML 存储 数据安全/隐私保护
使用virsh migrate进行虚拟机迁移
使用virsh migrate进行虚拟机迁移
282 0
|
3月前
|
KVM 虚拟化
KVM虚拟机的热迁移
这篇文章详细介绍了KVM虚拟机的热迁移过程,包括临时迁移和永久迁移的步骤,以及可能遇到的故障和解决方案。
136 1
KVM虚拟机的热迁移
|
3月前
|
存储 虚拟化
使用DiskGenius工具来实现物理机迁移虚拟机,实现虚拟化
【9月更文挑战第1天】使用 DiskGenius 工具可将物理机迁移到虚拟机,实现系统与数据的虚拟化。此过程包括:安装 DiskGenius 和准备虚拟化平台;备份物理机数据;使用 DiskGenius 备份磁盘;在虚拟化软件中创建新虚拟机并导入磁盘备份;配置及调整虚拟机设置;测试性能并优化资源分配。这有助于测试、开发及系统管理。
420 5
|
4月前
|
Linux KVM 虚拟化
在Linux中,如何进行虚拟机和容器的备份和迁移?
在Linux中,如何进行虚拟机和容器的备份和迁移?
|
7月前
|
存储 KVM 虚拟化
倚天产品介绍|倚天虚拟化:虚拟机热迁移特性介绍
热迁移分为热迁移和冷迁移,冷迁移过程中有一段明显的时间VM的服务不可用,而热迁移的服务的服务暂停时间非常短。热迁移过程中无需关闭或者长时间暂停VM,VM保持正常运行,只有在热迁移临近结束时有一个非常短暂的停机切换时间。热迁移可保证了VM服务的可用性,提升业务的连续性和用户体验。
|
存储 负载均衡 监控
Linux-虚拟机迁移步骤
虚拟机迁移步骤
344 0
|
XML 运维 安全
【运维】KVM 虚拟机迁移
虚拟机迁移还是非常重要的,在任何云计算场合都适用
2811 5
【运维】KVM 虚拟机迁移