Should Virtual Center run as a Virtual Machine?
Sure, you can run Virtual Center Management Server as a Virtual Machine. VMware supports it and has published a technical note about doing it – http://www.vmware.com/pdf/vi3_vc_in_vm.pdf. A lot of companies have built their VC2 server this way, but is it really wise to have “the manager” of the environment running in the environment it is managing?
Think about it. Virtual Center provides VMotion which in turn enables DRS and HA. Agents running on each ESX host are communicating back to VirtualCenter for these features to work. A lot could go wrong with some pretty severe consequences. This is even worse if a company has completely virtualized their network services such as DNS. I’ve personally seen where a client “shot themselves in the foot” because Virtual Center and all networking services where provided by VMs.
In my opinion the VMware tech note is a not exactly a “glowing endorsement” for installing VC2 in a VM. It is best practices guide that explains critical design criteria.
First, why would you put VC2 in a VM? The tech note begins by offering some good reasons:
There are several reasons why deploying VirtualCenter in a virtual machine would be advantageous:
- Server Consolidation: instead of dedicating an entire physical server to VirtualCenter, you can run it in a virtual machine along with others on the same ESX Server host.
- Mobility: by encapsulating the VirtualCenter server in a virtual machine, you can transfer it from one host to another, enabling maintenance and other activities.
- Snapshots: A snapshot of the VirtualCenter virtual machine can be used for backup, archiving, and other similar purposes.
- Availability: using VMware HA, you can provide high availability for the VirtualCenter server
Next the tech note explains best practices that too often seem to be overlooked in implementation:
- The deployment of the VC2 database is considered independent of the VC2 application and licensing server
Dedicate the virtual machine to VirtualCenter. In particular, keep the VirtualCenter database on a physical server or separate virtual machine, unless you are only running the MSDE database for demonstration purposes. This will ensure that VirtualCenter will have exclusive access to the resources of the virtual machine’s operating system
- Create a VM with a minimum of 2GB ram for VirtualCenter. If you will manage more than 50 ESX hosts use 4GB ram.
- Use 1 vCPU unless you will have more than 50 ESX hosts, and then use 2 vCPU.
Be aware that the virtual machine will use some portion of the CPU to handle virtual networking; the overhead can be as high at 30% for environments above 50 ESX Server hosts.
- Be very sure your VC2 VM will always have available resources and always win when contending for resources with your other VMs.
Use resource shares or reservations to ensure that the VirtualCenter virtual machine has the highest priority out of all virtual machines on the ESX Server host, and has guaranteed usage of its configured memory.
If you choose to run the VirtualCenter virtual machine with 2 VCPUs, make sure that any ESX Server host on which the virtual machine runs has at least 4 cores or threads, to ensure that the virtual machine never suffers from CPU scheduling starvation (a phenomenon in which a VSMP virtual machine cannot get enough cycles simultaneously
on multiple CPUs to run)
- Make sure you can monitor your VC2 VM for problems
To ensure that you can be notified immediately if there is a problem with the VirtualCenter virtual machine, configure an alarm to send email. Conditions to monitor include:
• Virtual Machine CPU Usage: trigger if the usage goes above 90%
• Virtual Machine Memory Usage: trigger if the usage goes above 90%
- Do not allow your IT department to manage the VC2 VM with your other servers
Because VirtualCenter manages the entire VMware Infrastructure, make sure to set permissions so that only a very limited set of people can access or manipulate the virtual machine and host on which it runs.
In summary, if you are going to run Virtual Center in a VM make sure you have available physical resources, reliable monitoring, and separate the back end database from the VC2 VM. It is also wise to have a physical server that provides networking services like DNS, WINS, and Active Directory / LDAP authentication.










Pingback: VMware vCenter & SQL server best practices | Virtualfuture.info
Pingback: Why not VirtualCenter with SQL 2005 Express? | VM /ETC
Pingback: VMware PEX2010: Night of Nines and Saturday Random Thoughts | VM /ETC
Pingback: Design Challenges Of Virtualized vCenter With A vNetwork Distributed Switch | VM /ETC