From: Rahul on
Are there any users using mdadm for RAID6? I wanted to get a performance
estimate. Usually for RAID0,1,5 etc. I prefer well-tested, open-source
mdadm to some sort of hardware implemented proprietary RAID card.

But I've read that the checksum computation for RAID6 is computationally
expensive. Hence I was wondering if it would be foolhardy to attempt a
RAID6 via software-RAID. Or maybe not? It's going to be a disk-to-disk
backup storage so performance is not super critical but I don't want to end
up with something that crawls either.

In case I am forced to go with a hardware solution, though, are there
recommendations for cards that play well with Linux? I'm thinking LSI is
making some good cards but if there are any caveats I'd love to hear them.

The reason I'm switching over from RAID5 to RAID6 is that this time I am
using eight 1-Terabyte drives in the RAID. And at this capacity I am scared
by the horror stories about "unrecoverable read errors"


--
Rahul
From: Aragorn on
On Thursday 05 August 2010 18:49 in comp.os.linux.hardware, somebody
identifying as Rahul wrote...

> Are there any users using mdadm for RAID6? I wanted to get a
> performance estimate. Usually for RAID0,1,5 etc. I prefer well-tested,
> open-source mdadm to some sort of hardware implemented proprietary
> RAID card.

The Linux kernel supports *many* hardware RAID controllers out of the
box, and most of those would fall under the "tried and tested"
category. ;-)

> But I've read that the checksum computation for RAID6 is
> computationally expensive.

Yes, it is. RAID 6 is good if you want redundancy which can cover
double-disk failures, but it's the worst performer among all RAID
solutions.

> Hence I was wondering if it would be foolhardy to attempt a RAID6 via
> software-RAID. Or maybe not? It's going to be a disk-to-disk backup
> storage so performance is not super critical but I don't want to end
> up with something that crawls either.

I can't give you any answers on that, because it all depends on the
amount and frequency of the I/O to that subsystem. However, what I
*can* tell you is that a hardware RAID solution is probably going to be
a lot faster, since it will be doing the checksum computations on a
separate, dedicated processor, leaving your main CPU(s) available to do
other stuff.

Another consideration with regard to a software implementation of RAID 6
is that the speed will also be impacted by whether your kernel is
preemptible or not and what interrupt timer frequency it was built
with.

> In case I am forced to go with a hardware solution, though, are there
> recommendations for cards that play well with Linux? I'm thinking LSI
> is making some good cards but if there are any caveats I'd love to
> hear them.

LSI, QLogic, 3Ware, Adaptec...

> The reason I'm switching over from RAID5 to RAID6 is that this time I
> am using eight 1-Terabyte drives in the RAID. And at this capacity I
> am scared by the horror stories about "unrecoverable read errors"

Why not use RAID 10? It's reliable and fast, and depending on what disk
fails, you may be able to sustain a second disk failure in the same
array before the first faulty disk was replaced. And with an array of
eight disks, you definitely want to be having a couple of spares as
well.

--
*Aragorn*
(registered GNU/Linux user #223157)
From: Rahul on
Aragorn <aragorn(a)chatfactory.invalid> wrote in
news:i3f31g$jum$1(a)news.eternal-september.org:

> On Thursday 05 August 2010 18:49 in comp.os.linux.hardware, somebody
> identifying as Rahul wrote...

> The Linux kernel supports *many* hardware RAID controllers out of the
> box, and most of those would fall under the "tried and tested"
> category. ;-)

True. But I find the user base of any HW-controller is always smaller
than that of something like mdadm.

> Another consideration with regard to a software implementation of RAID
> 6 is that the speed will also be impacted by whether your kernel is
> preemptible or not and what interrupt timer frequency it was built
> with.

I am running a 2.6 kernel (2.6.18-164.el51). This is supposed to have
preemption. But is there a way to find out if this feature was complied
into my current kernel? Same for the interrupt timer freq. How do I find
it out?

Based on some googling I did:

cat /boot/config-`uname -r` | grep HZ
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
CONFIG_MACHZ_WDT=m
[rpnabar(a)eu001 july]$ cat /boot/config-`uname -r` | grep HIGH_RES_TIMERS
[no output]

But not sure how to interpret this.

Based on another C test code that I found online I estimate that my
interrupt freq. is about 1GHz.
(http://www.advenage.com/topics/linux-timer-interrupt-frequency.php)

>> The reason I'm switching over from RAID5 to RAID6 is that this time I
>> am using eight 1-Terabyte drives in the RAID. And at this capacity I
>> am scared by the horror stories about "unrecoverable read errors"
>
> Why not use RAID 10? It's reliable and fast, and depending on what
> disk fails, you may be able to sustain a second disk failure in the
> same array before the first faulty disk was replaced. And with an
> array of eight disks, you definitely want to be having a couple of
> spares as well.

RAID10 could work as well. But is that going to be faster on mdadm? I
have heard reports that RAID10, RAID5 and RAID6 are where the HWRAID
really wins over SWRAID. So not sure how to decide between RAID10 and
RAID6.

This is the pipeline I aim to use:

[ primary server ] -> rsync -> ethernet -> [ storage server ] ->
rsnapshot -> LVM -> mdadm -> SATA disk



--
Rahul
From: Aragorn on
On Thursday 05 August 2010 23:22 in comp.os.linux.hardware, somebody
identifying as Rahul wrote...

> Aragorn <aragorn(a)chatfactory.invalid> wrote in
> news:i3f31g$jum$1(a)news.eternal-september.org:
>
>> On Thursday 05 August 2010 18:49 in comp.os.linux.hardware, somebody
>> identifying as Rahul wrote...
>
>> The Linux kernel supports *many* hardware RAID controllers out of the
>> box, and most of those would fall under the "tried and tested"
>> category. ;-)
>
> True. But I find the user base of any HW-controller is always smaller
> than that of something like mdadm.

It depends on the market segment. For professional/ enterprise
environments, the acquisition of hardware RAID equipment will be more
bearable financially than for a home environment, for instance.

>> Another consideration with regard to a software implementation of
>> RAID 6 is that the speed will also be impacted by whether your kernel
>> is preemptible or not and what interrupt timer frequency it was built
>> with.
>
> I am running a 2.6 kernel (2.6.18-164.el51). This is supposed to have
> preemption.

Yes, but it may be enabled or disabled, and if enabled it could be
voluntary preemption or forced preemption, and then there is the option
of preempting the big kernel lock. All of these are compile-time
features.

> But is there a way to find out if this feature was complied into my
> current kernel? Same for the interrupt timer freq.
> How do I find it out?

By perusing the .config for the kernel you're using, as you have done
below. ;-)

> Based on some googling I did:
>
> cat /boot/config-`uname -r` | grep HZ
> # CONFIG_HZ_100 is not set
> # CONFIG_HZ_250 is not set
> CONFIG_HZ_1000=y
> CONFIG_HZ=1000
> CONFIG_MACHZ_WDT=m
> [rpnabar(a)eu001 july]$ cat /boot/config-`uname -r` | grep
> [HIGH_RES_TIMERS no output]

So your interrupt frequency is set to 1000 Hz, which means that if your
machine has more than one CPU - with the term "CPU" referring to "a
processor core", not to "a processor chip/die" - this frequency is too
high for server deployment. Remember that this timer goes off for each
of the CPUs in your machine.

A high interrupt frequency is required for increased response towards
the user, and a server aimed at high throughput does not benefit from
that - on the contrary, even.

The same applies to kernel preemption. Voluntary preemption is still
okay, but the forced preemption (or "full preemption") used in desktop
kernels is definitely not recommended for a server.

> But not sure how to interpret this.
>
> Based on another C test code that I found online I estimate that my
> interrupt freq. is about 1GHz.
> (http://www.advenage.com/topics/linux-timer-interrupt-frequency.php)

1 GHz is impossible. :-) It's 1 MHz - based upon what you've pasted -
but that applies for each CPU in your system.

>>> The reason I'm switching over from RAID5 to RAID6 is that this time
>>> I am using eight 1-Terabyte drives in the RAID. And at this capacity
>>> I am scared by the horror stories about "unrecoverable read errors"
>>
>> Why not use RAID 10? It's reliable and fast, and depending on what
>> disk fails, you may be able to sustain a second disk failure in the
>> same array before the first faulty disk was replaced. And with an
>> array of eight disks, you definitely want to be having a couple of
>> spares as well.
>
> RAID10 could work as well. But is that going to be faster on mdadm?

Of course it will be. There's far less overhead than with a RAID 6.

> I have heard reports that RAID10, RAID5 and RAID6 are where the HWRAID
> really wins over SWRAID. So not sure how to decide between RAID10 and
> RAID6.
>
> This is the pipeline I aim to use:
>
> [ primary server ] -> rsync -> ethernet -> [ storage server ] ->
> rsnapshot -> LVM -> mdadm -> SATA disk

If you want my honest and personal advice, go with RAID 10, or perhaps a
RAID 15 (i.e. a mirrored RAID 5). RAID 6 is just too slow. ;-)

--
*Aragorn*
(registered GNU/Linux user #223157)
From: Aragorn on
On Thursday 05 August 2010 23:52 in comp.os.linux.hardware, somebody
identifying as Aragorn wrote...

> If you want my honest and personal advice, go with RAID 10, or perhaps
> a RAID 15 (i.e. a mirrored RAID 5). RAID 6 is just too slow. ;-)
^^
Typo: that should read RAID 51 - think of Area 51 to help you
remember. :p

RAID 15 would be less efficient during an array rebuild, unless all of
your disks are on the same controller, in which case it doesn't really
matter.

--
*Aragorn*
(registered GNU/Linux user #223157)