本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
本教程介绍基于rsync命令工具构建阿里云通用型NAS同地域跨可用区主备容灾方案。
方案概述
NAS为单可用区(AZ)数据存储机制,将用户的数据在后端进行多副本存储,每份数据都存储在同一个可用区内多个不同的设备上。对此,为避免当应用内的NAS因不可抗力因素出现停服导致应用在短时间内无法访问数据时,您可以通过rsync工具构建通用型NAS同地域跨可用区主备容灾方案。
本方案的技术架构包括以下基础设施和云服务:
- 1个专有网络VPC:为云服务器ECS、文件存储NAS等云资源形成云上私有网络。 
- 2台交换机:将2个文件存储NAS连接在同一网络上,实现它们之间的通信,并提供基本的网络分段和隔离功能。 
- 2个文件存储NAS:同地域不同可用区的2个NAS,组成一个高性能和高可用的存储服务。消除业务系统所属NAS出现故障时,可切换至正常的NAS上,从而保证服务的连续性和稳定性。 
- 1台云服务器ECS:基于rsync工具配置定期任务迁移增量数据,实现2个文件存储NAS之间的数据共享和同步,确保数据的一致性。 
方案部署
本案例以中国(香港)地域的香港可用区B有一个通用型NAS协议文件系统作为业务系统使用为例,为这个NAS构建容灾能力。相关配置信息如下表所示。
| 参数 | 业务文件系统 | 容灾文件系统 | 
| 地域 | 中国(香港) | 中国(香港) | 
| 可用区 | 香港可用区B | 香港可用区D | 
| 专有网络VPC | test01 | test01 | 
| 交换机 | test1 | test2 | 
步骤一:创建文件系统
首先,我们在同地域的另一个可用区创建一个同规格、同协议类型的通用型NAS文件系统(容灾文件系统)。
步骤二:部署数据迁移系统并迁移数据
在创建好容灾NAS后,您需在云服务器ECS中同时挂载两个NAS文件系统。然后使用rsync工具进行迁移数据并配置定期任务迁移增量数据。迁移数据的操作如下所示。
NFS协议文件系统
- 挂载业务NAS和容灾NAS。 - 登录ECS管理控制台单击创建实例后,在自定义购买页面配置如下信息。 - 地域:选择NAS所在的地域。本文示例,中国香港。 
- 网络及可用区:必须选择为NAS相同的VPC专有网络,建议选择和NAS相同的虚拟交换机。 
- 实例规格:一般选择最低规格即可。 
- 镜像:选择CentOS,本文以CentOS 7.6为例。 
- 存储:单击弹性临时盘|文件存储 NAS|专属块存储集群(选填),然后单击添加文件存储进行配置,添加两个文件系统配置,分别对应业务NAS和容灾NAS。详情请参考下图示例。  - 在ECS创建成功后,业务NAS和容灾NAS挂载完成,请执行以下命令确认。 - mount | grep nas.aliyuncs.com- 如果挂载成功,界面会显示以下信息。业务文件系统挂载到了 - /mnt/src目录,容灾文件系统挂载到了- /mnt/dst目录。 
 
- 安装迁移工具。 - sudo yum install -y rsync
- 迁移存量数据。 - 在容灾文件系统中创建一个目录。例如, - dst/backupsystem目录。- mkdir /mnt/dst/backupsystem
- 将业务文件系统中的数据迁移至容灾文件系统的 - backupsystem目录中。- rsync -avP /mnt/src/ /mnt/dst/backupsystem/
 
- 迁移增量数据。 - 在存量数据迁移过程中,如果业务文件系统被其它ECS上运行的业务应用写入,那么在存量数据迁移结束后,需要另外同步新的增量数据。 - rsync -avP --delete /mnt/src/ /mnt/dst/backupsystem/- rsync命令会先扫描源路径,所以即使增量数据不多,也可能需要较长的时间完成。 警告- --delete 选项代表从容灾文件系统中删除已在业务文件系统中被删除的数据,请谨慎使用,避免将容灾文件系统中的数据意外删除。您也可以为两个文件系统开启回收站功能,当您误删除业务或容灾文件系统中的文件后,可以通过NAS回收站恢复这些文件及其UID、GID和ACL等元数据信息。更多信息,请参见回收站。 
- 配置定期任务迁移增量数据。 - 使用crontab配置定期增量迁移。 - 执行以下命令,进入crontab。 - crontab -e
- 配置定期增量迁移。 - 在crontab中配置以下信息。其中,30表示分钟;00表示小时,即每天00:30进行增量迁移。您也可以根据实际情况进行替换。 - 30 00 * * * rsync -avP --delete /mnt/src/ /mnt/dst/backupsystem/ > /tmp/last_rsync_result.log 2>&1 &
- 执行以下命令,确认配置成功。 - crontab -l
 
