本文总结了团队帮助一餐饮客户迁移上云的始末,方案为其节省了运维人力和成本,并获得了业务新增时扩容的弹性。
背景
客户要将业务从自建的虚拟化数据中心迁移至UCloud,希望能够将多年前的VMware体系换到公有云体系。其诉求如下:
希望上云过程不影响到现有业务;
去除机房托管的过保设备,减少不必要的支出;
减少资源的维护人力和运维压力;
另外,希望迁移过程不要太长,不要影响市场推广等工作及业务创新。
迁移评估
经过可行性分析,至少存在以下挑战:
客户的操作系统类型较多且版本老旧,其中大多是Windows Server版本。
业务系统无法重建,原因是软件没有部署指导文档及源码,或找不到可以重新部署的人员。
数据迁移量较大,其中数据库及备份数据较大。
基于以上原因,无法使用现成的工具,因为迁移工具对主流操作系统(CentOS、Ubuntu)支持较好,但是比较老的系统,由于新的硬件驱动缺乏厂商支持原因,导致无法使用。因此,只能通过镜像方式迁移。
迁移方案
基于上述背景及迁移评估,整体迁移思路基本是2个方向:
2.1公网传输
前置条件是:
公网带宽足够大,且不影响现有生产业务。
数据敏感性不高,允许公网传输。
数据量不太大,最好不超过10T级。
2.2 线下磁盘拷贝
对于数据量太大、公网带宽不够大、安全因素考量等,是方案1做不到的,可以体现线下磁盘拷贝的优势。这里使用移动盘柜来做镜像的传输。主要有以下优势:
数据安全性高、空间大:做了raid5的大容量空间,对于数据的安全性有保障。
传输速度快:接口支持USB3.0,速度最大支持500MB/s,存储介质读写速度在150MB/s左右。
可挂载物理服务器:托管区物理机与公有云区内网互通,且与公有云US3服务内网连通,如需将大量机房外的数据拷贝到机房内,可通过这种方式进行数据传输。
在此例中,由于数据太大,为加快迁移速度,因此选择了方案2,即线下磁盘迁移方式。
迁移详情
迁移流程图如下:
首先需要:
关闭Guest系统的Windows组策略;
卸载Guest系统的VMWARE-Tool工具;
关闭防病毒软件;
关闭虚拟机。
上述流程中需提前创建物理云服务器,通过移动盘柜进行系统盘和数据盘镜像的传输,将存储好数据的移动盘柜挂载到物理云服务器,同时在物理云主机内完成系统盘镜像的格式转换和驱动的注入过程。
在中转云主机内通过内部API,创建临时中转机器,并创建具有系统盘属性的云盘,把挂载的移动盘柜当作本地盘,通过qemu-nbd,将移动盘柜的系统盘和数据盘分别远程挂载到中转机的两块云盘上(系统盘与数据盘)。
将临时创建的中转机绑定的两块云盘卸载下来,通过系统盘创建云主机(该过程需要内部API来实现),将另一块磁盘当作数据盘挂载,完成对云主机系统盘数据盘的迁移。
3.1 原IDC中VMware环境准备
(1)vSphere客户端连接vCenter服务器
安装vsphere客户端,远程连接到IDC中VMware的管理节点vCenter,其将对应克隆出的镜像传输到移动盘柜中保存。
(2)导出镜像
对于关机离线的系统,可以直接导出OVF或者VMDK格式的镜像;对于未能离线导出的系统,可进行镜像克隆,克隆后的格式为VMDK。
3.2 中转服务器环境准备
(1)安装KVM虚拟化环境
安装CentOS7操作系统,并确保支持开启硬件虚拟化功能;确保磁盘空间不少于迁移数据量。
(2)安装virt-v2v
考虑到兼容云服务商的兼容性问题(例如IO及网络的加速,系统的高内核版本),针对老旧的系统,如:Windows2000,WindowsServer 2003/2008等,需要用virt-v2v转换。
(3)宿主机上安装VirtIO驱动
Virtio驱动程序是KVM虚拟机的半虚拟化设备驱动程序,半虚拟化驱动程序可提高机器性能,减少I / O延迟并将吞吐量提高到接近裸机水平。
(4)安装ntfs-3g,用于挂载移动盘柜
NTFS-3G支持在Linux, FreeBSD, Mac OS X, NetBSD, Haiku等操作系统下读写NTFS格式的分区。除了完全的文件属主和访问权限,它支持所有符合POSIX标准的磁盘操作。目的是为那些用户需要与NTFS可靠互通的硬件平台和操作系统提供可信任的、功能丰富的高性能方案。
(5)编译安装NBD
安装NBD可被用来进行远程存储和备份,NBD的驱动程序在本地客户端模拟了一个块设备,比如一个磁盘或者是一块磁盘分区,但实际提供物理支持的却是通过网络连接的远程服务器。具体编译安装可参考官方文档。
3.3 镜像格式转换与VirtIO驱动注入
转换磁盘文件并注入VirtIO驱动程序,执行命令如下:
3.4 通过API创建中转系统盘及数据盘
通过API创建新的云盘,作为用来开启云主机的系统盘,以及用来导入数据的数据盘(其中系统属性的磁盘为内部API)。新创建的两块云盘均为临时中转盘,用来存储导入镜像的系统以及数据。具体的API可参考:https://github.com/ucloud。
3.5 远程挂载与磁盘拷贝
为减少迁移耗时,将移动盘柜的系统盘和数据盘以网络的形式直接挂载到新创建的VM上,然后将移动盘柜内的数据与临时中转机创建的云盘实现内网的磁盘数据拷贝。鉴于磁盘IO和网络带宽的限制,上述方案可省去公网传输和对象存储US3存储镜像的中转过程。
具体过程如下:使用qemu-nbd的远程磁盘挂载,将移动盘柜的数据盘,直接挂载到云盘上。然后将云盘卸载,挂载到对应的客户机器上去。
(1)在物理云服务器上将移动盘柜的磁盘镜像挂载到nbd的特定端口
(2)在中转机上安装qemu-img,将远程的数据盘镜像挂载到新创建的云硬盘
3.6 创建云主机并挂载数据盘
对于已经同步过数据的系统盘与数据盘,通过API对系统盘进行云主机的创建;对于云数据盘,需要先将中转机上的云盘进行卸载,然后挂载到需要开启的目标云主机上,从而达到云主机的创建与数据盘的挂载功能。UCloud有自动化的脚本及程序来实现以上过程。
经验
通过本次迁移,确认可以知道的限制因素如下,可供未来参考。
4.1 限制
Windows 7 和WindowsServer 2008 R2需要开启支持SHA-2证书。
如有一致性要求,建议关闭业务IO写。
建议卸载防病毒软件。
建议卸载虚拟化平台工具。
4.2 价值
本迁移方案,最大的价值在于传统行业能够快速上云,大大节省传统物理服务器的运维人力和成本;同时,在以后有业务新增、机器扩容、配置升级等需求时,云上可以快速、动态、弹性的实现,而不用再采购新服务器和交换机等设备来做硬件的迭代更新以及旧设备的维保。对于老旧系统还可继续支持使用,把核心转移到自己业务和生产力中。
领取专属 10元无门槛券
私享最新 技术干货