SMS.1353: Bind mount or repeated mount detected on /xxx of the source server.
问题描述
Linux系统,启动Agent失败,提示“SMS.1353: Bind mount or repeated mount detected on /xxx of the source server.”。
问题分析
出现该提示,可能是因为源端服务器存在重复挂载/绑定式挂载的情况,该情况可能导致数据重复迁移或者目的端磁盘空间不够等问题。
重复挂载:指某个磁盘或者分区同时挂载在多个目录下。例如:磁盘/dev/vda1同时挂载在根目录/ 和/home/mnt_test目录下。
绑定式挂载:指将挂载磁盘或分区的目录挂载到另一目录下。例如:磁盘/dev/vda1挂载在根目录/下,然后将根目录/挂载在/root/bind_test/bind_mount目录下。
重复挂载与绑定式挂载的共同特征:
- 其中任一目录下的磁盘数据发生改变,另一目录也会同步改变。
- mount指令下同一个磁盘或者分区重复出现,且挂载在不同位置。
本文出现的磁盘与文件夹均为举例,您在操作时,需要根据实际情况进行替换。
- 情况一:重复挂载
排查方法:
- 在源端服务器执行mount命令,查找有没有同一个磁盘或者分区挂载在多个目录下。如下图所示,可以看到/dev/vda1磁盘同时挂载在根目录/ 和/home/mnt_test目录下。
- 源端总数据量是通过SMS-Agent执行df -TH命令搜集得到的。如下图所示,在源端服务器执行df -TH 命令,可以看到采集的信息只能采集到一个挂载点,这样就会导致迁移过程中SMS控制台显示的总数据量小于实际迁移的数据量(/dev/vda1磁盘数据实际上迁移了2次)。
- 使用ls命令,分别查看根目录/ 和/home/mnt_test目录下的文件,如果完全一致,则属于重复挂载,请参考•情况一:重复挂载进行处理。
- 在源端服务器执行mount命令,查找有没有同一个磁盘或者分区挂载在多个目录下。如下图所示,可以看到/dev/vda1磁盘同时挂载在根目录/ 和/home/mnt_test目录下。
- 情况二:绑定式挂载
排查方法:
- 在源端服务器执行mount命令,查找有没有同一个磁盘或者分区挂载在多个目录下。如下图所示,可以看到/dev/vda1磁盘同时挂载在根目录 / 和 /root/bind_test/bind_mount目录下。
- 在源端服务器执行df -TH命令,可以看到采集的信息只能采集到一个挂载点。
- 如下图所示,在源端服务器的/root目录下,执行# du -h --max-depth=1 ~命令,查看/root目录下面bind_test文件夹大小。
执行# du -h --max-depth=1 ~/bind_test命令,查看/root/bind_test/bind_mount文件夹大小。可以看到子目录的大小比父目录大,因此存在绑定式挂载的情况,请参考•情况二:绑定式挂载进行处理。
- 在源端服务器执行mount命令,查找有没有同一个磁盘或者分区挂载在多个目录下。如下图所示,可以看到/dev/vda1磁盘同时挂载在根目录 / 和 /root/bind_test/bind_mount目录下。
解决方案
- 情况一:重复挂载
- 在源端SMS-Agent的解压路径:.../SMS-Agent/agent/config/g-property.cfg 文件中的tar.exclude.dir和rsync.exclude.dir参数后,添加需要排除的挂载点。
例如情况一,将/home/mnt_test/*添加到tar.exclude.dir和rsync.exclude.dir参数后,表示将/home/mnt_test/目录下面所有文件排除,不做迁移和同步。
- (可选)如果您需要迁移完成后,目的端挂载情况与源端一致,可以进行如下操作:
迁移完成后,在目的端服务器的/etc/fstab文件里面修改挂载内容,如下图所示。保证目的端/dev/vdb磁盘自动挂载在/mnt文件夹和/home/mnt_test文件夹下。
- 重新启动SMS-Agent进行迁移。
- 在源端SMS-Agent的解压路径:.../SMS-Agent/agent/config/g-property.cfg 文件中的tar.exclude.dir和rsync.exclude.dir参数后,添加需要排除的挂载点。
- 情况二:绑定式挂载
- 在源端SMS-Agent的解压路径:.../SMS-Agent/agent/config/g-property.cfg 文件中的tar.exclude.dir和rsync.exclude.dir参数后,添加需要排除的挂载点。
例如情况二,将/root/bind_test/bind_mount/*添加到tar.exclude.dir和rsync.exclude.dir参数后,表示将/root/bind_test/bind_mount/目录下面所有文件排除,不做迁移和同步。
- (可选)如果您需要迁移完成后,目的端挂载情况与源端一致,可以进行如下操作:
迁移完成后,在目的端服务器的/etc/fstab文件里面修改挂载内容,如下图所示。保证目的端/dev/vda1磁盘自动挂载在/root/bind_test/bind_mount文件夹下。
/ /root/bind_test/bind_mount ext3 rw,bind 0 0
挂载目录与挂载点请根据实际情况修改,第一项为挂载目录(/),第二项为挂载点(/root/bind_test/bind_mount),第三项为文件系统类型(ext3),rw,bind 0 0 请保留。
- 重新启动SMS-Agent进行迁移。
- 在源端SMS-Agent的解压路径:.../SMS-Agent/agent/config/g-property.cfg 文件中的tar.exclude.dir和rsync.exclude.dir参数后,添加需要排除的挂载点。