-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mirror OStree repository from Stage fails due to min free space being less than 3% in hello-world #214
Comments
I've found the root cause of this issue, but I'm not sure how to address it. When starting a transaction, I ran the same sequence once on the root filesystem and another on the PVC and found that while the former has a block size of 4K, the latter's is 4M. Since many objects are small (even less that 4K), in the PVC, they are calculated as if each one takes 4M while in the RootFS, the size calculated for them is much closer to their actual size. As a result of the 4M block size, for a 100GB drive, no more than 25K objects may be downloaded. My guess is that when running on AWS (which causes the default storage class to be AWS) the block size is 4K and that is why this issue is not observed there. However, when using CEPH, the issue occurs every time. |
Another issue that @jordigilh raised is that this process disregards other processes that might consume the disk. Since the |
Some more findings. It seems that this is not a container issue. I've SSHed to the node running the container and run
|
Can we use
I like this option better than setting the percentage to 0, and a 1Gb or even 500Mb should be sufficient for our long term purposes (when you have 100Gb of storage available 😄, of course ) and a guarantee that we don't end up filling the PVC. Although, when you come to think about it, since it's a mount point that is not critical to the OS (!= |
In general, I agree that setting a know size instead of a percentage is better. As you said, it's not the RootFS and hence the volume's size should not affect the free size we want to keep available. But, I do have some comments:
As for cleaning, for sure we need a process for it. But that raises additional questions:
|
Even with such protection in place (3% or size) it can potentially fail when running two mirroring tasks concurrently when running close to the disk allocation limit. I don't think the current approach has been modeled to support concurrent builds, and even so the amount of disk we are allocating (100Gi) is far more than what is needed for short term. |
I agree with you that |
When running the
rfe-oci-publish-content
pipeline for thehello-world
example, I noticed that the Mirror OStree repository from Stage fails when running this command:sh-4.4$ ostree --repo=/var/www/html/hello-world/latest pull --mirror hello-world-latest rhel/8/x86_64/edge Writing objects: 10 error: Writing content object: min-free-space-percent '3%' would be exceeded, at least 4.2 MB requested
There is plenty of space available in the pod:
However, if I add this cofiguration to the
[core]
section in/var/www/html/config
Which looks like this:
The command runs successfully:
This solution might work for this use case, but repos that are bigger than this one will fail even with this configuration change.
The text was updated successfully, but these errors were encountered: