前言

Rainbow是华为开发的业界领先的业务迁移工具,包括服务器信息采集、虚拟化评估和容量规划工具Rainbow hSizing,业务迁移工具Rainbow hConvertor。
华为提供端到端的FusionSphere业务迁移服务,场景涵盖P2V、V2V和华为云平台内部虚拟机业务迁移。

迁移工具Rainbow介绍

Rainbow工具定位

支持P2V和V2V两种迁移。
P2V:将物理服务器上的操作系统,迁移到华为的虚拟化平台。
V2V:将其他虚拟化平台的系统,迁移到华为的虚拟化平台。

Rainbow工具简介

Rainbow hConvertor将运行于X86物理服务器或者其他平台的虚拟机在线(操作系统必须在线,必须正常运行)迁移到FusionSphere虚拟化平台。

Rainbow hConvertor提供将运行于X86物理服务器或者虚拟化平台的系统及数据迁移到FusionSphere平台的功能。

Rainbow迁移方式

  • 在线

    • 业务离线时间短
    • 支持分区大小调整(文件级)
    • 可追加同步,保证数据一致
  • 文件级
    • 支持分区大小调整
    • 可按目录排除不需要迁移的文件
    • 只迁移有效数据
  • 块级
    • 速度相对较快
    • 分区结构和源端保持一致

Rainbow特性

兼容性列表

虚拟化平台



操作系统(FusionCompute)

迁移风险

Rainbow在线迁移组网要求

组网架构

迁移环境要求

Windows:
TCP开启8899号端口,Rainbow默认端口,可以修改。

迁移环境网络端口矩阵

Windows

防火墙规则(Windows文件级、块迁移)

Linux

防火墙规则(Linux文件级、块迁移)

Rainbow在线迁移原理

文件级迁移方式

文件级迁移适用场景

  • 规划的目的VM磁盘空间大小相对于源端进行扩容或者减容
  • 只迁移部分数据文件,排除部分不迁移文件

块级迁移方式

迁移工具直接读取磁盘扇区,将扇区里的数据完整的拷贝至目标端。
块级迁移适用场景

  • 包含大量小文件的主机
  • 磁盘使用率高的主机
  • 需要保持分区结构与源端完全一致

Windows文件级迁移原理

Windows块级迁移原理

Linux文件级迁移原理

Linux块级迁移原理

同步

  • 业务切换前最后一次同步需要停止业务,避免同步时间内再次产生增量数据
  • RTO业务停机时间=最后一次同步时间+业务验证时间

迁移效率影响因素

Rainbow在线迁移界面

Windows在线迁移

推送Agent到源主机并收集操作系统和硬件信息

  • 通过源主机共享,将安装包从迁移服务器复制到源主机的C盘
  • 远程通过RPC调用源主机WMI组件来安装Agent安装包
  • 安装agent过程需要依赖源主机.net组件,如果源主机.net组件不完整或者损坏,安装会失败。通过重新安装.net组件修复
  • 安装完agent之后,注册成一个系统服务“HConvertorAgentService”并绑定端口监听8899端口

    第一步推送代理成功后,获取源主机基于信息并在目的端创建跟源端同规格的虚拟机

主:图中目的虚拟机分配的IP必须是对应端口组可用IP。此IP必须被迁移服务器和源主机访问。用于后面挂载WinPE操作系统简历三方通讯。
系统盘C盘和100M启动盘必须放在DISK0上面。
可调整CPU/内存/磁盘(分区)


配置目的虚拟机并等待接收数据

  • 目的虚拟创建完成,从迁移服务器挂载WinPE.iso,目的虚拟机启动到WinPE环境并配置第二步分配的IP,IP配置完成后,此时目的虚拟机能够跟外界通讯。
  • 迁移服务器发送命令格式化目的虚拟机磁盘,为每个分区分配跟源主机分区一样的盘符。

    复制数据到目的虚拟机

文件级迁移

  • 迁移服务器发命令到源主机,依次制作每个分区的快照并将快照共享
  • 迁移服务器发命令到目的虚拟机,通过net use命令将源主机快照共享映射到目的虚拟机
  • 在目的虚拟机通过fastcopy复制网络映射盘数据到目的虚拟机的磁盘分区中

