Nat! bio photo

Nat!

Senior Mull

Twitter Github Twitch

Linux IDE and RAID - still disappointing

Three years ago at work we started to try out the Promise IDE RAID controller with hot swapping under Linux. Although it worked in the end, I was not very impressed. We had to use a specific Red Hat kernel to get it working at all, which became painful after a while, since you can't do some necessary updates. Also we now had one more differing distribution and we would prefer to use Debian throughout.

I would have thought that Linux and RAIDing is something so common now, one wouldn't even need to think about it. But when I looked around for a new motherboard with an on board RAID controller and researched a little which controllers are supported best under Linux I found out, that there are only two controllers Highpoint and Promise, which one might consider. Nevertheless both of them apparently still need specific kernel versions or specific distributions and also have some other flaws

So I went with a software RAID and bought two identical Samsung 160 GB discs, whose serial numbers differ by 1. Installed them in the server and proceeded to put a partition on each of them before raiding them together with mkraid. Creating one big partition on each of the discs lead to slightly different sized partitions, so I had to manually size them to make then even. That I already found peculiar.

Then i raided them together for mirroring and came up with a RAID of about 800 MB. Surprise!

Both harddiscs had differing geometries!

bash-2.05# hdparm -g /dev/hdd

/dev/hdd:
 geometry     = 16709/255/63, sectors = 268435455, start = 0
bash-2.05# hdparm -g /dev/hdc

/dev/hdc:
 geometry     = 266305/16/63, sectors = 268435455, start = 0

Apparently the geometry information was read by the raid software and the least common denominator 16709*16*63 used ...

A theory why there are different geometries in the two harddiscs is, that due to bad sectors there is an algorithm used by the harddisc vendor, that tries to compute a geometry, that is closest to the actual number of sectors available.

Now we will be mirroring with rsync.