[libvirt] VMware vCenter support

Matthias Bolte matthias.bolte at googlemail.com
Wed Jan 13 14:41:43 UTC 2010

2010/1/8 Fulop, Balazs <Balazs.Fulop at morganstanley.com>:
> Dear List,
> I find the ESX driver in libvirt quite useful to perform powercycle
> operations on a VM. However, I need to connect to an ESX server even when
> the VM is managed on the VMware 4.0 platform.
> Reading this mail:
> http://www.mail-archive.com/libvir-list@redhat.com/msg18259.html
> makes me think that support to connect directly to a vCenter using the
> scheme vpx:// is not far from becoming a reality. Could you please provide
> an estimated timeline for this and notes on possible further enhancements in
> the ESX driver code?
> Thank you very much in advance.
> Regards,
>    Balazs Fulop

I have looked into this some time ago because there was a request for
direct vCenter support on the mailing list (the on you referenced).

As I said back then, some tweaks to the ESX driver are necessary to
enable direct vCenter support. The driver currently assumes that there
is exactly one datacenter and each compute resource has exactly one
host attached. Within a vCenter this assumptions aren't true anymore.
A vCenter can contain multiple datacenters, a datacenter can contain
clusters (cluster compute resource) and a cluster can contain multiple
hosts. The ESX driver needs to be made aware of this.

Also the connection URI format needs to be extended in order to allow
to specify a explicit datacenter/cluster/host when connecting to a
vCenter. Explicit host reference for example is necessary to perform a

The extended URI format may look like this:


If clusters aren't used it may look like this


The path part would be optional. For example

  virsh -c vpx://vcenter list

would list all virtual machines of all datacenters of this vCenter and

  virsh -c vpx://vcenter/datacenter2 list

would only list all virtual machines of datacenter2.

You see, I already thought about direct vCenter support and how to
implement it. Just yesterday there was a request for this by one of
visualization projects here at my university.

I don't think this will be part of libvirt 0.7.6, that's scheduled for
the end of this month, so feature freeze for 0.7.6 will probably begin
by the end of next week. But I'm going to work on this in the next
days/weeks, so probably it'll be part of libvirt 0.7.7. Stay tuned :)

Regarding other ESX driver enhancements: The next bigger steps will be
storage, network and interface drivers for ESX. But those will require
some more research on how to implement the driver functions based on
what ESX can provide.

If you have any suggestions or priorities, tell me.


More information about the libvir-list mailing list