Creating a RAID array

Specifically a soft Raid 1 array on ubuntu 11.10. This guide is not for raiding your boot/main drive, but rather an extra ‘data’ array.

First thing you will need is a computer/server with 2+ drives (that you don’t mind loosing the data on), the Raid mirror will end up being the smallest of the two. You may use/mix advanced format 4KB drives, but I’ll get to that later.

A note before you begin, initialising a new array will take along time (6 hours for a 2TB array of 2 drives, minimum), so plan to leave your server alone while it does that.

Firstly install mdadm

sudo aptitude install mdadm

You will then be able to cat /proc/mdstat to verify its working

Next up is to find and prepare your drives. You can use ls /dev/sd* or lsblk to get the list of current drives. In my case this was /dev/sdb and /dev/sdc.

Partitioning

mdadm uses partitions of type ‘Linux RAID Autodetect’ to build array from, so we now need to create these partitions on our drives. For examples sake we’ll use fdisk here.

sudo fdisk /dev/sdb

If you have any existing partitions (use p to list) clear them with o.

Then create the new partition with n, use the defaults to create the maximum size.

Set the type with t and set it to ‘fd’ which is ‘Linux RAID Autodetect’ (formatting the new partition is not neccessary at this point).

Finally use w to write the changes to disk and q to exit.

Rinse and repeat for the other drive.

Advanced Format: You can spot advanced format drives by printing the list of partitions a checking the physical sector size, Eg. an AF drive:
Sector size (logical/physical): 512 bytes / 4096 bytes
And a non-AF drive:
Sector size (logical/physical): 512 bytes / 512 bytes
In the above case fdisk will warn you about the logical sector size not matching the physical size when you run it, but fear not, its fine.

Creating

If you are mixing AF drives and non-AF drives put the AF drives first in the list when creating the array, this will cause mdadm to use 4KB sector sizes rather than 512B, in my setup /dev/sdc is the AF drive.

Create the array with

sudo mdadm --create /dev/md0 --level=1 --raid-disks=2 /dev/sdc /dev/sdb

You may name it something other than md0, although it is good practice to use mdX where X is a number.

Doing a cat /proc/mdstat will show something like

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb1[1] sdc1[0]
      1953512400 blocks super 1.2 [2/2] [UU]
      [>.............] resync = 0.1% (65245/1953512400) finish=612.2min speed=65748K/sec

unused devices: <none>

Now’s the best time to leave it overnight to finish setting it up. Since I did notice the speed drop to almost nothing when mounted. You may format the drive now (to check that it doesn’t throw any warnings, see the next section).

[…Some time later…]

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb1[1] sdc1[0]
      1953512400 blocks super 1.2 [2/2] [UU]

unused devices: <none>

Done and ready to use

Formatting and using

We’ll use ext4 here, but feel free to use your favourite.

sudo mkfs.ext4 /dev/md0

That should give no warnings, however if it does complain about the offset you could try and stop the array (mdadm --stop /dev/md0) and create the partitions again but set the display to sectors (with u twice) and create the partitions with the first sector being 2048.

Now for mounting, add the following line to /etc/fstab and create the directory /mnt/data (or use any other location)

/dev/md0  /mnt/data  ext4  errors=remount-ro  0  2

And mount

mount /mnt/data

Done.

Double-check with df -h

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/root      228G  6.7G  210G   4% /
udev                  868M  8.0K  868M   1% /dev
tmpfs                 351M  1.2M  350M   1% /run
none                  5.0M     0  5.0M   0% /run/lock
none                  877M     0  877M   0% /run/shm
/dev/sda1             228M   67M  149M  32% /boot
/dev/md0              1.8T  319G  1.4T  19% /mnt/data

I hope this helps, but let me know if you ran into any problems and if you got around it so I can update this for the next person going Raid.

Bookmark the permalink.

Comments are closed.