文档首页/ 主机迁移服务 SMS/ 常见问题/ 错误码排查与解决方法/ SMS.1353: Bind mount or repeated mount detected on /xxx of the source server.
更新时间:2024-08-31 GMT+08:00

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指令下同一个磁盘或者分区重复出现,且挂载在不同位置。

本文出现的磁盘与文件夹均为举例,您在操作时,需要根据实际情况进行替换。

  • 情况一:重复挂载

    排查方法:

    1. 在源端服务器执行mount命令,查找有没有同一个磁盘或者分区挂载在多个目录下。如下图所示,可以看到/dev/vda1磁盘同时挂载在根目录/ /home/mnt_test目录下。

    2. 源端总数据量是通过SMS-Agent执行df -TH命令搜集得到的。如下图所示,在源端服务器执行df -TH 命令,可以看到采集的信息只能采集到一个挂载点,这样就会导致迁移过程中SMS控制台显示的总数据量小于实际迁移的数据量(/dev/vda1磁盘数据实际上迁移了2次)。

    3. 使用ls命令,分别查看根目录/ /home/mnt_test目录下的文件,如果完全一致,则属于重复挂载,请参考•情况一:重复挂载进行处理。
  • 情况二:绑定式挂载

    排查方法:

    1. 在源端服务器执行mount命令,查找有没有同一个磁盘或者分区挂载在多个目录下。如下图所示,可以看到/dev/vda1磁盘同时挂载在根目录 / /root/bind_test/bind_mount目录下。

    2. 在源端服务器执行df -TH命令,可以看到采集的信息只能采集到一个挂载点。

    3. 如下图所示,在源端服务器的/root目录下,执行# du -h --max-depth=1 ~命令,查看/root目录下面bind_test文件夹大小。

      执行# du -h --max-depth=1 ~/bind_test命令,查看/root/bind_test/bind_mount文件夹大小。可以看到子目录的大小比父目录大,因此存在绑定式挂载的情况,请参考•情况二:绑定式挂载进行处理。

解决方案

  • 情况一:重复挂载
    1. 在源端SMS-Agent的解压路径:.../SMS-Agent/agent/config/g-property.cfg 文件中的tar.exclude.dirrsync.exclude.dir参数后,添加需要排除的挂载点。

      例如情况一,将/home/mnt_test/*添加到tar.exclude.dirrsync.exclude.dir参数后,表示将/home/mnt_test/目录下面所有文件排除,不做迁移和同步。

    2. (可选)如果您需要迁移完成后,目的端挂载情况与源端一致,可以进行如下操作:

      迁移完成后,在目的端服务器的/etc/fstab文件里面修改挂载内容,如下图所示。保证目的端/dev/vdb磁盘自动挂载在/mnt文件夹和/home/mnt_test文件夹下。

    3. 重新启动SMS-Agent进行迁移。
  • 情况二:绑定式挂载
    1. 在源端SMS-Agent的解压路径:.../SMS-Agent/agent/config/g-property.cfg 文件中的tar.exclude.dirrsync.exclude.dir参数后,添加需要排除的挂载点。

      例如情况二,将/root/bind_test/bind_mount/*添加到tar.exclude.dirrsync.exclude.dir参数后,表示将/root/bind_test/bind_mount/目录下面所有文件排除,不做迁移和同步。

    2. (可选)如果您需要迁移完成后,目的端挂载情况与源端一致,可以进行如下操作:

      迁移完成后,在目的端服务器的/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 请保留。

    3. 重新启动SMS-Agent进行迁移。