RAID and mirroring

AfNOG 2006

Phil Regnauld

Types of redundancy

There are different levels of redundancy:

none – if a disk crashes, data is lost

RAID1 – 2 disks are mirrored, data is written to both disks at any time. One disk can be lost without losing data.

DATA

DATA

DATA

disk

disk

disk

Types of redundancy

RAID3, RAID5 – data is distributed across several disks, data parity used to rebuild a defective drive is either placed on a dedicated drive (RAID3) or across all drives (RAID5):

DATA

DATA

disk

disk

PARITY

DATA

disk

disk

disk

RAID3

RAID5

DATA

PARITY

PARITY

DATA

DATA

DATA

PARITY

DATA

disk

Types of redundancy

In case of a disk failure, the failed disk can be rebuilt...

RAID1 -> from the remaining disk (1-1 copy)

RAID3 -> from the remaining data + parity disk

RAID5 -> from the parity blocks on other disks

Hardware or software ?

In general, hardware RAID is more transparent to the user, and disk replacement is straightforward:

remove defective disk

install new disk

RAID controller detects this and starts rebuilding on new disk

(Note: real hardware RAID controllers, NOT BIOS RAID such as Promise)

Hardware or software ?

RAID3 and 5 can be complex to implement in software (in the OS), so hardware might be a better choice

But what happens if the RAID controller dies ? How does one recover if one does not have a spare controller ?

Consider having a spare controller for RAID3/RAID5
(Note: we mean real hardware RAID controllers, not BIOS software RAID such as Promise)

Hardware or software ?

RAID1 is easy to recover from and easier to implement in software (within the OS) – worst case, all one needs is to skip a header at the beginning of each disk.

FreeBSD and Linux have very good software RAID implementations nowadays

In FreeBSD, at least 3 implementations:

gmirror

ccd

gvinum (also RAID5, but not recommended)

FreeBSD: gmirror

gmirror is very easy to set up, many howtos available:

http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/geom-mirror.html

http://dannyman.toldme.com/2005/01/24/freebsd-howto-gmirror-system/

http://www.onlamp.com/pub/a/bsd/2005/11/10/FreeBSD_Basics.html

Building a mirror - demo

2005-04-22T11:43:50

Phil Regnauld