应用场景
本文适用于同地域同一VPC不同文件系统之间的数据迁移。
前提条件
已拥有两个NFS协议文件系统,并且准备一台与源文件系统在同一VPC网络下的弹性云主机。两个文件系统分别作为源文件系统和目标文件系统,源文件系统指含业务数据的源文件系统,目标文件系统指即将投入使用的新文件系统。
准备工作
- 注册天翼云官网账号,并完成实名认证,具体操作请参考注册天翼云账号。
- 登录天翼云官网页面,找到控制中心,具体操作请参考天翼云-控制中心。
- 分别创建一个文件系统和一台弹性云主机,具体操作请参考创建弹性文件系统、创建弹性云主机。
- 挂载文件系统至弹性云主机,具体操作请参考使用弹性云主机挂载文件系统。
操作步骤
两个文件系统之间的数据迁移可以分为几个关键步骤: 挂载文件系统 >迁移存量数据>迁移增量数据>迁移应用 。具体操作步骤如下:
1. 将文件系统挂载到云主机
将文件系统挂载至云主机中,为了方便区分,源文件系统挂载到“/mnt/src/“路径上,目标文件系统挂载到“/mnt/dst/“路径上。
2. 安装迁移工具
执行以下命令安装迁移工具rsync和tmux。rsync负责执行复制,tmux是帮助查看进度的工具。
sudo yum install -y rsync tmux
3. 迁移存量数据
依次执行以下两条命令,将源文件系统中的存量数据同步到目标文件系统中。
tmux
sudo rsync -avP /mnt/src/ /mnt/dst/
您还可以利用rsync并发拷贝迁移数据,命令如下:
threads=<线程数量>;
src=<源路径/>;
dest=<目标路径/>;
rsync -av -f"+ */" -f"- *" $src $dest && (cd $src && find . -type f | xargs -n1 -P$threads -I% rsync -av % $dest/% )
说明rsync命令中的源路径结尾必须带有斜杠“/”,否则同步后数据路径不能匹配。
4. 迁移增量数据
在存量数据迁移过程中,如果源文件系统被其它云主机上运行的业务应用写入,那么在存量数据迁移结束后,需要进行增量数据同步。
1)停止业务应用:为了避免不断有新数据写入,需要在同步增量数据之前,在所有云主机客户端上停止使用源文件系统的业务应用。
注意
客户端停止业务应用使用后,请不要手动删除源文件系统的任何数据,否则在下一步会造成数据丢失。
请妥善选择业务低峰期间操作,可使用fuser -mv< dir >命令找到读写NFS文件系统的进程。
2)执行rsync命令,将存量数据迁移开始后的增量数据同步到目标文件系统。
rsync -avP --delete /mnt/src/ /mnt/dst/
5. 检查迁移结果
在迁移完成后,执行如下命令,检查源文件系统与目标文件系统是否一致。
rsync -rvn /mnt/src/ /mnt/dst/
如果两者数据一致,应该显示以下信息,中间不包含任何文件路径。
6. 切换应用至新文件系统
在数据迁移完成后,如果您需要将源文件系统上的业务切换到目标文件系统,即新的文件系统上,请在所有云主机客户端上卸载源文件系统,然后挂载新文件系统至您业务使用的云主机。
1)在业务使用的云主机中执行 df -h
,查看源文件系统挂载的本地挂载路径,参数说明请参考挂载NFS文件系统到弹性云主机。
2)根据实际业务选择合适方法停止源文件系统上的业务进程。
3)执行 umount 本地挂载路径
卸载源文件系统目录。
4)挂载新文件系统到步骤1)中查到的本地挂载路径,挂载方式参考使用弹性云主机挂载文件系统。
5)启动访问文件系统的业务,确认读写正常。
说明本实践中的云主机仅作为数据迁移的“中转站”,而非用于业务实际使用。数据迁移和切换应用到新文件系统完成后,应将新文件系统挂载至实际业务使用的云主机中。