January 26, 2009 - Matthijs Haverink

VMware vCenter & SQL server best practices [updated 15/4/09]


VMware vCenter & SQL : Best Practice

This month I started on a new project and I noticed again a different approach from a colleague to the vCenter/SQL/Physical/Virtual issue. And of course there has been written a lot about this issue but I couldn’t find my exact view anywhere else so I thought I’d open up a discussion here by presenting the Best Practice in my humble opinion.

There are 4 critical decisions you have to make concerning the vCenter server for your VI:

1. vCenter server : physical or virtual.
2. SQL Database (server) : locally or detached.
3. Redundancy options : make it redundant and if so; how?
4. License server : locally or detached.

1. Virtualize your vCenter server. Reasons :

1.1. You’re automatically making it Highly Available. When the physical machine is down, HA still works so your vCenter Server is protected against hardware failures.

1.2. Eat your own dog food; you trust your company/customers to run production on your Virtual Infrastructure, why the h*** wouldn’t you?

2. Install the SQL databaseserver and the database on a different server (cluster) as your vCenter Server. Reason :

2.1 Performance. When hosting a larger environment the database server will get pretty busy and you don’t want your VC and it’s database server getting strangled in a performance struggle.

Take notice that this is concerning larger environments. If you have a smaller environment and use the SQL Server 2005 Express Edition, off course you keep the VC and database on the same server.

3. Redundancy options: Use HA and have a backup VM or physical machine available.

3.1 Options to really cluster the vCenter server is overkill when you ask me. I still consider it “just a management server”; the most important function : HA, works without VC intervention.

3.2 If your VC or database really gets corrupted you still have a serious issue since you won’t be able to find your VM’s, besides that DRS doesn’t function either. Therefore you should have a way to get your VC back quickly.




4.1 No performance impact and running it locally reduces the danger of network failure to interfere.

Take notice: virtualizing your vCenter Server is fully supported by VMware but there are some additional considerations:

A. Make sure its resources are guaranteed. Make use of reservations/shares !

B. Make sure the autostart policy for the VC VM is set with the highest priority (This in case your ESX cluster went down for whatever reason) !

C. Think of the other resources needed for your VC to function : DNS, AD, DB. Make sure these are always up for your VC. So if they run virtual, set the autostart policies and prioritize it like this : 1. DNS, 2. AD, 3. DB.

D. Disable DRS for VC [edit thx to Vikash/Duncan]

Please take notice. These are best practices based on my own experience, experience of others and VMware whitepapers. Most relevant white papers with more details :
Running VC in a VM : http://www.vmware.com/pdf/vi3_vc_in_vm.pdf 
VC SQL Database Performance : http://www.vmware.com/files/pdf/vc_database_performance.pdf.

Off course I’m not the first one writing about this so check out the following sources, which I’ve have also used, for more info about running VC virtual:

Making VC Highly Available @ Yellow-Bricks : http://www.yellow-bricks.com/2008/11/19/make-virtualcenter-highly-available-with-vmware-vi3/

VC Physical or Virtual @ VMGuy : http://vmguy.com/wordpress/?p=67 (btw, that wordpress template is soooo 2008 :P)

VC Database Best Practices @ Scott Low : http://blog.scottlowe.org/2008/09/18/po2061-vmware-virtualcenter-25-database-best-practices/

VC Virtual ? @ Rich Brambly (VMETC) : http://vmetc.com/2007/12/28/should-virtual-center-run-as-a-virtual-machine/

Physical/Virtual discussion @ VIOps : http://viops.vmware.com/home/message/1359

 Mgmt Cluster : http://www.dailyhypervisor.com/2009/04/14/vmware-virtual-center-physical-or-virtual/  [Edit 15/4/2009]

Again, I’m trying to open up a discussion here so feel free to comment !

Virtual Infrastructure Best Practice / license server / Running VC in a VM / SQL / vCenter / Virtual Center / VM / VMware /


  • RBrambley says:

    Thanks for the link, and I love the new look!

  • Rob Mokkink says:

    Hi Matthijs,

    You forgot to mention 3rd party products like for example Neverfail (which i really like)

    I am curious what ESX 4 will bring us with the new VM HA options.



  • [...] and want to read the whole article? You can find it here. Written by Tazz in: VMware, vCenter/VirtualCenter | Tags: vCenter, VMware [...]

  • Hello Matthijs,
    Great article! I couldn’t agree more.
    I put a reference on our site http://www.vmguru.nl
    Keep up the good work,

  • I would rahter disable DRS on VC VM’s to make sure I would know were my VM was incase of DR


  • Duncan says:

    I fully agree with Vikash, disable DRS for the VC/SQL VM so you always know where it resides. Especially in large environments.

  • Richard says:

    ok… so vmware says only 5 hosts on sql express… is that a hard limit? we have 6…. and dont want the extra issues of having sql remote for one extra host

  • vmengineer says:

    Hey, I want to add an additional consideration based on real world experience and over 7 different support incidents with the highest level of Vmware engineers (4th level support).

    vCenter has a major design flaw with the vDistributed switch. vCenter relys on the vDistributed switch and the vDistributed switch relys on vCenter. This is a terrible terrible design flaw, that can be worked around by building your environment using hybrid standard vSwitches and the vDistributed switch.

    My recommendation after a horrible experience with the vDistributed switch, cluster vCenter on a physical box and save yourself and your enterprise customers the headache.

  • Shan says:

    I am geeting into VMware. Why should the vCenter be part of an AD? Why can’t it be a machine by itself since it only services the ESX servers. I am confused here.
    (If I am installing ESX servers and vCenter from scratch and don’t have an AD.)

  • Shan says:

    I am getting into VMware. Why should the vCenter be part of an AD? Why can’t it be a machine by itself since it only services the ESX servers. I am confused here.
    (If I am installing ESX servers and vCenter from scratch and don’t have an AD.)