虚拟化在线迁移优化实践(一):KVM虚拟化跨机迁移原理

2017-05-25 11:08:20在线迁移技术的本质就是在虚拟机不停机的情况下,不同物理机之间进行在线跨机迁移。本文主要介绍KVM虚拟化跨机迁移原理。
前言
当前,云计算技术的飞速发展对企业降低IT投入成本、减少系统运维开销、加速业务交付速度、动态调整业务规模以及保障业务可靠性具有重要意义。
目前,云计算带来的这些好处依赖于底层虚拟化技术将 服务器 资源虚拟出多份可供用户使用的计算资源,从而方便云计算提供商为企业用户提供高效、弹性、高可靠和可维护的底层IT基础架构。其中,虚拟机在线迁移技术正是构建虚拟机技术上述优点的重要组成部分,该技术可以简化系统维护复杂度、实现业务负载均衡、优化服务器能源消耗并增强云计算可靠性。
作为国内领先的公有云服务提供商,UCloud对其云平台在线迁移方案进行了深入的优化,通过实践证明这些优化能够很好的应对线上各种迁移场景,为用户业务的稳定与可靠提供了重要保障。
原理
在线迁移技术的本质就是在虚拟机不停机的情况下,不同物理机之间进行在线跨机迁移。首先是在目标物理机建立相同配置的虚拟机,然后进行各类数据迁移,最终快速切换到目标端新虚拟机。由于整个迁移过程中,绝大多数时间内用户虚拟机都能保持正常运行,且***阶段的切换过程非常短暂,不会造成用户业务中断,对用户运行在虚拟机中的业务几乎没有影响,因此在线迁移技术在实现云平台资源动态调整以及故障处理方面具有重要意义。
因为云计算平台除了核心的底层虚拟化技术外,还包括SDN网络、分布式存储和运维管理系统等,所以在线迁移方案不仅要包括跨机迁移技术本身,还包括迁移前后虚拟机的管理信息以及网络和磁盘配置信息的切换等工作。为此,本文将在线迁移过程划分为三个阶段:准备阶段、迁移阶段和切换阶段。
考虑到UCloud云计算平台采用KVM虚拟化技术实现虚拟化底层方案,同时共享存储的在线迁移仅是非共享存储的一个特例,因此本节将以非共享存储为例,详细介绍UCloud底层KVM虚拟化技术如何进行虚拟机的在线迁移。其中,迁移环境为虚拟化底层KVM+Qemu、虚拟化管理Libvirt、虚拟化网络Openvswitch。
假设将源物理机SourceHost的一个虚拟机VM 迁移到目标物理机DestHost,非共享存储虚拟机在线迁移过程的具体步骤如下:
准备阶段
Step.1 选择一台具有足够磁盘和内存资源的物理机DestHost,并在DestHost上创建VM对应的系统盘和数据盘,同时选定接收迁移数据的tcp端口(如图 1-1所示),这两个磁盘在DestHost和SourceHost上的路径必须完全一致。不同的是,DestHost上初始创建的只是空盘,上面没有真实数据。
图 1-1 在目标端新建虚拟机镜像
Step.2 通过虚拟化管理软件Libvirt在DestHost上创建一个和VM同样配置的虚拟机VM’,系统盘和数据盘使用Step.1中创建的系统盘和数据盘(如图 1-2所示)。VM’当前是paused状态,虚拟机VM’的vcpu处于暂停状态,同时虚拟机VM’会通过监听一个内网的tcp端口来接收迁移数据。
图 1-2 在目标端创建新虚拟机
迁移阶段
Step.3 虚拟化管理层Libvirt给VM对应的Qemu进程发出一个迁移指令,并指定参数,例如指定DestHost为目标、需要迁移块设备、***停机时间、迁移带宽限制等,然后迁移数据就会通过指定tcp链路传输给DestHost上的VM’。需要注意,迁移数据的网络包不是经过 vswitch,而是直接从SourceHost的ethx网卡出,进到DestHost的ethx,因为VM’对应Qemu进程正作为DestHost一个用户态进程,监听在ethx对应的内网ip(如图 1-3所示)。
图 1-3 虚拟机迁移数据
Step.4 经过前面三步,虚拟机的数据就正式开始迁移,剩下的挑战是如何保证数据迁移的一致性,因为此时VM处于运行状态,里面时刻发生内存更新、磁盘Io操作和设备状态变更,而VM’是paused状态,只通过一个线程接收VM进程发过来的数据。
为此,在迁移过程中各种数据如何有序迁移?首先,Libvirt会发送qmp_dirve_mirror命令来通知Qemu进行虚拟机磁盘数据迁移,从而在源端和目标端直接同步磁盘数据。然后,Libvirt会再次发送qmp_migrate命令通知Qemu进行虚拟机内存数据迁移,进一步完成虚拟机主要数据的迁移。***,由于设备状态对应的数据量很少,在迁移***阶段会通过一次性同步,将Qemu里每个设备注册的状态同步到目标端。
另外,迁移过程中发生变更的数据如何迁移?如果不迁移变更的数据,那数据必然不一致,也表明迁移还不能结束,因此Qemu一般通过数据迁移准备、数据迁移、数据迁移收尾三个步骤来完成。
循环调用磁盘和内存迁移函数也是按阶段来分别调用的。首先,循环调用磁盘和内存迁移函数的迁移数据准备功能,即前期准备工作,例如把磁盘按block为单位组织成一个数组,并设置记录脏块机制;把内存所有页全部设置为脏页,并发送开始迁移的标志到VM’的进程。
图 1-4 全量数据迁移示意图
紧接着,需要进行真正的数据迁移,Qemu在这个阶段调用磁盘和内存迁移函数的第二步骤功能,并且要求必须等磁盘数据迁移完成后才会执行内存数据迁移。如图 1-4所示,Qemu首先会进行磁盘(内存)的全量数据迁移,依次将每个block(页)迁移到目标端DestHost。
图 1-5 增量数据迁移示意图
然后再通过多次迭代,将迁移过程中虚拟机产生的新数据迁移到目标端DestHost(如图 1-5所示)。这一迭代过程是收敛的,收敛依据与之前设置的带宽、***停机时间有关。同时,在迭代过程中,Qemu将边迁移边记录剩下的脏数据大小,并与停机时间进行比较,如果这个值比停机时间大,那么继续迁移,如果比停机时间小,那么源端Qemu进程就会暂停,从而避免产生新的脏数据,以便进行迁移收尾工作。
在虚拟机暂停之后,进入第三步迁移收尾工作,源端Qemu进程会把磁盘、内存脏数据和设备状态一次性同步到目标端,完成时VM和VM’的数据将会一致。这时,上层管理软件会把VM关闭,并把VM’的vcpu恢复运行状态,整个虚拟机的数据迁移就完成了。
切换阶段
Step.5 数据迁移完成后,VM关闭,VM’作为它的一个完全拷贝,在DestHost上运行着,但网络还是不通的(如图 1-2所示)。VM’通过DestHost的vswitch 连接到物理机网卡,vswitch相当于一个虚拟交换机,而VM从SourceHost迁移到DestHost,在网络上相当于把网线从一个交换机拔下插到另一个交换机上,此时就需要一次arp广播,告知VM的mac地址已经变更到另外一台交换机的某个端口。
这就是迁移完成后的网络切换,由于切换时间很短,少于tcp的超时重传时间,因此对于原VM上跑着网络服务程序几乎是无感知的。此后,如图 1-6所示,目标端DestHost虚拟机就具备和用户直接进行交互的能力,而源端SourceHost虚拟机此时就可以删除。
图 1-6 完成虚拟机迁移示意图
总结
通过以上迁移步骤,可以在KVM虚拟化平台上实现虚拟机的跨越迁移,进而方便实现云平台负载均衡与系统运维,并确保用户虚拟机性能的可靠性。同时,从用户角度来看,这个过程并不需要关心虚拟机在源端SourceHost还是目标端DestHost,但可以持续与虚拟机进行交互,整个迁移过程对用户来说是透明的。
虽然,当前KVM虚拟化在线迁移能够满足大多数情况下的用户虚拟机迁移,但还存在以下问题:
戳这里,看该作者更多好文
虚拟化有哪些应用?
虚拟化作为一种优化资源的方法,是将应用程序和操作系统从物理硬件中抽象出来。
戴尔提供针对特定用途设计的解决方案,可最大限度地减少通常由虚拟化带来的高成本和复杂性。 DellPowerEdge服务器和EqualLogic存储的性能可满足苛刻的CPU、内存和I/O需求,能够在一个虚拟化环境中运行多个应用程序,包括I/O密集型数据库应用程序。 戴尔尖端的FlexMem网桥技术(应用于PowerEdgeR810和M910服务器)可为虚拟化环境提供两倍的内存和更好的性能。 因此,使用相同的软件许可成本可以获得高达两倍的内存容量,无需额外的处理器成本。
通过融合服务器管理、灾难恢复和存储配置,戴尔将所有业务就绪型配置(全面的虚拟化解决方案,包括服务器、存储、联网和软件)作为符合条件的单一、全面的解决方案予以支持,可消除虚拟化的复杂性。
这意味着您可以放心并且安全地获得所有虚拟化优势并推动企业发展。
个人家用使用:
VMware Workstation(windows)/Fusion(Mac)、Oracle VM VirtualBox、QEMU(Linux)
企业商用使用:
VMware vSphere系列、Citrix Xen Server、Microsoft Hyper-V、KVM、华为Fusion Sphere;
linux如何确认服务器的VT功能是否打开
查看是否支持VT:egrep (vmx|svm) /proc/cpuinfo如果你的CPU支持VT虚拟化,则会在flags里面显示vmx查看当前的VT功能是否开启:lsmod |grep kvm如果当前的主机是打开VT功能的话,可以挂载到kvm_intel的内核模块,否则无法挂载到
如何在网上推广自己的产品
1. 利用好网站内的收费推广。 在很多网站上开网店的话,网站本身提供了一些广告宣传方式,如粗体显示、图片橱窗、首页推荐位展示等,这些服务通常是收费的,但是可以为自己的网店带来浏览量,值得一试,但值得注意的是,不需要将自己网店里的每一个商品都采用收费推广的方式,只需要选出一两件有代表性的商品进行推广,将买家吸引到自己的网店,他们自然就会浏览你的其它商品。 2.利用好网站内其它推广方式。 比如多参加网站内的公共活动,为网站做贡献,可以得到一些关照,网店自然也可以得到相应的推广。 3.利用多种留言薄或论坛宣传自己的网店。 注意一般不要采用直接发广告的形式,一般的论坛对于广告帖是格杀勿论的,可以采用签名档,将自己的网店地址与大概的经营范围包括在签名档里,无形中会引起许多阅读者的注意,进入你的网店,进而成为你的客户。 4.广开门路,广交朋友。 通过认识许多朋友,介绍他们关注你的产品,争取回头客,更争取让你的客户为你介绍新的客户。 5.如果你的现在的网店是需要支付交易费或登录费的,那么 不妨设立一个不需要这些费用的网店,对于每一个成交的客户,介绍他们以后通过新的网店浏览并购买你的产品,降低商品的销售成本。 6.在各种提供搜索引擎注册服务的网站上登录网店的资料,争取获得更多的浏览者进入网店。 7.尽量卖些有特点的东西(如果大家都卖衣服,那你就卖裤子。 你还可以卖石头,奶奶亲手绣的鞋垫等等)。 如果你的店是有特点的店,你还可以申请淘宝首页的特色店铺推荐。 你只需要给相关“店小二”写信,如果审核通过,他就会给你安排,更多的人就能看到你了。 8.尽可能多的在淘宝和其他论坛发言。 多发好文章,让别人对你有印象(签名档一定不要忘了)。 同时你还应保证充足的上网时间,及时回答买家对你商品的提问。 9.随时增加新货,让人有的看,不会觉得厌烦。 10.店铺开了一阵子后,可以私下里和别人联系,交换友情连接。 大家通过交换连接,可以形成一个小的网络,能增进彼此的影响力。 11.把自己开店铺的事情告诉你所有认识的朋友,也可以在自己的QQ或其他的交流平台上留下地址,通过口碑的力量进行宣传。 12.到一定的时间,有了些感想的时候,可以写心情故事,这个会在首页里被推荐,知名度也会增加许多。 13. 学会抓住一切机会宣传,可以看看别人求购的东西,如果正好和你卖的东西是一类的,那么可以给对方留言或者发站内信笺。 每隔一段时间就这样做一次,保证你能收到良好的效果。 14.随时保证你的店铺里有一件商品是一元起拍的,这一招非常管用,能在短时间内聚集人气。 15.最重要的是诚信,不管是买东西还是卖东西。 16.多在一些交易网站和论坛上转悠,学习别人的好经验。 扩展资料:一个电子商务公司存活下来,不仅仅是基于自身的产品,而且还拥有一个有能力的管理团队、良好的售前服务、组织良好的商业结构、网络基础和一个安全的,设计良好的网站,这些因素包括:1、足够的市场研究和分析。 电子商务需要有可行的商业计划并遵守供需的基本原理。 在电子商务领域的失败往往和其他商业领域的一样,缺乏对商业基本原则的领会。 2、一支出色的被信息技术策略武装起来的管理团队。 一个公司的信息战略需要成为商业流程重组的一个部分。 3、为客户提供一个方便而且安全的方式进行交易。 信用卡是最互联网上普遍的支付手段,大约90%的在线支付均使用信用卡的方式完成。 在过去,加密的信用卡号码信息通过独立的第三方支付网关在顾客和商户之间传递,大部分小企业和个体企业还是如此。 如今大部分规模稍大的公司直接在网站上通过与商业银行或是信用卡公司之间的协议处理信用卡交易。 4、提供360度视角的客户关系,即确保无论是公司的雇员、供应商还是伙伴均可以获得对客户完整和一致的视角,而不是被选择或者过滤得信息。 因为,客户不会对在权威主义(老大哥)监视的感觉有好的评价。 5、设计一个电子商务价值链,关注在数量有限的核心竞争力上,而不是一个一站购齐的解决方案。 如果合适的编制程序,网络商店可以在专业或者通用的特性中获得其中一个。 6、建立一个足够敏感和敏捷的组织,及时应对在经济、社会和环境上发生的任何变化。 提供一个有足够吸引力的网站。 有品味的使用颜色、图片、动画、照片、字体和足够的留白空间可以达到这一目标。 7、流畅的商业流程,可以通过流程再造和信息技术来获得。 提供能完全理解商品和服务的信息,不仅仅包括全部产品信息还有可靠的顾问建议和挑选建议。 自然,电子商务供应商行业需要履行普世的原则,例如保证提供的商品的质量和可用性、物流的可靠性,并且及时有效的处理客户的投诉。 资料来源:2006年中国电子商务年会会议资料。 企业网络推广是一个系统工程,需要提前规划,战略布局,策略为干,细节执行到位,具体来说有以下步骤:1、确定网站推广的阶段目标。 例如,用户目标是那些群体、在发布后1年内实现每天独立访问用户数量是多少、与竞争者相比的相对排名如何、在主要搜索引擎的表现、网站外链接的数量、注册用户数量等等。 2、在网站发布运营的不同阶段所采取的网站推广方法。 最好详细列出各个阶段的具体网站推广方法,如登录多少个主要搜索引擎网站、要用那些网络广告主要形式来推广和媒体选择、大致需要投入的费用、怎么才合理分配等等。 3、网站推广策略的控制和效果评价。 如阶段推广目标的控制、推广效果评价指标等。 对网站推广计划的控制和评价是为了及时发现网络营销过程中的问题,保证网络营销活动的顺利进行。 如果发现推广以来,基本上没有大的访问数增长,那么需要再一次优化网站,重新调整推广方案计划。 4、网站推广目标:计划在网站发布1年后达到每天独立访问用户100人,注册用户2000人;5、网站策划建设阶段的推广:在网站建设过程中从网站内容、结构、页面等方面进行优化,对google、网络等搜索引擎进行关键字先等优化设计;6、网站发布初期的基本推广手段:登录15个主要搜索引擎和分类目录、购买2-3个网络实名/通用网址、与合作伙伴建立网站链接和访问量稳定的网站做外连接(这个在网站初期很重要)。 另外,在线下营销推广也一项有必要的措施,如在主流媒体和行业网站发布企业新闻等。 7、网站增长期的推广:当网站有一定访问量之后,为继续保持网站访问量的增长和品牌提升,在相关行业网站投放一定量的网络广告,可以做一些公司自己的电子杂志,再结合EMAIL向目标用户定期的发送,在这个时期也可以做一些网站调查,产品网站调研等8、网站稳定期的推广:结合公司新产品促销,不定期发送在线优惠卷;参与行业内的排行评比等活动,以期获得新闻价值;在条件成熟的情况下,建设一个中立的与企业核心产品相关的行业信息类网站来进行辅助推广。 参考资料来源于:网上推广—网络百科
发表评论