PDA

View Full Version : My Raid guide, and nitty gritty of strip sizes


bugmage
06-11-06, 09:53 PM
(under construction )
IF you looking at this your probably interested in RAID and why you would want it
-----------------------------------------------------------------------------------------------------------------------
For those who know a thing or 2, here’s some quick setup suggestions, Read on if you want to know how I came to these conclusions:

First, PARTITION AS MUCH AS YOU CAN!
And keep the OS of any other drives that see a lot of activity

QuickStart

Gamers raid array:
Smallest strip, strip = cluster size, defragment daily with diskeeper
OS raid array:
Might be better with raptor, however Smallest strip, strip = cluster size, defragment on screensaver with diskeeper
Creating files or Database:
Go for the larger strip and cluster, depends on your controller and disks but you will need to benchmark for best performance, however for write times, large strip is fine but you might hit lower performance on read times
-----------------------------------------------------------------------------------------------------------------------
This is what info I have gained about running raid 0 and bumming around other places

Raid- Redundant array of inexpensive disks
What it is, is a combination of hard drives that work together to max out the speed data gets from your hard drive to your memory and CPU

Purpose: speed up computer via file transfer rates

How it works:
1. data goes to controller, controller splits it, and puts it on 2 or more disks
2. recombines it when the data’s pulled off if it were a perfect world then files would transfer 2x as fast

Simple I/O

Reading data:
drive(s)>controller>motherboard
wring data:
motherboard>controller>drive(s)

File are only split when they hit the controller, think of it as a card game someones dealing out cards or data the size of the strip to each drive, NOT the dealer chopping a single card up, and giving that out to everyone
Files are split only if there above the strip size, if not they stay on one disk, and you want the cluster = to strip, any > you waste space, any smaller your just adding fragmentation

------------------------------------------------------------------------------------------------------------------------
Some terms:
-Fault tolerance:
Security of data, in raid basically it means whether your data will be lost if one hard drive or more in the array Fails

-Performance
Mbs, mega bytes of data read from a drive or written that is transferred to the motherboard per second

-Raid controller
the controller is the device on the motherboard or on a pci card that splits up data and sends it out to the disks and also pulls the data back in and recombines it

-Strip size
When data is put on a raid array, the controller on the motherboard or separate card breaks up the data and splits it on different drives in chunks equal to the strip size of the array. When data is read back you can read more data off all drives making it faster than reading a larger chunk of data off a single drive

-Cluster size
A hard dive consists of millions of charged sectors that can contain a + or - charge. The computer reads this a 1s and 0s The cluster size is set when you format a Hard drive and basically data is put on a hard drive in groups knows as clusters as writing each 0 and 1 would be inefficient and yeah, wouldn’t work. So when a file gets to a Hard drive lets say a 16kb file, and lets say your clusters formatted to 4kb(windows xp file system default) you would have 4linear strips of data of 4kb length

-Seeking
Seeking is where the head on your hard drive has to scan the disk to find all the parts of a file, this takes time so the smaller the value the better

-Fragmentation
This is a simple concept as mentioned above with cluster size, a 16kb file would be written in 4 clusters in a strait line on the disk when that file becomes fragmented, the parts end up being scattered on the drive causing the disk to have to spin again
to get the next one and so on

This happens because when i file or cluster comes out of memory, im pretty sure the OS just spits it where ever it can fit on the drive, thus fragmented


to defrag simply means reorganizing everything back into linear strips


Slack is when you have a 2 mb cluster wasting space holding 4kb of data
this a bad point of large file clusters, they waste space with small files

----------------------------------------------------------------------------------------------------------------------------
Now lets cover the most used forms of raid that work well with less than 5 disks:
0 – Stripping(2+drives)
All drives are combined, fastest, data spread over all drives no fault tolerance(not really raid)
1 – Mirroring (2+drives)
Data is written to 2 identical drives, Ĺ storage, 1 drive shows in OS, if one drive dies you still have all your data, read times increased as you read from both drives
0 + 1 – Comb (3+drives)Array building
Data is stripped onto 2 drives for speed(1st array) and is also mirrored to a drive or another array, Drive size is = to the total size of mirror array
5 – Coolest Raid(3+drives)
Not as fast as raid 0, mirrors like raid 1, however if a drive dies you can simply plug in a new one and your system will rebuild it(does this first so it will kill your system speed till drives back up)


