Check free disk space before starting Docker (#2092)#2097
Merged
agners merged 1 commit intohome-assistant:devfrom Aug 31, 2022
Merged
Check free disk space before starting Docker (#2092)#2097agners merged 1 commit intohome-assistant:devfrom
agners merged 1 commit intohome-assistant:devfrom
Conversation
It seems that Docker can fail to start if there is no space left on the device. Try to free up some space in that case by asking journald to limit its size to 256MiB. This should work for any storage larger than ~2.5GiB (as the journals maximum size is 10% of the disk size). It still should leave enough logs to diagnose problems if necessary. Note: We could also limit the size of the journal in first place, but that isn't sustainable: Once that space is used up, we run into the same problem again. By only asking journalctl to free up if necessary, we kinda (miss)use the journal as way to "reserve" some space which we can free up at boot if necessary.
Member
Author
|
This is a bit crude, but it seems to work in my testing. The regular root reserve unfortunately doesn't work as most services run in containers as root. Better would be to use actual disk quota, and enforcement. But disk quotas are a pain to manage, and there is overhead associated to it. An alternative to the current solution would be to store a "reserve" file, which we can delete at startup. But that is rather crude too, and leads to unnecessary writes (as the file needs to really be written out, a sparse file would not do the job here). |
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
It seems that Docker can fail to start if there is no space left on the
device. Try to free up some space in that case by asking journald to
limit its size to 256MiB.
This should work for any storage larger than ~2.5GiB (as the journals
maximum size is 10% of the disk size). It still should leave enough
logs to diagnose problems if necessary.
Note: We could also limit the size of the journal in first place, but
that isn't sustainable: Once that space is used up, we run into the
same problem again.
By only asking journalctl to free up if necessary, we kinda (miss)use
the journal as way to "reserve" some space which we can free up at boot
if necessary.