实践概述

本次文章,分享迁移上云的思路及具体实践。核心是使用rsync工具将源机器迁移至阿里云中。

一. 场景描述

以杭州地域模拟线下 IDC,使用 ECS+云盘模拟本地存储数据,上海地域模拟阿里

云,使用 ECS+NAS 模拟云上数据存储。通过 rsync 的方式,将数据从阿里云 NAS 迁移

到线下 IDC,并确保在迁移时候不影响现有业务。

二. 应用场景

l 云上 NAS 数据迁移至线下 IDC(为本次测试场景)

l 线下 IDC 数据迁移至云上 NAS

l 云上NAS 之间数据跨地域公网迁移

三. 方案架构

数据中心数据迁云案例实践 - 图1

1. 测试资源准备

资源列表如下:

数据中心数据迁云案例实践 - 图2

数据中心数据迁云案例实践 - 图3

2. 使用 Rsync 进行数据迁移

2.1 跨地域网络联通确认

步骤 1 登录 ECS 控制台,分别设置两台服务器的安全组规则,使这两台 ECS 互相之间公网全放行。

数据中心数据迁云案例实践 - 图4

步骤2 测试两台机器之间的任意端口的连通性。

2.2 源端 ECS 挂载 NAS

数据中心数据迁云案例实践 - 图5

步骤 1 登录 NAS 管理控制台。(https://nasnext.console.aliyun.com/overview

步骤 2 在 NAS 文件系统页面,单击文件系统列表,找到资源创建时候创建的 NAS。

数据中心数据迁云案例实践 - 图6

步骤 3 点击管理,进入 NAS 文件系统,点击通过命令行挂载到 ECS,查看配置命令。

数据中心数据迁云案例实践 - 图7

数据中心数据迁云案例实践 - 图8

数据中心数据迁云案例实践 - 图9

步骤 4 登陆前面已创建的上海地域 ECS,安装 nfs-utils,按上步说明执行安装 NFS

和优化内核参数命令。

数据中心数据迁云案例实践 - 图10

步骤 5 NFS 安装完成后,执行 NAS 的挂载命令,需提前手动创建挂载目录,执行

mkdir -p /data

数据中心数据迁云案例实践 - 图11

步骤 6 查看 NAS 挂载状态。

数据中心数据迁云案例实践 - 图12

2.3 目标端 ECS 挂载云盘

步骤 1 登录杭州 ECS,查看实例上的数据盘信息。

数据中心数据迁云案例实践 - 图13

步骤 2 分区格式化数据盘,完成挂载后如下图所示。

参考文档:https://help.aliyun.com/document_detail/25426.html

数据中心数据迁云案例实践 - 图14

2.4 配置 Rsync 和 Sersync

rsync **工具介绍**

一个远程数据同步工具,可在本地及远程主机之间的同步。相比于 scp 主要有以下优点:

l 传输前会进行检测,跳过最终修改时间戳和文件大小一致的文件

l 传输前会对数据进行压缩

l 支持断点续传

sersync **工具介绍**

一个基于 inotify 开发类似于 inotify-tools 的工具。它可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或者某一个目录的名字,然后使

用 rsync 同步的时候,只同步发生变化的文件或者目录。

rsync+sersync 架构的优点:

l sersync 可以记录被监听目录中发生变化的(增,删,改)具体某个文件或目录的名字;

l rsync 在同步时,只同步发生变化的文件或目录(每次发生变化的数据相对整个同步目录数据来说很小,rsync 在遍历查找对比文件时速度很快),因此效率很高。

操作步骤

步骤 1 上海 ECS 安装 sersync

参考连接:https://sersync.googlecode.com/files/sersync2.5.4_64bit_binary_stable_final.tar.gz(64 位系统)

下载解压后改名为 sersync,其中 confxml.xml 为配置文件,修改配置文件:

数据中心数据迁云案例实践 - 图15

只需要修改如图配置即可,inotify 模块为监控模块。具体参考:

#inotify 监控的事件

#是否保持 Sersync 和同步端两端文件完全一致

#创建目录的支持,如果不开户,不能监控子目录

#是否监控文件的创建

#是否监控文件关闭,开户可保证文件的完整性

sersync 配置

#源目录

#目的服务器 ip,目的 rsync 模块名称

#sersync 执行时使用的参数,可参考:

https://www.cnblogs.com/sdifens/p/11804490.html

#开启密码认证,

及使用 rsync 账号密码进行匹配

配置完成后创建密码认证目录 rsync.passwd,里面填写 rsync 的密码。注意权限为 600

最后启动sersync:

/usr/local/sersync/sersync2 -n 3 -r -d -o /usr/local/sersync/confxml.xml

-n 3:为启动进程数 -r: 在监控前,将监控目录与远程主机用 rsync 命令推送一遍 -d: 启用守护进程模式 -o: 指定配置文件,默认使用 confxml.xml 文件

步骤 2 杭州 ECS 安装 rsync

安装命令:yum -y install rsync

修改配置文件:vim /etc/rsyncd.conf

数据中心数据迁云案例实践 - 图16

hosts allow 该参数允许指定一个用于匹配连接客户端的主机名和 IP 地址的模式列表。

当没有模式匹配时将拒绝连接

[tongbu] #模块名称

path = /mnt/ #需要备份的文件路径

auth users = rsync2 #自定义连接该模块的用户名,多个用户用逗号分隔

secrets file = /etc/rsync.passwd #指定一个包含“用户名:密码”格式的文件,该密码需与前面 sersync 配置中设置的用户名和密码保持一致

启动 rsync 命令:

rsync —daemon —config=/etc/rsyncd.conf

步骤 3 配置 zabbix 自定义监控,监控进程是否存在。(可选)

步骤 4 查看目的目录是否有文件写入

2.5 数据完整性验证

操作步骤

步骤 1 验证文件容量是否一致

源(上海 ECS):

数据中心数据迁云案例实践 - 图17

目的(杭州 ECS):

数据中心数据迁云案例实践 - 图18

步骤 2 查看文件数是否一致

源(上海 ECS):

数据中心数据迁云案例实践 - 图19

目的(杭州 ECS):

数据中心数据迁云案例实践 - 图20

迁移完成。

四.总结

实验rsync工具迁移是最经典最常见的迁移方法之一,改操作的好处是稳定,成熟,学习成本低。但缺点是只是迁移文件,而如果是不同的配置和系统的服务器,驱动方面无法支持迁移,特别是一些比较老的机型。所以改方式比较适用于文件类型的迁移,而如果要较为完善的迁移服务器及自动化迁移则,推荐使用阿里云的smc工具迁移。