3

VMware业务系统迁移上云方案

 3 years ago
source link: https://zhuanlan.zhihu.com/p/337119064
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

VMware业务系统迁移上云方案

客户要将业务从自建的虚拟化数据中心迁移至UCloud,希望能够将多年前的VMware体系换到公有云体系。其中:

  • 客户希望上云过程不影响到现有业务;
  • 去除机房托管的过保设备,减少不必要的支出;
  • 减少资源的维护人力和运维压力;

另外,希望迁移过程不要太长,不要影响市场推广等工作及业务创新。

一、迁移评估

经过可行性分析,至少存在以下挑战:

  1. 客户的操作系统类型较多且版本老旧,其中大多是windows Server版本。
  2. 业务系统无法重建,原因是软件没有部署指导文档及源码,或找不到可以重新部署的人员。
  3. 数据迁移量较大,其中数据库及备份数据较大。
  4. 客户使用的商业软件版本过老、未购买授权等原因,导致客户无法或不想重建业务系统,例如购买的第三方商业版全套系统软件,如SAP、ERP等。

基于以上原因,无法使用现成的工具,因为迁移工具对主流操作系统(CentOS、Ubuntu)支持较好,但是比较老的系统,由于新的硬件驱动缺乏厂商支持原因,导致无法使用。

因此,只能通过镜像方式迁移。

二、迁移方案

基于上,整体迁移思路,基本是2个方向:

  1. 公网传输

前置条件是:

  1. 公网带宽足够大,且不影响现有生产业务;
  2. 数据敏感性不高,允许公网传输;
  3. 数据量不太大,最好不超过10T级;

2、线下磁盘拷贝

对于数据量太大、公网带宽不够大、因安全因素不方便公网传输等,是公网在线传输做不到的,可以体现线下磁盘拷贝的优势。

这里使用U闪盘(可以理解为AWS的snowball、阿里的闪电立方)来做镜像的传输。主要有以下优势:

  1. 数据安全性高、空间大:做了raid5的大容量空间,对于数据的安全性有保障。
  2. 传输速度快:接口支持USB3.0,速度最大支持500MB/s,存储介质读写速度在150MB/s左右。
  3. 可挂载物理服务器:托管区物理机与公有云区内网互通,且与公有云US3服务内网连通,如需将大量机房外的数据拷贝到机房内,可通过这种方式进行数据传输。

为了简化步骤,减少中间态等待时间,且为了缩短单个迁移过程时间,采用异步操作,减少同步操作带来的等待时间。

在此例中,由于数据太大,为加快迁移速度,因此选择了方案2,线下磁盘迁移方式。

三、迁移详情

迁移流程图如下:

首先需要:

  • 关闭Guest系统的Windows组策略;
  • 卸载Guest系统的VMware-Tool工具;
  • 关闭防病毒软件;
  • 关闭虚拟机。

上述流程中需提前创建物理云服务器,通过U闪盘进行系统盘和数据盘镜像的传输,将存储好数据的U闪盘挂载到物理云服务器,同时在物理云主机内完成系统盘镜像的格式转换和驱动的注入过程。

在物理云主机内通过内部API,创建临时中转机器,并创建具有系统盘属性的云盘,把挂载的U闪盘当作本地盘,通过qemu-nbd,将U闪盘的系统盘和数据盘分别远程挂载到创建的中转机的两块云盘上(系统盘与数据盘)。

将临时创建的中转机绑定的两块云盘卸载下来,通过系统盘创建云主机(该过程需要内部API来实现),将另一块磁盘当作数据盘挂载,完成对云主机系统盘数据盘的迁移。

3.1IDC中VMware环境准备

1.vSphere客户端连接vCenter服务器

安装vsphere客户端,远程连接到IDC中VMware的管理节点vCenter,其将对应克隆出的镜像传输到U闪盘中保存。

2.导出镜像

对于关机离线的系统,可以直接导出OVF或者VMDK格式的镜像;对于未能离线导出的系统,可进行镜像克隆,克隆后的格式为VMDK。

3.2中转服务器环境准备

①安装KVM虚拟化环境

安装CentOS 7操作系统,并确保支持开启硬件虚拟化功能;确保磁盘空间不少于迁移数据量。安装KVM虚拟化,执行命令如下:

