First, let me start by saying that I did notice there are multiple similar questions to this, but neither of them is exactly what I want to ask, and not one of them has a definite answer.
Second, let me confirm that I do understand, that it's recommended to use different LUNs/spindles for log/data even on SAN/virtualized environment.
Now the question:
IF there is just one single LUN assigned to a SQL Server virtual machine, is there a performance (NOT management, security, or any other) difference between following configurations:
- One virtual disk file (vhd, vmdk, whatever) with one virtual controller with one logical partition in virtual OS, and tempdb/data/log in that partition
- One virtual disk file with one virtual controller but multiple logical partitions/drive letters for tempdb/data/log
- Multiple virtual disk files one separate virtual controller with separate partitions for tempdb/data/log
So far I have heard the following answers:
- There is no or negligible performance difference, as in the end, its still just same spindle with same IO capacity
- There is a performance difference in some scenarios because virtual controllers have separate (virtual) IO queues and scheduling in the guest OS
If important, let's assume the workload is very large number of threads with very small requests (so deep small queue).
I would like to get this settled once and for all, so I would like to ask to stay on topic of performance on one LUN, and refrain from suggestions for optimizing the layout.