There are other types of raid but there more for people with real jobs :)
-------------------------------------------------------------------------------------------------------------------------
Strip size Optimization:
All about seek and read optimization:

Large files, and small files

For small files with cluster of 4kb, a strip of 4 or under is best as all file over 4kb get split up on
different disks. The problem with this is that for a larger file, you have to seek thousands of times just
to get a few meg, which is where bad array setups take a hit, also the controller must work more putting
pieces together which hurts cpu usage

For large files strips and matching clusters from 64 up are best as when the disk seeks for a piece
of the file it can get more data into the array before it must seek out another file

However when you get a small file like 1kb, it will have to read an entire 1mb strip of data until the drive
heads free to find the next linear strip of data, this is where you lose more time


-so then we compromise and choose a 64 bit or 32 bit strip in the middle and its fast but it could be faster



------------------------------------------------------------------------------------------------------------------------------------

Revelation for Gamers:

For a while ive been wondering now, why for example a game like Oblivion runs fine on normal 4kb strip but gets jumpy as you increase the strip size. Then it hit me. Games now a days become larger and larger, and Oblivion is designed to stream into other parts of the map. I watch a xbox 360 lag out at loading screens and wonder is that related to my problem? Nope, just wanted to dis xbox. Anyway heres the revelation. With a large cluster size you drive has to read a larger file, this takes time. While this is going nothings happening with the controller, it just sits there waiting for data. However when you use a smaller strip size, your reading the same data, however as your drive reads over a long line of smaller chunks of a file it can pass those one to the controller and then to the system, streaming the data as it reads it. When oblivion wanted a file, the jumpyness happened due to drive lag, therefore for games your always going to want the smallest or generally 4kb strip and cluster size!
------------------------------------------------------------------------------------------------------------------------------------


My Setup conclusions:
OS + games on 64 kb strip 4kb cluster
Benches at 150mb/s with 4 disks sata 3, not bad not bad

But then I tried the disks at 4kb cluster, ahh 224mb/s that’s sweet, icons were flyen oh yeah but it didn’t feel
that fast as oblivion loaded slow. I checked my oblivion folder and apparently each file was on average 60mb,
on my 4 disk array that was seeking out 15 thousand 4 kb chunks of data for each 60 mb, ouch that will kill your drives fast

So it comes down to this
OS
Game
Other larger Files


-OS bunch of little files, not sure how much raid will speed up as windows still takes 4 runs of loading bar
when it was on 4kb strip with nothing really installed, actually fresh install

Xp blows sometimes

Best with single drive as a raid array will speed up the OS
but will fragment and cause to much cpu overhead (get disk keeper)

Now I haven’t tried under 4kb strip because the fragmentation would be insane



-Games, as games come along I find they seems to be migrating to larger files, instead of the olden days when
they had a folder with a few hundred wav files in them
anti Would suggest installing on larger strips now a days
(Due to revolation above, scratch that, smallest as possible)
-Files
Absurdly large strips depending on what your doing

My general formula for cluster
Strip = cluster size-----------

people suggest using a 1/2 ration or 1/4 ratio but why would you want to make more clusters on a drive? if a
file comes into a controller it will divide the file, to that size chunks and shoot them off to different disks, you want
the disks simply to read an write the files nothing else

I think the problem is that when the files are sent to the drives people think that in a raid of 2 drives a 64kb strip
will put 32 on each disk to match clusters, but all it would do is stick on disk with 64kb of the original file and the
other drive with the next 64kb, the drive then would chop up that file into 2 32 chunks, kinda a waist

------------------------------------------------------------------------------------------------------------------------------------
Disk Partitioning
This is important for any setup

The fastest part of the drive is the first partition, this is because that partition is stored on the outer edge of a drive CD disk. As the outside moves fastest you’ll want your most seek intensive files there, aka the OS

Now partitioning is a way of cutting any drives seek times down, if you partition a disk it gets split into large zones which will show up as separate drive in windows, what happens is if your computer looks for a file instead of checking over 300gb of files it can jump to one spot and check over only the much smaller partition


Partitioning depends on U!\
but remember a 10 gig partition is really 5 gigs of space on a raid array on each drive(2) Boosting its effect greatly!






Real life Raid:

Now your array may bench at 224 mb/s but when your random reed comes out at 15mb/s you know your not going to get anywhere near that performance. Files may be defragmented but your os is always hitting an array causing sometimes an almost random pattern of searches

(could be somewhat avoided if you move your page file to separate hd)

