These days it has become trendy to talk about Virtualization. Virtualization has its virtues – however,you also
need to study and plan carefully the workloads that you want to virtualize. Since database hosting is getting
virtualized and databases by their very nature are very I/O intensive there are a myriad of things you need
to understand when virtualizing database workloads.

So, before you virtualize a workload you should have an understanding of what that workload looks like on
a physical machine first and part of that understanding involves storage interaction.  I/O intensive
workloads like SQL require some planning.  SQL even has a tool that can be used to simulate workloads
on storage, which you can find in this link:=

http://support.microsoft.com/kb/231619

Some of the other relevant links to Virtualizing SQL are here:

http://www.microsoft.com/sqlserver/en/us/solutions-technologies/mission-critical-operations/consolidation-and-virtualization.aspx


OK. Now coming to some of the salient points, SQL virtualization needs careful consideration of the
storage systems you are using and its I/O characteristics. Some of the main considerations are as below.

  • Use fixed-size disks. Defrag your volumes before creating the VHDs
  • Use SCSI Virtual adapters for data disks attached to Virtual Machines
  • Use pass-through disks for the best performance and for LUNs > 2TB
  • Do *NOT* use snapshots in a production environment
  • Use high speed storage configurations
    • High speed SATA\SAS drives (10,000 rpm or greater)
    • Use drives that support command queued I/O.
    • Use RAID 0+1 configurations with as many disks as feasible in
      the RAID configuration to distribute I/O
  • Use MPIO configurations for storage
  • Use the highest speed NICs for iSCSI storage
  • Do NOT store system files (e.g. pagefile) on storage used by Hyper-V
  • Test storage I/O configurations before deploying Virtual Machines
  • Follow operating system Performance Tuning guidelines
  • If you are running Anti-Virus software in the Parent partition, exclude either Hyper-V processes (vmms.exe or vmwp.exe) for Hyper-V file types (.vhd, .avhd, .vfd,.vsv, .bin and .xml )
  • When using CSV LUNS, place virtual machine operating system files and data on different volumes
  • And last (but not the least) consult your storage vendor.