目录
一、背景
执行df -h命令后卡住且使用Ctrl +c 也无法结束,该情况常见于k8s集群的worker节点,并且是使用nfs存储创建pvc存储的环境。
二、处理方法
方法1:重启服务器
方法2:卸载卡住的挂载设备
2.1 重启服务器
确认该服务器可重启后可直接使用reboot重启该服务器进程恢复。
2.2 卸载卡住的挂载设备
说明:先使用strace命令进行追踪,看是卡到了哪里,卡到哪里就卸载哪个设备。
1.安装strace命令
[root@k8sworker5 ~]# yum install -y strace
2.执行strace进行追踪
[root@k8sworker5 ~]# strace df -h
3.执行结果
a. 不存在挂载异常的情况
b. 存在挂载异常的情况
说明:上图的追踪结果表明卡在了 /var/lib/kubelet/pods/cd44cc13-0492-4e96-8acc-7d59552f4e9c/volumes/kubernetes.io~nfs/pvc-e2f2bd7c-6912-4c01-9278-f14fff14e85d的挂载上,可通过以下方式进行卸载处理:
4.设备卸载
说明:执行卸载操作后接着再次执行df -h若还出现卡住的情况则重复步骤2、3、4即可,直至执行df -h有返回信息。
三、补充:其它情况
3.1 若卡住的情况如下
.....................
stat("/sys/kernel/config", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
stat("/", {st_mode=S_IFDIR|0555, st_size=4096, ...}) = 0
stat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/proc/sys/fs/binfmt_misc",
即,卡在了 /proc/sys/fs/binfmt_misc,此时可通过重启 proc-sys-fs-binfmt_misc.automount 进行恢复。
3.2 重启
[root@k8sworker5 ~]# systemctl restart proc-sys-fs-binfmt_misc.automount