From Fedora Project Wiki
(→‎Dependencies: Add link to liblvm project page.)
 
(11 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= Feature Name =
= Anaconda Storage Rewrite =
Anaconda Storage Rewrite


== Summary ==
== Summary ==
Line 13: Line 12:


== Current status ==
== Current status ==
* Targeted release: [[Releases/11 | F11 ]]  
* Targeted release: [[Releases/11 | Fedora 11 ]]  
* Last updated: Tue Feb  3 00:41:03 CST 2009
* Last updated: 2009-04-14
* Percentage of completion: 60%
* Percentage of completion: 100%
 
<!-- CHANGE THE "FedoraVersion" TEMPLATES ABOVE TO PLAIN NUMBERS WHEN YOU COMPLETE YOUR PAGE. -->


== Detailed Description ==
== Detailed Description ==
Line 71: Line 68:
* rescue mounting of existing systems with a wide variety of storage configurations
* rescue mounting of existing systems with a wide variety of storage configurations


There is more.
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 ==
== User Experience ==
Line 81: Line 79:
== 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)? -->
* pyparted
* [[Anaconda/Features/NewPyParted | pyparted ]]
* pycryptsetup
* pycryptsetup
* libiscsi
* [[Anaconda/Features/iSCSI | libiscsi ]]
* [[LVM/liblvm | liblvm ]]
* [[LVM/liblvm | liblvm ]]


Line 91: Line 89:


== Documentation ==
== Documentation ==
<!-- Is there upstream documentation on this feature, or notes you have written yourself?  Link to that material here so other interested developers can get involved. -->
See [[Anaconda/StorageRewrite]] for further details.
See [[Anaconda/StorageRewrite]] for further details.


== Release Notes ==
== Release Notes ==
 
* Not applicable because this feature is not user-visible, no release note is required.
<!-- The Fedora Release Notes inform end-users about what is new in the release.  Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ -->
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the documentation team and shipped with the release. -->
TBD


== Comments and Discussion ==
== Comments and Discussion ==
* See [[Talk:Features/AnacondaStorageRewrite]]  <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->
* See [[Talk:Features/AnacondaStorageRewrite]]  <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->


 
[[Category:FeatureAcceptedF11]]
----
 
[[Category:FeaturePageIncomplete]]
<!-- When your feature page is completed and ready for review -->
<!-- When your feature page is completed and ready for review -->
<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->
<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->
<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete-->
<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete-->

Latest revision as of 03:48, 15 April 2009

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: Fedora 11
  • Last updated: 2009-04-14
  • Percentage of completion: 100%

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

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

Dependencies

Contingency Plan

Revert to previous codebase.

Documentation

See Anaconda/StorageRewrite for further details.

Release Notes

  • Not applicable because this feature is not user-visible, no release note is required.

Comments and Discussion