Skip to content

Increase default filesystem overhead to 6%#3812

Merged
kubevirt-bot merged 3 commits into
kubevirt:mainfrom
alromeros:update-default-fsoverhead
Jul 31, 2025
Merged

Increase default filesystem overhead to 6%#3812
kubevirt-bot merged 3 commits into
kubevirt:mainfrom
alromeros:update-default-fsoverhead

Conversation

@alromeros
Copy link
Copy Markdown
Member

@alromeros alromeros commented Jul 7, 2025

What this PR does / why we need it:

The previous default of 5.5% was originally chosen to account for filesystem overhead. Due to inaccuracies in our overhead inflation calculations, the actual effective overhead was closer to 5.8%.

Now that the calculation functions have been fixed in #3779, we're increasing the default to 6% to ensure sufficient inflation for typical filesystem overhead and avoid under-provisioning.

Feel free to propose a different value. 7% was considered in the past (I think around kubevirt/kubevirt#13326 was merged) but 6% is closer to the original and apparently solves the issue we had with smaller PVCs.

Release note:

Increase default filesystem overhead to 6%

@kubevirt-bot
Copy link
Copy Markdown
Contributor

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@kubevirt-bot kubevirt-bot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. dco-signoff: yes Indicates the PR's author has DCO signed all their commits. release-note Denotes a PR that will be considered when it comes time to generate release notes. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. size/M labels Jul 7, 2025
The previous default of 5.5% was originally chosen to account for filesystem overhead. Due to inaccuracies in our overhead inflation calculations, the actual effective overhead was closer to 5.8%.

Now that the calculation functions have been fixed, we're increasing the default to 6% to ensure sufficient inflation for typical filesystem overhead and avoid under-provisioning.

Signed-off-by: Alvaro Romero <[email protected]>
@alromeros alromeros force-pushed the update-default-fsoverhead branch from 18d738b to 6e8a8fb Compare July 7, 2025 16:55
@kubevirt-bot kubevirt-bot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jul 7, 2025
@alromeros
Copy link
Copy Markdown
Member Author

/test pull-containerized-data-importer-e2e-ceph

@alromeros alromeros changed the title [WIP] Increase default filesystem overhead to 6% Increase default filesystem overhead to 6% Jul 8, 2025
@alromeros alromeros marked this pull request as ready for review July 8, 2025 08:59
@kubevirt-bot kubevirt-bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jul 8, 2025
@kubevirt-bot kubevirt-bot requested review from ShellyKa13 and awels July 8, 2025 09:00
@coveralls
Copy link
Copy Markdown

coveralls commented Jul 8, 2025

Coverage Status

coverage: 59.357% (+0.01%) from 59.346%
when pulling ecc6314 on alromeros:update-default-fsoverhead
into d64a975 on kubevirt:main.

@alromeros
Copy link
Copy Markdown
Member Author

/cc @akalenyu @mhenriks

@mhenriks
Copy link
Copy Markdown
Member

mhenriks commented Jul 10, 2025

how is upgrade handled? If the user never specified their own overhead will the new default be applied?

@alromeros
Copy link
Copy Markdown
Member Author

how is upgrade handled? If the user never specified their own overhead will the new default be applied?

The controller reconciles the overhead by setting the default value if none is specified in the spec https://github.com/kubevirt/containerized-data-importer/blob/main/pkg/controller/config-controller.go#L504 so yeah, if the user didn't set any overhead the new default should be applied on upgrade.

@alromeros
Copy link
Copy Markdown
Member Author

/retest

@alromeros
Copy link
Copy Markdown
Member Author

@awels @akalenyu @mhenriks Hi, would like to unblock this PR. Assuming the upgrade is handled in case the user didn't set a default overhead, are we all ok with this increase?

@awels
Copy link
Copy Markdown
Member

awels commented Jul 29, 2025

/approve

@kubevirt-bot
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: awels

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@kubevirt-bot kubevirt-bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jul 29, 2025
Copy link
Copy Markdown
Collaborator

@akalenyu akalenyu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good, really minor comment

Comment thread tests/upload_test.go Outdated
Comment on lines 1374 to 1375
size := "2147483648"
fsOverhead := "0.055" // The default value
fsOverhead := "0.06" // The default value
tests.SetFilesystemOverhead(f, fsOverhead, fsOverhead)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure why this test sets the default? should already be there

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assumed we wanted to make sure we are using the default here in case we chose a different value in cdiConfig, but just might be some leftover from legacy behavior. I can remove it if you want.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems off to me, if other tests change it they probably:

  • label themselves Serial
  • Revert back in AfterEach

Regarding the "input cluster" having a different overhead, I'd say we want to test it as is, but I'm not aware of such testing setup existing

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ack

Comment thread tests/import_test.go Outdated

It("Filesystem overhead is honored with blank volume", Serial, func() {
tests.SetFilesystemOverhead(f, "0.055", "0.055")
tests.SetFilesystemOverhead(f, "0.06", "0.06")
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same point about "setting" it to the default

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as above

@alromeros alromeros force-pushed the update-default-fsoverhead branch from 6e8a8fb to ecc6314 Compare July 31, 2025 15:14
@kubevirt-bot kubevirt-bot added the lgtm Indicates that a PR is ready to be merged. label Jul 31, 2025
@kubevirt-bot kubevirt-bot merged commit 6d6517a into kubevirt:main Jul 31, 2025
21 checks passed
@alromeros
Copy link
Copy Markdown
Member Author

/cherrypick release-v1.63

@kubevirt-bot
Copy link
Copy Markdown
Contributor

@alromeros: new pull request created: #3857

Details

In response to this:

/cherrypick release-v1.63

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. dco-signoff: yes Indicates the PR's author has DCO signed all their commits. lgtm Indicates that a PR is ready to be merged. release-note Denotes a PR that will be considered when it comes time to generate release notes. size/M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants