Poor raid 1 performance?

P

Peter

Thanks. These were the sorts of descriptions that led me to hope that
raid 1 would lead to improved read performance. Eg, one site says that
"Read performance is faster than a single disk; (if the array controller
is capable of performing simultaneous reads from both devices of a
mirrored pair)."

Again, author probably meant a "random read access" performance, more
typical for multiuser systems (servers). It does not apply for a sequential
read performance, typical in situation when you load a huge executable or a
data file.
This is why I was then suspecting that the motherboard implementations
are poor. On the other hand, it might be just that the test was more
reflective of sequential than random read performance.

Probably both in most cases.
Can anyone suggest a raid 1 array that has improved performance?

Are you talking about "sequential read performance"? No, I don't know any
RAID1 product with that characteristic. But you can RAID0 instead (I know,
there is no redundancy), that definetely improves that type of performance
you are looking for. But improvement might not be too great. And you would
have to rely on backup for data protection (Unless you go RAID 10, but I
don't think it is an option you seriusly consider). Recent motherboards with
ICH7R look quite good. You can RAID5 and RAID10 on them.
 
P

Peter

Looots of RAM. 2, 4 or more GB.
That would be cool. However, on the website, it lists as 4Gb the maximum
for XP.

Yes, you are correct 4GB for 32-bit XP, 16GB for 64-bit XP.
More importantly, the ram limitation I was concerned with is how
much ram you can get on the motherboard, eg, 4 slots, 1 gig modules -
how does one get a 16GB ramdisk without spending ridiculous $$$'s?

Which motherboard? That could be 8GB for Intel 955X chipset mbs.
4GB (2x2GB) of DDR2 RAM is (was) about 400-450USD.
Ridiculous? That depends.
 
M

Mark

Peter said:
Again, author probably meant a "random read access" performance, more
typical for multiuser systems (servers). It does not apply for a sequential
read performance, typical in situation when you load a huge executable or a
data file.




Probably both in most cases.




Are you talking about "sequential read performance"? No, I don't know any
RAID1 product with that characteristic. But you can RAID0 instead (I know,
there is no redundancy), that definetely improves that type of performance
you are looking for. But improvement might not be too great. And you would
have to rely on backup for data protection (Unless you go RAID 10, but I
don't think it is an option you seriusly consider). Recent motherboards with
ICH7R look quite good. You can RAID5 and RAID10 on them.

Thanks. Sounds like the dream of increased read performance with raid
without spending much money is just a dream. Still, when I do get the
motherboard, I'll investigate the possibility of raid5. I really want to
go Athlon 64 though, so I am guessing ICH7R won't be any use.
 
M

Mark

Peter said:
Yes, you are correct 4GB for 32-bit XP, 16GB for 64-bit XP.




Which motherboard? That could be 8GB for Intel 955X chipset mbs.
4GB (2x2GB) of DDR2 RAM is (was) about 400-450USD.
Ridiculous? That depends.

I'm looking at Athlon 64. Haven't checked all motherboards/chipsets yet,
but a couple I have checked do have a 4 gig limitation. $800-$900 for
memory is also certainly more than I'd like to spend at the present. I'm
not saying I couldn't afford it, but I'd rather invest the money in a
some other things, eg, holiday....
 
G

Gerhard Fiedler

Rod said:
Mad to have just one if that's what you earn your income with.

I have a few, but they are all in use.

Anyway, you got me thinking. If I understood you correctly, you proposed
mirroring the disk of one system to the disk of a different (backup)
system, so that in case the main system dies (harddisk, mobo, anything),
the backup system can take over almost immediately -- as a safer
alternative to RAID1.

Makes sense so far. The question that came to my mind is whether that
mirrored system would boot or run, because it of course has different
hardware and needs different drivers. How would one do that? Does it work
to boot an image from system A on system B? (I'm talking about Win2k and
WinXP here.) Are these OSes smart enough to load/request the right drivers
when a disk image gets booted on a different system?

Gerhard
 
G

Gerhard Fiedler

Peter said:
Are you talking about "sequential read performance"? No, I don't know any
RAID1 product with that characteristic. But you can RAID0 instead (I know,
there is no redundancy), that definetely improves that type of performance
you are looking for.

I've been following this here a bit, and I also don't understand why RAID1
can't provide the same increase in speed as RAID0. With RAID0, you have the
data in stripes over several disks. With RAID1, you have all the data over
several disks, which should make it possible to read a RAID1 array
similarly to a RAID0 array (that is, the controller could just read the
data arbitrarily from each of the two disks, and could, so to speak,
"virtually stripe" them for reading).

Gerhard
 
G

Gerhard Fiedler

Arno said:
- Border case: When a bomb has been defused is the site
were it is "secure" because the bad people's intent has been
foiled or ist it "save" because nothing can explode anymore?

After the bomb has been defused, the site may be safe, for now. To make it
secure, you'd have fix what allowed that bomb to be placed there in the
first place :)

Gerhard
 
A

Antoine Leca

In Peter va escriure:
http://www.storagereview.com/guide2000/ref/hdd/perf/raid/levels/singleLevel1.html

OK thanks, I missed that the checking is essentially superfluous, so only
one read is needed.

With a good controller, sequential read performance equals that of a
single drive, random read performance scales up with number of drives
in a RAID.

With RAID 1, there is no scale, is there? The number ought to be a constant
two.

Or will an array with 3+ more mirrored disks also been tagged as RAID-1
(neglecting the fact that the cost, which scales even faster ;-), will deter
about anyone).


