Features/UdisksImprovements

= Udisks Improvements =

Summary
Add support for LVM (and various other improvements) to the udisks and gnome-disk-utility stack

Owner

 * Name: David Zeuthen
 * Email: davidz@redhat.com

Current status

 * Targeted release: Fedora 13
 * Last updated: 2010-02-16
 * Percentage of completion: 100%

The new user interface has been included in gnome-disk-utility 2.29. The LVM and remote access support has been in rawhide for a while. The multipath support has landed in rawhide too.

Detailed Description
The palimpsest user interface in Fedora 12 works great for single-user machines and laptops, but it has some scalability issues on systems with many disks and partitions. It also has no notion of enclosures, expanders and similar contraptions that you meet when dealing with external storage. These problems have been addresses with a new user interface in gnome-disk-utility 2.29. The user interface has been improved in several other aspects as well, such as friendlier representation of S.M.A.R.T. information, and a nice way to benchmark disk performance.

The device-mapper stack was not properly integrated with udev in time for F12. This integration has happened in now, so udisks and palimpsest can support LVM and multipath devices. 'multipath' means that a storage device has multiple connections ('paths') to the computer. This can be done to increase performance or to improve fail-safety. Multipath configurations are most common with storage technologies such as iSCSI, fiber channel or SAS.

For LVM, palimpsest shows an icon for each VG in the "Storage Devices" tree-view, just like it already shows one for each MD RAID array. When a VG is selected, palimpsest lets you start/stop it and add/remove or migrate PVs. If the VG is running, palimpsest shows a graphical representation of all logical volumes and the unused space, and lets you create, delete, format, mount, unmount and rename volumes.

For multipath devices, palimpsest shows both the multipath device as well as the individual 'paths' in its tree-view. When an individual path is selected, it warns you that this path is part of a multipath device. When palimpsest finds devices that appear to be paths to a multipath device (ie identical VPD) with no corresponding multipath device, it warns about possible system misconfiguration.

Finally, while doing this work, David found time to implement a simple remote access facility for udisks, which allows a palimpsest application running on one machine to interact with the udisks daemon on another machine. The remote access is tunnelled over ssh. The service is advertised via avahi, which allows palimpsest to show a nice browsable interface to connect to available udisks services.

Benefit to Fedora
Fedora gains a more uniform disk management solution that is well-integrated in the GNOME desktop. Considering that LVM is still enabled by default in new installations, having well-integrated LVM support in the desktop seems like a big benefit.

Scope

 * udev/device-mapper integration needs to happen (it already has)
 * new udisks and gnome-disk-utility releases with the added features need to happen

How To Test
Testing LVM support:
 * 1) Prerequisites:
 * 2) * A LVM-based installation
 * 3) * udisks and gnome-disk-utility packages installed
 * 4) Run palimpsest, (in the menus as Applications → System Tools → Disk Utility
 * 5) Verify that your volume groups appear in the list
 * 6) Select a volume group
 * 7) Verify that the graphic representation shows the logical volumes in the selected volume group
 * 8) Verify that you can start/stop volume groups and mount/unmount/stop/format logical volumes

Testing multipath support:
 * 1) Prerequisites:
 * 2) * A computer with multipath storage devices
 * 3) * udisks and gnome-disk-utility packages installed
 * 4) Run palimpsest.
 * 5) Find your multipath device and its individual paths in the device tree
 * 6) Verify that palimpsest tells you that the individual paths belong to a multipath device, and offers you to go there
 * 7) Destroy all multipath mappings, using 'multipath -F' in a terminal
 * 8) Notice that palimpsest warns you about a possible multipath misconfiguration
 * 9) Recreate the mappings, using 'multipath' in a terminal
 * 10) Notice that palimpsest picks up the configuration changes without a restart

Testing remote access:
 * 1) Prerequisites:
 * 2) * Two machines on same local network
 * 3) * avahi browsing working between the two machines (i.e. no firewalls)
 * 4) * udisks installed on both, palimpsest at least on one (the client)
 * 5) * ssh access between the two machines
 * 6) Make sure both machines are running udisks
 * 7) Run palimpsest on the client
 * 8) Open the Connect to Server dialog, click on Browse...
 * 9) Verify that the other machine (the server) appears in the list of servers
 * 10) Select it
 * 11) Verify that the disks of the server appear in the list, and that you can inspect their properties
 * 12) Making changes (mounting/umounting/formatting, etc) should only work if you connected as root (i.e. entered 'root' as the user name in the Connect to Server dialog)

User Experience
More screenshots of the new user interface with explanations can be found here.

Dependencies
None, beyond udev/device-mapper integration, which has already landed.

Contingency Plan
This feature is somewhat incremental. The new user interface has already landed. If LVM support is not ready in time, we can just ship with the new user interface. If LVM and remote access land, but multipath support is delayed beyond feature freeze, we can ship without multipath support.

Documentation
See http://git.gnome.org/browse/gnome-disk-utility/tree/src/gdu/gdu-ssh-bridge.c#n41 for a description of the technical details of the remote access protocol.

Known limitations/future work
For the LVM support:
 * There's currently no way to resize a LV
 * There's currently no way to reduce a VG / move data off PVs
 * We don't show the relationship between LVs and PVs. Ideally we'd show how extents from PVs are mapped to LVs
 * We don't convey if a LV is striped or mirrored (or other topology)
 * We don't convey if an operation is currently underway (say, pvmove)
 * There is no way to actually create a VG (like e.g. "File->Create->RAID Array..." for MD RAID)
 * Other advanced LVM features may be missing

Release Notes
The udisks storage daemon supports LVM and multipath devices in Fedora 13. The palimpsest tool provides a graphical user interface to these features. It has also seen several other user interface improvements, and optionally allows remote access now.

Comments and Discussion

 * See Talk:Features/UdisksImprovements