From Fedora Project Wiki
Line 91: Line 91:
== Dependencies ==
== Dependencies ==
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this feature depends?  In other words, completion of another feature owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the kernel (if this is not a kernel feature)? -->
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this feature depends?  In other words, completion of another feature owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the kernel (if this is not a kernel feature)? -->
* TBD
* Anaconda's storage code uses general storage utilities such as mdadm, parted, dmraid. If liblvm becomes available in time it would be an optional work item to replace existing calls to the lvm command line with library references, but this is more likely to happen in F13.


== Contingency Plan ==
== Contingency Plan ==

Revision as of 17:51, 7 July 2009

Anaconda Storage Filtering

This is the main page for information about anaconda's further/continuing storage rewrite. The entire storage subsystem was rewritten from scratch in F11, this page tracks the cleanup and last bits of support.

Summary

Anaconda's storage configuration code was rewritten from scratch in F11 to address several design limitations and replace outdated chunks of code. A number of outstanding problem areas remain, and this page tracks progress. It also documents the storage device filtering design and test requirements.

Owner

  • email: dlehman AT fedoraproject DOT org

Current status

  • Targeted release: Fedora 12
  • Last updated: 2009-07-07
  • Percentage of completion: 25%

Detailed Description

The new storage code still needs numerous bugfixes and the addition of device filtering. This page tracks the broad categories of problem and the progress we're making.

This page does not track the UI cleanup for storage configuration.


Work Items:

  • improve handling of parted's partition renumbering
  • improve extended partition management
  • improve utilization of disk space w/ growable partition requests
  • add support for optionally-partitioned devices (disks, md)
  • improve UI handling of pre-existing devices and their formatting
  • improve handling of unusual/broken pre-existing lvm/md setups
  • update swap recommendation algorithm
  • create md devices w/ bitmap by default

See Anaconda/StorageRewrite for further details.

Benefit to Fedora

We need to complete the newly redesigned storage management module and improve the stability of installation.

Scope

All of anaconda's code for creating and configuring disk partitions, LVM, mdraid, dmraid, multipath, iSCSI, LUKS devices, and filesystems was rewritten. Several known problem areas remain.

How To Test

Testing will need to be extensive.

We will have to verify the following areas of functionality as a starting point:

  • creation/configuration of filesystems
    • on new partitions
    • on existing partitions
    • on new LVM logical volumes
    • on preexisting LVM logical volumes
    • on new software RAID devices
    • on existing software RAID devices
  • creation of encrypted block devices at various levels in the device stack (partition, PV, LV, mdarray, &c)
  • detection of arbitrarily complex device configurations (luks, mdraid, lvm, &c)
  • management and configuration of existing encrypted block devices
  • automatic partitioning of systems
  • clearing of existing devices/partitions
  • removal of existing devices
  • reconfiguration of existing devices
  • detection of existing upgradable installations with widely varied storage configurations
  • rescue mounting of existing systems with a wide variety of storage configurations

There is more. Unit tests are being developed, and we will plan a Fedora Test Day. Before this code hits Rawhide it will be smoke-tested in a custom compose.

User Experience

This should improve the user's experience with regard to the storage configuration portion of system installation.

It additionally includes the ability to filter out unwanted storage devices as potential installation targets.

Dependencies

  • Anaconda's storage code uses general storage utilities such as mdadm, parted, dmraid. If liblvm becomes available in time it would be an optional work item to replace existing calls to the lvm command line with library references, but this is more likely to happen in F13.

Contingency Plan

Revert to previous codebase and selectively include bugfixes. Which will be difficult to unwedge from the new functionality, which is minor and intertwined with the bugfixes. Basically, this is a lousy option.

Documentation

See Anaconda/StorageRewrite for further details.

Release Notes

  • Install Guide update to reflect ability to filter devices

Comments and Discussion