• Martin Stephenson (3/14/2011)


    I have been tasked with moving our SQL server estate onto new 64bit SQL 2008 Virtual servers on a VM base. Each Virtual server will be attached to our SAN that i will have no control over. Do i ask for multiple LUNs pretending that there is a C:(OS), E:(temp), F:(Data) and G:(log) disk structure or do I just present a very big space as a single C: drive and let it go. We are consolidating lots of old physical servers onto fewer (more powerful) virtual servers (according to the VM and SAN administrators)

    I have been searching the internet for comment / advice and at the moment I can boil most of what I have read down to

    1. Configure your SAN properly

    2. Don't overallocate shared resource

    all advice, experience and opinion gratefully received and read

    It all depends on whether the SQL server data volumes will be VMware virtual disks or Raw Device Mappings presented to the VM.

    Virtual disks act as separate entities and can be pinned to separate ESX data stores, the problem is that these data stores usually service virtual disks from lots of other virtual machines of possibly differing types (exchange server, file server, application server, etc). Virtual disks are flat files and do have their limitations especially when hit with random I\O workloads.

    Be mindful of presenting too many virtual disks, as these disk require a virtual disk controller, this itself is a software representation of a physical disk controller and runs as a software process on the host server. All of this takes valuable CPU time and RAM resources from the host.

    Raw device mappings are straight to the storage layer and are managed by the storage layer itself, not the software disk controller. They'll generally handle random I\O a little better but even so, with any virtualisation exercise you need to account for the fact there will be an overhead over the physical equivalent.

    Remember, virtualisation is a consolidation technique not a performance technique, when done properly you can attain sensible performance levels. Get it wrong and you'll have even more smoke to cloud your vision when attempting to troubleshoot

    -----------------------------------------------------------------------------------------------------------

    "Ya can't make an omelette without breaking just a few eggs" 😉