Geek question: RAID array performance
Oct. 19th, 2006 11:57 amWe've got a big data store. It's currently built as a single max-size 2Tb RAID 5 array over 11 disks. It performs like a three-legged dog and each of the 300Gb disks has about 75Gb unused (because that would take it over the 2Tb SCSI RAID limit).
We need to rebuild it. We've been advised that volume sizes over 1.5Tb are dogs under SCSI RAID so we're keen not to do that. Our options are:
* RAID 10, 10 disks+hotswap, total volume space 1.5Tb, good write performance.
* RAID 5, 7 disks+hotswap, total volume 1.6Tb, but it feels wasteful of all these lovely disks.
* Two smaller RAID 5 volumes, 4+hotswap and 5+hotswap, giving us .9 and 1.2 Tb respectively. The volumes should behave better, because they're smaller and on fewer disks, but will this just move the bottleneck up to the servers' RAID controller?
Gurus, your wisdom is much appreciated!
We need to rebuild it. We've been advised that volume sizes over 1.5Tb are dogs under SCSI RAID so we're keen not to do that. Our options are:
* RAID 10, 10 disks+hotswap, total volume space 1.5Tb, good write performance.
* RAID 5, 7 disks+hotswap, total volume 1.6Tb, but it feels wasteful of all these lovely disks.
* Two smaller RAID 5 volumes, 4+hotswap and 5+hotswap, giving us .9 and 1.2 Tb respectively. The volumes should behave better, because they're smaller and on fewer disks, but will this just move the bottleneck up to the servers' RAID controller?
Gurus, your wisdom is much appreciated!
no subject
Date: 2006-10-19 02:00 pm (UTC)no subject
Date: 2006-10-19 03:16 pm (UTC)no subject
Date: 2006-10-19 03:46 pm (UTC)In the interests of full disclosure, I'm irrationally touchy about having to move stuff between volumes. This is a holdover from several years back when we had an old SGI Challenge with a pile of differently-sized SCSI drives, and would regularly have to spend hours moving user groups off one and onto another when they ran out of space.
"...on the other hand..."
Date: 2006-10-19 03:50 pm (UTC)So, if you're worried that the controller will bottleneck if it has to handle two volumes, you can set up the 1.2TB volume first and put everything on it (since you're under a TB of use now), and check performance. You then set up the second volume and port some stuff over to it, and look for performance degradation. If it looks good, you can port more stuff over. If it looks bad, you can always do RAID 10. (He said cavalierly, as if he were the one who was going to be spending several hours shoveling bits around.)
no subject
Date: 2006-10-19 03:53 pm (UTC)In the absence of any specifics I'd suggest 2x (4+1 raid 5) and a pool spare. Amalgamate the resulting volumes however you like (at the server level if necesasry). Raid-5 is fine (some would say great) for a stock fileserver. Depending on the size of the files in question, you might want to drop the stripe size to give the array a chance to do whole-stripe writes - a lot depends on the capabilities of your raid kit (what is it?) where that is concerned.
no subject
Date: 2006-10-19 03:55 pm (UTC)no subject
Date: 2006-10-19 04:09 pm (UTC)[smacks self in forehead]
I've even had my coffee.
no subject
Date: 2006-10-19 04:08 pm (UTC)So you want your stripe size down. That means (1) think about using fewer disks per raid-5; (2) look at the average write sizes - think your fileserver should be able to tell you this - and see if you can get your stripe size to match this.
* there's a simple XOR trick that means you don't need to read the whole stripe in this case.
no subject
Date: 2006-10-19 05:52 pm (UTC)It's been a while
Date: 2006-10-19 09:11 pm (UTC)With much reads it can give a latency for the disk to get to a stripe position for reading (ie more stripes means more chance of latency per read) - this might have been reduced by hardware technology on-drive.
there's similiar consideration for writes but I can't recall it.
If data is moving to and from the same devices, can they be split physically, and rejoined logically. This separates the load on each channel.
What are the main constraints? price? physical size/cable size? speed?
The old superserver range I used to work on there were some optimal configurations for which channels and which raid patterns the controller handled better. The high level raid 5 & 10 were a hassle (I recall) because of the extra in-channel bandwidth consumed by the parity and drive command (after all it had to be calculated: fast, then the drive latency probability: medium % but sigificant delay many uS, then the commands placed into the channel 10%-20% bandwidth lost straight away.) also big disks sometimes makes for poor administration wich increases latency chances and put bandwidth hogs on the same highway as smaller, higher priority requests.)