Our development team want to develop with 1 TB SATA drive while production is on 8 Raid 5(7+1) - 300GB FC (CX4-480 Flare 28). Under this production configuration this yield about 1440 IOPS. They want to be able to take the production data and copy it to the development environment but they want to yield the same performance as the production environment. I've explained to our development team the bottlenecks and performance inefficiencies of using SATA, but they're looking at the cost.
Is there any way to give them the performance they desire?
Thanks in advance!!
Slower disks will never be as fast as Faster disks. ;-)
Do you know the read/write ratio of the workload? What is the IO size? pretty small I would guess. How sequential is the workload? If this were a high bandwidth workload (large block) you could get pretty close with similar numbers of SATA disks, but with small block it's rough. Prefetching could help if the reads are sequential.
On pure reads, you should be able to get about the same performance (1440 IOPS) using 18 x 1TB 7K SATA Drives in RAID10. This would yield about 4.5X the storage capacity vs the RAID5 7+1 config (assuming your FC disks are 15K RPM) so you'd have a lot of free space you really couldn't use unless you have workloads that run at different times of day.
Unfortunately, as the write ratios increase, the SATA performance will get uglier but based on 1440 IOPS using 8 x 15K drives the write ratio would appear to be pretty low.
You could leverage FASTCache with a few EFDs to accelerate performance of LUNs running on SATA disks but the amount of performance gain would depend on the workload characteristics.
Ankum, Richard is right on, I'd just add, nothing beats using math to convince engineers.
Rule of thumb random IOPS for FC: 180
Rule of thumb random IOPS for SATA: 70
RAID 5 conversion host to disk IOPS (r = read%, w = write%, h = host IOPS load):
r*h + 4 * w *h = diskIOPS
If you use RAID6, as I would suggest with 1 TB drives, it is
r*h + 6 * w *h = diskIOPS
If the existing workload is small random, you'll be bound by those equations. If it is sequential, it's a lot different as Richard pointed out. So time to break out Navi Analyzer, check the randomness, and apply the techniques in the CLARiiON Best Practices Guide to figure out what will work.
Tom complete Dave's math:
RAID10 conversion to disk IOps (r = read%, w = write%, h = host IOps load)
rh + 2w*h = diskIOps
Plus: the mentioned math is ONLY for RANDOM I/O
For SEQUENTIAL I/O the write penalties are:
RAID10 = 2
RAID5(4+1) = 1.25 (= 1 + (1/(number of data disks)))
so RAID5(8+1) = 1.125
RAID6(8+2) = 1.25 (= 1 + ((number of parity disks)/(number of data disks)))