[one-users] Combining multiple storage backends within a single VM

Vivien Bernet-Rollande vivien.bernet-rollande at nexen.alterway.fr
Tue Apr 19 02:02:17 PDT 2011


On 04/18/11 10:55, Jaime Melis wrote:
> Hi Viven,
>
> The use of different TM mechanism is quite interesting, as you propose 
> probably the best way to handle this is a TM clever enough to choose 
> the corresponding storage backend for  different disks. In fact, that 
> is the spirit of the example at [1], although simplier than the one 
> you propose.
I've seen this example, but I didn't find it quite flexible enough.
> * Include the TM options in the Image template. Define an 
> image "Debian base system", with the proper TM options to handle it. 
> The TM_OPTIONS will be stored in the image definition and could be 
> accessed trough the driver by getting the VM id from the SRC_PATH and 
> from there 'onevm show <id>', and get the disk that match de disk_id 
> (also from the SRC_PATH, note that disks are named disk.<disk_id>) to 
> get the IMAGE and the TM options from 'oneimage show'.
>
> * Use special URLs for your images so the TM knows how to handle them. 
> For example, iscsi_filer://debian. URLs are not modified by OpenNebula 
> so you get the that URL. In the TM you can have the TM options for 
> different URLs
>
In my opinion, URLs are meant as a way of finding things (like in that 
example), not as a way to know where to put them. Given a line like :
CLONE http:///srv/cloud/images/debian.img 
192.168.0.74:/var/lib/one//26/images/disk.0

I have no simple way to know if /var/lib/one//26/images/disk.0 should 
point to iscsi or nfs storage.
Of course I could specify something like 
http:///srv/cloud/images/debian.img@iscsi/filer1/target1/, but I would 
need to create images for http:///srv/cloud/images/debian.img@local/, 
http:///srv/cloud/images/debian.img@iscsi/filer2/target34/, or 
http:///srv/cloud/images/debian.img@nfs/filer1/path/to/share/.

I find such a hack unnecessarily complex, and very counter-intuitive.
> NOTE: There is a "bug" in 2.2 that removes the custom attributes (like 
> TM_OPTIONS you propose) [2]. This will be solved in 2.4. Storing the 
> TM_OPTIONS have some advantages as you do not have to include them in 
> all the templates that uses that OPTIONS. Also, if you want to change 
> them you only have to do it in the Image Pool.
>
This is odd, my testing shows (on 2.2) that custom attributes for a disk 
are actually kept. They are shown when I do a "onevm show" (although the 
quotes are removed):

DISK=[
   CLONE=NO,
   DISK_ID=0,
   READONLY=no,
   SOURCE=/srv/cloud/images/debian.img,
   TARGET=sda1,
   TM_OPTIONS=--foo=bar --bar=baz ]

So it would be possible to write a "very smart"  TM that would :
  - the VM ID from $SRC_PATH
  - get the disk ID from $DST_PATH
  - parse the output of onevm show, and extract the value of TM_OPTIONS.
  - if no options are found, parse output of oneimage show.

However, this is complex, and therefore error prone and hard to maintain.

> I think that this approach is pretty close to the Storage Pool 
> proposed in your email.
>
> However I think that two queries (onevm show + oneimage show) is a bit 
> cumbersome, my proposal here is to include a special Image attribute 
> (TM_OPTIONS or DISK_ATTRIBUTES) that will be copied form the IMAGE to 
> the DISK attribute in the VM template (when the VM is created), so a 
> simple onevm show will give you those values.
>
> What do you think?
With this method the metadata "how is the disk accessed" is attached to 
the image. I see a two problems with this :
  - I will need to create two images if I want to deploy the same image 
on both local disks and iscsi (see the URL point earlier).
  - It cannot be applied to swap, contextualization images, or disks not 
built from images.

I do however like the idea of setting a default value for TM_OPTIONS on 
the image. That way, I could specify that a CD Image is always accessed 
through NFS unless specified otherwise. I just checked : unknown options 
are kept and can be accessed with "oneimage show", provided we know the 
id or the name of the image.

--
Vivien

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opennebula.org/pipermail/users-opennebula.org/attachments/20110419/931c6dd2/attachment-0003.htm>


More information about the Users mailing list