Saddened by misinformation

wmgarab

Distinguished
Mar 2, 2010
3
0
18,510
Hello,
I was browsing some of the old forum posts, and was alarmed by some of the misinformation I was seeing. One in particular, {http://www.tomshardware.com/forum/244351-32-partion-hard-drive-performance}, I was like wow. This poor gent just wanted to know if he could set up RAID 0, and partition a part of it off to get better performance. The short answer all along was yes, but nobody seemed to give it. In fact, many people over complicated the answers, or just plain lied to him. I believe this is because there is a lot of outdated info stuck in our brains about how HDDs work. First of all, HDDs store data from the outside to the inside. This is because the outermost tracks are a lot longer, and therefore can hold more data. since the drive spins at a constant speed, more data can be read/written per second (or rotation, however you want to look at it). One person said partitions are divided up like pies. NO, operating systems treat drives as one line string of addresses (just like ram). Because of logical addressing, they have no knowledge of the underlying structure of a drive. When a drive writes data, it starts at the outer-most track (ring). However, all the platters work together, at the same time (not fill one, then move on). data is broken up and written to a track across all platters, what's why they call it a cylinder (imaging track 1, for 2 platters, is really 4 tracks, 2 on each side, at once). Also, tracks are VERY Thin, so there are MANY of them, and they are read in seqence from outside to inside. Imaging you have 3x 750 GB drive, and you have them on RAID 0. You write 3 megs at the beginning, what happens? That 3 megs is broken up into chunks (say, for example 32k each), and then chunk 1 goes to drive 1, cylindar 1, chunk 2 goes to drive 2 cylindar 1, chunk 3 goes to drive 3, cynindar 1. (let's say that cylindar one only holds 32 k for exampel), the next pieces, chunk 4 goes to drive 1, cylindar 2, 5 goes to drive 2 cylindar 2, etc etc. In this way, the drives together get 3x the throughput. Now, throughput is find, but what about seek times? Lets look at an individual drive. Say a drive is seeking randomly across the whole drive. The smallest seek it could do would be the next track over, the longest would be from the first track to the last. The average of trying many of these gives average drive latency. If we use only 1/3 of the drive (starting with track 1), the largest seek would be from track 1 to 1/3 of the way through the drive. This instantly decreases the average seek time by simply not having to go so far. Is it 1/3 reduction? probably not, because of the time it takes to settle on a track isn't reduced, just the distance to move the read/write heads. But you WILL see performance boosts. I've got this very setup at home, and it runs great, far faster than just using one full drive. to estimate, it took me about 1.5 mins to boot windows, with auto login, and for all my startup program to launch. I cloned my partition onto this RAID 0 setup, and the time dropped to about 48 seconds. Not 1/3 the time, but fast enough for me.
If anyone has any ideas to increase performance further, please, reply to this. I'm not claiming to know everything, and I'm always interrested in another perspective on a topic.
-Cheers
 

sub mesa

Distinguished
Please, use the enter key now and then. Its probably the most important key on your keyboard. :)

I don't understand much of your story though. You talk about RAID0 and partitions, those two don't have any direct relation to eachother.

You can have short stroking, making a small partition so that data stored there is on the fastest part of the HDD - the outer tracks.

When talking RAID0 (or other striping RAID) - we have to make sure any partition is aligned with the stripe blocks; if not we will have a performance penalty and most if not all of the benefits of RAID0 are reduced to just higher sequential I/O - but all the other benefits will be gone.

Also, the Cylinder/Head/Sector addressing is obsolete by the way, we use LBA addressing now (flat storage space).

Does any of this relate to your issue/question?
 
Oh I dunno, that CAPS LOCK key is pretty durn important too! ;)

I think he was decrying the second post in the thread he referenced which states that the innermost tracks are the fastest, which of course is absolutely wrong. I didn't read the thread in detail, but if the rest of it is like that then yeah, it's pretty sad. But I think he should have replied to that thread itself since readers of it have no way to know that this thread exists...
 

wmgarab

Distinguished
Mar 2, 2010
3
0
18,510
Oh, as for replying in that thread, it is from 2007 originally...and I don't like to necro threads...
Sub mesa, could you please elaborate on how to calculate the alignment for the stripe blocks? I thought about it for awhile, but I can't seem to figure out how that would assured without a lot of trial and error :(
 
So your first thread here is to complain about something written in the forums over 2 years ago, and attempt correcting it now?

Does sentence structure, creating paragraphs, and generally making your points and questions easy to read mean anything to you?

Why don't you work on that OK.
 

sub mesa

Distinguished

Windows XP creates partitions at 31.5KiB offset, which is always wrong and results in bad misalignment
Windows Vista and 7 are reported to create partitions at 1024KiB offset, meaning any stripesize that is a power of 2 would work up to 1024KiB.

So assuming you use either Vista or Win7, and let them create the partition during setup/installation phase, you would not have any misalignment issues with most RAID types, except RAID5 and RAID6 which have a more complicated alignment requirement. So if you use RAID0 with two disks and 128KiB stripesize, using Vista or Windows 7 would make sure you have no misalignment issues. Do not create partitions with partitionmagic or other applications though; just let Windows create its own on an empty drive.