Antoine
 
P

Peter

I'm looking at Athlon 64. Haven't checked all motherboards/chipsets yet,
but a couple I have checked do have a 4 gig limitation. $800-$900 for
memory is also certainly more than I'd like to spend at the present. I'm
not saying I couldn't afford it, but I'd rather invest the money in a
some other things, eg, holiday....

But isn't your holiday spent on playing games and tweaking computer ? ;-)
 
P

Peter

I've been following this here a bit, and I also don't understand why RAID1
can't provide the same increase in speed as RAID0. With RAID0, you have the
data in stripes over several disks. With RAID1, you have all the data over
several disks, which should make it possible to read a RAID1 array
similarly to a RAID0 array (that is, the controller could just read the
data arbitrarily from each of the two disks, and could, so to speak,
"virtually stripe" them for reading).

Maybe, because how data is organized on each disk, it makes difficult to
stream (read sequentially) with full speed, while reading every other
sector?
 
G

Gerhard Fiedler

Peter said:
Maybe, because how data is organized on each disk, it makes difficult to
stream (read sequentially) with full speed, while reading every other
sector?

I'm not sure, but I don't think the data is organized much differently. The
two disks of a RAID1 (2 disk) array are supposed to have identical data. So
what hinders a RAID1 controller to read one stripe from disk A while
reading another stripe from disk B (just like the same controller would do
in a RAID0 configuration)? It also could do head movement optimization,
like using one disk for reading the disk index and the other disk for
reading the data (or more elaborate schemes to minimize head movement).
From what people wrote here, the RAID controllers don't seem to do this
with RAID1. Anybody knows why not?

Gerhard
 
P

Peter

Maybe, because how data is organized on each disk, it makes difficult to
I'm not sure, but I don't think the data is organized much differently. The
two disks of a RAID1 (2 disk) array are supposed to have identical data. So
what hinders a RAID1 controller to read one stripe from disk A while
reading another stripe from disk B (just like the same controller would do
in a RAID0 configuration)? It also could do head movement optimization,
like using one disk for reading the disk index and the other disk for
reading the data (or more elaborate schemes to minimize head movement).
From what people wrote here, the RAID controllers don't seem to do this
with RAID1. Anybody knows why not?

It is organized very differently. There are NO STRIPES in RAID1. On each
disk data seem to be organized exactly the same as on standalone hard drive.
 
J

J. Clarke

