Here's a pic that shows some of the properties of an SR:

http://i.imgur.com/iq6NQ1a.png

According to some Citrix docs I read, it appears the UUID is a read-only
field.

Unless there is some workaround for this, I may have to resort to copying
the template to a new SR each time.


On Sun, Jan 26, 2014 at 9:00 AM, Mike Tutkowski <
mike.tutkow...@solidfire.com> wrote:

> Hey Marcus,
>
> One thing I thought of late last night was that an SR has a UUID
> associated with it.
>
> If I clone the SAN volume that houses the SR each time, I'll be giving
> XenServer SRs that have the same UUID.
>
> I guess I'll need to look into if there is some way to assign a new UUID
> to an existing SR.
>
> Perhaps you or Edison (or someone else) know about this off hand?
>
> Thanks
>
>
> On Sat, Jan 25, 2014 at 11:42 PM, Mike Tutkowski <
> mike.tutkow...@solidfire.com> wrote:
>
>> Yeah, I see that now. I was thinking my situation here would be different
>> because in the XenServer case I was looking at, CloudStack was copying the
>> template down to an SR and that same SR was later used to also house the
>> root disk (two different SRs were not involved).
>>
>> Even though my case is different, with the approach you outlined about
>> creating a "special" SR for the template itself, it ends up amounting to a
>> similar concept.
>>
>>
>> On Sat, Jan 25, 2014 at 11:27 PM, Marcus Sorensen <shadow...@gmail.com>wrote:
>>
>>> Yes. That's what all of the storage types do, they save the name of
>>> the file, volume, etc (along with path if necessary) on primary
>>> storage where the template is copied.
>>>
>>> On Sat, Jan 25, 2014 at 11:01 PM, Mike Tutkowski
>>> <mike.tutkow...@solidfire.com> wrote:
>>> > It looks like I could use the template_spool_ref table's local path
>>> and/or
>>> > install path to point to the name of the volume on the SAN that is to
>>> be
>>> > cloned when we need a root volume from this template.
>>> >
>>> > Is that what you do?
>>> >
>>> >
>>> > On Sat, Jan 25, 2014 at 10:46 PM, Mike Tutkowski
>>> > <mike.tutkow...@solidfire.com> wrote:
>>> >>
>>> >> Maybe 2) can be made to work in the template_spool_ref table...I need
>>> to
>>> >> think about it a bit.
>>> >>
>>> >>
>>> >> On Sat, Jan 25, 2014 at 10:42 PM, Mike Tutkowski
>>> >> <mike.tutkow...@solidfire.com> wrote:
>>> >>>
>>> >>> Data disks are easier than root disks.
>>> >>>
>>> >>> To be more clear, I should say data disks are easier than root disks
>>> that
>>> >>> use templates (root disks that use ISOs are about the same level of
>>> >>> difficulty as data disks).
>>> >>>
>>> >>> I could see it going either way:
>>> >>>
>>> >>> 1) Copy the template down once for each root disk
>>> >>>
>>> >>> or
>>> >>>
>>> >>> 2) Copy the template to an SR and clone the SAN volume the SR is on
>>> as
>>> >>> needed
>>> >>>
>>> >>> 2) has the advantage of speed, but where do you store knowledge of
>>> this
>>> >>> special SR (in the DB somewhere)?
>>> >>>
>>> >>>
>>> >>> On Sat, Jan 25, 2014 at 10:39 PM, Mike Tutkowski
>>> >>> <mike.tutkow...@solidfire.com> wrote:
>>> >>>>
>>> >>>> Do you still send your SAN commands from the KVM agent?
>>> >>>>
>>> >>>> I don't have any SolidFire-specific commands outside of the
>>> SolidFire
>>> >>>> plug-in.
>>> >>>>
>>> >>>>
>>> >>>> On Sat, Jan 25, 2014 at 10:38 PM, Marcus Sorensen <
>>> shadow...@gmail.com>
>>> >>>> wrote:
>>> >>>>>
>>> >>>>> Actually, I shouldn't take the liberty to speak as though I
>>> understand
>>> >>>>> the details about how you use SRs and VDIs. My point though is
>>> >>>>> basically that you probably can and should treat them the same as
>>> >>>>> whatever you currently do with data disks. Either create a new one
>>> >>>>> with every root volume create and copy the template contents to it
>>> >>>>> (like CLVM does), or create one on the SAN when the template copy
>>> is
>>> >>>>> called, prepopulate it with the template, and send a clone command
>>> >>>>> against that one to your storage to generate new root disks as
>>> needed.
>>> >>>>>
>>> >>>>> On Sat, Jan 25, 2014 at 10:30 PM, Marcus Sorensen <
>>> shadow...@gmail.com>
>>> >>>>> wrote:
>>> >>>>> > And when I say 'the first time the template is used, we create an
>>> >>>>> > SR',
>>> >>>>> > I mean cloudstack does it automatically.
>>> >>>>> >
>>> >>>>> > On Sat, Jan 25, 2014 at 10:29 PM, Marcus Sorensen
>>> >>>>> > <shadow...@gmail.com> wrote:
>>> >>>>> >> Not's not really what I was describing, or that's not how we do
>>> it
>>> >>>>> >> at
>>> >>>>> >> least. The first time a template is used, we create an SR with
>>> one
>>> >>>>> >> VDI
>>> >>>>> >> (using your terminology as we don't do it in Xen, but it should
>>> map
>>> >>>>> >> to
>>> >>>>> >> essentially the same thing) and copy the template contents into
>>> it.
>>> >>>>> >> Then we remove the SR. When a root disk is requested, we send a
>>> >>>>> >> clone
>>> >>>>> >> command to the SAN, and then register the new clone as a new
>>> volume,
>>> >>>>> >> then attach that as a new SR dedicated to that root volume.
>>> Every
>>> >>>>> >> root
>>> >>>>> >> disk that makes use of that template is its own SR.
>>> >>>>> >>
>>> >>>>> >> On Sat, Jan 25, 2014 at 9:30 PM, Mike Tutkowski
>>> >>>>> >> <mike.tutkow...@solidfire.com> wrote:
>>> >>>>> >>> Thanks for your input, Marcus.
>>> >>>>> >>>
>>> >>>>> >>> Yeah, the SolidFire SAN has the ability to clone, but I can't
>>> use
>>> >>>>> >>> it in this
>>> >>>>> >>> case.
>>> >>>>> >>>
>>> >>>>> >>> Little note first: I'm going to put some words below in capital
>>> >>>>> >>> letters to
>>> >>>>> >>> stress some important details. All caps for some words can be
>>> >>>>> >>> annoying to
>>> >>>>> >>> some, so please understand that I am only using them here to
>>> >>>>> >>> highlight
>>> >>>>> >>> important details. :)
>>> >>>>> >>>
>>> >>>>> >>> For managed storage (SolidFire is an example of this), this is
>>> what
>>> >>>>> >>> happens
>>> >>>>> >>> when a user attaches a volume to a VM for the first time (so
>>> this
>>> >>>>> >>> is for
>>> >>>>> >>> Disk Offerings...not root disks):
>>> >>>>> >>>
>>> >>>>> >>> 1) A volume (LUN) is created on the SolidFire SAN that is ONLY
>>> ever
>>> >>>>> >>> used by
>>> >>>>> >>> this ONE CloudStack volume. This volume has QoS settings like
>>> Min,
>>> >>>>> >>> Max, and
>>> >>>>> >>> Burst IOPS.
>>> >>>>> >>>
>>> >>>>> >>> 2) An SR is created in the XenServer resource pool (cluster)
>>> that
>>> >>>>> >>> makes use
>>> >>>>> >>> of the SolidFire volume that was just created.
>>> >>>>> >>>
>>> >>>>> >>> 3) A VDI that represents the disk is created on the SR (this
>>> VDI
>>> >>>>> >>> essentially
>>> >>>>> >>> consumes as much of the SR as it can*).
>>> >>>>> >>>
>>> >>>>> >>> If the user wants to create a new CloudStack volume to attach
>>> to a
>>> >>>>> >>> VM, that
>>> >>>>> >>> leads to a NEW SolidFire volume being created (with its own
>>> QoS), a
>>> >>>>> >>> NEW SR,
>>> >>>>> >>> and a new VDI inside of that SR.
>>> >>>>> >>>
>>> >>>>> >>> The same idea will exist for root volumes. A NEW SolidFire
>>> volume
>>> >>>>> >>> will be
>>> >>>>> >>> created for it. A NEW SR will consume the SolidFire volume, and
>>> >>>>> >>> only ONE
>>> >>>>> >>> root disk will EVER use this SR (so there is never a need to
>>> clone
>>> >>>>> >>> the
>>> >>>>> >>> template we download to this SR).
>>> >>>>> >>>
>>> >>>>> >>> The next time a root disk of this type is requested, this
>>> leads to
>>> >>>>> >>> a NEW
>>> >>>>> >>> SolidFire volume (with its own QoS), a NEW SR, and a new VDI.
>>> >>>>> >>>
>>> >>>>> >>> In the situation you describe (which is called non-managed
>>> (meaning
>>> >>>>> >>> the SR
>>> >>>>> >>> was created ahead of time outside of CloudStack)), you can have
>>> >>>>> >>> multiple
>>> >>>>> >>> root disks that leverage the same template on the same SR. This
>>> >>>>> >>> will never
>>> >>>>> >>> be the case for managed storage, so there will never be a need
>>> for
>>> >>>>> >>> a
>>> >>>>> >>> downloaded template to be cloned multiple times into multiple
>>> root
>>> >>>>> >>> disks.
>>> >>>>> >>>
>>> >>>>> >>> By the way, I just want to clarify, as well, that although I am
>>> >>>>> >>> talking in
>>> >>>>> >>> terms of "SolidFire this an SolidFire that" that the
>>> functionality
>>> >>>>> >>> I have
>>> >>>>> >>> been adding to CloudStack (outside of the SolidFire plug-in)
>>> can be
>>> >>>>> >>> leveraged by any storage vendor that wants a 1:1 mapping
>>> between a
>>> >>>>> >>> CloudStack volume and one of their volumes. This is, in fact,
>>> how
>>> >>>>> >>> OpenStack
>>> >>>>> >>> handles storage by default.
>>> >>>>> >>>
>>> >>>>> >>> Does that clarify my question?
>>> >>>>> >>>
>>> >>>>> >>> I was not aware of how CLVM handled templates. Perhaps I should
>>> >>>>> >>> look into
>>> >>>>> >>> that.
>>> >>>>> >>>
>>> >>>>> >>> By the way, I am currently focused on XenServer, but also plan
>>> to
>>> >>>>> >>> implement
>>> >>>>> >>> support for this on KVM and ESX (although those may be outside
>>> of
>>> >>>>> >>> the scope
>>> >>>>> >>> of 4.4).
>>> >>>>> >>>
>>> >>>>> >>> Thanks!
>>> >>>>> >>>
>>> >>>>> >>> * It consumes as much of the SR as it can unless you you want
>>> extra
>>> >>>>> >>> space
>>> >>>>> >>> put aside for hypervisor snapshots.
>>> >>>>> >>>
>>> >>>>> >>>
>>> >>>>> >>> On Sat, Jan 25, 2014 at 3:43 AM, Marcus Sorensen
>>> >>>>> >>> <shadow...@gmail.com>
>>> >>>>> >>> wrote:
>>> >>>>> >>>>
>>> >>>>> >>>> In other words, if you can't clone, then
>>> createDiskFromTemplate
>>> >>>>> >>>> should
>>> >>>>> >>>> copy template from secondary storage directly onto root disk
>>> every
>>> >>>>> >>>> time, and copyPhysicalDisk really does nothing. If you can
>>> clone,
>>> >>>>> >>>> then
>>> >>>>> >>>> copyPhysicalDisk should copy template to primary, and
>>> >>>>> >>>> createDiskFromTemplate should clone. Unless there's template
>>> >>>>> >>>> cloning
>>> >>>>> >>>> in the storage driver now, and if so put the
>>> >>>>> >>>> createDiskFromTemplate
>>> >>>>> >>>> logic there, but you still probably need copyPhysicalDisk to
>>> do
>>> >>>>> >>>> its
>>> >>>>> >>>> thing on the agent.
>>> >>>>> >>>>
>>> >>>>> >>>> This is all from a KVM perspective, of course.
>>> >>>>> >>>>
>>> >>>>> >>>> On Sat, Jan 25, 2014 at 3:40 AM, Marcus Sorensen
>>> >>>>> >>>> <shadow...@gmail.com>
>>> >>>>> >>>> wrote:
>>> >>>>> >>>> > I'm not quite following.  With our storage, the template
>>> gets
>>> >>>>> >>>> > copied
>>> >>>>> >>>> > to the storage pool upon first use, and then cloned upon
>>> >>>>> >>>> > subsequent
>>> >>>>> >>>> > uses. I don't remember all of the methods immediately, but
>>> >>>>> >>>> > there's one
>>> >>>>> >>>> > called to copy the template to primary storage, and once
>>> that's
>>> >>>>> >>>> > done
>>> >>>>> >>>> > as you mention it's tracked in template_spool_ref and when
>>> root
>>> >>>>> >>>> > disks
>>> >>>>> >>>> > are created that's passed as the source to copy when
>>> creating
>>> >>>>> >>>> > root
>>> >>>>> >>>> > disks.
>>> >>>>> >>>> >
>>> >>>>> >>>> > Are you saying that you don't have clone capabilities to
>>> clone
>>> >>>>> >>>> > the
>>> >>>>> >>>> > template when root disks are created? If so, you'd be more
>>> like
>>> >>>>> >>>> > CLVM
>>> >>>>> >>>> > storage, where the template copy actually does nothing, and
>>> you
>>> >>>>> >>>> > initiate a template copy *in place* of the clone (or you do
>>> a
>>> >>>>> >>>> > template
>>> >>>>> >>>> > copy to primary pool whenever the clone normally would
>>> happen).
>>> >>>>> >>>> > CLVM
>>> >>>>> >>>> > creates a fresh root disk and copies the template from
>>> secondary
>>> >>>>> >>>> > storage directly to that whenever a root disk is deployed,
>>> >>>>> >>>> > bypassing
>>> >>>>> >>>> > templates altogether. This is because it can't efficiently
>>> >>>>> >>>> > clone, and
>>> >>>>> >>>> > if we let the template copy to primary, it will then do a
>>> full
>>> >>>>> >>>> > copy of
>>> >>>>> >>>> > that template from primary to primary every time, which is
>>> >>>>> >>>> > pretty
>>> >>>>> >>>> > heavy since it's also not thin provisioned.
>>> >>>>> >>>> >
>>> >>>>> >>>> > If you *can* clone, then just copy the template to your
>>> primary
>>> >>>>> >>>> > storage as normal in your storage adaptor
>>> (copyPhysicalDisk), it
>>> >>>>> >>>> > will
>>> >>>>> >>>> > be tracked in template_spool_ref, and then when root disks
>>> are
>>> >>>>> >>>> > created
>>> >>>>> >>>> > it will be passed to createDiskFromTemplate in your storage
>>> >>>>> >>>> > adaptor
>>> >>>>> >>>> > (for KVM), where you can call a clone of that and return it
>>> as
>>> >>>>> >>>> > the
>>> >>>>> >>>> > root volume . There was once going to be template clone
>>> >>>>> >>>> > capabilities
>>> >>>>> >>>> > in the storage driver level on the mgmt server, but I
>>> believe
>>> >>>>> >>>> > that was
>>> >>>>> >>>> > work-in-progress last I checked (4 months ago or so), so we
>>> >>>>> >>>> > still have
>>> >>>>> >>>> > to call clone to our storage server from the agent side as
>>> of
>>> >>>>> >>>> > now, but
>>> >>>>> >>>> > that call doesn't have to do any work on the agent-side,
>>> really.
>>> >>>>> >>>> >
>>> >>>>> >>>> >
>>> >>>>> >>>> > On Sat, Jan 25, 2014 at 12:47 AM, Mike Tutkowski
>>> >>>>> >>>> > <mike.tutkow...@solidfire.com> wrote:
>>> >>>>> >>>> >> Just wanted to throw this out there before I went to bed:
>>> >>>>> >>>> >>
>>> >>>>> >>>> >> Since each root volume that belongs to managed storage
>>> will get
>>> >>>>> >>>> >> its own
>>> >>>>> >>>> >> copy
>>> >>>>> >>>> >> of some template (assuming we're dealing with templates
>>> here
>>> >>>>> >>>> >> and not an
>>> >>>>> >>>> >> ISO), it is possible I may be able to circumvent a new
>>> table
>>> >>>>> >>>> >> (or any
>>> >>>>> >>>> >> existing table like template_spool_ref) entirely for
>>> managed
>>> >>>>> >>>> >> storage.
>>> >>>>> >>>> >>
>>> >>>>> >>>> >> The purpose of a table like template_spool_ref appears to
>>> be
>>> >>>>> >>>> >> mainly to
>>> >>>>> >>>> >> make
>>> >>>>> >>>> >> sure we're not downloading the sample template to an SR
>>> >>>>> >>>> >> multiple times
>>> >>>>> >>>> >> (and
>>> >>>>> >>>> >> this doesn't apply in the case of managed storage since
>>> each
>>> >>>>> >>>> >> root
>>> >>>>> >>>> >> volume
>>> >>>>> >>>> >> should have at most one template downloaded to it).
>>> >>>>> >>>> >>
>>> >>>>> >>>> >> Thoughts on that?
>>> >>>>> >>>> >>
>>> >>>>> >>>> >> Thanks!
>>> >>>>> >>>> >>
>>> >>>>> >>>> >>
>>> >>>>> >>>> >> On Sat, Jan 25, 2014 at 12:39 AM, Mike Tutkowski
>>> >>>>> >>>> >> <mike.tutkow...@solidfire.com> wrote:
>>> >>>>> >>>> >>>
>>> >>>>> >>>> >>> Hi Edison and Marcus (and anyone else this may be of
>>> interest
>>> >>>>> >>>> >>> to),
>>> >>>>> >>>> >>>
>>> >>>>> >>>> >>> So, as of 4.3 I have added support for data disks for
>>> managed
>>> >>>>> >>>> >>> storage
>>> >>>>> >>>> >>> for
>>> >>>>> >>>> >>> XenServer, VMware, and KVM (a 1:1 mapping between a
>>> CloudStack
>>> >>>>> >>>> >>> volume
>>> >>>>> >>>> >>> and a
>>> >>>>> >>>> >>> volume on a storage system). One of the most useful
>>> abilities
>>> >>>>> >>>> >>> this
>>> >>>>> >>>> >>> enables
>>> >>>>> >>>> >>> is support for guaranteed storage quality of service in
>>> >>>>> >>>> >>> CloudStack.
>>> >>>>> >>>> >>>
>>> >>>>> >>>> >>> One of the areas I'm working on for CS 4.4 is root-disk
>>> >>>>> >>>> >>> support for
>>> >>>>> >>>> >>> managed storage (both with templates and ISOs).
>>> >>>>> >>>> >>>
>>> >>>>> >>>> >>> I'd like to get your opinion about something.
>>> >>>>> >>>> >>>
>>> >>>>> >>>> >>> I noticed when we download a template to a XenServer SR
>>> that
>>> >>>>> >>>> >>> we
>>> >>>>> >>>> >>> leverage a
>>> >>>>> >>>> >>> table in the DB called template_spool_ref.
>>> >>>>> >>>> >>>
>>> >>>>> >>>> >>> This table keeps track of whether or not we've downloaded
>>> the
>>> >>>>> >>>> >>> template
>>> >>>>> >>>> >>> in
>>> >>>>> >>>> >>> question to the SR in question already.
>>> >>>>> >>>> >>>
>>> >>>>> >>>> >>> The problem for managed storage is that the storage pool
>>> >>>>> >>>> >>> itself can be
>>> >>>>> >>>> >>> associated with many SRs (not all necessarily in the same
>>> >>>>> >>>> >>> cluster
>>> >>>>> >>>> >>> even): one
>>> >>>>> >>>> >>> SR per volume that belongs to the managed storage.
>>> >>>>> >>>> >>>
>>> >>>>> >>>> >>> What this means is every time a user wants to place a root
>>> >>>>> >>>> >>> disk (that
>>> >>>>> >>>> >>> uses
>>> >>>>> >>>> >>> a template) on managed storage, I will need to download a
>>> >>>>> >>>> >>> template to
>>> >>>>> >>>> >>> the
>>> >>>>> >>>> >>> applicable SR (the template will never be there in
>>> advance).
>>> >>>>> >>>> >>>
>>> >>>>> >>>> >>> That is fine. The issue is that I cannot use the
>>> >>>>> >>>> >>> template_spool_ref
>>> >>>>> >>>> >>> table
>>> >>>>> >>>> >>> because it is intended on mapping a template to a storage
>>> pool
>>> >>>>> >>>> >>> (1:1
>>> >>>>> >>>> >>> mapping
>>> >>>>> >>>> >>> between the two) and managed storage can download the same
>>> >>>>> >>>> >>> template
>>> >>>>> >>>> >>> many
>>> >>>>> >>>> >>> times.
>>> >>>>> >>>> >>>
>>> >>>>> >>>> >>> It seems I will need to add a new table to the DB to
>>> support
>>> >>>>> >>>> >>> this
>>> >>>>> >>>> >>> feature.
>>> >>>>> >>>> >>>
>>> >>>>> >>>> >>> My table would allow a mapping between a template and a
>>> volume
>>> >>>>> >>>> >>> from
>>> >>>>> >>>> >>> managed storage.
>>> >>>>> >>>> >>>
>>> >>>>> >>>> >>> Do you see an easier way around this or is this how you
>>> >>>>> >>>> >>> recommend I
>>> >>>>> >>>> >>> proceed?
>>> >>>>> >>>> >>>
>>> >>>>> >>>> >>> Thanks!
>>> >>>>> >>>> >>>
>>> >>>>> >>>> >>> --
>>> >>>>> >>>> >>> Mike Tutkowski
>>> >>>>> >>>> >>> Senior CloudStack Developer, SolidFire Inc.
>>> >>>>> >>>> >>> e: mike.tutkow...@solidfire.com
>>> >>>>> >>>> >>> o: 303.746.7302
>>> >>>>> >>>> >>> Advancing the way the world uses the cloud™
>>> >>>>> >>>> >>
>>> >>>>> >>>> >>
>>> >>>>> >>>> >>
>>> >>>>> >>>> >>
>>> >>>>> >>>> >> --
>>> >>>>> >>>> >> Mike Tutkowski
>>> >>>>> >>>> >> Senior CloudStack Developer, SolidFire Inc.
>>> >>>>> >>>> >> e: mike.tutkow...@solidfire.com
>>> >>>>> >>>> >> o: 303.746.7302
>>> >>>>> >>>> >> Advancing the way the world uses the cloud™
>>> >>>>> >>>
>>> >>>>> >>>
>>> >>>>> >>>
>>> >>>>> >>>
>>> >>>>> >>> --
>>> >>>>> >>> Mike Tutkowski
>>> >>>>> >>> Senior CloudStack Developer, SolidFire Inc.
>>> >>>>> >>> e: mike.tutkow...@solidfire.com
>>> >>>>> >>> o: 303.746.7302
>>> >>>>> >>> Advancing the way the world uses the cloud™
>>> >>>>
>>> >>>>
>>> >>>>
>>> >>>>
>>> >>>> --
>>> >>>> Mike Tutkowski
>>> >>>> Senior CloudStack Developer, SolidFire Inc.
>>> >>>> e: mike.tutkow...@solidfire.com
>>> >>>> o: 303.746.7302
>>> >>>> Advancing the way the world uses the cloud™
>>> >>>
>>> >>>
>>> >>>
>>> >>>
>>> >>> --
>>> >>> Mike Tutkowski
>>> >>> Senior CloudStack Developer, SolidFire Inc.
>>> >>> e: mike.tutkow...@solidfire.com
>>> >>> o: 303.746.7302
>>> >>> Advancing the way the world uses the cloud™
>>> >>
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> Mike Tutkowski
>>> >> Senior CloudStack Developer, SolidFire Inc.
>>> >> e: mike.tutkow...@solidfire.com
>>> >> o: 303.746.7302
>>> >> Advancing the way the world uses the cloud™
>>> >
>>> >
>>> >
>>> >
>>> > --
>>> > Mike Tutkowski
>>> > Senior CloudStack Developer, SolidFire Inc.
>>> > e: mike.tutkow...@solidfire.com
>>> > o: 303.746.7302
>>> > Advancing the way the world uses the cloud™
>>>
>>
>>
>>
>> --
>> *Mike Tutkowski*
>> *Senior CloudStack Developer, SolidFire Inc.*
>> e: mike.tutkow...@solidfire.com
>> o: 303.746.7302
>> Advancing the way the world uses the 
>> cloud<http://solidfire.com/solution/overview/?video=play>
>> *™*
>>
>
>
>
> --
> *Mike Tutkowski*
> *Senior CloudStack Developer, SolidFire Inc.*
> e: mike.tutkow...@solidfire.com
> o: 303.746.7302
> Advancing the way the world uses the 
> cloud<http://solidfire.com/solution/overview/?video=play>
> *™*
>



-- 
*Mike Tutkowski*
*Senior CloudStack Developer, SolidFire Inc.*
e: mike.tutkow...@solidfire.com
o: 303.746.7302
Advancing the way the world uses the
cloud<http://solidfire.com/solution/overview/?video=play>
*™*

Reply via email to