A question that comes up when building a new virtual SQL Server is how should the disks be laid out when using the default VMDK (VMware) or vDisks (Hyper-V)? Should the disks be on a single LUN, or different LUNs, etc.
I’m sure that it will surprise no one when I say that it depends. On a virtual database server where the disk IO load is high you will want to separate the virtual disks out just like you would in the physical world. If the virtual database server has low or minimal IO then like in the physical world it may be ok to put the virtual disks on the same LUN.
It is important to look not just at the virtual machines disk load, but at the load of the other virtual machines which will be sharing the LUN(s) as well as what those other servers disks are doing. If you have the logs from one server on a LUN you don’t want to put the data files from another virtual SQL Server onto that LUN as you’ll have disk performance issues to contend with. For virtual database servers which have very high IO requirements you will want to dedicate LUNs for each of the virtual disks, assuming that you don’t use iSCSI or Raw Device Mappings (VMware) / Pass Through Disks (Hyper-V), just like you would in the physical world.
Hopefully this helps clear some stuff up.
Does the advice about dedicated LUNs for each virtual disk change if we ARE using iSCSI? We are currently setting up some SQL servers in ESX using iSCSI storage, are there any best practices around that?
If your virtual SQL Server is using iSCSI or RDMs then you will want to use the standard practice of putting data on one LUN and logs on another LUN.