Gerhard said:
I'm not sure, but I don't think the data is organized much differently.
The two disks of a RAID1 (2 disk) array are supposed to have identical
data. So what hinders a RAID1 controller to read one stripe from disk A
while reading another stripe from disk B (just like the same controller
would do in a RAID0 configuration)? It also could do head movement
optimization, like using one disk for reading the disk index and the other
disk for reading the data (or more elaborate schemes to minimize head
movement). From what people wrote here, the RAID controllers don't seem to
do this with RAID1. Anybody knows why not?

In random reads a RAID1 array can do this and there is sometimes a
performance gain as a result. In sequential reads, for the first two
stripes it might work, but after that if the stripes are written
sequentially on the disk, reading alternating stripes from alternating
disks means that one disk reads a stripe then pauses while the next stripe
passes by the head, then reads the next stripe and so on, while the other
waits for the first to pass by, reads the second, waits for the third to
pass by, and so on.

In principle alternate stripes could be written to adjacent tracks, but that
would then heavily compromise _write_ performance in exchange for improved
read performance.

It might be possible to create a "RAID 0.5" (to make up a term) for lightly
used systems that behaved as RAID0 for reads and writes but used every
other track during the immediate writes and then filled in the alternate
stripes in background during periods of low utilization so that over time
it became closer to RAID 1 in redundancy, but I've never heard of it being
done and I suspect that its utility would be limited.
 
G

Gerhard Fiedler

Peter said:
It is organized very differently. There are NO STRIPES in RAID1. On each
disk data seem to be organized exactly the same as on standalone hard drive.

Of course there are no RAID0 stripes in RAID1. But for reading, a stripe is
nothing more than a subset of data. In RAID1, /all/ the data is there, so
the controller can make up, on the fly, as needed, its own "virtual
stripes"; meaning, it can read whatever data it needs to read from disk A
and read whatever data it needs to read from disk B, in that sense read one
"virtual stripe" from disk A and another "virtual stripe" from disk B. The
data is there, on both disks, and parts of it can be read from one disk,
other parts from the other disk. (I just called those parts "virtual
stripes", indicating that they are not real stripes.)

Just lay out in front of you how the data of a certain file is organized in
RAID0, and what the controller does to speed up the reading. Now lay out in
front of you how that same file data is organized in RAID1, and apply the
same technique to speed up the reading. Seems perfectly possible, even
though RAID1 doesn't have explicit stripes.

You may want to go back and read what I wrote... :)

Gerhard
 
P

Peter

Maybe, because how data is organized on each disk, it makes difficult
to
It is organized very differently. There are NO STRIPES in RAID1. On each
disk data seem to be organized exactly the same as on standalone hard
drive.

That might not be completely true.
Read up on TwinStor (3ware). They have something called RAID1+0 on just two
disks. Is that mirroring? I don't know. Will a single drive still work
(reattached to a different controller) when 3ware controller dies, no idea.
 
P

Peter

Peter said:
drive.

Of course there are no RAID0 stripes in RAID1. But for reading, a stripe is
nothing more than a subset of data. In RAID1, /all/ the data is there, so
the controller can make up, on the fly, as needed, its own "virtual
stripes"; meaning, it can read whatever data it needs to read from disk A
and read whatever data it needs to read from disk B, in that sense read one
"virtual stripe" from disk A and another "virtual stripe" from disk B. The
data is there, on both disks, and parts of it can be read from one disk,
other parts from the other disk. (I just called those parts "virtual
stripes", indicating that they are not real stripes.)

Just lay out in front of you how the data of a certain file is organized in
RAID0, and what the controller does to speed up the reading. Now lay out in
front of you how that same file data is organized in RAID1, and apply the
same technique to speed up the reading. Seems perfectly possible, even
though RAID1 doesn't have explicit stripes.

You may want to go back and read what I wrote... :)

Actually, you might be right to some extent.
If I imagine a huge file (let say 100GB) in a RAID1 and have a gigantic
cache (let say 50GB), then controller might read the first half of the file
at the same time as it caches a second half from another disk. And voila, a
whole 100GB read in just half of the time needed to read it from a single
disk.
 
A

Antoine Leca

