本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
本教程介绍基于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的共享名称,不允许变更。
总结
通过本实践教程,您将能够:
了解如何配置定期任务迁移增量数据;
在业务系统中切换文件系统。