跨越云端,华为云技术专家分享高效跨云迁移实践
![跨越云端,华为云技术专家分享高效跨云迁移实践](https://static001.geekbang.org/infoq/ff/ff19ae15a371e256b1c98a37174f8a31.jpeg)
本文分享自华为云社区《【华为云Stack】【大架光临】第18期:跨越云端,华为云Stack的高效跨云迁移实践》,作者: 大架光临。
1 背景
在企业云化的浪潮中,混合多云已经是企业 IT 部署的新常态,虚拟机承载的业务占据很大的比重。在上云用云过程中,客户出于多云战略业务互通需求、成本以及合规要求等考虑,经常面临虚拟机跨云跨池迁移的诉求。相比数据库迁移、对象存储迁移以及微服务迁移等技术,虚拟机迁移是系统级业务迁移,通用性更高,可以适配各类数据库、中间件、甚至是大数据业务,因此在众多迁云场景中,一直被广泛使用。
如图 1 所示,用户遇到的虚拟机跨云跨池迁移的主要需求总结如下:
![](https://static001.geekbang.org/infoq/a0/a0e2e1b0432ec7f8c67d10ea875de634.png)
图 1 跨云迁移典型业务场景
企业客户需要将本地数据中心的虚拟机业务搬迁上云;
云厂商 IaaS 平台存在一些阶梯式演进或跨代际的版本升级,如虚拟化引擎从 XEN 到 KVM 等,需要客户把旧平台上的存量业务便捷的迁移到新平台;
企业根据自身业务诉求,采用多云战略将不同的业务部署在不同的云厂商平台,以期获得最佳的 IT 技术组合,这就使得业务在按需最优放置时需要跨云平滑流动。
跨云场景两端云平台的管理是相对割裂的,这也导致虚拟机的跨云迁移无法像云内热迁移一样无中断,需要通过和云平台解耦的迁移工具来实现。所以,云提供商需要提供一种适用于虚拟机资源的跨云搬迁方案,来解决客户的问题。
2 跨云虚拟机迁移技术
2.1 迁移技术诉求
虚拟机迁移技术是将虚拟机从一个计算资源和存储位置,移至另一计算资源和存储位置。在多云多池场景下,迁移两端的云资源可能跨区域 Region、跨云平台,这也使得迁移过程的管理流程、网络通信相对割裂,给跨云虚拟机迁移带来极大的挑战。
针对虚拟机跨云迁移场景,客户虚拟机的迁移主要有三类诉求:
无侵入:迁移系统是否需要在客户虚拟机内安装组件,决定了迁移过程对被迁移主机上运行服务的影响程度,因为如果在虚拟机内部安装侵入式的代理组件,必然与客户服务存在资源抢占、威胁数据隐私的安全隐患。
低中断:跨云迁移过程会导致中断,导致虚拟机服务不可用,中断时间越长,对客户业务影响越大。对金融以及政企行业客户,由于其业务的重要性,更是提出分钟级的中断时间要求乃至零停机。
高效率:在有限带宽内,且不影响业务前提下,单个迁移任务传输速率越大,迁移效率越高和越能减少迁移需要耗费的总体时间,从而实现高效迁移上云。
2.2 迁移技术路线
根据是否在客户虚拟机内部安装侵入式组件,虚拟机的跨云迁移技术分为两种技术路线:基于 Agent 的迁移和 Agentless 迁移:
![](https://static001.geekbang.org/infoq/58/5839b65ba6de5f96f28dc39405e9e24f.png)
图 2 基于 Agent 的跨云迁移
基于 Agent 的跨云迁移
基于 Agent 的跨云迁移是通过在租户虚拟机内部安装迁移代理组件以读取磁盘数据实现迁移。如图 2 所示,公有云提供商较多采用基于 Agent 的迁移方案。
基于 Agent 的迁移技术具有传输高效、可靠性高的优势,但存在两个缺点:
租户虚拟机 OS 依赖,需要兼容适配不同的操作系统以支持多场景;
虚拟机侵入安装 Agent 代理组件,与客户应用共用系统资源,不符合高合规要求客户需求。
Agentless 跨云迁移
在客户虚拟机内部不需要安装迁移代理组件,也不占用客户虚拟机的资源,Agentless 迁移通过独立的虚拟机承载迁移代理,配合云平台编排使得迁移代理挂载并读取虚拟机磁盘数据,采用预拷贝或后拷贝算法迁移数据到目的端。该种方案要对客户虚拟机无侵入,更符合混合云客户对于合规安全的使用诉求。VMware 迁移方案采用 Agentless 路线,通过配置 VMware 无代理连接器导入迁移源来获取上层虚拟机的数据,利用 VMware 虚拟化层的快照、变更块跟踪技术从而实现无代理条件下虚拟机数据的复制迁移。
![](https://static001.geekbang.org/infoq/e1/e140e1874643954d1a778f7dda1ad2f4.png)
图 3 Agentless 跨云迁移
相对于基于 Agent 的迁移,Agentless 迁移技术具有以下优势:
租户 OS 资源无占用:无需在客户虚拟机内按照迁移代理组件,进一步简化操作,且对虚拟机有更少的性能影响。
租户 OS 安全性高:不在虚拟机内部进行任何操作,消除客户对安全的顾虑
租户 OS 兼容性高:由于不需要在操作系统内部安装 agent,因此不依赖虚拟机 OS 内部环境,迁移成功率更高
然而架构没有银弹。虽然 Agentless 迁移架构对租户 OS 有较高兼容性,但是其是通过集成虚拟化平台的功能来实现迁移,因此需适配不同的云平台和存储,从云平台上的兼容性上看,其存在一定复杂性。
3 华为云 Stack 跨云迁移方案
为响应政企客户的需求,尤其是客户对云资源更高的合规监管和数据安全诉求,华为云 Stack 为客户提供了一套最适配政企的虚拟机跨云迁移方案 CMS (Cloud Migration Station),通过存储双挂迁移、增量迁移、流式迁移等多种迁移技术满足客户对无侵入、高性能、低中断的诉求。
存储双挂迁移
当源和目的云平台时延条件满足时,可以直接将源存储池挂载到目标云平台,以实现数据卷无需拷贝传输的虚拟机跨云高效迁移。
![](https://static001.geekbang.org/infoq/f3/f30ce576219cc78d6b73384f56f4db46.png)
图 4 存储双挂迁移方案
存储双挂迁移要求存储不变,源和目标 Region 同机房,对网络环境要求高,通过一套存储对接源、目的云平台,并在目标 Region 从存储上“纳管”虚拟机的云盘,不涉及数据拷贝,并发场景批量迁移效率高。
增量迁移
在虚拟机运行时先拷贝一份全量数据基线到目的端,然后在每轮时间窗口,将产生的脏数据块增量拷贝至目的端,最后在迁移窗口期内将虚拟机停机,完成最后一轮增量拷贝后在目的端重建虚拟机。
增量迁移结合华为存储专有的CBT(Changed Block Tracking)技术能力跟踪某一时间窗口的脏数据,在同步阶段准确快速实现将变更的增量数据迁移到目的端。相比冷迁移,虚拟机中断时间缩短 2~10 倍,卷越大提升越高。同时,增量迁移对网络延时要求不高,且底层存储不要求同构,因此比较适合远距离的异构存储之间的数据迁移。
增量迁移的代价,除了大量数据迁移有一定网络要求以外,还有就是其依赖源端存储的 CBT 技术,因此其有更高的硬件兼容性要求。同时相比存储双挂方案,由于需要最终进行以此停机后的数据增量迁移,因此停机时间会稍长。
![](https://static001.geekbang.org/infoq/ee/ee3563c0bbca2a76dd1ec0cf60ebe196.png)
图 5 增量迁移方案
流式迁移
基于后拷贝算法先停止源虚拟机,直接在目的云平台启动虚拟机,再按需迁移存储卷数据。这样在目的端快速拉起虚拟机接管业务中断时间最短。同时在虚拟机运行过程中,利用空闲带宽资源在后台传输冷数据到目的端存储卷中。
![](https://static001.geekbang.org/infoq/48/48be673325dfa2ebf6fffe7f9d66ca7b.png)
图 6 流式迁移方案
存储卷数据是流式迁移传输到目的端,类似视频边下边看一样,虚拟机无需等全部磁盘数据迁移完成即可启动。流式迁移是结合华为云 Stack 多项关键技术实现,性能竞争力业界领先:
存储无关的 IO 拦截:拦截虚拟机 IO 请求,按需传输卷数据,虚拟机边跑边迁,与存储硬件解耦,实现极致性能的 IO 热切换;
磁盘 IO 预取:根据历史 IO 序列预测下一步 IO 并预取至目的端,磁盘 IO 缓存命中率从 40%提升至 80%,大幅降低 IO 未命中导致的跨云传输对业务性能的影响;
多流 QoS 控制:虚拟机流式迁移存在实时 IO(热数据)、非实时 IO(冷数据)的多流传输,实现面向冷热数据的多流 QoS 拥塞控制机制,在保证热数据低时延的前提下,保障虚拟机的迁移效率。
流式迁移将单虚拟机停机时间减小到数分钟常量,中断影响最小,网络开销低;而且对底层存储没有依赖,对网络延时也没有依赖,因此非常适合长距离、停机要求时间很短、且不同基于存储之间的虚拟机迁移。
不过相比其他迁移技术,流式迁移当然实现也更复杂,而且其中的缺点也包括迁移过程中 IO 请求未命中本地存储数据会影响服务性能,以及在目的端磁盘故障等极端场景下 RPO 不为零。为此,华为云 Stack 流式迁移通过高可用机制和实时 IO 预取技术,以较小的代价保障了跨云迁移过程中稳定性和服务性能。并首先将流式迁移落地于迁移演练场景,在不中断业务的前提下,短时间内在目的端快速重建一台“相同的”客户虚拟机进行基础演练调测,提前识别故障风险。
4 迁移实践
为解决政企客户的存量局点演进的问题,CMS 迁移平台实现了以上三种 Agentless 迁移技术的所有方案,保证存量 Region 与新建 Region 间的云资源迁移,并为用户提供了自动化的迁移流程。CMS 工具支持一键式的迁移预检测、迁移和回滚操作。用户可在 CMS 界面通过自动的预迁移检测,提前在迁移窗口前识别并排除问题以保证迁移顺利执行,然后再一键发起迁移流程完成业务虚拟机的跨 Region 迁移;当验证出现问题时,可以一键回滚,保障客户业务的优先恢复。
![](https://static001.geekbang.org/infoq/53/53c7e3d0169773d3aaf9dd1fbd6e3674.png)
(1)自动化预检测和一键式迁移
![](https://static001.geekbang.org/infoq/fe/fe1a5445e7dbc900cf366bf2eed61d5c.png)
(2)一键式确认和回滚
图 7 CMS 自动化迁移实施
CMS 搬迁解决方案已经在华为云 Stack 的多个局点成功实施,已累计迁移数千台虚拟机,涉及数 PB 的数据,典型实践如下:
典型案例 1:中东某局点是教育行业重点项目,客户现网部署了两朵独立的云,存量云面临生命周期问题,和新建云架构存在差异,客户运维成本高。华为云 Stack 考虑客户诉求,采用 CMS 存储双挂迁移方式将客户的业务从老 Region 迁移到新 Region,并下线利旧设备,现网仅存一朵云。CMS 迁移工具分 6 个迁移批次高效完成数百台虚拟机迁移,平均迁移速度可达每分钟 1 台,且迁移期间还联动迁移数百台 VMware 虚拟机,协助客户完成跨代际的平滑演进。
典型案例 2:国内某银行是金融行业重点项目,客户现网的两朵云分散在不同云平台中,运维成本高;而且业务演进难,无法使用高阶云服务。为解决客户痛点以及满足客户业务持续发展诉求,华为云 Stack 采用 CMS 增量迁移方式,分批次完成数千台虚拟机迁移,涉及上百 TB 数据量,虚拟机迁移成功率 100%,平均中断时间 15~20 分钟。满足了客户云架构归一的诉求,为客户后期业务持续发展奠定了基础。
5 总结
在云计算多云时代,华为云 Stack CMS 服务提供了一套最适配政企的虚拟机跨云搬迁解决方案。存储双挂迁移、增量迁移均已商用,并在多个华为云 Stack 局点完成迁移实施;流式迁移演练正在推广使用。CMS 基于 Agent 的跨云迁移方案在逐步规划构建,敬请期待。CMS 将持续构建多云迁移竞争力,提升产品易用性,以充分满足政企客户对高安全、高性能、低中断的诉求,助力客户业务的平滑演进。
版权声明: 本文为 InfoQ 作者【华为云开发者联盟】的原创文章。
原文链接:【http://xie.infoq.cn/article/6bb970def8bedc27f9691945a】。文章转载请联系作者。
评论