云计算之资源迁移技术

系统的迁移是指把源主机上的操作系统和应用程序移动到目的主机,并且能够在目的主机上正常运行。在没有虚拟机的时代,物理机之间的迁移依靠的是系统备份和恢复技术。在源主机上实时备份操作系统和应用程序的状态,然后把存储介质连接到目标主机上,最后在目标主机上恢复系统。随着虚拟机技术的发展,系统的迁移更加灵活和多样化。

迁移服务器的目的

迁移服务器可以为用户节省管理资金、维护费用和升级费用。以前的 x86 服务器,体积比较“庞大”;而现在的服务器,体积已经比以前小了许多,迁移技术使得用户可以用一台服务器来同时替代以前的许多台服务器,这样就节省了用户大量的机房空间。另外,虚拟机中的服务器有着统一的“虚拟硬件资源”,不像以前的服务器有着许多不同的硬件资源(如主板芯片组不同,网卡不同,硬盘,RAID 卡,显卡不同)。迁移后的服务器,不仅可以在一个统一的界面中进行管理,而且通过某些虚拟机软件,如 VMware 提供的高可用性工具,在这些服务器因为各种故障停机时,可以自动切换到网络中另外相同的虚拟服务器中,从而达到不中断业务的目的。总之,迁移的优势在于简化系统维护管理, 提高系统负载均衡,增强系统错误容忍度和优化系统电源管理。

虚拟机迁移的性能指标

一个优秀的迁移工具,目标是最小化整体迁移的时间和停机时间,并且将迁移对于被迁移主机上运行服务的性能造成的影响降至最低。当然,这几个因素互相影响,实施者需要根据迁移针对的应用的需求在其中进行衡量,选用合适的工具软件。虚拟机迁移的性能指标包括以下三个方面:

整体迁移时间:从源主机开始迁移到迁移结束的时间

停机时间:迁移过程中,源主机、目的主机同时不可用的时间

对应用程序的性能影响:迁移对于被迁移主机上运行服务性能的的影响程度。

虚拟机迁移的分类及原理

虚拟机迁移的三种方式 P2V、V2V 和 V2P。

(1)物理机到虚拟机的迁移(Physical-to-Virtual)

P2V 指迁移物理服务器上的操作系统及其上的应用软件和数据到 VMM(Virtual Machine Monitor)管理的虚拟服务器中。这种迁移方式,主要是使用各种工具软件,把物理服务器上的系统状态和数据“镜像”到 VMM 提供的虚拟机中,并且在虚拟机中“替换”物理服务器的存储硬件与网卡驱动程序。只要在虚拟服务器中安装好相应的驱动程序并且设置与原来服务器相同的地址(如 TCP/IP 地址等),在重启虚拟机服务器后,虚拟服务器即可以替代物理服务器进行工作。

P2V 迁移方法

手动迁移:手动完成所有迁移操作,需要对物理机系统和虚拟机环境非常了解。

关闭原有的物理机上的服务和操作系统,并且从其他媒质上启动一个新的系统。比如从LiveCD 上启动一个新的光盘系统。大部分的发行版都会带有 LiveCD。

把物理机系统的磁盘做成虚拟机镜像文件,如有多个磁盘则需要做多个镜像,并且拷贝镜像到虚拟主机上。

为虚拟机创建虚拟设备,加载镜像文件

启动虚拟机,调整系统设置,并开启服务。

半自动迁移:利用专业工具辅助 P2V 的迁移,把某些手动环节进行自动化。比如将物理机的磁盘数据转换成虚拟机格式,这一向是相当耗时的工作,你可以选择专业的工具来完成这个步骤。这里有大量的工具可以使用,如 RedHat 的开源工具 virt-p2v,Microsoft Virtual Server Migration Toolkit 等。

P2V 热迁移:迁移中避免宕机 。大部分 P2V 工具也有一个很大的限制:在整个迁移过程中,物理机不可用。在运行关键任务的环境或有 SLA(服务水平协议)的地方,这种工具不可选。幸运的是随着 P2V 技术的发展,VMware vCenter Converter 和 Microsoft Hyper-V 已经能够提供热迁移功能,避免宕机。目前,P2V 热迁移仅在 Windows 物理服务器可用,未来将添加对Linux 的支持。

(2)虚拟机到虚拟机的迁移(Virtual-to-Virtual)

