3.10 カーネル、docker 19.03.12 を搭載した Centos7 で作業しています。
最終的に、Docker イメージの 1 つがいっぱいになり、/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、「デバイスに空き容量がありません」です。