块级迁移

  • 迁移服务器发送命令到源主机,启动一个进程,此进程用于追踪变化的扇区并生成一个变化扇区表
  • 通知源主机连接到目的虚拟机的8900端口,依次复制每个分区的扇区块到目的虚拟机对应分区中
  • 复制完成后,迁移服务器发送命令到源主机,对每个分区制作快照
  • 依据变化扇区表,从快照中复制变化的扇区到目的虚拟机


数据复制完成后,对目的VM进行重新配置,设置VM从硬盘启动
重新配置

  • 建立引导记录并激活活动分区
  • 修复启动配置文件
  • 注入磁盘驱动

    目的虚拟机运行一段时间后,用户需要做业务切割,在同步之前,务必停止源主机业务。
  • 迁移服务器自动关闭目的虚拟机,从迁移服务器挂载WinPE.iso并启动到WinPE环境,配置先前的IP地址
  • 迁移服务器发送命令到源主机,对各分区制作快照。文件级迁移同步采用对比所有的文件,当文件的修改日期或者文件大小不一致时,从源主机复制文件到目的虚拟机。同步之后的结果是目的虚拟机文件和目录跟源主机一样。
  • 块迁移同步时,依据变化扇区块的位置,从快照中读取变化的扇区,复制变化的扇区到目的虚拟机。同步之后的结果是目的虚拟机文件和目录跟源主机一样
  • 同步完成之后,重新配置目的虚拟机,并配置目的虚拟机从硬盘启动

Linux在线迁移

通过SSH连接到源主机,从源主机收集操作系统和硬件信息

  • 需要开通root远程SSH登陆到源主机
  • 源主机sftp必须正常工作。收集主机信息时,会通过sftp将迁移服务器的一些脚本复制到源主机运行。

/etc/ssh/sshd_config
# override default of no subsytems
Subsystem sftp /usr/libexec/openssh/sftp-server


获取源主机基本信息并在目的端创建跟源端同规格的虚拟机。
注:图中目的虚拟机分配的IP必须是对应端口组可用IP。此IP必须被迁移服务器和源主机访问。用于后面挂载LiveCD建立三方通讯。
/boot分区和根分区,必须放在/dev/xdva上面。
可调整CPU/内存/磁盘(挂载点)

配置目的虚拟机并等待接受数据

  • 目的虚拟机创建完成,从迁移服务器挂载LiveCD.iso,目的虚拟机启动到LiveCD环境并配置第二步分配的IP,此时目的虚拟机能够跟外界通讯。
  • 迁移服务器发送命令格式化目的虚拟机磁盘挂载各分区在LiveCD环境/mnt目录中。


复制数据到目的虚拟机
文件级迁移:

  • 迁移服务器发送命令到源主机,对挂载点是LVM的分区分别制作快照,普通分区不制作
  • 迁移服务器发命令到源主机,通过"tar-cvf 挂载点|ssh 目的虚拟机’tar-xvf’ "命令将源主机数据复制到目的虚拟机

    目的VM重新配置,设置VM从硬盘启动。
    重新配置:
  • 建立引导记录并激活活动分区
  • 修复启动配置文件
  • 注入磁盘驱动
  • 修复图形界面

    目的虚拟机运行一段时间后,用户需要做业务切割,在同步之前,务必停止源主机业务。
  • 迁移服务器自动关闭目的虚拟机,从迁移服务器挂载LiveCD.iso并启动到LiveCD环境,配置先前的IP地址。
  • 迁移服务器发送命令到源主机,对挂载点是LVM的分区分别制作快照,普通分区不制作。文件级迁移采用rsync组件对比所有的文件,当文件的修改日期或者文件大小不一致时,从源主机复制文件到目的虚拟机。同步之后的结果是目的虚拟机文件和目录跟源主机一样。
  • 同步完成后,重新配置目的虚拟机,并设置目的虚拟机从硬盘启动。

Rainbow迁移场景

FusionCloud-KVM场景

FusionCloud-KVM场景

  • 迁移源端约束
  • 迁移平台网络架构
  • 迁移网络约束

KVM场景迁移源端约束


Rainbow(OpenStack+KVM)组织架构