V2V 迁移是在虚拟机之间移动操作系统和数据,照顾主机级别的差异和处理不同的虚拟硬件。虚拟机从一个物理机上的 VMM 迁移到另一个物理机的 VMM,这两个 VMM 的类型可以相同,也可以不同。如 VMware 迁移到 KVM, KVM 迁移到 KVM。可以通过多种方式将虚拟机从一个 VM Host 系统移动到另一个 VM Host 系统。

a)V2V 离线迁移

离线迁移(offline migration):也叫做常规迁移、静态迁移。在迁移之前将虚拟机暂停,如果共享存储,则只拷贝系统状态至目的主机,最后在目的主机重建虚拟机状态,恢复执行。如果使用本地存储,则需要同时拷贝虚拟机镜像和状态到目的主机。到这种方式的迁移过程需要显示的停止虚拟机的运行。从用户角度看,有明确的一段服务不可用的时间。这种迁移方式简单易行,适用于对服务可用性要求不严格的场合。

b) V2V 在线迁移

在线迁移(online migration):又称为实时迁移 (live migration)。是指在保证虚拟机上服务正常运行的同时,虚拟机在不同的物理主机之间进行迁移,其逻辑步骤与离线迁移几乎完全一致。不同的是,为了保证迁移过程中虚拟机服务的可用,迁移过程仅有非常短暂的停机时间。迁移的前面阶段,服务在源主机运行,当迁移进行到一定阶段,目的主机已经具备了运行系统的必须资源,经过一个非常短暂的切换,源主机将控制权转移到目的主机,服务在目的主机上继续运行。对于服务本身而言,由于切换的时间非常短暂,用户感觉不到服务的中断,因而迁移过程对用户是透明的。在线迁移适用于对服务可用性要求很高的场景。

目前主流的在线迁移工具,如 VMware 的 VMotion,XEN 的 xenMotion,都要求物理机之间采用 SAN(storage area network), NAS(network-attached storage)之类的集中式共享外存设备,因而在迁移时只需要考虑操作系统内存执行状态的迁移,从而获得较好的迁移性能。

另外,在某些没有使用共享存储的场合,可以使用存储块在线迁移技术来实现 V2V 的虚拟机在线迁移。相比较基于共享存储的在线迁移,数据块在线迁移的需要同时迁移虚拟机磁盘镜像和系统内存状态,迁移性能上打了折扣。但是他使得在采用分散式本地存储的环境下,仍然能够利用迁移技术转移计算机环境,并且保证迁移过程中操作系统服务的可用性,扩展了虚拟机在线迁移的应用范围。V2V 在线迁移技术消除了软硬件相关性,是进行软硬件系统升级,维护等管理操作的有力工具。

c)V2V 内存迁移技术

对于 VM 的内存状态的迁移,XEN 和 KVM 都采用了主流的的预拷贝(pre-copy)的策略。迁移开始之后,源主机 VM 仍在运行,目的主机 VM 尚未启动。迁移通过一个循环,将源主机 VM 的内存数据发送至目的主机 VM。循环第一轮发送所有内存页数据,接下来的每一轮循环发送上一轮预拷贝过程中被 VM 写过的脏页内存 dirty pages。直到时机成熟,预拷贝循环结束,进入停机拷贝阶段,源主机被挂起,不再有内存更新。最后一轮循环中的脏页被传输至目的主机 VM。预拷贝机制极大的减少了停机拷贝阶段需要传输的内存数据量,从而将停机时间大大缩小。

然而,对于更新速度非常快的内存部分,每次循环过程都会变脏,需要重复 pre-copy,同时也导致循环次数非常多,迁移的时间变长。针对这种情况,KVM 虚拟机建立了三个原则:集中原则,一个循环内的 dirty pages 小于等于 50;不扩散原则, 一个循环内传输的 dirty pages少于新产生的;有限循环原则,循环次数必须少于 30。在实现上,就是采取了以下措施:

有限循环:循环次数和效果受到控制,对每轮 pre-copy 的效果进行计算,若 pre-copy 对于减少不一致内存数量的效果不显著,或者循环次数超过了上限,循环将中止,进入停机拷贝阶段。

在被迁移 VM 的内核设置一个内存访问的监控模块。在内存 pre-copy 过程中,VM 的一个进程在一个被调度运行的期间,被限制最多执行 40 次内存写操作。这个措施直接限制了 pre-copy 过程中内存变脏的速度,其代价是对 VM 上的进程运行进行了一定的限制。

KVM 的预拷贝在线迁移过程详解:

