Skip to content
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

Disable filesystem-level COW and checksumming for volatile-dirty.img in file-reflink #8536

Open
iamahuman opened this issue Sep 19, 2023 · 1 comment
Labels
C: storage P: default Priority: default. Default priority for new issues, to be replaced given sufficient information.

Comments

@iamahuman
Copy link

How to file a helpful issue

The problem you're addressing (if any)

BTRFS incurs extra bookkeeping overhead for durability (e.g., copy-on-write and checksumming) by default unless No_COW attribute (chattr +C) is specified. However, volatile AppVM volumes do not need such guarantees.

The solution you'd like

Set No_COW attribute on volatile-dirty.img in file-reflink storage backend.

The value to a user, and who that user might be

Reducing COW overhead improves I/O performance for swap and temporary files.

Related issues

@iamahuman iamahuman added P: default Priority: default. Default priority for new issues, to be replaced given sufficient information. T: enhancement labels Sep 19, 2023
@rustybird
Copy link

rustybird commented Sep 19, 2023

This came up on qubes-users. It's already possible (although a little clumsy - #1527 which you linked would make it straightforward) to set it up, but:

Disabling CoW and hence checksums [...] means losing protection against on-disk bit rot. But storing data on the volatile volume doesn't mean it is unimportant or even short-lived: It's not that unusual to have a long-running VM with weeks of uptime. Corruption in its swapped memory (or in diverged 'root' volume data, which too* is stored on the 'volatile' volume) could be devastating.

* If the root volume is read-only. By default it isn't, but see #6625. (Google Groups' anti-spam filter would not let me post this correction at the time.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: storage P: default Priority: default. Default priority for new issues, to be replaced given sufficient information.
Projects
None yet
Development

No branches or pull requests

3 participants