FS6.0迁移步骤:

  • 部署源代理(在客户系统上部署迁移源代理,抓取数据)
  • 调用OpenStack接口创建空虚拟机
  • 获取自动分配的IP地址
  • 迁移数据
  • 迁移目的代理执行VRM适配(改注册表和更新驱动)
  • 设置从磁盘启动(从客户a磁盘迁移过来)重启
  • SC将VM纳管

备注:迁移时,源VM系统卷对系统卷,数据卷对数据卷的数据拷贝。

KVM场景迁移网络约束

  • 仅支持局域网迁移,不支持广域网、NAT网络迁移
  • 仅支持私有云迁移,不支持公有云迁移、桌面云迁移
  • 迁移实施要求网络无丢包、无抖动、延迟<2ms、带宽<100Mbps,如不满足此QOS要求,则迁移失败风险较高

FusionCloud-Xen场景

FusionCloud-Xen场景

  • 迁移源端约束
  • 迁移平台网络架构
  • 迁移网络约束

Xen场景迁移源端约束


Rainbow(OpenStack+Xen)组织架构

FS 6.0迁移步骤:

  • 部署源代理(在客户系统上部署迁移源代理,抓取数据)
  • 调用OpenStack接口创建空虚拟机
  • 调用VRM接口挂载光驱,部署迁移目的代理,并配置IP
  • 迁移数据
  • 迁移目的代理执行VM适配(改注册表和更新驱动)
  • 卸载光驱,VM切换至系统卷(从客户磁盘迁移过来)重启
  • SC将VM纳管

备注:迁移时,源VM系统卷对系统卷,数据卷对数据卷的数据拷贝。

XEN场景迁移网络约束

  • 仅支持局域网迁移,不支持广域网、NAT网络迁移
  • 仅支持私有云迁移,不支持公有云迁移、桌面云迁移
  • 迁移实施要求网络无丢包、无抖动、延迟<2ms、宽带>100Mbps,如不满足此QOS要求,则迁移风险较高

FusionCompute场景

FusionCompute场景

  • 迁移源端约束
  • 迁移平台网络架构
  • 迁移网络约束

FusionCompute场景迁移源端约束


Rainbow(VRM)组织架构

FS 6.0迁移步骤:

  • 部署源代理(在客户系统上部署迁移源代理,抓取数据)
  • 调用VRM接口创建空虚拟机
  • 调用VRM接口挂载光驱,部署迁移目的代理,并配置IP
  • 迁移数据
  • 迁移目的代理执行VM适配(改注册表和更新驱动)
  • 卸载光驱,设置从硬盘重启

备注:迁移时,源VM系统卷对系统卷,数据卷对数据卷的数据拷贝。

FusionCompute场景迁移网络约束

  • 仅支持局域网迁移,不支持广域网、NAT网络迁移
  • 仅支持私有云迁移,不支持公有云迁移、桌面云迁移
  • 迁移实施要求网络无丢包、无抖动、延迟<2ms、宽带>100Mbps,如不满足此QOS要求,则迁移风险较高

迁移问题分类及常规解决办法

迁移问题分类

环境检测不通过

Windows

  • net Framework组件修复

    • 直接重新安装.net Framwork组件
  • 8899端口被占用或者8899端口不能正常绑定
    • 修改配置文件重新制定agent监听端口,C:\HConvertorAgent\conf.ini “listening port=8899”
    • iperf -s x.x.x.x 8899 绑定端口失败,联系系统管理员
  • 关键驱动文件缺失
    • Windows2003系统关键文件缺失intelide.sys;pciidex.sys,从其他同版本主机中复制文件到%SystemRoot%\System32\Drivers
  • PATH路径不正确
    • 确保PATH路径包含C:\Windows\system32目录

Linux

检查Linux源主机

  • SSH不允许root登陆

    • /etc/ssh/sshd_config 添加PermitRootLogin yes
  • SSH组件不正常工作
    • 检查/etc/ssh/sshd_config 配置文件和SSH服务开机启动
  • SSH Client不正常工作
    • 检查/etc/ssh/ssh_config 文件存在并内容正确
  • SSH SFTP不正常工作
    • 检查/etc/ssh/ssh_config 配置文件
    • 使用vi编辑器
    • 添加Subsystem sftp /usr/libexec/openssh/sftp-server
    • 并保证/usr/libexec/openssh/sftp-server 文件存在并为可执行文件
  • Rsync组件没有安装
    • 挂载对应的操作系统版本的ISO文件并安装rsync组件
  • PATH路径不正确
    • 确保path路径 包含下面内容
      /usr/local/sbin:/local/bin:/sbin:/bin:/use/sbin:/usr/sbin:/usr/bin:/root/bin

网络问题

  • 先检查端口是否处于监听状态 netstat -an |findstr “:port” ; netstat -an |grep -i “:port” 如果没有监听,开启对应的服务。
  • 检测端口连通性 telnet x.x.x.x port, 强烈建议在同网段先做端口连通性测试,再跨网段测试。如果检测不通过,需要检查操作系统自身的防火墙设置和测试端目的端之间的防火墙。
  • 不要使用ping命令来检测网络延迟,推荐使用iperf来测试丢包和延迟。
  • 通过端到端之间复制大文件来测试网络速率,切记不要在实施迁移时再调整网络。

迁移过程失败

迁移的过程本质上是一个复制数据的过程,影响数据复制过程的因素包括网络,权限,被复制数据不可操作等。

  • 网络不稳定,包括网络中断,网络延迟大,数据丢包率高。迁移前可通过iperf来测试丢包和延迟。根据推荐网络延迟不得大于1ms,丢包率不得大于0.1%的环境中进行迁移。
  • 块迁移时,遇到块时,工具一场退出。推荐使用磁盘修复工具进行修复。
    • Windows:chkdsk
    • Linux:e2fsck
  • 文件级迁移时,遇到有些目录或者文件不被文件系统管理,即被孤立的文件和目录。推荐使用磁盘修复工具进行修复。
  • Linux文件级迁移,复制到特殊目录或者文件,工具异常退出。导出日志,分析定位到具体的文件或者目录。
    • 例如,tar在处理正在读写的稀疏文件时会异常退出,可停止相应调用稀疏文件的程序或者排除此文件。Tar在处理~/.gvfs目录时,报root账号没有权限读取。查看占用/root/.gvfs的进程PID,lsof/root/.gvfs或者fuser/root/.gvfs,然后kill -9 PID,umount/root/.gvfs; rm -rf/root/.gvfs
  • 没有按照要求使用root或者administrator账号用于迁移,没有权限读取文件或者目录。迁移Windows可以使用administrators组的成员账号进行迁移,但必须进行相关的权限设置才能顺利完成迁移。
  • 手动迁移过程,WinPE/LiveCD挂载丢失。建议手动挂载WinPE/LiveCD时使用远程共挂载,不要使用本地挂载。
  • Windows文件级迁移,fastcopy在处理百万级以上的小文件时,可能会出现卡死或者复制效率低下。默认推荐使用块迁移。

迁移后应用异常

  • 请确保应用在源主机上运行正常。很多情况,用用应用在源主机上运行异常,迁移后应用理所当然也不能正常运行。迁移本身不能解决应用本身问题。
  • 同步时,务必停止源主机业务。为保证数据一致性,特别是迁移数据库时,需先停业务,再同步。
  • PV Driver必须正确安装。无PV Driver时,系统只识别第一块磁盘用户业务数据如果存放在第二块磁盘。会导致应用加载或启动失败。
  • 检查和分析操作系统日志和应用程序日志。
  • 禁用或者卸载源主机中跟源硬件相关的服务或应用程序。
  • 迁移前后,务必联系用户对应应用负责人。
  • 无法进入系统步骤
    可能出现的场景:

    • 迁移的系统不在Rainbow兼容性支持的列表中,直接告知用户不支持迁移
      采取的步骤:
    • Windows挂载WinPE; Linux挂载LiveCD
    • 在WinPE/LiveCD环境下,挂载所有的分区并观察各分区的使用率,对每个分区做磁盘检测
    • 根据系统提示错误,判断具体的出现问题的模块
    • 检查具体模块,并修复具体模块
  • 可以进入操作系统步骤
    • Windows系统开机按F8,选择进入安全模式,进入安全模式后查看系统日志和禁用第三方服务
    • Linux进入单用户模式,逐级提升运行级别,init3/5/7 分别系统日志并定位某个服务启动异常