系统验证目标服务器的存储器和网络设置是否正确,并预保留目标服务器虚拟机的资源。

图 1. 源服务器和目标服务器简图

当虚拟机还在源服务器上运转时,第一个循环内将全部内存镜像复制到目标服务器上。在这个过程中,KVM 依然会监视内存的任何变化。 
图 2. 内存镜像复制示意图

以后的循环中,检查上一个循环中内存是否发生了变化。 假如发生了变化,那么 VMM 会将发生变化的内存页即 dirty pages 重新复制到目标服务器中,并覆盖掉先前的内存页。在这个阶段,VMM 依然会继续监视内存的变化情况。

图 3. 进行有变化的内存复制

VMM 会持续这样的内存复制循环。随着循环次数的增加,所需要复制的 dirty pages 就会明显减少,而复制所耗费的时间就会逐渐变短,那么内存就有可能没有足够的时间发生变化。最后,当源服务器与目标服务器之间的差异达到一定标准时,内存复制操作才会结束,同时暂停源系统。

图 4. 所需复制的数据在减少

在源系统和目标系统都停机的情况下,将最后一个循环的 dirty-pages 和源系统设备的工作状态复制到目标服务器。

图 5. 状态信息的复制

然后,将存储从源系统上解锁,并锁定在目标系统上。启动目标服务器,并与存储资源和网络资源相连接。

图 6. 停止源服务器,启动目标服务器

(3)Virtual-to-Physical 虚拟机到物理机的迁移

V2P 指把一个操作系统、应用程序和数据从一个虚拟机中迁移到物理机的主硬盘上,是P2V 的逆操作。它可以同时迁移虚拟机系统到一台或多台物理机上。尽管虚拟化的基本需求是整合物理机到虚拟机中,但这并不是虚拟化的唯一的应用。比如有时虚拟机上的应用程序的问题需要在物理机上验证,以排除虚拟环境带来的影响。另外,配置新的工作站是件令 IT 管理者头痛的事情,但虚拟化的应用可以帮助他解决这个难题。先配置好虚拟机,然后运用硬盘克隆工具复制数据至工作站硬件,比如赛门铁克的 Save & Restore (Ghost)。不过这种克隆方法有两个局限:一个镜像只能运用在同种硬件配置的机器上;要想保存配置的修改,只能重做新的镜像。

V2P 的迁移可以通过确定目标的物理环境来手动完成,如把一个特定的硬盘加载到虚拟系统中,然后在虚拟环境中安装操作系统、应用程序和数据,最后手动修改系统配置和驱动程序。这是一个乏味且不确定的过程,特别是在新的环境比旧的环境包含更多大量不同的硬件的情况下。为了简化操作,我们可以利用专门的迁移工具以自动的方式来完成部分或全部迁移工作。目前支持 V2P 转换的工具有 PlateSpin Migrate 和 EMC HomeBase。使用这样的工具使得 V2P转换过程更简易,并且比使用第三方磁盘镜像工具更快捷。

V2P 迁移方法

V2P 的不确定性导致自动化工具不多,目前主要有以下几种解决方案:

a) VMware 官方推荐的是使用 Ghost+sysprep 来实现半自动化的迁移。

b) 基于备份和恢复操作系统的解决方案。

这个方案利用了现成的系统备份恢复工具,没有体现虚拟机和物理机的差别,类似于P2P(Physical-to-Physical 物理机到物理机迁移)。注意备份工具能够恢复系统到异构硬件平台上。

c) 开源工具的解决方案。

适合 Linux/Unix 系统,使用开源工具和脚本,手动迁移系统。这个方案难度较大,适合有经验的管理员。

转载自:http://hwlvipone.blog.163.com/blog/static/18833208720111013307253/

