Host based Striping of LUNs

pts.
Tags:
Exchange databases
LUNs
RAID
RAID 5
Striping
Windows Server 2003
I'm looking for some information regarding host based striping of LUNs - specifically to improve performance. I have a Raid 5 LUN that hold a database. I know that I have a latency issue on this LUN so i'm debating whether to split the LUN into two seperate Raid 5 LUNS then stipe these using host based techniques - effectively turning the LUNS into a Raid 5+0 stripe set. Does anyone have any experience in using such techniques? Also pro + cons. Another option would be to create a Raid 1+0 LUN at the array level, I know this is more "expensive" but I would implement this is it offers better performance than the host based Raid 5+0 solution. Can anyone advise which is better? Database is Exchange on Windows 2k3e. Logs LUN report no bottleneck. Any comments or feedback appreciated Thanks in advance The other possibility is

Answer Wiki

Thanks. We'll let you know when a new response is added.

Filesystems and databases try to maintain good performance over time by keeping to a minumum the number of disk seeks required to access the data. They use the block number to indirectly indicate how close the blocks are on the disk. For example, block 47 and 48 are probably right next to each other and block 47 and 2,897,403 are probably really far apart. So utilities like Windows defrag will try to put each individual file into a range of block numbers that are close together.

You’re probably wondering what the heck does this have to do with your question.

Striping is a method of interleaving chunks of multiple blocks. In this case, you have two RAID-5s, one in the first half of each physical drive and one in the second half. If you stripe these RAID-5s, then the logical RAID-50 as seen by the host will have the first few blocks (256 perhaps) on the first RAID-5, the next few on the second RAID-5, the next few on the first RAID-5, etc.

Now you’ve got logical blocks as seen by the host that are close together as numbers, i.e., block 255 and 256 would be assumed to be close together, when in actuality, blocks 255 and 256 could be up to half a disk away from each other. That’s a 7-8ms seek to go from block 255 to 256.

Since the location of the RAID-5s are not known to the host, it has no way to know to avoid these huge seeks when trying to place files on the disk.

Another way to look at this is that if you were to read the disk sequentially, you’d actually see big half-bore seeks occuring every 256 blocks. This would kill performance. Now, I realize you are using a database, and it is mostly random access, but that database will still attempt to locate important pieces close together on the disk via blocks numbers that are close together. Striping two RAID-5s that are on the same disk will make that task impossible.

I hope all that made sense.

TT

P.S. If your database is doing a lot of writes, you shouldn’t be using RAID-5. Each host write will result in four disk IOs. You should really use RAID-10 for databases. And if you do, let the RAID card do both the RAID-1 and RAID-0 piece. Don’t try to put all the RAID-1s on the same disks and have the OS do the RAID-0. That will kill performance just as much as the RAID-50 case I explained above.

Discuss This Question: 5  Replies

 
There was an error processing your information. Please try again later.
Thanks. We'll let you know when a new response is added.
Send me notifications when members answer or reply to this question.

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
  • Geddesb
    Thanks for the quick reply Tom, makes sense. I have a question though. Our LUNS are designed so that: 1 LUN= 1Raid set. i.e if 2 LUNS were striped from a host level the 2 underlying LUNS would be on different disks anyway. (A raid set never contains more than 1 LUN) Would this change the fact that you prefer raid 10 over host based raid 50 for random access databases? Thanks
    0 pointsBadges:
    report
  • TomTreadway
    Ah, I see. From your original mail I incorrectly throught that you were putting both RAID-5's on the same disks. If they're on different disks, then you can pretty much ignore everything I said. :-) And putting the RAID-0 in the host is ok. However, a RAID-1 or 10 will still have drastically better random write performance than RAID-5 or 50. TT
    0 pointsBadges:
    report
  • Vijayprasads
    I believe Microsoft suggests RAID 10 for Exchange Setup for better performance. Our benchmarking tests also shows better performance for MSExchange on RAID 10 than RAID 5. I would like to provide you some more links hoping that you didnt get a chance to have a look at them. http://www.microsoft.com/technet/prodtechnol/exchange/guides/E2k3Perf_ScalGuide/c1af1369-c3cd-41ca-90f3-372e02ea30e4.mspx?mfr=true http://www.microsoft.com/technet/prodtechnol/exchange/guides/StoragePerformance/fa839f7d-f876-42c4-a335-338a1eb04d89.mspx?mfr=true http://www.microsoft.com/whdc/device/storage/subsys_perf.mspx www.dell.com/downloads/global/solutions/Dell_Exchange_SMB.pdf HTH. Cheers, VP
    0 pointsBadges:
    report
  • Vijayprasads
    I believe Microsoft suggests RAID 10 for Exchange Setup for better performance. Our benchmarking tests also shows better performance for MSExchange on RAID 10 than RAID 5. I would like to provide you some more links hoping that you didnt get a chance to have a look at them. http://www.microsoft.com/technet/prodtechnol/exchange/guides/E2k3Perf_ScalGuide/c1af1369-c3cd-41ca-90f3-372e02ea30e4.mspx?mfr=true http://www.microsoft.com/technet/prodtechnol/exchange/guides/StoragePerformance/fa839f7d-f876-42c4-a335-338a1eb04d89.mspx?mfr=true http://www.microsoft.com/whdc/device/storage/subsys_perf.mspx www.dell.com/downloads/global/solutions/Dell_Exchange_SMB.pdf HTH. Cheers, VP
    0 pointsBadges:
    report
  • TwoMetreBill
    To expand on Tom's excellent response, the same reasoning applies to reads. Depending on the number of drives in the raid set, you have reduced the number of I/O's per second by that number of drives. For example, if you have 4 drives in each raid set then each drive could be performing I/O separately if they were configured as JBOD or RAID 1/10. Configured as RAID 5, they could perform only a single I/O at a time. While Tom talked about writes, the same is true of reads as well; all the drives are tied up for each single read. Since a typical operational database is 90-99% read intensive, it is easy to see why you would have poor performance with your configuration. Furthermore, if you choose RAID 1 or 10, some storage subsystems will give you the further advantage of performing reads to the mirrored devices in parallel. You might have two separate transactions trying to read data from the same logical volume. With this feature, the reads could be performed simultaneously, one against each side of the mirror. Taking this latest example (again with 4 drives in the RAID set), you could theoretically perform 8 times as many I/Os per second with this configuration vs. the one you have deployed. In conclusion, you should NEVER use RAID 5 for an operational database unless the database is very lightly used and the cost of the storage is more important than the value of better performance. Bill
    0 pointsBadges:
    report

Forgot Password

No problem! Submit your e-mail address below. We'll send you an e-mail containing your password.

Your password has been sent to:

To follow this tag...

There was an error processing your information. Please try again later.

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Thanks! We'll email you when relevant content is added and updated.

Following