From Fedora Project Wiki
(New page: = Feature Name = Anaconda Storage Rewrite == Summary == Anaconda's storage configuration code is being rewritten from scratch to address several design limitations and replace outdated ch...)
 
(Fix the obvious typos and wiki-ignorance in the initial draft.)
Line 13: Line 13:


== Current status ==
== Current status ==
* Targeted release: [[Releases/{{11||next}} | {{11|long|next}} ]]  
* Targeted release: [[Releases/11 | F11 ]]  
* Last updated: (DATE)
* Last updated: Tue Feb  3 00:41:03 CST 2009
* Percentage of completion: 60%
* Percentage of completion: 60%


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


- creation/configuration of filesystems
* creation/configuration of filesystems
  - on new partitions
** on new partitions
  - on existing partitions
** on existing partitions
  - on new LVM logical volumes
** on new LVM logical volumes
  - on preexisting LVM logical volumes
** on preexisting LVM logical volumes
  - on new software RAID devices
** on new software RAID devices
  - on existing 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)
* 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)
* detection of arbitrarily complex device configurations (luks, mdraid, lvm, &c)
- management and configuration of existing encrypted block devices
* management and configuration of existing encrypted block devices
- automatic partitioning of systems
* automatic partitioning of systems
- clearing of existing devices/partitions
* clearing of existing devices/partitions
- removal of existing devices
* removal of existing devices
- reconfiguration of existing devices
* reconfiguration of existing devices
- detection of existing upgradable installations with widely varied storage configurations
* detection of existing upgradable installations with widely varied storage configurations
- rescue mounting of existing systems with a wide variety of storage configurations
* rescue mounting of existing systems with a wide variety of storage configurations


...and that's just off the top of my head in 10 minutes or so...
There is more.


== User Experience ==
== User Experience ==

Revision as of 06:44, 3 February 2009

Feature Name

Anaconda Storage Rewrite

Summary

Anaconda's storage configuration code is being rewritten from scratch to address several design limitations and replace outdated chunks of code.

Owner

  • email: dlehman AT fedoraproject DOT org

Current status

  • Targeted release: F11
  • Last updated: Tue Feb 3 00:41:03 CST 2009
  • Percentage of completion: 60%


Detailed Description

The new storage code will use udev for detection of block devices and will also include completely rewritten modules for management of partitions (pyparted), LVM, Software RAID, block device encryption (pycryptsetup).

The rewrite does not include the UI pages for storage configuration due to resource constraints.

See Anaconda/StorageRewrite for further details.

Benefit to Fedora

This rewrite will address a variety of issues in anaconda's current storage configuration code. One of the major limitations of the current design is that it is difficult to introduce support for new storage technologies, which has become clear through our efforts to add support for things like iSCSI and LUKS, among others. The newly redesigned storage management module will create an interface for managing devices of various types through a flexible and extensible framework. This will, in turn, increase both the stability and the flexibility of the Fedora system installer. Another common theme throughout the rewrite is the use of code that is already in use on installed systems, as opposed to customer installer code, wherever possible. This will improve the consistency of the user experience between installation and the post-install environment.

Scope

All of anaconda's code for creating and configuring disk partitions, LVM, mdraid, dmraid, multipath, iSCSI, LUKS devices, and filesystems is being rewritten.

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.

User Experience

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

Initially, of course, we will severely break the tree.

Dependencies

pyparted (TODO: link) pycryptsetup (TODO: link) libiscsi (TODO: link) liblvm (TODO: link)


Contingency Plan

Revert to previous codebase.

Documentation

See Anaconda/StorageRewrite for further details.

Release Notes

TBD

Comments and Discussion