The name of the game is getting a minimum maintenance RAID server up and running. The OS should be bootable from an USB stick and the RAID disks will be SATA disks.
Installation and setup
This section handles the initial installation and setup procedure. By keeping the OS small (and on USB) it will (hopefully) make backups and restores more easy,
First install Debian/Ubuntu on the USB stick. I created two partitions
on the 512 MB sized stick:
/bootr is 100 MB, which is probably a bit large. Use ext2 (not
a journaling filesystem! As this ages the flash stick too much). Next
debootstrap to install to OS. I’ve kept the install down
to about 300 MB, by only installing the essentials and removing unneeded
I’ve followed this site to install Ubuntu on the stick.
Booting Luckily my system allows me to boot from USB so this all worked nicely; and I can login into my new (soon to be) fileserver system.
The only problem was that any SATA disks were detected before the USB
flash disk. Depending on the number of disks, the USB disk would
/dev/sda (with 0 disks) or
/dev/sdd (with 3 disks)
This would make it impossible to set the root device in grub and
/etc/fstab. I solved this by using the device names from
/dev/disk/by-id/, in this case:
This name can also be used in
/etc/fstab. Linux will automaticly
convert this into the correct
/dev/sdX. This kind of stuff makes
SATA hardware I’ve bought two promise TX 2 SATA controllers, with 2 SATA ports. This gives me a total of 4 ports. I need 3 ports to start with. These work fine with Ubuntu.
The harddisks are mounted in a Chieftec SATA disk bracket. This allows me to easily remove faulty disks from the RAID array. And it has nice lights on the front. And a fan to keep the disks cool.
Remote logging To safe the flash drive it is advised to forward all logging to another host. This is really simple to setup, google for it.
For setting up the RAID array I’ve looked at the following sites:
They sort-of helped, but looking at
mdadm’s manpage gave me the
info I needed. It boiled down to the following:
Fdisk the disks:
set the disk type to
0xfd. This is for autodetection (I’m not using
Then create the RAID-5 array:
mdadm --verbose --create /dev/md0 -c128 -lraid5 -pls -n3 /dev/sda1 /dev/sdb1 /dev/sdc1
Create a filesystem:
And that is it – only an emergency procedure remains.
NFS, setup and mountpoint
The raid array is mounted under
/raid. This directory is suid
with the group name ‘shared’.
This directory is exported using the kernel NFS server.
I’ve choosen not to install
cron as this is not needed for such
a simple machine. I did install:
munin, get statistics about the server
monit, monitor important processes, mdadm for instance.
ntp, time synchronisation
smartmontool, extra disk monitoring
postfix, email allerts, etc.
Also, with lots of effort I got
munin to monitor my SATA disks with