You will only achieve 224mb/s if you were moving a huge file from one array to the same speed array or faster, or were recurring something actually generating the file, if you were say converting, your disk will have to skip back and forth from where the new file is and where the old one is, making your speed greatly suffer, so for file converting you will see more speed, but not but more like drive transfer rate mb/s X number of drives, divided by 2

Also faster RPM drives lesson seek times so they are definitely good for the OS, however for larger file its better to save money and go 7200 rmp



Thus ive most like braking up my array and am going to form 2 smaller and smarter arrays which back each other up insuring some redundancy

How ill probably configure my raid array next:
2 drives raid 0, 4kb strip, 4kb disk clusters
OS and page file(might still move page file to another drive)

2 drive raid 0, 2mb strip, 2mb cluster if possible
Games and files and isos

your exchanging benchmark speed for real life drive seeking speed, data redundancy, and other performance gains you would get as any file requests would hinder a pair of disks not all 4



Installing windows on Raid: (XP)
Please NOTE-----------------------------------------------------------
you must only insert the driver floppy at the end of stage 4, when it prompts as it for some reason wont work if you leave the floppy in while the computers booting off the CD

In order to match cluster to strip, you must preformat your drive on a OS or utility thats not stored on it, this can be a pain but must be donw
Please NOTE-----------------------------------------------------------


1. Make sure your drives are fully unlocked, some come in sata 3.o, but are shipped at 1.5 so you have to use the manufactures software
2. Setup array in bios, or in controller screen during boot(F10)
3. Put in your windows cx, hit F8 or escape to boot to cx
4. hit F6 , in a bit a screen will come in, hit S, put in a floppy with your raid drivers
5. install all drivers on the floppy, controller first, hit S each time, then hit enter when done
6. you should see your full sized array as 1 disk and then do the enter, F8, and select the drive and let
XP do its thing

YOU might have problems installing an OS on raid If you have other hard disks in, no matter if there blank or not, if your having strange partition problems, unplug everything but those raid drives

now that wasn’t bad was get, make sure you install the newest drives when you hit windows


MORE READING!

http://www.storagereview.com/guide2000/ref/hdd/perf/raid/whyBenefits.html

http://www.finitesystems.com/PRODUCT/raid/raidlevel.htm

Roadhog
06-11-06, 11:03 PM
wow, alot of info, thanks.

STICKY THIS!

ViN86
06-12-06, 08:49 AM
i say clean it up a little bit (some bullets or something)

and sticky it :)

good strip size guide. :thumbsup:

bugmage
06-12-06, 04:38 PM
HAHA! googly parts

mullet
06-15-06, 11:27 AM
bugmage, totaly awsome man, just what I was looking for great job.

Bman212121
06-15-06, 01:26 PM
-OS bunch of little files, not sure how much raid will speed up as windows still takes 4 runs of loading bar
when it was on 4kb strip with nothing really installed, actually fresh install

Xp blows sometimes

Best with single drive as a raid array will speed up the OS
but will fragment and cause to much cpu overhead (get disk keeper)

Now I havenít tried under 4kb strip because the fragmentation would be insane

I think if I did that my os would boot a lot faster, however ill have to test that tomorrow sometime



Hmm, I can't remember what mine setup as default, think it was 16kb or 32kb, but a fresh install for me loads in just two passes, even when running at stock speeds. However, I'm using 3 drives instead of two. My rig is fairly comparable to yours.

bugmage
06-15-06, 08:07 PM
yeah im not sure why mine take so long to boot im doing some formatting work before i expand a little on the guide and add pics, and ive noticed that a fresh install of xp whether 4 or 2 drives takes 4 passes for me so i think its just something to do with hardware initialization, im running 5 drives now, and nvidia drivers slow things up a lot, so i have a feeling its slow due to my nforce 4, on 1 drive my old xp proc computer with a soyo chipset it would load in 1/4 a swipe with major tweaking so a lot of it is software and controller

Peacemaker
06-16-06, 03:16 AM
since i'm using 128kb stipe size - i don't notice any problems. before on default 64kb stipe size i notice some problems with SWAT instalation and FS2004.

So, for me the best choise is 128kb stipe size.

greetings,

Peacemaker.

bugmage
06-16-06, 04:46 PM
Ive added a bit to the guide

older games that dont stream us a larger strip
(swat)

new games like oblivion that are constantly using disk 4kb strip or smaller

Partiton!

and cluster = strip


whats FS 2004?

