Add LVM and RAID support to Ubiquity.

Release Note

Ubiquity now supports LVM and RAID.


Normally, LVM and RAID are not seen as particularly common use cases on the desktop, which is why they have been historically low priority to implement in Ubiquity. Note that the specific case of DM-RAID (otherwise known as SATA RAID or fake RAID), which is in fact what prompted this topic to be raised at UDS-Lucid, actually is supported in Ubiquity as of Ubuntu 9.10.

However, there has been a constant trickle of requests for handling of such "complex block devices". The most immediate is that DM-RAID is problematic for various reasons, and a number of more experienced users with higher-end desktop systems set up for DM-RAID in fact choose to run them using traditional Linux software RAID instead, for improved reliability, handling of degraded mode, and so on. LVM frees users who want to use multiple partitions of much of the need to decide up-front which chunks of disk should be allocated to which areas of the filesystem, and makes it much easier to plug in a new, larger disk and make effective use of it straight away (even though the graphical tools for dealing with it are still less than ideal).

None of this is at the novice level, so it would not be appropriate to offer this in the automatic partitioner, but these systems are useful on more than just servers and so it would be valuable to offer them in Ubiquity. With improvements made to the underlying LVM and RAID partitioner code in 9.10, it should be possible to bring this up as a dialog-based interface at a minimum.


Graphical presentation

We will add extra buttons "LVM..." and "RAID..." to the row of buttons below the partition tree, with a slight horizontal separation. Each button will pop up a dialog box, somewhat like "Create partition" and "Edit partition". Each dialog box will render the corresponding workflow from d-i ("Configure logical volumes" and "Configure software RAID").

Due to time constraints in the Lucid development cycle, the presentation of these workflows is unlikely to be ideal. In particular, rather than a single dialog box for each that makes it possible to set (e.g.) all volume groups and logical volumes up at once and then hit "go", we will need to render each option from the corresponding d-i menu (e.g. "Create volume group") as a separate page.

The available operations from d-i, with the extra inputs required for each, are as follows:

  • LVM:
    • Create volume group (enter volume group name; multiselect from list of partitions to use as physical volumes)
    • Delete volume group (select among volume groups to delete)
    • Extend volume group (select among volume groups to extend; multiselect from list of partitions to use as additional physical volumes)
    • Reduce volume group (select among volume groups to reduce; multiselect from list of physical volumes to remove from group)
    • Create logical volume (select among volume groups to use; enter logical volume name; enter logical volume size)
    • Delete logical volume (select among logical volumes to delete)
  • RAID:
    • Create MD device (select RAID type; multiselect active and spare (except RAID0) devices; select layout (RAID10 only))
    • Delete MD device (select RAID device to delete)

Multiselects can generally be handled quite adequately with checkbox lists. In the case of active and spare device selection, we have three possible roles for each device (active, spare, or unused). For this, we will use multiple list boxes ("Available devices", "Active devices", and "Spare devices"), with buttons to move selected devices between them.

DM-RAID leftovers

Confirm that automatic partitioning works properly with DM-RAID (Dell have a requirement for this and will test).

Set up a system for tracking which DM-RAID hardware is confirmed to work.

Test/Demo Plan

It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during testing, and to show off after release. Please add an entry to for tracking test coverage.

This need not be added or completed until the specification is nearing beta.


Ubiquity/SoftwareRaid (last edited 2009-12-02 14:33:04 by 82-69-40-219)