Bug 815985 - anaconda upgrade and rescue modes fail if root device is degraded RAID
anaconda upgrade and rescue modes fail if root device is degraded RAID
Status: CLOSED DUPLICATE of bug 129306
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: anaconda (Show other bugs)
6.3
i686 Unspecified
unspecified Severity medium
: rc
: ---
Assigned To: Anaconda Maintenance Team
Release Test Team
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2012-04-24 19:32 EDT by Greg Bailey
Modified: 2012-05-07 13:11 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-05-07 12:45:12 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
Proposed patch to detect degraded RAID1 arrays in anaconda (859 bytes, patch)
2012-04-24 20:35 EDT, Greg Bailey
no flags Details | Diff

  None (edit)
Description Greg Bailey 2012-04-24 19:32:32 EDT
Description of problem:

anaconda appears to be unable to find existing root partitions if the root partition exists on a degraded RAID1 array.  While all kinds of partitioning scenarios are possible, the simplest use case would be 2 identically sized hard drives configured with RAID1 for hardware redundancy.  If one of the hard drives is removed or fails, the following two issues manifest themselves:

1.  The "rescue" mode will fail to find the root partition, limiting its usefulness.

2.  Choosing "Install or upgrade" from the boot prompt will proceed without informing the user that the currently installed system is "upgradeable", because anaconda does not detect the root partition.

All the members must be present or else the whole array is not considered (in storage/devicetree.py:2028):

        # remove md array devices for which we did not find all members
        for array in self.getDevicesByType("mdarray"):
            if array.memberDevices > len(array.parents):
                self._recursiveRemove(array)

Perhaps the above logic could be made optional, could log a warning stating that the array is degraded, or could compare members found with the minimum required to construct the array (using memberDevices-1 in the above comparison perhaps).

Version-Release number of selected component (if applicable):

Originally detected on CentOS 6.2 x86 with anaconda 13.21.149.
Verified on Red Hat Enterprise Linux 6.3 BETA x86 with anaconda 13.21.167.

How reproducible:

Always

Steps to Reproduce:

1.  Install Red Hat Enterprise Linux 6 on a physical or virtual server with 2 hard drives, using RAID1 for the root partition.

2.  Remove one of the RAID1 member drives.

3a.  Boot from the Red Hat Enterprise Linux 6 DVD, and use the "rescue" mode.

3b.  Boot from the Red Hat Enterprise Linux 6 DVD, and attempt an upgrade.

Actual results:

No root partition is found.  System is not upgradeable using anaconda.

Expected results:

Rescue mode should discover the root partition (even though it's degraded), and mount the filesystem(s) under /mnt/sysimage.

The anaconda upgrade should detect the currently installed system (with the product version), and confirm whether a fresh install or upgrade is desired.

Additional info:
Comment 2 Greg Bailey 2012-04-24 20:35:54 EDT
Created attachment 580034 [details]
Proposed patch to detect degraded RAID1 arrays in anaconda

A quick patch to devicetree.py to handle the simple degraded RAID1 case.
Comment 3 RHEL Product and Program Management 2012-05-03 01:42:04 EDT
Since RHEL 6.3 External Beta has begun, and this bug remains
unresolved, it has been rejected as it is not proposed as
exception or blocker.

Red Hat invites you to ask your support representative to
propose this request, if appropriate and relevant, in the
next release of Red Hat Enterprise Linux.
Comment 4 David Cantrell 2012-05-07 12:45:12 EDT

*** This bug has been marked as a duplicate of bug 129306 ***
Comment 5 Charlie Brady 2012-05-07 13:01:19 EDT
(In reply to comment #4)
> 
> *** This bug has been marked as a duplicate of bug 129306 ***

This is not a duplicate. Bug 129306 is a feature request asking for one disk RAID install. This is a bug report, saying that upgrade does not work correctly if one disk has failed.
Comment 6 Greg Bailey 2012-05-07 13:04:13 EDT
Bug 129306 does not address the case of "rescue mode" failing to detect a degraded RAID1 installation -- a more severe limitation, in my opinion.
Comment 7 David Cantrell 2012-05-07 13:11:58 EDT
Degraded RAID is not supported under any installation use cases.

Rescue Mode is a different situation.  Rescue Mode uses firstaidkit, which is a separate project from anaconda that can be extended via other plugins.  If you want to write a degraded RAID plugin for firstaidkit and submit that in Fedora, we won't stop you.

Note You need to log in before you can comment on or make changes to this bug.