# yum install qemu-kvm qemu-key-tools libvirt  qemu-img
# yum install virt-*
# modprobe kvm
# modprobe kvm_intel
# systemctl start libvirtd
# systemctl enable libvirtd.service

②安装virt-v2v

考虑到兼容云服务商的兼容性问题(例如IO及网络的加速,系统的高内核版本),针对老旧的系统,如:Windows 2000,Windows Server 2003,Windows Server 2008等,需要用virt-v2v转换。

对于IO加速,通过virt-v2v自动注入VirtIO驱动来解决,可以把虚拟机从一个虚拟平台导入到另外一个虚拟平台,使用 virt-v2v 命令将其它虚拟机监控程序(hypervisor)上运行的虚拟机进行转换,从而可以在 Red Hat Enterprise Virtualization 或由 libvirt 管理的 KVM 上运行。当前,virt-v2v 可以转换在 Xen、KVM 和 VMWare ESX / ESX(i) 上运行的 Red Hat Enterprise Linux 虚拟机和 Windows 虚拟机。在需要的情况下,virt-v2v 会在被转换的虚拟机上启用准虚拟化(VirtIO)驱动。

virt-v2v将外部的虚拟化平台上的虚拟机转化到可以运行的KVM平台上。它可以读取运行在VMware、Xen、Hyper-V和其他虚拟机管理程序上的Windows和Linux的虚拟机,并将其转换为KVM的libvirt,OpenStack,oVirt,红帽虚拟化(RHV)等几种方式。

# yum install virt-v2v

③宿主机上安装VirtIO驱动

Virtio驱动程序是KVM虚拟机的半虚拟化设备驱动程序,半虚拟化驱动程序可提高机器性能,减少I / O延迟并将吞吐量提高到接近裸机水平。安装Windows的VirtIO驱动如下:

# yum install libguestfs-winsupport libguestfs-tools
# wget https://fedorapeople.org/groups/virt/VirtIO-win/VirtIO-win.repo
-O /etc/yum.repos.d/VirtIO-win.repo
# yum install VirtIO-win

④安装ntfs-3g,用于挂载U闪盘

NTFS-3G支持在Linux, FreeBSD, Mac OS X, NetBSD, Haiku等操作系统下读写NTFS格式的分区。除了完全的文件属主和访问权限,它支持所有符合POSIX标准的磁盘操作。目的是为那些用户需要与NTFS可靠互通的硬件平台和操作系统提供可信任的、功能丰富的高性能方案。

# yum install epel-release
# yum install ntfs*

⑤编译安装NDB

安装NBD可被用来进行远程存储和备份,NBD的驱动程序在本地客户端模拟了一个块设备,比如一个磁盘或者是一块磁盘分区,但实际提供物理支持的却是通过网络连接的远程服务器。

3.3镜像格式转换与VirtIO驱动注入

转换磁盘文件并注入VirtIO驱动程序,执行命令如下:

# export LIBGUESTFS_BACKEND=direct
# virt-v2v -i vmx server2003.vmx -of qcow2 -o qemu -os ./
// 注:执行命令virt-v2v -i vmx “vmx文件名” –of qcow2 –o qemu –os “转换后磁盘文件存放路径”,默认是把系统盘与数据盘都进行转换,为了节省转换时间,可以修改vmx文件只进行系统盘的转换。

3.4通过API创建中转系统盘及数据盘

通过API创建新的云盘,作为用来开启云主机的系统盘,以及用来导入数据的数据盘(其中系统属性的磁盘为内部API)。新创建的两块云盘均为临时中转盘,用来存储导入镜像的系统以及数据。

具体的API可参考:https://github.com/ucloud

3.5远程挂载云盘与磁盘拷贝

为减少迁移耗时的流程,将U闪盘的系统盘和数据盘以网络的形式直接挂载到新创建的VM上,然后将U闪盘内的数据与临时中转机创建的云盘实现内网的磁盘数据拷贝。鉴于磁盘IO和网络带宽的限制,上述方案可省去公网传输和对象存储存储镜像的中转过程。

具体过程如下:使用qemu-nbd的远程磁盘挂载,将U闪盘的数据盘,直接挂载到云盘上。然后将云盘卸载,挂载到对应的客户机器上去。

①在物理云服务器上将U闪盘的磁盘镜像挂载到nbd的特定端口

# qemu-nbd -r -t -v -f qcow2 -p 5000 web-sdc.qcow2
// 注:5000为端口号,web-sdc为数据盘镜像。

②在中转机上安装qemu-img,将远程的数据盘镜像挂载到新创建的云硬盘。

# qemu-img convert nbd://10.23.xx.xx:5000 /dev/vdc
// 注:10.23.xx.xx为物理服务器内网IP地址,/dev/vdc为新创建的云盘。

3.6创建云主机并挂载数据盘

对于已经同步过数据的系统盘与数据盘,通过API对系统盘进行云主机的创建;对于云数据盘,需要先将中转机上的云盘进行卸载,然后挂载到需要开启的目标云主机上,从而达到云主机的创建与数据盘的挂载功能。UCloud有自动化的脚本及程序来实现以上过程。

通过本次迁移,确认可以支持和限制因素如下,供参考。

4.1支持

对于VMware,此迁移支持以下环境:

  1. 支持vSphere、ESXI。
  2. 支持系统盘和数据盘迁移。
  3. 支持操作系统RHEL 3-7,Centos 3-7,Ubuntu 10.04,12.04,14.04,16.04以上,Windows XP-Windows 10/ Windows Server2016。

4.2限制

  1. VMware Workstation创建的主机迁移存在失败风险。
  2. Windows 7 和Windows Server 2008 R2需要开启支持SHA-2证书。
  3. 需要关闭操作系统迁移,不支持在线热迁。
  4. 需要卸载防病毒软件。
  5. 需要卸载虚拟化平台工具。

本文来自UCloud华东架构中心,如有相关需求或业务咨询,欢迎私信联系或评论区留言!


Recommend

  • 1

    Google Cloud携手VMware扩大合作关系 专注云迁移服务 来源:至顶网软件与服务频道    2022-03-17 10:28:53关键字: Google

  • 6

    今天谈下业务系统割接上线方案的内容,对于大项目来说,业务系统在建设完成并UAT测试通过后,最终的割接上线往往是一个系统工程,不能有丝毫的马虎。 系统割接上线概述 临近项目上线,最近周末都在加班处理上线...

  • 133
    • kemchenj.github.io 6 years ago
    • Cache

    Codable 的迁移方案 | kemchenj

    最近刚换工作,在迁移 Swift 4.0,其实我感觉 Swift 3.0 的时候迁移工作更容易一点,因为所有库都很积极地升级版本,而现在反而都在做 Swift 3.2 的兼容方案,每个库的兼容状况不同让迁移工作变得更难。但今天想说的是另一个问题,Codable 的迁移,我们项目里是用...

  • 9

    Play Framework的数据库迁移方案——Evolutions 2020-08-19 19:50:44 +08  字数:1704  标签: Scala 只要有个数据库,都需要迁移(Migra...

  • 2

    V2EX  ›  Android [换机] 安卓软件(含数据)迁移方案   kerb15 · 1 天前 · 1047 次点击 ...

  • 2
    • www.daozhao.com 2 years ago
    • Cache

    富文本编辑器CKEditor4迁移方案

    富文本编辑器CKEditor4迁移方案如果您发现本文排版有问题,可以先点击下面的链接切换至老...

  • 7
    • www.servicemesher.com 2 years ago
    • Cache

    蚂蚁金服Service Mesh渐进式迁移方案

    蚂蚁金服Service Mesh渐进式迁移方案 · Service Mesh|服务网格中文社区 大家好,今天给大家带来的演讲主题是“蚂蚁金服Service Mesh渐进式迁移方案”,给大家介绍一下我们蚂蚁金服主站的Service Mesh迁移方案,在稍后的内容中我会给大家解释什么是“渐进式...

  • 6

    如果准备将自建的 elasticsearch 迁移上云,或者的迁移到其他es集群内,可以根据自己的业务需要选择合...

  • 7

    星环科技平滑迁移方案加速国产化替代,助力大数据基础软件自主可控-品玩 星环科技平滑迁移方案加速国产化替代,助力大数据基础软件自主可控 16小时前 自主可控和国产化替代刻不容缓。过去微软“黑屏闷”事件、美国“棱镜门”事件、中兴制裁事件已...

  • 4
    • www.cnblogs.com 9 months ago
    • Cache

    数据迁移方案 - 四季青年

    数据迁移方案 1.1 背景和目的 在项目的高速发...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK