在kubernetes中使用ceph rbd作爲掛載存儲,當pod出現異常退出時,有可能會被編排到另外的節點上運行,而rbd不會隨着pod的偏移而解除與原先節點的掛載關係,須要手動解除掛載,假設data_pool存儲池中的test_image鏡像被佔用。cookie
首先解除掛載code
umount /dev/rbd/data_pool/test_image
解除映射關係kubernetes
rbd unmap /dev/rbd/data_pool/test_image
一般狀況下這樣rbd就會解除佔用,能夠在其餘節點上被掛載test
但有時候會報設備繁忙的錯誤,這時就須要在ceph中強制斷開映射鏈接cli
先查詢當前被佔用的rbd狀態map
rbd status data_pool/test_image
獲得相似以下信息im
Watchers:
watcher=192.168.1.100:0/4102608192 client.1574653 cookie=3查詢
將該鏈接加入黑名單異常
ceph osd blacklist add 192.168.1.100:0/4102608192
再次檢查rbd狀態co
rbd status data_pool/test_image
這時rbd應當處於空閒狀態,這時只須要刪除異常pod或等待pod自動恢復便可