加载中...

记录一个Ceph集群数据卷挂载的问题


当我们用ceph做k8s的动态存储时,特别是使用rdb存储,在pod重启是总会遇到无法挂载pvc的问题

关键报错

MountVolume.WaitForAttach failed for volume "pvc-9bb7c438-2328-47ed-bfbd-c261d111644e" : rbd image k8s-pool/kubernetes-dynamic-pvc-841601fa-f1e8-40a0-b173-77161c03bc47 is still being used

这里显示pvc已经被其他的pod使用了,根本原因是之前的pod删除但是挂载的rbd文件并没有删除

解决方法是需要在ceph集群查看这个rbd文件挂载的位置

rbd info k8s-pool/kubernetes-dynamic-pvc-841601fa-f1e8-40a0-b173-77161c03bc47
#通过这个命令可以查看到这个rbd文件的信息
rbd image 'kubernetes-dynamic-pvc-841601fa-f1e8-40a0-b173-77161c03bc47':
    size 10 GiB in 2560 objects
    order 22 (4 MiB objects)
    snapshot_count: 0
    id: 3bfff12997ae2
    block_name_prefix: rbd_data.3bfff12997ae2
    format: 2
    features:
    op_features:
    flags:
    create_timestamp: Sat Dec 25 11:55:16 2021
    access_timestamp: Sat Dec 25 11:55:16 2021
    modify_timestamp: Sat Dec 25 11:55:16 2021
rados listwatchers -p k8s-pool rbd_header.3bfff12997ae2
watcher=192.168.0.135:0/1321540337 client.685758 cookie=18446462598732840974
#上面的命令可以查看到这个rbd文件挂载的节点

查看到具体的节点到节点上查看rbd文件

ls /dev/rbd/k8s-pool/kubernetes-dynamic-pvc-841601fa-f1e8-40a0-b173-77161c03bc47 -l
lrwxrwxrwx 1 root root 10 May 27 15:46 /dev/rbd/k8s-pool/kubernetes-dynamic-pvc-841601fa-f1e8-40a0-b173-77161c03bc47 -> ../../rbd7

可以查看具体的rbd文件,然后卸载掉

rbd unmap -o force /dev/rbd7

在观察pod就可以正常挂载了


文章作者: huhuhahei
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 huhuhahei !
评论
  目录