实践概述

场景描述

以杭州地域模拟线下IDC,使用ECS+云盘模拟本地存储数据,上海地域模拟阿里云,使用ECS+NAS模拟云上数据存储。通过rsync的方式,将数据从阿里云NAS迁移到线下IDC,并确保在迁移时候不影响现有业务。

应用场景

  • 云上NAS数据迁移至线下IDC
  • 云上NAS之间数据跨地域迁移(使用公网传输)

方案架构

数据迁移下云案例实践 - 图1

数据迁移下云案例实践 - 图2

1.** **测试资源准备

1.1** **资源列表

类别 配置项 说明
杭州ECS IP地址 ...
** 系统镜像 centos_7.6
** 实例数量 1
** 公网带宽 按量计费100M
** 实例规格 ecs.c5.xlarge
** 云盘(数据盘) 高效云盘10T
** 实例主机名
上海ECS IP地址 ...
系统镜像 centos_7.6
** 实例数量 1
** 公网带宽 按量计费100M
** 实例规格 ecs.c5.xlarge
** 实例主机名
上海NAS NAS组名 shanghai-nas
** 协议类型 NFS
** 存储类型 容量型

1.2 拓扑列表

服务器名称 说明 公网IP 数据路径
** 云上NAS服务器
** 线下IDC服务器

2. 使用Rsync进行数据迁移

2.1 跨地域网络联通确认

2.2 源端ECS挂载NAS

2.3 目标端ECS挂载云盘

2.4 配置Rsync和Sersync

rsync工具介绍

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

  • 传输前会进行检测,跳过最终修改时间戳和文件大小一致的文件
  • 传输前会对数据进行压缩
  • 支持断点续传

s**ersync 工具介绍**

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

rsync+sersync架构的优点:
  • sersync可以记录被监听目录中发生变化的(增,删,改)具体某个文件或目录的名字;
  • rsync在同步时,只同步发生变化的文件或目录(每次发生变化的数据相对整个同步目录数据来说很小,rsync在遍历查找对比文件时,速度很快),因此效率很高。

操作步骤

步骤1 上海地区安装sersync (参考连接:64位系统https://sersync.googlecode.com/files/sersync2.5.4_64bit_binary_stable_final.tar.gz) 下载续解压后改名为sersync 其中confxml.xml为配置文件,修改配置文件:

数据迁移下云案例实践 - 图3

只需要修改如图配置即可,inotify模块为监控模块。具体参考:
  1. </filter>
  2. <inotify> #inotify监控的事件
  3. <deletestart="true"/> #是否保持Sersync和同步端两端文件完全一致
  4. <createFolderstart="true"/> #创建目录的支持,如果不开户,不能监控子目录
  5. <createFilestart="true"/> #是否监控文件的创建
  6. <closeWritestart="true"/> #是否监控文件关闭,开户可保证文件的完整性
sersync配置:
  1. <localpath watch="/data"> #源目录
  2. <remote ip="47.99.97.21" name="tongbu"/> #目的服务器ip,目的rsync模块名称
  3. <commonParams params="-avPglrt"/> #sersync执行时使用的参数,可参考:https://www.cnblogs.com/sdifens/p/11804490.html
  4. <auth start="true" users="rsync2" passwordfile="/etc/rsync.passwd"/> #开启密码认证,及使用rsync账号密码进行匹配
配置完成后创建密码认证目录rsync.passwd,里面填写rsync的密码。注意权限为600 最后启动sersync:
  1. /usr/local/sersync/sersync2 -n 3 -r -d -o /usr/local/sersync/confxml.xml
  1. -n 3:为启动进程数
  2. -r: 在监控前,将监控目录与远程主机用rsync命令推送一遍
  3. -d: 启用守护进程模式
  4. -o: 指定配置文件,默认使用confxml.xml文件

数据迁移下云案例实践 - 图4

步骤2 杭州端安装rsync yum -y install rsync 修改配置文件:vi /etc/rsyncd.conf

数据迁移下云案例实践 - 图5

hosts allow该参数允许指定一个用于匹配连接客户端的主机名和IP地址的模式列表。当没有模式匹配时将拒绝连接
  1. [tongbu] 模块名称
  2. path = /mnt/ #需要备份的文件路径
  3. auth users = rsync2 #自定义连接该模块的用户名,多个用户用逗号分隔
  4. secrets file = /etc/rsync.passwd #指定一个包含“用户名:密码”格式的文件
启动rsync
  1. rsync --daemon --config=/etc/rsyncd.conf
步骤3 安装zabbix自定义监控,监控进程是否存在。并把告警信息打入钉钉群中

数据迁移下云案例实践 - 图6

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

数据迁移下云案例实践 - 图7

2.5 数据完整性验证

操作步骤

步骤1 查看容量是否一致 源:

数据迁移下云案例实践 - 图8

目的:

数据迁移下云案例实践 - 图9

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

数据迁移下云案例实践 - 图10

目的:

数据迁移下云案例实践 - 图11