- 检查迁移结果。 - 执行以下命令,确认最近一次增量复制的输出。 - cat /tmp/last_rsync_result.log
SMB协议文件系统
- 挂载业务NAS和容灾NAS。 - 登录ECS管理控制台单击创建实例后,在自定义购买页面配置如下信息。 - 地域:选择NAS所在的地域。本文示例,中国香港。 
- 网络及可用区:必须选择和NAS相同的VPC专有网络,建议选择和NAS相同的虚拟交换机。 
- 实例规格:一般选择最低规格即可。 
- 镜像:选择Windows Server,本文以Windows Server 2019为例。 
- 存储:单击弹性临时盘|文件存储 NAS|专属块存储集群(选填),然后单击添加文件存储进行配置,添加两个文件系统配置,分别对应业务NAS和容灾NAS。详情请参考下图示例。  
- 公网IP:选中分配公网IPv4地址,用于下载迁移工具。 
 - 在ECS创建成功后,业务和容灾NAS文件系统挂载完成,请执行以下命令确认。 - net use- 如果挂载成功,界面会显示以下信息。业务文件系统挂载到了X盘,容灾文件系统挂载到了Y盘。 - 状态 本地 远程 网络 ------------------------------------------------------------------------------- OK Y: \\12e4874****-v****.cn-hongkong.nas.aliyuncs.com\myshare Microsoft Windows Network OK X: \\12f7094****-c****.cn-hongkong.nas.aliyuncs.com\myshare Microsoft Windows Network
- 安装迁移工具。 - 下载迁移工具rsync for windows。 
- 解压下载的安装包至C盘,并重命名为cwRsync。 
 
- 迁移存量数据。 - 打开CMD命令行窗口,执行以下命令,将业务文件系统中的数据迁移到容灾文件系统中。 - cd c:\cwRsync rsync.exe -avP /cygdrive/X/ /cygdrive/Y/ --no-perms --no-owner --no-group- 其中,X和Y请根据实际挂载盘符进行替换。 说明- 阿里云SMB默认不支持账号权限配置。如果启用了SMB AD/ACL,则不需要配置 - --no-perms、- --no-owner、- --no-group选项。
- 迁移增量数据。 - rsync.exe -avP --delete /cygdrive/X/ /cygdrive/Y/ --no-perms --no-owner --no-group > c:/rsync.log- rsync命令会先扫描源路径,所以即使增量数据不多,也可能需要较长的时间完成。 警告- --delete 选项代表从容灾文件系统中删除已在业务文件系统中被删除的数据,请谨慎使用,避免将容灾文件系统中的数据意外删除。您也可以为两个文件系统开启回收站功能,当您误删除业务或容灾文件系统中的文件后,可以通过NAS回收站恢复这些文件及其UID、GID和ACL等元数据信息。更多信息,请参见回收站。 
- 配置定期任务迁移增量数据。 - 创建脚本文件。 - 在C盘下创建 - dailyrsync.bat文件,并在文件中配置以下内容。其中,X和Y请根据实际挂载盘符进行替换。- c:\cwRsync\rsync.exe -avP --delete /cygdrive/X/ /cygdrive/Y/ --no-perms --no-owner --no-group > c:\run.log
- 配置定期增量迁移。 - 打开控制面板,单击系统和安全,在管理工具区域,单击计划任务。 
- 在任务计划程序页面,选择。  
- 单击常规页签,输入计划任务的名称,并选中只在用户登录时运行(R)。  
- 单击触发器页签,单击新建。在开始任务列表中选择按预定计划,设置任务时间为每天并指定运行时间。在高级设置中选择已启用。单击确定。  
- 单击操作页签,单击新建。在操作列表中选择启动程序,在程序或脚本中选择配置定期任务迁移增量数据在C盘中创建的 - dailyrsync.bat脚本文件。单击确定。 
- 单击确定。 
- 重启ECS服务器,验证创建结果。 - 如果系统显示如下信息,表示计划任务正常执行。  - 成功运行后,查看C盘中的rsync.log确认最近的一次增量复制的输出。 
 
 
步骤三:容灾切换
当您需要将业务切换到容灾文件系统时,请在所有挂载业务文件系统的业务系统中挂载容灾文件系统。
NFS协议文件系统
以在Linux操作系统中挂载容灾NFS协议文件系统为例,将NAS挂载到业务系统中。更多关于NAS的挂载,请参见挂载场景。
执行以下命令,将容灾文件系统的backupsystem目录挂载到业务系统中。
sudo mount -t nfs -o vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport <<挂载点>>:/backupsystem <<业务系统目录>>重要参数说明如下,请根据实际值替换。
- <<挂载点>>:容灾文件系统的挂载点地址。 
- <<业务系统目录>>:业务系统待挂载容灾文件系统的本地目录,例如 - /mnt。挂载成功后,在此目录下的数据(包括目录、文件)为同步上一次定期增量任务完成时间时的数据。
SMB协议文件系统
本文以在Windows操作系统中挂载SMB协议文件系统为例,将容灾NAS挂载到业务系统中。更多关于NAS的挂载,请参见挂载场景。
net use Y: \\<<挂载点>>\myshare重要参数说明如下,请根据实际值替换。
- <<挂载点>>:容灾文件系统的挂载点地址。 
- Y:挂载容灾文件系统的盘符。挂载成功后,在该盘符下的数据(包括目录、文件)均为同步上一次定期增量任务完成时间时的数据。 
- myshare:SMB的共享名称,不允许变更。 
总结
通过本实践教程,您将能够:
- 了解如何配置定期任务迁移增量数据; 
- 在业务系统中切换文件系统。