PV Driver

  • 务必先卸载其他虚拟平台的VM TOOL,再安装PV Driver。特别是从Citrix平台迁移过来的虚拟机。
  • 对于手动迁移的虚拟机,请确保FusionCompute中设置虚拟机操作系统类型跟虚拟机实际运行的操作系统一致,否则挂载的PV Driver不正确。
  • Windows PV Driver依赖于VBS运行环境,如果VBS组件损坏,在目的虚拟机中,点开始->运行"regsvr32 %windir%\system32\WSHom.Ocx"修复。
  • Windows PV Driver依赖WMI组件,如果WMI组件损坏,请先参考微软网站修复WMI组件。
  • Windows系统如果安装PV Driver过程中意外终止或者异常,切勿直接重启虚拟机,可能会导致蓝屏。需从光盘中运行“X:\UpgradeDir\Windows\XXX\uninstall.vbs”卸载脚本,然后重启,再重新安装PV Driver。
  • 确保迁移的系统是目的虚拟机平台支持的系统,否则无对应的PV Driver安装包。
  • 有少量Linux系统平台支持,但需要替换内核才能安装PV Driver。详细清单请参考FusionSphere帮助文档。
  • 安装PV Driver异常或者安装PV Driver后系统不能启动,请联系华为技术支持。

华为FusionSphere业务迁移方案案例

某公司项目背景

  • 某公司集海陆空货运、仓库码头服务、快递、船务代理以及货运代理业务为一体,是中国最大的综合物流服务提供商。
  • 某公司项目是一个ICT全业务集成项目,在传统通信业务基地上,业务将企业现有的IIT基础设备全部外包给运营商承建和运维管理。运营商提供云平台IaaS资源租用、企业UC业务和数据中心运维、业务连续性保障等ICT全业务服务。

某公司需要迁移的业务系统

某公司项目业务迁移流程

某公司业务迁移规划

某公司项目业务迁移步骤

业务迁移经验

  • 能用离线迁移尽量就用离线迁移。
  • Windows在线迁移,注重成功率用块级;注重效率使用文件级。
  • Linux推荐使用文件级。
  • 文件级迁移目的主机磁盘分区大小可变。
  • 对业务软件部署越熟悉越有可能降低RTO时间(数据同步过程中可以更多的的减少同步目录,减少文件比对时间)。
  • 硬件绑定的业务系统不要迁移。
  • 迁移前一定要做备份。
  • 迁移有风险,由于涉及操作系统底层,不是每一次迁移都能成功,做好回退准备。
  • 迁移保证数据完整性,业务验证需要业务应用厂商支撑。
  • 业务切换后不要马上拆毁原业务系统,以防迁移会退。

https://seedsecuritylabs.org/Labs_16.04/Software/Environment_Variable_and_SetUID/

