canonical / ubuntu-desktop-installer

Ubuntu Desktop Installer
GNU General Public License v3.0
536 stars 94 forks source link

Feature request: Screen 8, custom LVM layout #229

Open roylez opened 3 years ago

roylez commented 3 years ago

Hello,

The new installer does not allow custom LVM layout in screen 8, and this is an important missing feature.

Selecting the first option erases the whole disk and allocates all disk space to LV and does not give any flexibility which is the who point of using LVM.

Selecting "something else", there is an option to format the partition as PV, but it has to be encrypted, which again, is not everyone would want. There is no way to format a plain PV.

Is this by design or are you going to implement it in a future version?

Regards,

Roy

kfiresmith commented 3 years ago

Hi Canonical folks - I'm the Canonical UA customer who requested this - thanks @roylez for this issue!

To provide a "user story" for this feature request, what we are doing is trying to meet some general best-practice guidelines for partition isolation as described in various controls documents such as NIST 800-171, or CIS hardening guides, as well as ensure that we are setting some sane defaults for storage allocation, such as reserving slack space in the PV for future growth, new LVs as needed, LVM snapshots etc.

We are currently working around the defect in Ubiquity and now in Ubuntu-desktop-installer, by using the server media so that we can use Subiquity directly and control the LVM layout at build time. We then fire off a helper script after the base OS build that installs tasksel and runs tasksel install ubuntu-desktop. So far the only practical change beyond that step which we have to make is changing the network provider back to NetworkManager from networkd so that desktop users regain control over the network interface.

This all feels very much like a clumsy workaround and makes the desktop deployment process more involved.

Since I understand this new desktop installer to built on top of Subiquity and Curtin, I'm quite hopeful that this RFE is relatively simple to implement.

If you have any questions please let me know, or let me know if I should be putting my account manager in touch with someone in engineering to advocate for this to arrive in 22.04 LTS.

Thanks!

kfiresmith commented 3 years ago

Closing out original support case (00317147) since there is a (clumsy) workaround for Ubuntu 20.04. Opening companion RFE case 00317344 to track longer term so that the original case can be closed.

long-chung commented 3 years ago

We are currently following the existing journey in the current installer. Designs can be found here: https://github.com/canonical/ubuntu-desktop-installer/issues/33#issuecomment-899555933 Click the "Design details" link directly under the large thumbnail.

Or direct link to pages and specs can be found here: https://people.canonical.com/~platform/desktop/installer/8.%20Installation%20Type/

kfiresmith commented 3 years ago

Hello @long-chung , I don't understand what that means. Are you saying that this aspect is feature frozen and no further improvements will be considered?

long-chung commented 3 years ago

Hi @kfiresmith, in terms of features I believe so. That's not to say we can't improve the UI or move some things around. We're currently discussing making encryption more discoverable but there are some technical discussions that need to be worked out. @kenvandine may be able to shed more light on this matter.

roylez commented 3 years ago

hi @long-chung, this is not about encryption at all. Most of time people do not need the encrypt their disks but only to put /var, /, or /home into different logical volumes in order to better manage disk space allocation, and with current installer, this is no more possible.

kenvandine commented 3 years ago

hi @long-chung, this is not about encryption at all. Most of time people do not need the encrypt their disks but only to put /var, /, or /home into different logical volumes in order to better manage disk space allocation, and with current installer, this is no more possible.

Others are advocating that LVM should be deprecated as it's not used much. We need data to help decide if the investment is worth supporting LVM. I think the only reason LVM has lasted this long is we have required it for encryption, at least from what I've heard.

kfiresmith commented 3 years ago

Hi @kenvandine. Coming from an enterprise environment, frankly, that seems just incredible that people within Canonical are so disconnected from what folks are doing within corporate IT environments.

I can completely understand not wanting to bother to support something like LVM if you were more in the business of making a flashy hobbyist OS for home users, but to think that folks are only using LVM for LUKS, or that people aren't using it much at all, is just bewildering.

LVM is a core tool for storage management for Linux. Customizing LVM is a core control requirement on every single compliance framework one might be subject to in enterprise, government, or defense environments.

I really try to roll with the punches when it comes to Canonical's stark feature-set disparity with RHEL, but this is starting to get a bit out of hand.