In Gerhard Fiedler va
escriure:
Of course there are no RAID0 stripes in RAID1. But for reading, a
stripe is nothing more than a subset of data.

The difference between RAID 0 and RAID 1 is the distance between one stripe
and the next on disk. With RAID 0, they are contiguous for both reading and
writing. With RAID 1, you cannot make them contiguous or near enough for
both writing [every sector] and reading [every two sectors].

So the obvious organisation is to make OK for writing (so just like a normal
disk), and while sequential reading you should wait while skipping the
odd-numbered sector which is in between.

There is a gain though (half traffic on the wire, for example), but I guess
media access is the bottleneck.


Antoine
 
R

Rod Speed

Gerhard Fiedler said:
Rod Speed wrote
I have a few, but they are all in use.

So are mine, but they are also available for use if the main system dies.
Anyway, you got me thinking.

Dangerous business.
If I understood you correctly, you proposed mirroring the disk
of one system to the disk of a different (backup) system, so
that in case the main system dies (harddisk, mobo, anything),
the backup system can take over almost immediately
-- as a safer alternative to RAID1.

Doesnt necessarily have to be a mirror, really depends on the
activity of the data that matters. I do it differently with code,
basically a very high frequency of manual backup, when I have
got something substantial done. That can be 30 mins between
backups when things are going well. Mainly it allows me to
step back gracefully when I go down a dead end and write the
code in a way that turns out to have some downsides, so I can
backtrack and head off in a different direction easily etc.

That automatically protects against any hardware failure too.
Makes sense so far. The question that came to my mind is whether that
mirrored system would boot or run, because it of course has different
hardware and needs different drivers. How would one do that?

I basically have the main system and another running all the time.
The other system is the previous main system which is now the
PVR, replacing the VCRs. Its perfectly adequate as the main
system, albeit a bit slower, if the main system dies for any reason.

I have other systems like the laptop which isnt normally
on all the time, but which is perfectly adequate as a spare
main system if for example I end up in hospital for a bit etc
and can obviously be used if there is some reason why the
PVR isnt available when the main system dies.
Does it work to boot an image from system A on system B?

Yes, you can go that route. I dont bother, basically its the critical
data that matters not the entire boot drive. The apps are all installed
on every machine and there is no need to boot images. I do have the
images on other machines on the lan, but that is more for convenience
with a hard drive failure and I would just restore the image on a hard
drive failure. Havent had a hard drive failure for well over a decade now tho.
(I'm talking about Win2k and WinXP here.) Are these OSes smart enough to load/
request the right drivers when a disk image gets booted on a different system?

Not completely automatically but an install in place works fine for that.
I dont need to do that on failure, its normally just needed when upgrading.
I did have a motherboard failure, but that was before the hard drive failure.

That motherboard failure was the reason I decided I'd never have just
one system ever again. It was a complete pain in the arse not even
being able to research the replacement on the net. Turned out that
it could be made to boot by having the motherboard in the sun in the
winter with my passive solar system, so it wasnt quite as bad as it first
appeared to be, but I decided I'd never be without a spare ever again.
 
R

Rod Speed

Gerhard Fiedler said:
Peter wrote
I've been following this here a bit, and I also don't understand
why RAID1 can't provide the same increase in speed as RAID0.
With RAID0, you have the data in stripes over several disks. With
RAID1, you have all the data over several disks, which should
make it possible to read a RAID1 array similarly to a RAID0 array
(that is, the controller could just read the data arbitrarily from each of
the two disks, and could, so to speak, "virtually stripe" them for reading).

The main problem is that the app or OS doesnt ask for say
the entire sequential file up front so the RAID system cant just
go and get bits from both drives simultaneously and so get it
quicker because its coming from two different drives at once.

Its obviously possible for say a database app
to do that sort of thing, and in that case RAID1
should be as fast as RAID0 and much safer.
 
A

Arno Wagner

Previously Gerhard Fiedler said:
Arno Wagner wrote:
After the bomb has been defused, the site may be safe, for now. To make it
secure, you'd have fix what allowed that bomb to be placed there in the
first place :)

Good point!

Arno
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top