Peacemaker
06-16-06, 05:25 PM
flight simulator 2004 ;)

SLippe
06-16-06, 05:55 PM
Thanks for the guide. It came in handy last night when doing my first RAID setup. :thumbsup:

bugmage
06-16-06, 09:45 PM
cool, what did you decide to go with? hows the raid?

also you can drive up to NY if you really want to thank me ;)

SLippe
06-16-06, 10:23 PM
cool, what did you decide to go with? hows the raid?

also you can drive up to NY if you really want to thank me ;)
RAID 0. See posts above.

If I was to drive to NY to thank you, you better have a pair of 36DDs and a shaved kitty...and I don't mean the Garfield kind. ;)

bugmage
06-16-06, 11:18 PM
(nana2) Damn if only there were more of you out there lol:D

SLippe
06-17-06, 12:19 AM
(nana2) Damn if only there were more of you out there lol:D
What the hell are you talking about? Are you a dude? Because I am also, if you didn't know. :wtf: But if you're not a dude, send pics to... :D

bugmage
06-17-06, 08:43 AM
everyone on this forums a dude, dude, but hey its still fun trying to mess with people :)

SLippe
06-19-06, 11:08 AM
everyone on this forums a dude, dude, but hey its still fun trying to mess with people :)
NaluGurl is not a dude and neither is Gaz. :D

SLippe
07-03-06, 03:48 AM
Or UDawg, or Vamp... :p
:rofl

SH64
07-03-06, 05:14 AM
Amazing work & lots of info to read!! :thumbsup:
i have only so much info on RAID heh ..

Redeemed
07-12-06, 05:33 AM
Yeah, thanks! :D

I'm gonna' be setting up some RAID arrays on my rig before too long. This is pretty much what I was looking for.

Thanks again!

NrthnStar5
07-29-06, 08:08 PM
So i'm still a little confused at what stripe size is best for Games. I play Everquest 2, and games like Quake 4, Fear, Need For Speed Underground etc... so Do i want to go with 4kb? Sometimes it looks like it should be higher....

Venturi
08-20-06, 10:03 AM
This is an amazing plethora of information you have provided.

So I took a lot of your advice and tried different things. Here are some conclusions to I have reached.

THIS ONLY APPLIES TO RAID 5 and RAID 0 on MS Server 2003:

Just about everything you said seems very accurate. I have some data that changes when the raid is comprised of 8 drives or more. with 6 drives or below, the stripe sizes seem indeed accurate in your reccomendation.

Conclusions on 8 (750GB each) raid 5 array:

Optimal stripe size = 32

Why: with 8 drives regurgitating info to the controller, the 64 stripe size made the array move slower. If every drive has an individual read/write light, you can actually see the wave of lights like a pulse as it flows up and down the array. Seems it should be faster.

If I did a size of 16, the reads and writes did not seem as fast as ther 64 size, but also had a lot of drive activity for hardly any transactions.

Stripe of 32 rendered higher scores than 64, 16, 8 and 4 in terms of loading doom 3 levels and oblivion, it also showed faster in Sandra. But a size of 4 or 16 also made the OS perferm slower.

Incidently, the lights for the drives have less "empty" moments in 32 strip sizes.

So, upon reflection, with a hardware controller, the more drives you have in an array RAID 5 or 0, the lower the strip size for performance?
If you think of it terms of burst data, the hypothosis makes sense.

Once again, this humble opinion, ONLY APPLIES TO RAID 5 and RAID 0 on MS Server 2003

DataMatrix
08-23-06, 05:09 PM
Strangly enough I changed my cluster size to 1KB and I got terrible performance from windows/applications and games... might have been the controller was incapable of handling such small sizes so I went to 4KB and all is fine, games run super smooth. Although, HD Tach reports this performance:

26.1MB/s transfer rate, 11% CPU usage, and 14.9ms random access. Is this normal? I have two pretty old Western Digital Raptors (80GB) on an ITE IT8212 PATA RAID controller.

candle_86
08-11-11, 12:33 PM
Ty man just setup my first raid a raid0 but i see it as this, a single drive fails you lost your data, a raid 0 fails you lost your data lol. But thanks for the guide, is there going to be any issues with me using a Westerndigital and a seagate drive, both are 7200 RPM 500gb drives with 16mb Caches. Its in raid right now with no problems and is faster than just my western digital by itself. Never dealt with raid before, none of the PC's ive ever worked on had it lol.