vsphere_static_160x300
Badges

vexpert_logo_100x57

gestaltitbadge

follow-me-twitter

Subscribe to me on FriendFeed

Comments / DISQUS
Feedjit.com

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.


Related Posts

  • adias
    Yes, you can run it there but you should have a backup, physical or virtual. We run the main one in the esx cluster but also keep a nightly clone on a seperate esx server that is not part of the cluster.
  • Fabio Arnò
    IMHO pushing too far consolidataion isn't that big deal: we're talking about benefits coming from the virtualization of a single host (VC) ?
    I'm rather more concerned about performance and possible issues.
    But some benefits could be gained running VC on a VM too (HA benefits).

    What about having VC on a physical host (with its DB on external storage, in SAN for instance) and a standby VM (off) ready to take its place for failover ?
    Of course, should the physical host on which our VC is running go down, to failover on the ready-VM we should first configure it to see LUNs owned by the VC.
  • Peter
    Don
    1. Prevent. That's the whole point of the best practices giving the VC VM lots of CPU/memory shares/reservations. The should prevent VC from getting wedged by other greedy VMs.

    2. You can always use the VI Client or SSH to access the ESX host and from there you could suspend some VMs, move stuff, then unsuspend. Not ideal, but then we're already perf impacted which for some apps may be an outage anyway. Plus, to get here we weren't following best practices in the first place, so desparate measures may be appropriate.
  • Don
    Bad idea. DO NOT run Virtual Center on a VM - especially in production or any other environment that you care even remotely about. Think about the dependency - the management station being dependent on that which it manages. For example, if you have problems with an ESX host where all of the VMs are slow or unresponsive and you want to VMotion those VMs to another host, you need to use Virtual Center. But wait, your Virtual Center VM is on that problematic host and doesn't respond. What do you do?
  • Duncansapien,

    Good to hear you got the VirtualCenter issues worked out. I know it's supported, but I don't reccommend running VC on XP for production - especially if you will be constantly adding new VMs. Also, if you run VC as a VM the best practice is to not run the database on the VM. of course that forces you to use ODBC to a SQL or Oracle server, but those can be independent VMs as well.
  • I had huge problems running Virtual Centre 2.5 inside a Windows XP VM, when testing VI3.5 using a trial licence. The trial database for VC2.5 is Microsoft SQL Server 2005 Express - it installed ok, but reproducably corrupted the database soon afterwards, as soon as an ESX server was added to VC - VI Client can't login anymore. There's a known bug, I believe, with using this database on SCSI virtual disks, but my disk was IDE. Converting the disk to pre-allocated storage from growable didn't help. Installing VC2.5 on a physical PC running XP with IDE disks works perfectly. I did have an earlier version of VC running perfectly inside a VM, but the storage engine wasn't SQL Server, so that's the change that underlies the problem.
  • I run my VC on a separate system that runs VMware Server. Mind you, my set up is small, but this seems to work fairly well.

    mike
  • Don't do it!! There has to be some physical backup to any virtualization, and this should be one of them. Stay safe.
  • Just to clarify, I am all for virtualizing DCs, DNS, WINS, DHCP, etc., but I also like to have at least one physical server providing these services as well. Maybe it is a worst case scenario strategy, but it's my personal comfort level.
  • Hi
    I think VC running in a VM is better then physical. In case the host fails on which VC is running, HA will enable VC again. Important to know, is that VC only configures HA, but HA doesn't need to VC to function. Once HA is configured, you could bring VC down if it wasn't for other functions. For the same reason I would have no problems running dns, dhcp, domain controllers etc on ESX.

    And the simple way in which I can recover the VMs when I have to switch to a second datacenter because of a disaster.... I vote for virtualizing everything (as longs as performance is good).

    Gabrie
blog comments powered by Disqus
Hyper9 Cowabunga
Support VM /ETC
Support VMETC.com

Support VMETC.com

Free Business and Tech Magazines and eBooks
@rbrambley tweets
Advertisements
VMTN Roundtable Podcasts
Subscribe



Add to Google Reader or Homepage
Subscribe in NewsGator Online
Add to netvibes
Add to Plusmo