使用Linux 软链接替换存储位置,rsync增量同步迁移目录

发布于:2025-08-20 ⋅ 阅读:(17) ⋅ 点赞:(0)

当服务器中磁盘某一个文件夹中的数据过大时,需要增加一块磁盘,用于存储更多数据,但是当替换磁盘时,不可能长时间停掉服务去拷贝数据,此时就需要使用到 rsync 命令,先完整的拷贝一遍数据后,再停止服务,增量拷贝,软链接替换后恢复服务。

操作示例如下:

此处我需要将目录 /home/ftp/ 下面的所有文件全部迁移至新的磁盘中,并且不改变文件的权限信息。

原始路径:/home/ftp/

目标路径:/mnt/wd_8t_disk/ftp_link/

此处我的目标路径已经挂载了新的磁盘,并且挂载完成,查询挂载信息如下:

[root@test-002 home]# df -hT | grep /mnt/wd_8t_disk
/dev/sda1           ext4      7.3T   32K  6.9T   1% /mnt/wd_8t_disk
[root@test-002 home]#

并且由于/home/ftp/为服务正在使用的目录,在迁移时不能长期停止服务,需要动态热迁移,仅有5分钟的时间周期用于处理迁移数据。

[root@test-002 home]# du -sh ./ftp/
884G    ./ftp/
[root@test-002 home]#

此处可以看到,我的/home/ftp/目录有884GB的数据需要迁移,单块机械磁盘顺序写入100MB/s,大概需要处理2.5小时,由于留给我们的时间只有5分钟的周期,所以需要动态的去同步文件,当两个目录中的文件完全同步后停止掉在使用的服务,且使用软连接切换实际路径。

一:完整同步

此处我先将/home/ftp/目录下的所有数据同步至:/mnt/wd_8t_disk/ftp_link/ 当中

使用同步命令rsync 该命令还可以显示已经同步了多少数据

[root@test-002 ftp_link]# rsync -aHAX  --info=progress2,stats /home/ftp/ /mnt/wd_8t_disk/ftp_link/
953,585,965,820 100%  231.08MB/s    1:05:35 (xfr#1821331, to-chk=0/1886178)
​
sent 953,952,265,821 bytes  received 35,144,020 bytes  242,344,064.48 bytes/sec
total size is 953,585,965,820  speedup is 1.00
[root@test-002 ftp_link]#

二:增量更新

此处继续使用rsync命令,将增加修改的数据同步到目标地址中,此处可以多同步几次,直到没有数据变动。

在更新开始前先将对此路径有读写的服务停止掉,再同步数据

root@test-002 ftp_link]# rsync -aHAX --delete --info=progress2,stats /home/ftp/ /mnt/wd_8t_disk/ftp_link/
    407,778,311   0%  328.98MB/s    0:00:01 (xfr#6, to-chk=0/1886192)
​
sent 467,229,740 bytes  received 76,721 bytes  19,073,733.10 bytes/sec
total size is 953,993,744,131  speedup is 2,041.47
[root@test-002 ftp_link]#

三:软连接替换

此处首先将原本的目录更名为ftp_bak作为备份数据,然后使用/home/ftp/软连接关联到目录/mnt/wd_8t_disk/ftp_link/

查看功能是否恢复正常,如果恢复正常则删除备份数据即可。

[root@test-002 ftp_link]# 
[root@test-002 ftp_link]# mv /home/ftp /home/ftp_bak
[root@test-002 ftp_link]#
[root@test-002 ftp_link]# ln -s /mnt/wd_8t_disk/ftp_link /home/ftp
[root@test-002 ftp_link]# 
[root@test-002 ftp_link]# rm -rf /home/ftp_bak
[root@test-002 ftp_link]# 

替换完成后使用ll命令查看/home/文件夹,即可看到软连接情况

[root@test-002 ftpuser]# ll /home/
total 12548212
lrwxrwxrwx   1 root        root                 24 Aug 19 07:42 ftp -> /mnt/wd_8t_disk/ftp_link
drwxr-xr-x   3 root        root                 21 Nov 11  2024 ftp_bak
drwxr-xr-x   3 root        root                 17 Nov 11  2024 mydata
[root@test-002 ftpuser]#


网站公告

今日签到

点亮在社区的每一天
去签到