2009/8/10 Itamar Heim <iheim(a)redhat.com>:
> From: Matthias Bolte [mailto:matthias.bolte@googlemail.com]
...
>
> The ESX driver parses the VMX file of a virtual machine to gather the
> information needed for the dump XML function. The VMX entry
> ethernet0.addressType maybe set to vpx if the generated MAC address
> was generated by a vCenter and not by the ESX host itself. No direct
> interaction between the ESX driver and a vCenter happens in this case.
>
> But there is direct interaction between the ESX driver and a vCenter
> if you order the ESX driver to migrate a virtual machine from ESX host
> A to ESX host B.
>
> An ESX host itself is not capable of initiating a migration to another
> ESX host. Both hosts must be attached to the same vCenter and the
> vCenter initiates and controls the migration. So the ESX driver needs
> to know the vCenter for a ESX host in order to do a migration.
> Therefore the ESX driver URI format contains an vcenter query
> parameter.
>
> More detailed documentation in HTML form will be added soon.
>
> Matthias
[IH] thanks for the elaboration. So the driver can talk to both an ESX
server directly, or to vCenter. vCenter is used only for specific
operations (like live migrations), and you opted to connect directly to
ESX (rather than use vCenter API to start a VM as well) for the rest to
allow using in a vCenter-free environment as well?
Yes, currently the driver prefers the ESX host and only uses the
vCenter for task an ESX host cannot perform on its own. This way the
vCenter can be optional and the driver also works with a vCenter-free
setups.
Are there any other considerations to using ESX directly, or prefer
to use
vCenter (say, if you ask vCenter to start the VM, you could benefit from
its load balancing capabilities, etc.).
Currently there are no such considerations. but I'll put this onto the
todo list to think about it.
The basic problem with the vCenter and libvirt is that the vCenter
doesn't fit into libvirt's world model. libvirt only knows about
hosts/nodes and virtual machines/domain running on them. Higher
management instances like the vCenter are outside libvirt's world
model.
Btw, does asking ESX to start a VM from shared storage checks for
locks,
and prevents running same VM on two ESX in parallel, or must vCenter be
used for "cluster-aware" use cases?
To be honest I'm not sure and I haven't tested it yet, but I assume a
vCenter I not necessary in this cases.
Running the same VM on two ESX hosts in parallel should be prevented
by lock files that are created by the ESX host itself.
The cluster-awareness for basic file access should be in the file system itself.
Matthias