This is wonderful.  Thank You.  I will try to incorporate it over the
next few weeks.  For anyone interested, the Jira issue is:

Also, I committed your improvements in VCL-470 and VCL-471 on 8/4.

I'd suggest working off of trunk in Subversion and svn updating it
regularly if you aren't already doing so.  I've made some changes to
the VMware code over the past few weeks.  The module has
been improved to execute much faster.  Rather than calling the VMware
API every time something such as a datastore object is needed, it is
only called once per object and this reference is then stored in the object for later use.  It will probably be easier to
incorporate your changes because of this.  All calls to get_host_view
are funneled through a single subroutine.

Also, the method of handling vmdk's has changed after being inspired
by ideas shared by Dr. Masoud Sadjadi from Florida International
University at the VCL bootcamp last month.  Josh Thompson did some
research and then I incorporated the findings. It is no longer
necessary to create an entire copy of the vmdk for imaging and
long-term reservations.  All VMs are now configured to use the vmdk in
persistent mode instead of independent-persistent or
independent-nonpersistent mode.  Before a VM is powered on a snapshot
is now taken.  This causes the VM to write changes to a delta file in
the directory where the vmx is located and the master/golden vmdk
isn't altered.  If the snapshot fails for some reason, the VM is
immediately deleted to prevent the possibility of it being powered on
and altering the master image.

The benefits are:
-Full copies of the vmdk don't need to be made when a VM is loaded
-Load time for imaging and long-term reservations is ~1-3 minutes
-Load on the storage system is reduced
-Storage consumption is reduced
-Normal, short-term VMs can be shut down without losing the state
-Images can be created from normal reservations

For imaging reservations, the path within the vmx file is
automatically changed when the snapshot is created to a file within
the vmx directory.  Running vmkfstools or calling the vSphere SDK to
copy/move this vmdk causes a new, complete vmdk to be created
containing the master image with the delta changed incorporated.

The code to create a full independent-persistent copy is still intact.
 This mode is currently only used if a reservation is a server request
-- a major new feature in VCL 2.3.  There is supposed to be a slight
performance benefit of using this mode so I want to keep it as an

Thanks for your contributions.  Would you be interested in becoming a
committer to the project?


On Tue, Aug 16, 2011 at 1:04 PM, Aaron Coburn <> wrote:
> Hello,
> In our VCL implementation at Amherst College, we are using a VMware cluster 
> for our virtual machine infrastructure. Because we wanted to allow VMs to 
> float between physical hosts according to how VMware prefers to balance 
> resource use (VMware calls this distributed resource scheduling), I wanted to 
> access the cluster as a single datacenter through the vCenter interface. 
> >From VCL's perspective, this allows me to put all of my virtual computers on 
> a single VM Host, when in reality each of those VMs is located on one of any 
> number of physical machines that the VCL can remain blithely ignorant about.
> The vSphere_SDK package, however, requires that vcld access a physical host 
> directly, so I wrote a new provisioning module called VMware::vCenter. This 
> module is a subclass of the vSphere_SDK package and works with version 2.2.1 
> of the VCL. The new module reimplements the vSphere_SDK subroutines that are 
> incompatible with a datacenter-based connection, primarily anything that 
> calls the VIExt::get_host_view() method or tries to copy or move virtual 
> disks to new locations. There are a few other changes that are explained in 
> the JIRA issue I created for this. I have included the relevant code in JIRA, 
> but let me know if there is anything else I should do to help this along.
> Best regards,
> Aaron Coburn
> Systems Administrator and Programmer
> Academic Technology Services, Amherst College
> (413) 542-5451

Reply via email to