Wie beendet man einen festgefahrenen Docker-Dienst sauber?

Wie beendet man einen festgefahrenen Docker-Dienst sauber?

Arbeite mit einem Centos7 mit 3.10-Kernel, Docker 19.03.12.

Schließlich war eines der Docker-Images voll und schrieb das gesamte /var/Mount zu 100 %, wodurch sowohl der Docker-Dienst als auch die laufenden Container abstürzten.

Jetzt sind noch 2 Zombie-Prozesse übrig, die ich nicht beenden kann (mit kill -9oder 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>

In der Zwischenzeit /var/log/messageserhalte ich Folgendes:

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

wo es so aussieht, als ob ein IO immer noch versucht, Daten zu schreiben. Dies scheint sich in einem unendlichen Zyklus zu wiederholen, und ich bin nicht sicher, wie ich es stoppen kann.

du -shund ls -albleibt beim Überprüfen der /var/lib/dockerDateien schnell hängen.

Darüber hinaus service docker stop/startbleibt es auch hängen und topmeldet sehr hohe Lade-/Wartezeiten (ungefähr 23für eine 4-Kern-Maschine).

Meine Frage:Was wäre die beste Möglichkeit, ohne einen Neustart des Computers die Schreibvorgänge sauber zu stoppen xfs, die Zombie-Prozesse zu beenden und die Dienste neu zu starten?

Antwort1

Geben Sie Speicherplatz frei.

Der von den von Ihnen geposteten Kernel-Meldungen gemeldete Fehler ist 28, „Kein Speicherplatz mehr auf dem Gerät“.

verwandte Informationen