使用具有 3.10 核心的 Centos7,docker 19.03.12。
最終,其中一個 docker 映像已滿,並將整個/var/
掛載寫入 100%,導致 docker 服務和正在運行的容器崩潰。
現在還剩下 2 個我無法殺死的殭屍進程(使用kill -9
或killall
:
ps axjf | grep docker
1 30215 30215 30215 ? -1 Ds 0 0:00 [docker-entrypoi]
1 32063 32063 32063 ? -1 Zsl 0 0:00 [dockerd] <defunct>
同時,/var/log/messages
我得到:
kernel: XFS (dm-8): Failing async write on buffer block 0xb78170. Retrying async write.
kernel: XFS (dm-8): metadata I/O error: block 0xb78170 ("xfs_buf_iodone_callback_error") error 28 numblks 8
似乎某些 IO 仍在嘗試寫入一些資料。這似乎無限循環地重複,我不知道如何阻止它。
du -sh
並ls -al
在檢查文件時快速掛起/var/lib/docker
。
此外,service docker stop/start
還掛起;top
報告非常高的負載/等待時間(大約23
為 4 核心機器)。
我的問題:xfs
在不重新啟動機器的情況下,乾淨地停止寫入、殺死殭屍進程並重新啟動服務的最佳方法是什麼?
答案1
釋放一些磁碟空間。
您發布的內核訊息報告的錯誤是 28,「設備上沒有剩餘空間」。