Should I Virtualize SQL Server? Session Notes

By riceboyler on Aug 14 2009 | 0 Comments

Presenter – Kevin Kline (Quest Software)

What is Virtualization?

  • Technology that allows a server to be decoupled from the physical hardware of the system.
  • Lets you run one or more virtual machines independent of the physical hardware
  • If you have VMWare Enterprise level products, you can receive support from Microsoft for a SQL instance on a VMWare VM.

Benefits of Virtualization

  • Server Consolidation
  • Disaster Recovery
  • Legacy Apps
  • Testing and QA
  • Training

Drawbacks of Virtualization

  • Overhead
    • used to be 30-35% in original VMWare software
    • now at 15% with newest software and processors
  • Administration complexity
    • VMs obfuscate troubleshooting efforts
  • Performance monitoring and tuning
  • Lag in hardware support

Strategies

  • Planning for best Utilization
    • How is it used?
    • Type 1 (bare-metal) or Type 2 (hosted) Hypervisor
    • Workload and performance?
    • SLAs?
    • Users?
    • Availability and recovery?

Licensing Complexities

  • Licensing
    • Enterprise - $20K per physical cpu, unlimited instances in VMs
    • Standard - $5K per license, each instance is a license

Virtualization Performance

  • Where does overhead hit?
    • Memory
    • CPU
    • Dick IO
    • Driver Support
  • How can I virtualize production SQL Server?
    • It’s doable

Best Practices for Virtualization

  • Choose a Hardware-assisted virtualizing CPU
  • Confirm and enable HAT and DEP
  • Use the right drivers with synthetic devices
  • Set pass-thru disks on the guest VM to offline using DISKPART or Volume Manager
    • To prevent overhead in the Disk IO
  • Only run server role for hypervisor only from the root of the OS
  • Don’t use dynamic VHDs
  • Stick to the best performing options
    • Dedicated pass-through disks
    • Fixed-size VHDs (to improve Disk IO)
      • Can be expanded, but VM must be shut down
  • Don’t use regular PerfMon counters, especially for CPU
  • Instead, use:
    • Specific Logical Processor counters

Post info

Tags: