ATA RAID rebuild not rebuilding

Doug White dwhite at
Mon Jun 14 05:46:23 GMT 2004

On Sun, 13 Jun 2004, Paul Mather wrote:

> I have a recent 5.2-CURRENT system (last built 9th June, 2004) on which
> I thought I'd try a RAID 1 mirror using ATA RAID on the built-in Intel
> '82371AB/EB/MB PIIX4/4E/4M IDE Controller.'

Note there is no hardware RAID support in this controller, so if the wrong
disk fails you may not be able to boot. Its just a generic chipset IDE

> In summary, I can build and use an ar0 mirror, but whenever I try to
> simulate a failure and reconstruction (via atacontrol detach followed by
> an atacontrol attach, as described in section 12.4.3 of the FreeBSD
> Handbook) the subsequent "atacontrol rebuild ar0" does nothing (it
> returns to the prompt immediately) and the ar0 array is still flagged as
> DEGRADED (and the detached/attached drive as DOWN).  It appears
> impossible to revive the array.

It should crank up a rebuild thread that will start reconstructing the
failed drive in the background. You can see its status with 'ps ax'.  Its
been a while since I've done this and I've only done it with Promise
controllers, which do support RAID features on boot. I think you may have
to add the broken disk back as a spare (using 'atacontrol addspare') then
initiate the rebuild.

> Also, what is the canonical way to construct an array on a built-in
> controller?  I have two identical ATA drives: ad1 on ATA channel 0, and
> ad2 on ATA channel 1.  Assuming these are both unpartitioned/empty, do I
> first have to fdisk the individual drives or is it enough to "atacontrol
> create RAID1 ad1 ad2" and then "fdisk -BI ar0" and bsdlabel ar0s1?

You need to create the RAID container first, so atacontrol, then partition
the newly minted ar0.

> Where is the ATA RAID metadata stored?  How is consistency maintained?
> Is there some way of forcing a reconstruction onto a particular drive?

The metadata is stored on the disks themselves.

> In a verbose boot, the array configuration is output.  For some reason,
> it is flagged as PROMISE.  Shouldn't this be FREEBSD?  Might that be
> confusing the rebuild process, or is rebuilding done identically both on
> FreeBSD ATA RAID and Promise ATA RAID controllers?

FreeBSD the Promise metadata format in the absence of anything telling it
otherwise.  It just happens that you don't have a Promise controller that
can understand the metadata. :)

Incidentally, don't create stripes (RAID0) using this config and expect to
boot off of them, 'cause you won't be able to. You need hardware support
to do that.

Doug White                    |  FreeBSD: The Power to Serve
dwhite at          |

More information about the freebsd-current mailing list