Instead of embracing "not invented here" thinking, Canonical would have done much better to simply adopt/fork/contribute to feature-complete solutions (Anaconda installer) in cases where they are simply incapable or unwilling to build a reasonable alternative.

As a Canonical customer, we didn't need a rebuild in Flutter. What we actually needed was a feature complete UI wrapper for Subiquity and probably a whole lot of UX testing to try to get it on par with what folks in Red Hat environments have had for, well, over 15 years now.

kenvandine commented 3 years ago

To be clear, the new installer wasn't just to write something in Flutter it was more about leveraging more modern technology that would be more flexible going forward. Things like subiquity, curtin, etc.

I'm not saying we shouldn't support LVM, but we need data to make that decision. Input from the field is valuable, and we will consider that.

nmav commented 3 years ago

I believe Kodiak here is indicating that LVM use on the desktop is important to his use-case, and LVM is already used a lot in the enterprise world. Ubuntu also relies on it for disk encryption on desktop, so the word "deprecated" does not accurately reflect the status, especially when there is no replacement. To my knowledge we have enough information today to consider LVM an enterprise use-case.

kenvandine commented 3 years ago

We'd like to do this for 22.04, once there are designs available we'll post them here.

kfiresmith commented 3 years ago

Thanks very much @kenvandine for the update - I look forward to checking out the designs.

Thanks very much @nmav for the advocacy on this important feature!

elioqoshi commented 2 years ago

@kfiresmith Thank you for your patience on this. We finished a first version of the designs for having feature parity from Ubuntu Server on Desktop. Your input would be appreciated here as we are aiming to land this in 22.04.

Figma clickable prototype: https://www.figma.com/proto/0oKbszYR8kIfdogBIrYj5W/Ubuntu-22.04-LTS-Desktop-Installer-LVM?page-id=1%3A3680&node-id=1%3A3749&viewport=241%2C48%2C0.08&scaling=min-zoom&starting-point-node-id=1%3A3681&show-proto-sidebar=1


Custom LVM layout features will be possible via the manual partitioning flow

Installation type

Adding a new LVM volume group will be possible from the + button.

Allocate disk space

Here users can select if they want to add a new partition or a new LVM volume group. In this way we don’t need to disable the + button but can disable adding a new partition when needed.

Add new device type - New LVM volume group

Similar to Subiquity, the new LVM dialog asks for a selection of the existing partitions/devices which should be part of the new volume group. If a device has no partitions, the whole device can be included, otherwise only its partitions. Encryption is an optional step you can select afterwards.

Create LVM volume group dialog

Volume Groups show up in the device list in the same hierarchy as disks. They can be selected and changed (via the change button) for editing their configuration.

Allocate disk space - LVM added

When editing a volume group, the included partitions/devices are already checked., as well the volume group name is already set.

Change LVM volume group dialog

If there are other volume groups, partitions/devices part of other volume groups will be grayed out. A tooltip on hover allows for more context why it can’t be selected.

Change LVM volume group dialog hover tooltip

In case there is no unused space left, we don’t block the + button, but instead display a dialog asking the user to free up space before continuing.

Add new device type error - no free space
kfiresmith commented 2 years ago

Phenomenal work @elioqoshi! I'm thrilled to see how this has come along and it makes me feel really great about the upcoming LTS release.

I really appreciate the work that's gone into ensuring that the new desktop installer is making the features of Subiquity available to folks performing the installation.

I think that this looks great and would love to kick the tires as soon as this feature begins to make it into daily builds.

kfiresmith commented 2 years ago

Am I taking crazy pills or did the new desktop installer not actually materialize in Ubuntu 22.04?

kenvandine commented 2 years ago

@kfiresmith it did not make it for 22.04. Some important features were coming in way too late to make the switch for the LTS. The new desktop installer depends on features that didn't exist in subuquity, which is still landing. Once we feel it's complete, we will build alternate 22.04 images for broader testing and provide some much needed functionality for some users

kfiresmith commented 2 years ago

Ah cool thanks for confirming - much appreciated. I was pretty sure that was the case but wanted to make sure I wasn't missing something.

This is definitely one of those tools that I'd appreciate the ability to pull an "as-is" alternative install image for as a 22.04.1 type of deal.

Thanks!