From Fedora Project Wiki

< Anaconda‎ | Features

Revision as of 17:48, 7 July 2009 by Ddumas (talk | contribs) (Contingency Plan)

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.


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.


  • 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.


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.


  • TBD

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.


See Anaconda/StorageRewrite for further details.

Release Notes

  • Install Guide update to reflect ability to filter devices

Comments and Discussion