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

Separate pools for root and private by default #9424

Closed
alimirjamali opened this issue Aug 20, 2024 · 6 comments
Closed

Separate pools for root and private by default #9424

alimirjamali opened this issue Aug 20, 2024 · 6 comments
Labels
P: default Priority: default. Default priority for new issues, to be replaced given sufficient information. R: declined Resolution: While a legitimate bug or proposal, it has been decided that no action will be taken. T: enhancement Type: enhancement. A new feature that does not yet exist or improvement of existing functionality.

Comments

@alimirjamali
Copy link

How to file a helpful issue

The problem you're addressing (if any)

Qubes R4.2 (and R4.3) come with the single varlibqubes pool by default at the moment. Both of the legacy Qubes Manager and the Qubes Desktop Manager Create New Qube dialogues allow user to select a single pool for both private and root volumes. It is only possible to select separate pools via CLI tools.

The solution you'd like

Having separate pools have the following benefits:

  1. User could have a fast NVMe SLC/MLC/TLC storage for root volume for faster boot times. And a QLC SATA storage for private volume with cheaper cost/GiB.
  2. If BTRFS is implemented, Deduplication is mostly logical for root volumes (no one want multiple allocation of the same binary in different templates).
  3. Again with BTRFS, root and private could be individual subvolumes which would allow easier snapshots of pools individually.

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

Cost benefit to users in most cases
Faster machines if user has more than one storage drive.
Flexibility

Completion criteria checklist

(This section is for developer use only. Please do not modify it.)

@alimirjamali alimirjamali added P: default Priority: default. Default priority for new issues, to be replaced given sufficient information. T: enhancement Type: enhancement. A new feature that does not yet exist or improvement of existing functionality. labels Aug 20, 2024
@marmarek
Copy link
Member

Qubes R4.2 (and R4.3) come with the single varlibqubes pool by default at the moment

That's not fully accurate. With the default LVM setup, it's a separate vm-pool. But still the same for "root" and "private" volumes.

Anyway, the scenario you describe sounds like highly customized one. If you want, you can already select default pool for different volumes (see qubes-prefs, specifically default_pool_* properties). But also, for template-based qubes, the root pool is always the one where template's root volume reside, regardless where private volume is. So, the setup you describe is already possibly by simply having templates in one pool (their private volume will be also there, but it's mostly empty and rarely used so shouldn't matter that much) and AppVMs in another.

@alimirjamali
Copy link
Author

If you want, you can already select default pool for different volumes (see qubes-prefs, specifically default_pool_* properties).

I admit I did not know about the above. But still adding separate pool selection to GUI tools might be a good idea. I could implement it for both old PyQt based and PyGTK based Managers. If it is a good idea.

@marmarta
Copy link
Member

I'm not sure if this should be exposed in the GUI? This is a pretty advanced configuration option, I would hazard a guess that people who want to do this are comfortable with CLI - and I'm not sure if exposing it in GUI won't be confusing for people who do not understand what this does?

@marmarta
Copy link
Member

Yeah, the more I think of it the more I feel like "configuring pools manually" should be something we don't really encourage that much, especially as it's so easy to hurt yourself if you run out of disk space in a pool.

@alimirjamali
Copy link
Author

alimirjamali commented Aug 20, 2024

Now that I reconsider it (after learning about default_pool_*), it would be something very few people would need (or like).

Closing issue as not planned

P.S.: Duplicate of #9215 which has some other technical discussion

@alimirjamali alimirjamali closed this as not planned Won't fix, can't repro, duplicate, stale Aug 20, 2024
@andrewdavidwong andrewdavidwong added the R: declined Resolution: While a legitimate bug or proposal, it has been decided that no action will be taken. label Aug 20, 2024
Copy link

This issue has been closed as "declined." This means that the issue describes a legitimate bug (in the case of bug reports) or proposal (in the case of enhancements and tasks), and it is actionable, at least in principle. Nonetheless, it has been decided that no action will be taken on this issue. Here are some examples of reasons why an issue may be declined:

  • No solution can be found.
  • The proposed action is not possible.
  • The proposed action would weaken security to an unacceptable degree.
  • The proposed action would be too costly (in time, money, or other resources) relative to the benefits it would provide.
  • The proposed action would make some things better while making other things worse, and the trade-off is not worthwhile.

These are just general examples. If the specific reason for this particular issue being declined has not already been provided, please feel free to leave a comment below asking for an explanation.

We respect the time and effort you have taken to file this issue, and we understand that this outcome may be unsatisfying. Please accept our sincere apologies and know that we greatly value your participation and membership in the Qubes community.

If anyone reading this believes that this issue was closed in error or that the resolution of "declined" is not accurate, please leave a comment below saying so, and the Qubes team will review this issue again. For more information, see How issues get closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P: default Priority: default. Default priority for new issues, to be replaced given sufficient information. R: declined Resolution: While a legitimate bug or proposal, it has been decided that no action will be taken. T: enhancement Type: enhancement. A new feature that does not yet exist or improvement of existing functionality.
Projects
None yet
Development

No branches or pull requests

4 participants