eEcho blog

A journey of a thousand miles starts with a single step.

Software RAID with mdadm

1.1. Installation

Just install mdadm package

apt-get install mdadm

1.2. Documentation

Take a look in your directory

/usr/share/doc/mdadm/

1.3. Creating partitions

I prefere to use RAID with partitions instead of disks. Therefore, before proceding, the partitions shall be created.

Use your prefered tools (e.g.: cfdisk) and set the partition type to “FD”).

1.4. Autodetecting array

In order to autodetect your array at boot time, the following things are necessary:

- autodetection support in the kernel

- persistent superblocks shall be used (during creating)

- partition types set to FD

The autodetenction is the only way to boot the system from RAID.

1.5. Creating an array

To create a mirror with 2 harddisks (/dev/hda1 and /dev/hdc1):

mdadm –create –verbose /dev/md0 –level=1 –raid-devices=2 /dev/hda1 /dev/hdc1

Note: Using “–create” will create superblocks. With “–build” the superblocks are not created.

1.6. Creating an array without all disks

This can be very helpfull when system or data shall be migrated from not RAID to RAID harddisk and you don’t have a temporary place to store all.

mdadm –create /dev/md0 –level=1 –raid-disks=2 missing /dev/hdc1

In this case, the system or data can be in /dev/hda1. Once the raid is working, the system or data can be copied to /dev/md0.

After that, /dev/hda1 can be added to the array with

mdadm –add /dev/md0 /dev/hda1

1.7. Viewing array status

Very easily, the array status can be monitored with

mdadm –detail /dev/md0

or if you prefere

cat /pro/mdstat

1.8. Setting device to faulty

In order to test your array, you can simulate a break setting one device to faulty:

mdadm –manage –set-faulty /dev/md0 /dev/hda1

1.9. Removing a device

When a device is broken, before removing it physically, it shall be removed from the array:

mdadm /dev/md0 -r /dev/hda1

1.10. Adding a device

When a broken device has been replaced, it shall be added to the array:

mdadm /dev/md0 -a /dev/sda1

1.11. Monitoring array

To monitor the array with a daemon:

dpkg-reconfigure mdadm

dirty way:

mdadm –monitor –mail=root@localhost –delay=1800 /dev/md0&

This will send a mail to root when something happen.

1.12. Assembling array

To assemble (syncronize) the array:

mdadm –assemble

Alternatively:

mdadm –assemble –force

1.13. Configuration file

The configuration file is

/etc/mdadm.conf

but if you use autodetection, it is not necessary.

1.14. Stopping array

This stops the array, releasing all resources:

mdadm -S /dev/md0

1.15. Destroying array

The array can’t be really destroyed, because there is not a command providing such a feature.

Alternativelly, it is possible to make it not anymore visible to the system. This can be done with the following step.

Removing superblocks

mdadm –zero-superblock /dev/xxx

where xxx is the device (e.g.: hda1, sda1, …).

Now, the array will not be anymore automatically detected.

Note: This is enough to make the array invisible to the system, but the data are anyway there! If you want to safe erase them, give a look here: http://www.planamente.ch/emidio/pages/linux_tools_description.php (Secure data deletion).

2. Software RAID with raidtools2

2.1. Introduction

This tool is depracated. Use mdadm instead.

Comments are closed.