Performance advantage to isolating database logs and data on different volumes (same RAID array) across a SAN

log-filesperformancesql-server-2008-r2storagestorage-area-network

On my old server, I separated them on to different RAID arrays to improve performance. Using a SAN is new to me, so I'm not sure of the optimal configuration.

SAN: 48 drives. 10K 600GB SAS. RAID 50. 4 Gbps connection.

Updated info:

All 48 drives are part of the same RAID array. I would like to know if there is any benefit to having data and logs in different volumes. I know that if I split my SAN up there can be some benefit, depending on the circumstances. The Dell representative that sold us the SAN said the best performance can be obtained by keeping all 48 disks in one array, and use seperate volumes ("LUNS"?). Sorry if my question isn't clear.

Best Answer

Putting your log file on a separate volume, even if it's on the same raid, should be better performance than having the data and logs in the same volume. Each volume can only be access through one path at a time on most storage systems. This means that your logs and data would share the same controller port, controller cache, queue depth, and FC switch resources. Any of these could become a bottleneck, and putting your logs into another volume that shares as few of them as possible would likely result in a performance increase.

That said, there is both a performance and reliability reason to have logs and data live on separate disks, assuming you're not on one of those newfangled "wide striping" machines that use all the spindles in the array simultaneously. Each time you do a database write, it's logged, and each log takes a write (on top of the actual modification).

  • If you lose an entire raid (which is rare, but happens) that hosts both your logs and data, you risk real data loss unless your logs were replicated. Log shipping is not always supported with all databases.
  • During normal operation, if you have your logs and data living on the same small set of spindles, you can risk throttling actual database production with disk level performance bottlenecks.

You are on a raid 50. That's generally a sign that you're striping your data across a lot more than 8 or 16 disks. If this is the case, it's also generally true that you'll set up at least two raid-50s per disk type (of which you have one). The best solution for your situation is to put your data on the fastest (ie biggest) raid you have, and your logs on the other one.

Related Topic