更新时间:2024-09-29 GMT+08:00

节点挂载点检查异常处理

检查项内容

检查节点上是否存在不可访问的挂载点。

解决方案

问题场景:节点上存在不可访问的挂载点

节点存在不可访问的挂载点,通常是由于该节点或节点上的Pod使用了网络存储nfs(常见的nfs类型有obsfs、sfs等),且节点与远端nfs服务器断连,导致挂载点失效,所有访问该挂载点的进程均会出现D状态卡死。

  1. 登录节点。
  2. 在节点上新建一个脚本文件(例如/tmp/check_hang_mount.sh),脚本文件内容如下:

    for mount_path in `cat /proc/self/mountinfo | awk '{print $5}' | grep -v netns`
    do  
        timeout 10 sh -c "cd $mount_path"
        if [ $? == 124 ];then
            echo "$mount_path hang mount"
        fi
    done

  3. 执行保存好的脚本,查看输出。

    如上图所示,则为/root/foo和/root/bar这两个文件夹的挂载点存在问题。

  4. 执行以下命令,查看卡死的挂载点。

    mount -n | grep /root/foo

    一般来说,此类卡死的挂载点表示已经没有业务使用,请您确认该挂载点确实废弃之后执行以下命令卸载掉对应卡死的挂载点,然后重新执行上述脚本。

    umount -l -f localhost:/tmp/nfs

    执行通过之后在升级前检查界面重新检查即可。