实践概述
场景描述
以杭州地域模拟线下IDC,使用ECS+云盘模拟本地存储数据,上海地域模拟阿里云,使用ECS+NAS模拟云上数据存储。通过rsync的方式,将数据从阿里云NAS迁移到线下IDC,并确保在迁移时候不影响现有业务。
应用场景
- 云上NAS数据迁移至线下IDC
- 云上NAS之间数据跨地域迁移(使用公网传输)
方案架构
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为配置文件,修改配置文件:sersync配置:
</filter>
<inotify> #inotify监控的事件
<deletestart="true"/> #是否保持Sersync和同步端两端文件完全一致
<createFolderstart="true"/> #创建目录的支持,如果不开户,不能监控子目录
<createFilestart="true"/> #是否监控文件的创建
<closeWritestart="true"/> #是否监控文件关闭,开户可保证文件的完整性
配置完成后创建密码认证目录rsync.passwd,里面填写rsync的密码。注意权限为600 最后启动sersync:
<localpath watch="/data"> #源目录
<remote ip="47.99.97.21" name="tongbu"/> #目的服务器ip,目的rsync模块名称
<commonParams params="-avPglrt"/> #sersync执行时使用的参数,可参考:https://www.cnblogs.com/sdifens/p/11804490.html
<auth start="true" users="rsync2" passwordfile="/etc/rsync.passwd"/> #开启密码认证,及使用rsync账号密码进行匹配
/usr/local/sersync/sersync2 -n 3 -r -d -o /usr/local/sersync/confxml.xml
-n 3:为启动进程数
-r: 在监控前,将监控目录与远程主机用rsync命令推送一遍
-d: 启用守护进程模式
-o: 指定配置文件,默认使用confxml.xml文件
启动rsync
[tongbu] 模块名称
path = /mnt/ #需要备份的文件路径
auth users = rsync2 #自定义连接该模块的用户名,多个用户用逗号分隔
secrets file = /etc/rsync.passwd #指定一个包含“用户名:密码”格式的文件
步骤3 安装zabbix自定义监控,监控进程是否存在。并把告警信息打入钉钉群中
rsync --daemon --config=/etc/rsyncd.conf
2.5 数据完整性验证
操作步骤
步骤1 查看容量是否一致 源:目的: