SATA RAID 0 (striping), Partitions???

Status
Not open for further replies.

videogamer323

Posts: 6   +0
Well Im installing 2 Maxtor 120gig SATA HDDs in Raid 0 so i have 240gig to work with so i was thinking partitions. Will partitioning hurt my performance while using RAID and if it does how much? I was thinking of haveing a this partition layout:
Windows: 10gig
Linux: 10gig
Linux swap: 500meg
Software: 50gig
Linux Software: 25gig
Misc1 (like movies): 50gig
Misc2 : 50gig
Misc3 : 44.5gig

The reason for so many is imaging/ghosting purposes. With that many partitions do u think performance will take a hit or would it actually be better?
thanks
 
Performance should improve with a partioned drive due to imrovement in head seek time as the partition will only span a smaller area of the drive. Keep your data partitions close to your OS partitions to reduce seek time.
 
Disk access is faster at the beginning of the disk, whether its a single disk or a raid 0 stripe.

There's no reason not to partition. In fact, its probably the best idea, unless you are using the stripe for a large multimedia bumping ground (as I do) in which case you might be better which a large NTFS partition or something.

The system you have suggested above looks fine. Maybe keep all operation systems together at the start, so if you decide to join 2 partitions together by deleting their partitions, and then creating a bigger on, you can.
 
The one problem that you may have with partitioning is that there is a performance hit once you have less than about 20% free space on a partition, particularly with a Windows operating system. This normally isn't as big of a problem with partitions used for storage as it is for system partitions.
 
how does RAID-0 help with so many partitions?

Nic said:
Performance should improve with a partioned drive due to imrovement in head seek time as the partition will only span a smaller area of the drive. Keep your data partitions close to your OS partitions to reduce seek time.

question, with so many partitions how does RAID-0 help at all? wouldn't it be simply to just partition the two drives separately? this would avoid the possibility of having a partition spanning the two HDD's and thus increasing seek time.

(note, after posting I discovered that concatenated virtual drives are actually called "RAID-linear", not "RAID-0". "RAID-linear" would have the possibility of having the problem of partitions spanning different hard disk drives as noted above.

RAID-0 on the other hand is a method to improve read time by interleaving drives together. I see no downside to partitioning RAID-0.)


joelwest
 
Maybe you don't understand what RAID0 is for.. The real benefit of RAID0 is speed, not disk space. Having things spanning both drives is good, because half of what you want will be served by one drive and the other half by the other drive. This means that you get your data 2x faster (in theory anyway).

If you want speed, at the price of bigger risk of complete data loss, you go for RAID0
If you want normalcy, you just partition two drives
If you want to protect your data, at the price of losing disk space, you go for RAID1 and above
 
clarification regarding RAID-0 vs RAID-linear . . .

Nodsu said:
Maybe you don't understand what RAID-0 is for. The real benefit of RAID-0 is speed, not disk space. Having data spanning (interleaving) both drives is good, because half of what you want will be served by one drive and the other half by the other drive. This means that you get your data 2x faster (in theory anyway).

If you want speed, at the price of bigger risk of complete data loss, you go for RAID-0.

If you want normalcy, you just partition two drives.

If you want to protect your data, at the price of losing disk space, you go for RAID-1 (and mirror the data).

upon further research I found out the situation I described is called "RAID-linear" and is the case where a virtual drive is created containing all the RAID'ed hard disk drives(HDD's).

this might be useful for huge files (files bigger than one of the hard drives), but I still see partitioning with RAID-linear as a potential bottleneck of performance do to the possibility of combining parts of different HDD's into one partition that has to be accessed by both drives in order to read the data.

===========================

as you point out RAID-0 is an interleave between the HDD's, but I am still not clear how RAID-0's interleave system works.

does the first partition take up the outer rings of all the RAID'ed hard drives, the second partition the next inward set of cylinders, etc? or does this depend upon the RAID hardware controller?

=========================

BTW, I became interested in this subject since I recently acquired a used Win XP Pro computer that had two HDD's setup using hardware RAID-0.

I used Partition Magic 8 to try to break the hardware RAID into something smaller than the single 500 GB = 2 x 250 GB partition that was on the machine.

unfortunately for me PM 8 crashed in the process and left the HDD data unaccessable.

I found a post on storagereview.net

http://forums.storagereview.net/ind...d=205485&mode=threaded&show=&st=&#entry205485

that says another person in a similar situation used PM 8 with a hardware RAID and had no problem.

=========================

I found a post by Zolar1 on techspot.com

(https://www.techspot.com/vb/topic1596.html, post # 14)

that gives a formula for determining optimum stripe and cluster size based upon average file sizes.

in my case the average for my previous system drive (C) is 303 kb and the average for my previous data drive (D) is 282 kb. (average file size can be found using Win XP's built in defrag program in analyze mode.)

the formula is

optimum stripe size =
(avg file size / 2 x # of RAID-0'ed HDD's)

and round down.

in my case with two HDD's I divide by four and round down to yield 64 kb as the optimum stripe size in both cases.

the other rule of thumb given is the optimum cluster size is half the stripe size so I would use 32 kb clusters in both cases.

if the numbers for stripe and cluster sizes had turned out to be different for the two partitions this means I would have to set up two different RAID-0 sets to achieve maximum results??? ie, stripe and cluster size are fixed for a hardware RAID-0 set and not fixed for a partition? is this correct?

joelwest
 
does the first partition take up the outer rings of all the RAID'ed hard drives, the second partition the next inward set of cylinders, etc?
Yes.

that gives a formula for determining optimum stripe and cluster size based upon average file sizes
This is a useless formula.. First, it assumes that you actually use all your files. I would rather assume that the 80:20 rule applies here. Second, it assumes that you always want to read/write the whole file instead of parts of it. So, for this kind of überoptimising, the file size is a useless parameter. One may be able to use the size of average file access, but you would have to profile your IO habits to get that number.

Knowing a bit more about how disk access works in operating systems, one would recommend another formula: stripe_size=fs_cluster_size/number_of_drives

A filesystem cluster is the smallest amount of data a program can read from the disk (or write). Even if you request only a single byte, the OS will generously read in the whole cluster (4 kilobytes by default for NTFS). So, if you have two RAID0 drives, a stripe size of 2K would make sure that you always have each drive processing the sama amount of data.

Mind you, for this to work, the stripe size has to work out exactly. Cluster and stripe sizes are always in power-of-two multiples of 512 bytes. So if you have an odd number of hard drives in RAID0, you cannot possibly get an optimal stripe size.
 
Nodsu said:
Yes.

This is a useless formula.. First, it assumes that you actually use all your files. I would rather assume that the 80:20 rule applies here. Second, it assumes that you always want to read/write the whole file instead of parts of it. So, for this kind of überoptimising, the file size is a useless parameter. One may be able to use the size of average file access, but you would have to profile your IO habits to get that number.

Knowing a bit more about how disk access works in operating systems, one would recommend another formula: stripe_size=fs_cluster_size/number_of_drives

A filesystem cluster is the smallest amount of data a program can read from the disk (or write). Even if you request only a single byte, the OS will generously read in the whole cluster (4 kilobytes by default for NTFS). So, if you have two RAID0 drives, a stripe size of 2K would make sure that you always have each drive processing the sama amount of data.

Mind you, for this to work, the stripe size has to work out exactly. Cluster and stripe sizes are always in power-of-two multiples of 512 bytes. So if you have an odd number of hard drives in RAID0, you cannot possibly get an optimal stripe size.

thanks for clarifying the geometry of RAID-0 disks. I suspected partitions would work from the outside cylinders of all the array towards the inner cylinders, but had not seen a confirmation of this.

your advice is to set a stripe size equal to half the cluster size.

Zolar1's post

(https://www.techspot.com/vb/topic1596.html, post # 14)

recommendation was to set a cluster size equal to half the stripe size. (he actually noted that even smaller clusters would initially improve performance but the huge downside was the need for frequent defraging of the HDD's.)


this is difference of a factor of four in the two recommendations.

would anyone care to weigh in on which approach is best and why?

does anyone know of software that will determine the average file size that a user actually accesses over a period of time?

joelwest
 
IMHO Zolar does not have a clear ide of how hard drives and filesystems work.. He claims that stripe size and ragmentation are somehow related, which is just plain wrong. Most likely he has the cause and effect mixed up.

Fragmentation is a filesystem issue, and has absolutely nothing to do with the underlying hardware. You get exactly the same fragmentation no matter how you configure your RAID stripes underneath. Fragmentation does depend on the cluster size though, so if you follow Zola's advice and tie the size of clusters to the size of stripes, then you get worse fragmentation with smaller stripes because your clusters will be smaller too (by your own choice), not because the stripes are somehow affecting the filesystem itself.

If we bring filesystem configuration into the formula, assuming that you are actually going to tweak NTFS, then you should first consider your filesystem clusters and only then the RAID stripes. If you make your clusters bigger, you waste disk space, but you will get less fragmentation and more performance. Alas, any other cluster size than 4K will also deny you some NTFS features like file compression. Once you get your cluster size right, decide on the stripes.

Or, if you are not fond on maths and planning, do like I do - set the stripe size to the smallest possible value. This will make sure that no matter the cluster size, the request will always cover the maximum amount of drives. Even if the disk access will span the array several times, the end result will be the same (unless you have a very, very, very stupid RAID controller/driver) - all the drives will do the same amount of work.
 
what I infer from your comments is that you would recommend a stripe size of 32 kb and a cluster size of 64 kb (max for NTFS) if the user is not worried about wasted file space and is running RAID-0 with two HDD's.

correct?

joelwest
 
I would recommend stripe sizes below 32K in this case, since I'm not quite sure how smaller stripe sizes affect performance. I imagine it depends on the intelligence of your RAID controller. Anything above 32K will make things slower unless your IO profile shows mostly multi-cluster requests.

I could benchmark this, but my RAID array is a rackmount SCSI beast and I don't think I'd be allowed to plug it in inside the house :(
 
Glad I arrived back at this forum this is a neat discussion on raid and disk configuration. I was especially interested in the way disks are partitoned. If the disk is partioned from the outside inwards ( across say two platters ) is there a performance degradation on the last partitions?
 
i have formated my pc. and i want to partition my harddisk. i booted from xp o/s but it is showing only 700mb. of the hard disk storage. and my hard disk is of 80 gb. wt do i do?
 
paritioning will not affect performance on a RAID array, however it can affect performace of windows if the primary C: partition is too small.

I have a RAID 0 array and it is also partitioned into 2 paritions as if the drives were not in a RAID array. For the operator (me) it makes no difference, I do have a slight performance edge with the RAID 0 array. You must understand that with RAID 0, you have no redundancy correction and in the event of 1 hard drive failure, the RAID is broken and all the data too.
 
I assumed partitioning across a raid 0 array would create the partitions spanning the drives in the array; just as a partition does spanning the individual platters on a single drive.
 
Status
Not open for further replies.
Back