incubator-deltacloud-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Lutterkort <lut...@redhat.com>
Subject Towards a vSphere driver
Date Fri, 10 Jun 2011 09:30:07 GMT
Thanks to Ken Keiter's spherical[1], we have a nice Ruby library to talk
to a vSphere server. Since vSphere is not a cloud, but virt management,
there are various bits that we need to wallpaper over to make vSphere
behave like a cloud. Beyond doing fun stuff in the driver, this implies
that we expect the vSphere admin to set things up in certain ways (e.g.,
cluster their hosts)

To start with, we'll have the driver just implement the bare essentials
to manage the lifecycle of an isntance. That means we'll provide the
following operations:

      * List images
      * List realms
      * List hardware profiles
      * All operations on the instances collection

The resources that Deltacloud deals with aren't in a 1-1 correspondence
with vSphere's objects, and we'll need to define those:

Hardware Profiles
=================

We should just hardcode a set of HWP's in the driver; for now something
incredibly simple like small/medium/large HWP's with fixed values for
each dimension is enough. For the absolutely first cut, we'll just use
the hardwar settings from the template, and offer only an opaque HWP.

Later, we can make this configurable by the administrator of the
Deltacloud server. While the HWP model would allow it, I don't want to
offer arbitrary amounts of memory/storage to Deltacloud users, since
setting up HWP's gives admins an important way to make sure they get
good utilization out of their HW.

Realms
======

We should just mimick what the RHEV-M driver does and use clusters; this
also means that any hosts that are not in clusters will not be used by
the driver.

Images
======

vSphere has the notion of a template VM; it is possible to launch
arbitrary numbers of VM's off such a template VM. We'll just use that as
an 'image'

We expect that admins upload/create template VMs outside of the
Deltacloud API for now.

Instances
=========

Non-template VM's.

Random issues
=============

      * It seems that referencing a template by some sort of id/uuid
        isn't straightforward; at the least, FindByUUID does not return
        templates, and we'll have to come up with a way to get to a
        template VM that does not involve listing all templates in a
        datacenter
      * To apply a HWP to a VM, we will need to first run CloneVM_Task,
        which lets us reconfigure the hardware of the VM
      * We might need to maintain a mapping table for tasks and vm's in
        the driver
      * All interactions with the server seem very slow. First attempt
        to address this is to deploy the deltacloud server close to the
        vSphere server; if that's not enough, we might have to cache
        some of the vSphere objects in the driver across requests (e.g.,
        keeping a pool of open API connections for each user) But that
        won't happen until the 7th or 8th iteration of the driver ;)

David

[1] https://github.com/aeolusproject/spherical



Mime
View raw message