图文详解如何使用华为Rainbow迁移工具相关推荐

  1. 荣耀智慧屏鸿蒙安装第三方软件的方法,华为荣耀智慧屏安装第三方软件的教程,图文详解,一看就会!...

    华为荣耀智慧屏安装第三方软件的教程,图文详解,一看就会! 2020年12月09日 17:42作者:网络编辑:王动 分享 华为荣耀智慧屏安装第三方软件后,你的电视就可以享受无广告版视频.免费的影视资源. ...

  2. java docker 持续集成_最佳实战Docker持续集成图文详解

    前言 关于Docker的文章铺天盖地,但精品文章往往翻译居多.都说Docker天生适合持续集成/持续部署,但同样,可落地.实际可操作性的文章也很罕见. 基于这些情况,虽然我们专栏定位为运维管理性文字, ...

  3. 使用阿里云服务器三分钟搭建网站教程(详细图文详解)

    使用阿里云服务器快速搭建网站教程,先为云服务器安装宝塔面板,然后在宝塔面板上新建站点,阿里云服务器网以搭建WordPress网站博客为例,来详细说下从阿里云服务器CPU内存配置选择.Web环境.域名解 ...

  4. 希云Docker培训视频百度云_希云cSphere-最佳实战Docker持续集成图文详解

    前言 关于Docker的文章铺天盖地,但精品文章往往翻译居多.都说Docker天生适合持续集成/持续部署,但同样,可落地.实际可操作性的文章也很罕见. 基于这些情况,虽然我们专栏定位为运维管理性文字, ...

  5. 广联达2018模板算量步骤_老师傅带你学造价,广联达GTJ2018图文详解,小白也能学会的软件...

    在GTJ2018问世之前,土建造价人员有三个软件是必会的,一个是GGJ主打钢筋算量,一个是GCL主打土建算量,还有一个是GBQ主要是套定额用来计价的软件. 那时候如果计算一个工程的工程量,首先要用GG ...

  6. 计算机刷新的作用,图文详解Win8重置和刷新功能:超强自我治愈

    直接自愈,Windows8出故障之后,伴随着重置和刷新两大新功能,世上无难事了啊.微软Windows8团队今日在官方博客详细向用户解释Win8的重置和刷新PC功能,将可一键复位系统到最佳状态.视频演示 ...

  7. 计算机网络管理的常用命令,网络管理常用命令图文详解.pdf

    网络工程师必备 – 网络管理常用命令图文详解 网络工程师必备 网络管理常用命令 图文详解 V1.0 V1.0 包含 ping.ipconfig.netstat.nbtstat.tracert. pat ...

  8. 全网最全的Windows下Anaconda2 / Anaconda3里Python语言实现定时发送微信消息给好友或群里(图文详解)...

    不多说,直接上干货! 缘由: (1)最近看到情侣零点送祝福,感觉还是很浪漫的事情,相信有很多人熬夜为了给爱的人送上零点祝福,但是有时等着等着就睡着了或者时间并不是卡的那么准就有点强迫症了,这是也许程序 ...

  9. SSL之CA证书颁发机构安装图文详解

    上一节我们说到,在验证公钥安全性时,是在CA机构颁发的包含用户的公钥及其身份信息的数字证书,数字证书由权威机构--CA签发.这个CA权威机构可以是自己的服务器也可以是国际公认的CA权威机构.下面我就来 ...

最新文章

  1. 测试中如何管理外包质量_如何从测试自动化中实现价值
  2. oa php mysql_PHP+MYSQL的OA为何没有Java的值钱?
  3. 【Android NDK 开发】JNI 动态注册 ( 动态注册流程 | JNI_OnLoad 方法 | JNINativeMethod 结构体 | GetEnv | RegisterNatives )
  4. Spring事务隔离级别,事务传播行为
  5. SSH服务--Linux学习笔记
  6. Linux 自学大全,16张思维导图!
  7. leetcode题库:5.最长回文子串Longest Palindrome string
  8. Netty工作笔记0061---Netty心跳处理器编写
  9. Hibernate SqlQuery
  10. 前端与游戏前端unityUI比较
  11. Illustrator 教程,了解 AI 中的绘图工具
  12. php 5.5 preg replace,解决ecshop在php5.5以上环境preg_replace报错方法
  13. telink 9xxx 系列V1.3开发板接线说明
  14. mxnet:Optimizer rescale_grad
  15. 7-2 哥尼斯堡的“七桥问题” (25分)
  16. 怎样设定目标系列总结
  17. 怎么在手机上取消双重认证_谁知道苹果手机双重认证怎么弄?手机号都不知道谁的?...
  18. PTA 7-256 五分制成绩(函数实现)
  19. MANIFEST.MF是个什么?
  20. python中的filter()函数

热门文章

  1. R语言使用自定义函数编写深度学习Scaled Exponential Linear Unit (SELU)激活函数、并可视化SELU激活函数
  2. php换脸,gif动态图换脸 动态图如何换脸 怎样更换gif动态图的人脸头像
  3. Php amqp 效率低,php 使用rabbitmq 踩坑记录
  4. 除了男足,中国元素霸占了世界杯
  5. python:文件的添加序号和插入操做(完整代码)
  6. 快速上手MongoDB
  7. Linux主机访问实达终端辅口,实达系列终端操作说明.doc
  8. 音频静默时间截取工具
  9. php 7天余额显示不出来的,为何我在余额宝里面放了两千元钱,三天以后还是看不到收益?请问手机余额宝的收益在哪里可以看到?还有余...
  10. 中外大厂裁员赔偿谁最“良心”:苹果有人仅得两周工资,腾讯近期补偿达N+5