云计算之资源迁移技术相关推荐

  1. 《云计算:概念、技术与架构》一2.3 案例研究3:Innovartus

    本节书摘来华章计算机<云计算:概念.技术与架构>一书中的第2章 ,第2.3节,(美)Thomas Erl (英)Zaigham Mahmood 著 (巴西)Ricardo Puttini ...

  2. 笔记-信息化与系统集成技术-云计算操作系统的主要关键技术

    云计算操作系统的主要关键技术包括: 资源池管理技术和向用户提供大规模存储 计算能力的分布式任务和数据管理技术 资源池管理技术主要实现对物理资源.虚拟资源的统.管理,并根据用户需求实现虚拟资源的自动化生 ...

  3. 解决方案和项目的区别_沃尔玛用大数据提高销售额,云计算和大数据技术之间的区别汇总...

    自从<纽约时报>发表有关沃尔玛如何利用大数据分析来最大化其销售额的文章以来,人们就对大数据充满了狂热.零售商发现飓风期间流行的糖果品牌Pop-Tarts的销量激增,并利用此知识增加了利润. ...

  4. 云计算与大数据技术应用前四章知识点整理

    第一章云计算概论 1.1什么是云计算 1.1.1云计算的定义: 定义:指按需使用IT资源和应用程序,通过互联网.按使用量付费. 像水电煤(资源性产品)一样利用你的IT资源,计算存储网络资源. 有三个关 ...

  5. 云计算与大数据技术 李春燕

    第一章  云计算概述 云计算:指按需使用IT资源和应用程序,通过互联网按使用量付费. 四种云 公有云:提供公共的IT资源 缺点:保密性较低 私有云:提供给政府.学校等地 优点:保密性高 社区云:研究人 ...

  6. 【继上篇】云计算架构概念和技术基础

    一.云计算概述 云计算到底是什么呢?在这个问题上,可谓众说纷纭.比如,在维基百科上的定义是"云计算是一种基于互联网的计算新方式,通过互联网上异构.自治的服务为个人和企业用户提供按需即取的计算 ...

  7. 基于鲲鹏云服务迁移技术和实践(鲲鹏生态)

    鲲鹏生态 什么是鲲鹏,芯片. 围绕鲲鹏处理器(主要就是计算)延伸出来各种基于鲲鹏处理器的行业. 鲲鹏计算产业是基于鲲鹏处理器构建的全栈IT基础设施.行业应用及服务.包括PC服务存储 操作系统 中简介 ...

  8. 云计算时代——本质、技术、创新、战略

    云计算时代--本质.技术.创新.战略(一线云计算布道师历时6年力作,透析云计算本质.简述云计算关键技术.分析主要云服务架构.解剖云计算巨头策略,既有广度又有深度,云计算2.0时代必备) 刘黎明 王昭顺 ...

  9. 《云计算:概念、技术与架构》一2.1 案例研究1:ATN

    本节书摘来华章计算机<云计算:概念.技术与架构>一书中的第2章 ,第2.1节,(美)Thomas Erl (英)Zaigham Mahmood 著 (巴西)Ricardo Puttini ...

最新文章

  1. mysql concat 引号,在MySQL concat里面使用多个单引号,三引号的问题
  2. Ubuntu下用gcc与nasm联合编译
  3. 【多态】多态的向下转型
  4. Netflix正在搞的混沌工程到底是什么?终于有人讲明白了
  5. 16进制在c语言中用来做什么,十六进制在代码中有什么用
  6. inset() php,inset.php · L@Y/studentscoremanagementsystem - Gitee.com
  7. 大二第二学期周学习进度总结(十三)
  8. 第三方库自动安装脚本(复习)
  9. java软件工程师工作业绩_JAVA软件工程师个人简历范文
  10. Linux-----信号量
  11. 高清视频格式-BD-remux、BD-RE、BDRip的区别
  12. 1688API item_search_img - 拍立淘搜索淘宝商品
  13. 如何在同一台电脑上打开多个iPhone模拟器
  14. ICP许可证的作用是什么?ICP许可证可以转让吗?
  15. rasp java tomcat_Java安全之JNI绕过RASP
  16. zabbix-server仪表板出现: 不
  17. 21-Chrome开发者工具:利用网络面板做性能分析
  18. ijkplayer源码---音频播放
  19. java人民币大小写转换_人民币大小写转换
  20. mysql 设置双1_2020-10-15:mysql的双1设置是什么?

热门文章

  1. win7 android studio 升级HAXM后无法启动安卓模拟器
  2. java+selenium简单使用给斗鱼主播刷弹幕-.-
  3. 2022江苏最新八大员之(安全员)模拟考试试题及答案
  4. Win10实现截取视频并改为gif
  5. 地图比例尺学习、超图最小可见比例尺和最大可见比例尺
  6. 红米k30s至尊纪念版发布会直播地址红米k30s至尊纪念版发布会在线观看入口
  7. 计算机专业毕业论文格式,2016年计算机专业毕业论文内容及格式要求
  8. 证明:无理数的无理数次方是否还是无理数
  9. 累了、倦了、撑不下去了,静下心来看一看
  10. Calcite优化规则之ProjectAggregateMergeRule