cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike Tutkowski <mike.tutkow...@solidfire.com>
Subject Re: Review Request 14381: KVM: add connect/disconnect capabilities to StorageAdaptors so that external storage services can attach/detach devices on-demand
Date Fri, 25 Oct 2013 00:22:59 GMT
OK, thanks for that info, Marcus...I was not aware that CloudStack treated
VMs ephemerally with KVM.

I guess I should try to stop a VM on XenServer and ESX and see what
happens. I was under the impression they remained accessible using
XenCenter or VI Client, but perhaps I am wrong about that.

Since my KVM VM's root disk was on local storage, I expected it to remain
accessible in VMM after I had stopped it via CS.


On Thu, Oct 24, 2013 at 6:16 PM, Marcus Sorensen <shadowsor@gmail.com>wrote:

> Are you talking cloudstack VMS or your own?  If a vm is 'created' it is
> ephemeral, the definition will disappear when stopped. This is what
> cloudstack does so that a KVM host that crashes or loses power won't
> remember and try to start VMS that were previously on it (they are likely
> running elsewhere now). However, for your desktop and your own VMS you
> usually 'define' VMS, which saves the XML to a file and leaves them
> persistent. I use vmm occasionally, but usually virsh, the CLI version.
> Both just talk to libvirt.
> On Oct 24, 2013 6:08 PM, "Mike Tutkowski" <mike.tutkowski@solidfire.com>
> wrote:
>
>> Hey Marcus,
>>
>> I assume you use Virtual Machine Manager with KVM?
>>
>> I was wondering, is there a way when you stop a VM to have it not
>> disappear from the GUI?
>>
>> In XenCenter and VI Client, stopped VMs just show up with a different
>> icon, but are still easy to interact with.
>>
>> Thanks!
>>
>>
>> On Thu, Oct 24, 2013 at 5:46 PM, Mike Tutkowski <
>> mike.tutkowski@solidfire.com> wrote:
>>
>>> Also, the way I determined if the attach/detach worked was to use fdisk
>>> -l and see if the device was present or not in the hypervisor and VM
>>> instance.
>>>
>>>
>>> On Thu, Oct 24, 2013 at 5:42 PM, Mike Tutkowski <
>>> mike.tutkowski@solidfire.com> wrote:
>>>
>>>> Here are some of the tests I ran on this code:
>>>>
>>>> attach/detach/attach volume while VM is running: works
>>>> volume attached while VM is running, then reboot: works
>>>> volume attached while VM is running, then reset: works
>>>> volume detached while VM is stopped, then start: works
>>>> volume attached while VM is stopped, then start: works
>>>> deleted VM with attached volume: works (volume goes into the attachable
>>>> state after VM is expunged)
>>>>
>>>>
>>>> On Thu, Oct 24, 2013 at 5:40 PM, Mike Tutkowski <
>>>> mike.tutkowski@solidfire.com> wrote:
>>>>
>>>>> By the way, in case you're looking at the diff and wondering why I
>>>>> took out a StopCommand check and call to execute in
>>>>> LibvirtComputingResource, there were two of them.
>>>>>
>>>>> -            } else if (cmd instanceof StopCommand) {
>>>>>
>>>>> -                return execute((StopCommand) cmd);
>>>>>
>>>>>
>>>>> On Thu, Oct 24, 2013 at 5:26 PM, Mike Tutkowski <
>>>>> mike.tutkowski@solidfire.com> wrote:
>>>>>
>>>>>> This is a newer link, Marcus:
>>>>>>
>>>>>>
>>>>>> https://github.com/mike-tutkowski/incubator-cloudstack/commit/e84de7577ad38fea88d1492d4949672d1989889b
>>>>>>
>>>>>> I just rebased on top of master today.
>>>>>>
>>>>>>
>>>>>> On Thu, Oct 24, 2013 at 3:46 PM, Mike Tutkowski <
>>>>>> mike.tutkowski@solidfire.com> wrote:
>>>>>>
>>>>>>> Hey Marcus,
>>>>>>>
>>>>>>> If you're interested in running the simulator against your code + my
>>>>>>> code, I have it on GitHub here:
>>>>>>>
>>>>>>>
>>>>>>> https://github.com/mike-tutkowski/incubator-cloudstack/commit/776f3eb9dda45745f43e6765b026d34fbc6be072
>>>>>>>
>>>>>>> Thanks!
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Oct 23, 2013 at 11:06 PM, Mike Tutkowski <
>>>>>>> mike.tutkowski@solidfire.com> wrote:
>>>>>>>
>>>>>>>> I'm trying to attach my diff to https://reviews.apache.org/r/13865/,
>>>>>>>> but I don't see the necessary buttons.
>>>>>>>>
>>>>>>>> I wonder if I need to get edit access back again? We had trouble
>>>>>>>> with the Wiki. Was this also impacted?
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Oct 23, 2013 at 10:47 PM, Mike Tutkowski <
>>>>>>>> mike.tutkowski@solidfire.com> wrote:
>>>>>>>>
>>>>>>>>> Sure, I can create a diff file and attach it to Review Board.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Wed, Oct 23, 2013 at 10:40 PM, Marcus Sorensen <
>>>>>>>>> shadowsor@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Sure. The majority of it only affects people who are on your
>>>>>>>>>> storage
>>>>>>>>>> anyway. Perhaps you can post a patch and I can run it through the
>>>>>>>>>> simulator to verify that the minor change to the existing code
>>>>>>>>>> hasn't
>>>>>>>>>> broken the standard storages. I don't think it is since I've
>>>>>>>>>> thoroughly tested the code I posted, but I know there were some
>>>>>>>>>> additional changes.
>>>>>>>>>>
>>>>>>>>>> On Wed, Oct 23, 2013 at 10:35 PM, Mike Tutkowski
>>>>>>>>>> <mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>> > OK, Marcus, I made the change to detect my volumes and it seems
>>>>>>>>>> to work just
>>>>>>>>>> > fine.
>>>>>>>>>> >
>>>>>>>>>> > Perhaps another day of testing and we can check this code in.
>>>>>>>>>> What do you
>>>>>>>>>> > think?
>>>>>>>>>> >
>>>>>>>>>> >
>>>>>>>>>> > On Wed, Oct 23, 2013 at 9:14 PM, Mike Tutkowski
>>>>>>>>>> > <mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>> >>
>>>>>>>>>> >> Thanks, Marcus...I hadn't read that note, but that makes sense.
>>>>>>>>>> >>
>>>>>>>>>> >> Yes, that must be the root disk for the VM. I can put in code,
>>>>>>>>>> as you
>>>>>>>>>> >> recommend, to handle only my volumes.
>>>>>>>>>> >>
>>>>>>>>>> >>
>>>>>>>>>> >> On Wed, Oct 23, 2013 at 5:37 PM, Marcus Sorensen <
>>>>>>>>>> shadowsor@gmail.com>
>>>>>>>>>> >> wrote:
>>>>>>>>>> >>>
>>>>>>>>>> >>> It should be sending the path info for each disk per the XML
>>>>>>>>>> of the
>>>>>>>>>> >>> VM... so it will send all disks regardless of whether or not
>>>>>>>>>> your
>>>>>>>>>> >>> adaptor manages that disk, and it's up to your adaptor to
>>>>>>>>>> ignore any
>>>>>>>>>> >>> that aren't managed by it. There should be notes to that
>>>>>>>>>> effect in the
>>>>>>>>>> >>> code near the disconnectPhysicalDisk interface in
>>>>>>>>>> StorageAdaptor:
>>>>>>>>>> >>>
>>>>>>>>>> >>>     // given local path to file/device (per Libvirt XML), 1)
>>>>>>>>>> check
>>>>>>>>>> >>> that device is
>>>>>>>>>> >>>     // handled by your adaptor, return false if not. 2) clean
>>>>>>>>>> up
>>>>>>>>>> >>> device, return true
>>>>>>>>>> >>>     public boolean disconnectPhysicalDiskByPath(String
>>>>>>>>>> localPath);
>>>>>>>>>> >>>
>>>>>>>>>> >>> Since we only have XML disk definitions when we stop or
>>>>>>>>>> migrate a VM,
>>>>>>>>>> >>> we have to try all adaptors against all defined disks. So in
>>>>>>>>>> your
>>>>>>>>>> >>> disconnectPhysicalDisk you might do something like check that
>>>>>>>>>> the path
>>>>>>>>>> >>> starts with '/dev/disk/by-path' and contains 'iscs-iqn'
>>>>>>>>>> (maybe there's
>>>>>>>>>> >>> some way that's more robust like checking the full path
>>>>>>>>>> against a lun
>>>>>>>>>> >>> listing or something). If it doesn't match, then your
>>>>>>>>>> >>> disconnectPhysicalDisk just does nothing.
>>>>>>>>>> >>>
>>>>>>>>>> >>> I assume this is a root disk or some other local storage
>>>>>>>>>> disk. If it's
>>>>>>>>>> >>> not, then your VM XML is messed up somehow.
>>>>>>>>>> >>>
>>>>>>>>>> >>> On Wed, Oct 23, 2013 at 5:01 PM, Mike Tutkowski
>>>>>>>>>> >>> <mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>> >>> > I found the problem.
>>>>>>>>>> >>> >
>>>>>>>>>> >>> > disconnectPhysicalDiskByPath is being passed in (in my
>>>>>>>>>> situation) the
>>>>>>>>>> >>> > following:
>>>>>>>>>> >>> >
>>>>>>>>>> >>> > /var/lib/libvirt/images/9887d511-8dc7-4cb4-96f9-01230fe4bbb6
>>>>>>>>>> >>> >
>>>>>>>>>> >>> > Due to the name of the method, my code was expecting data
>>>>>>>>>> such as the
>>>>>>>>>> >>> > following:
>>>>>>>>>> >>> >
>>>>>>>>>> >>> >
>>>>>>>>>> >>> >
>>>>>>>>>> /dev/disk/by-path/ip-192.168.233.10:3260-iscsi-iqn.2012-03.com.solidfire:volume1-lun-0
>>>>>>>>>> >>> >
>>>>>>>>>> >>> > Was it intentional to send the data into this method in the
>>>>>>>>>> current
>>>>>>>>>> >>> > way?
>>>>>>>>>> >>> >
>>>>>>>>>> >>> >
>>>>>>>>>> >>> > On Wed, Oct 23, 2013 at 1:57 PM, Mike Tutkowski
>>>>>>>>>> >>> > <mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>> >>> >>
>>>>>>>>>> >>> >> You know, I forgot we supposed to be doing that! :)
>>>>>>>>>> Multi-tasking too
>>>>>>>>>> >>> >> much
>>>>>>>>>> >>> >> today, I guess.
>>>>>>>>>> >>> >>
>>>>>>>>>> >>> >> Anyways, it must not be working because I still had a
>>>>>>>>>> hypervisor
>>>>>>>>>> >>> >> connection after I shut down the VM.
>>>>>>>>>> >>> >>
>>>>>>>>>> >>> >> Let me investigate.
>>>>>>>>>> >>> >>
>>>>>>>>>> >>> >>
>>>>>>>>>> >>> >> On Wed, Oct 23, 2013 at 1:48 PM, Marcus Sorensen <
>>>>>>>>>> shadowsor@gmail.com>
>>>>>>>>>> >>> >> wrote:
>>>>>>>>>> >>> >>>
>>>>>>>>>> >>> >>> Are we not disconnecting when we stop the vm? There's a
>>>>>>>>>> method for
>>>>>>>>>> >>> >>> it, we
>>>>>>>>>> >>> >>> should be. disconnectPhysicalDiskViaVmSpec
>>>>>>>>>> >>> >>>
>>>>>>>>>> >>> >>> On Oct 23, 2013 1:28 PM, "Mike Tutkowski"
>>>>>>>>>> >>> >>> <mike.tutkowski@solidfire.com>
>>>>>>>>>> >>> >>> wrote:
>>>>>>>>>> >>> >>>>
>>>>>>>>>> >>> >>>> I see one problem for us now, Marcus.
>>>>>>>>>> >>> >>>>
>>>>>>>>>> >>> >>>> * You have a running VM that you attach a volume to.
>>>>>>>>>> >>> >>>> * You stop the VM.
>>>>>>>>>> >>> >>>> * You detach the volume.
>>>>>>>>>> >>> >>>> * You start up the VM.
>>>>>>>>>> >>> >>>>
>>>>>>>>>> >>> >>>> The VM will not be connected to the volume (which is
>>>>>>>>>> good), but the
>>>>>>>>>> >>> >>>> hypervisor will still be connected to the volume.
>>>>>>>>>> >>> >>>>
>>>>>>>>>> >>> >>>> It would be great if we actually sent a command to the
>>>>>>>>>> last host ID
>>>>>>>>>> >>> >>>> of
>>>>>>>>>> >>> >>>> the stopped VM when detaching a volume (to have the
>>>>>>>>>> hypervisor
>>>>>>>>>> >>> >>>> disconnect
>>>>>>>>>> >>> >>>> from the volume).
>>>>>>>>>> >>> >>>>
>>>>>>>>>> >>> >>>> What do you think about that?
>>>>>>>>>> >>> >>>>
>>>>>>>>>> >>> >>>>
>>>>>>>>>> >>> >>>> On Wed, Oct 23, 2013 at 1:15 PM, Mike Tutkowski
>>>>>>>>>> >>> >>>> <mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>> >>> >>>>>
>>>>>>>>>> >>> >>>>> OK, whatever way you prefer then, Marcus (createVdb
>>>>>>>>>> first or
>>>>>>>>>> >>> >>>>> second).
>>>>>>>>>> >>> >>>>>
>>>>>>>>>> >>> >>>>> If I leave createVdb first and return 0, it does seem
>>>>>>>>>> to work.
>>>>>>>>>> >>> >>>>>
>>>>>>>>>> >>> >>>>>
>>>>>>>>>> >>> >>>>> On Wed, Oct 23, 2013 at 11:13 AM, Marcus Sorensen
>>>>>>>>>> >>> >>>>> <shadowsor@gmail.com>
>>>>>>>>>> >>> >>>>> wrote:
>>>>>>>>>> >>> >>>>>>
>>>>>>>>>> >>> >>>>>> I think we could flip-flop these two lines if
>>>>>>>>>> necessary:
>>>>>>>>>> >>> >>>>>>
>>>>>>>>>> >>> >>>>>>             createVbd(conn, vmSpec, vmName, vm);
>>>>>>>>>> >>> >>>>>>
>>>>>>>>>> >>> >>>>>>
>>>>>>>>>> _storagePoolMgr.connectPhysicalDisksViaVmSpec(vmSpec);
>>>>>>>>>> >>> >>>>>>
>>>>>>>>>> >>> >>>>>> I haven't actually tried it though. But in general I
>>>>>>>>>> don't see the
>>>>>>>>>> >>> >>>>>> Libvirt DiskDef using size at all, which is what
>>>>>>>>>> createVbd does
>>>>>>>>>> >>> >>>>>> (creates XML definitions for disks to attach to the VM
>>>>>>>>>> >>> >>>>>> definition). It
>>>>>>>>>> >>> >>>>>> just takes the device at it's native advertised size
>>>>>>>>>> when it
>>>>>>>>>> >>> >>>>>> actually
>>>>>>>>>> >>> >>>>>> goes to use it.
>>>>>>>>>> >>> >>>>>>
>>>>>>>>>> >>> >>>>>> On Wed, Oct 23, 2013 at 10:52 AM, Mike Tutkowski
>>>>>>>>>> >>> >>>>>> <mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>> >>> >>>>>> > Little problem that I wanted to get your take on,
>>>>>>>>>> Marcus.
>>>>>>>>>> >>> >>>>>> >
>>>>>>>>>> >>> >>>>>> > When a VM is being started, we call createVdb before
>>>>>>>>>> calling
>>>>>>>>>> >>> >>>>>> > connectPhysicalDisksViaVmSpec.
>>>>>>>>>> >>> >>>>>> >
>>>>>>>>>> >>> >>>>>> > The problem is that createVdb calls getPhysicalDisk
>>>>>>>>>> and my
>>>>>>>>>> >>> >>>>>> > volume
>>>>>>>>>> >>> >>>>>> > has not
>>>>>>>>>> >>> >>>>>> > yet been connected because
>>>>>>>>>> connectPhysicalDisksViaVmSpec has not
>>>>>>>>>> >>> >>>>>> > yet
>>>>>>>>>> >>> >>>>>> > been
>>>>>>>>>> >>> >>>>>> > called.
>>>>>>>>>> >>> >>>>>> >
>>>>>>>>>> >>> >>>>>> > When I try to read up the size of the disk to
>>>>>>>>>> populate a
>>>>>>>>>> >>> >>>>>> > PhysicalDisk, I get
>>>>>>>>>> >>> >>>>>> > an error, of course, because the path does not yet
>>>>>>>>>> exist.
>>>>>>>>>> >>> >>>>>> >
>>>>>>>>>> >>> >>>>>> > I could populate a 0 for the size of the physical
>>>>>>>>>> disk and then
>>>>>>>>>> >>> >>>>>> > the
>>>>>>>>>> >>> >>>>>> > next
>>>>>>>>>> >>> >>>>>> > time getPhysicalDisk is called, it should be filled
>>>>>>>>>> in with a
>>>>>>>>>> >>> >>>>>> > proper
>>>>>>>>>> >>> >>>>>> > size.
>>>>>>>>>> >>> >>>>>> >
>>>>>>>>>> >>> >>>>>> > Do you see a problem with that approach?
>>>>>>>>>> >>> >>>>>> >
>>>>>>>>>> >>> >>>>>> >
>>>>>>>>>> >>> >>>>>> > On Tue, Oct 22, 2013 at 6:40 PM, Marcus Sorensen
>>>>>>>>>> >>> >>>>>> > <shadowsor@gmail.com>
>>>>>>>>>> >>> >>>>>> > wrote:
>>>>>>>>>> >>> >>>>>> >>
>>>>>>>>>> >>> >>>>>> >> That's right. All should be well.
>>>>>>>>>> >>> >>>>>> >>
>>>>>>>>>> >>> >>>>>> >> On Oct 22, 2013 6:03 PM, "Mike Tutkowski"
>>>>>>>>>> >>> >>>>>> >> <mike.tutkowski@solidfire.com>
>>>>>>>>>> >>> >>>>>> >> wrote:
>>>>>>>>>> >>> >>>>>> >>>
>>>>>>>>>> >>> >>>>>> >>> Looks like we disconnect physical disks when the
>>>>>>>>>> VM is
>>>>>>>>>> >>> >>>>>> >>> stopped.
>>>>>>>>>> >>> >>>>>> >>>
>>>>>>>>>> >>> >>>>>> >>> I didn't see that before.
>>>>>>>>>> >>> >>>>>> >>>
>>>>>>>>>> >>> >>>>>> >>> I suppose that means the disks are physically
>>>>>>>>>> disconnected
>>>>>>>>>> >>> >>>>>> >>> when
>>>>>>>>>> >>> >>>>>> >>> the VM is
>>>>>>>>>> >>> >>>>>> >>> stopped, but the CloudStack DB still has the VM
>>>>>>>>>> associated
>>>>>>>>>> >>> >>>>>> >>> with
>>>>>>>>>> >>> >>>>>> >>> the disks
>>>>>>>>>> >>> >>>>>> >>> for the next time the VM may be started up (unless
>>>>>>>>>> someone
>>>>>>>>>> >>> >>>>>> >>> does a
>>>>>>>>>> >>> >>>>>> >>> disconnect
>>>>>>>>>> >>> >>>>>> >>> while the VM is in the Stopped State).
>>>>>>>>>> >>> >>>>>> >>>
>>>>>>>>>> >>> >>>>>> >>>
>>>>>>>>>> >>> >>>>>> >>> On Tue, Oct 22, 2013 at 4:19 PM, Mike Tutkowski
>>>>>>>>>> >>> >>>>>> >>> <mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>> >>> >>>>>> >>>>
>>>>>>>>>> >>> >>>>>> >>>> Hey Marcus,
>>>>>>>>>> >>> >>>>>> >>>>
>>>>>>>>>> >>> >>>>>> >>>> Quick question for you related to
>>>>>>>>>> attaching/detaching volumes
>>>>>>>>>> >>> >>>>>> >>>> when the
>>>>>>>>>> >>> >>>>>> >>>> VM is in the Stopped State.
>>>>>>>>>> >>> >>>>>> >>>>
>>>>>>>>>> >>> >>>>>> >>>> If I detach a volume from a VM that is in the
>>>>>>>>>> Stopped State,
>>>>>>>>>> >>> >>>>>> >>>> the
>>>>>>>>>> >>> >>>>>> >>>> DB
>>>>>>>>>> >>> >>>>>> >>>> seems to get updated, but I don't see a command
>>>>>>>>>> going to the
>>>>>>>>>> >>> >>>>>> >>>> KVM
>>>>>>>>>> >>> >>>>>> >>>> hypervisor
>>>>>>>>>> >>> >>>>>> >>>> that leads to the removal of the iSCSI target.
>>>>>>>>>> >>> >>>>>> >>>>
>>>>>>>>>> >>> >>>>>> >>>> It seems the iSCSI target is only removed the
>>>>>>>>>> next time the
>>>>>>>>>> >>> >>>>>> >>>> VM is
>>>>>>>>>> >>> >>>>>> >>>> started.
>>>>>>>>>> >>> >>>>>> >>>>
>>>>>>>>>> >>> >>>>>> >>>> Do you know if this is true?
>>>>>>>>>> >>> >>>>>> >>>>
>>>>>>>>>> >>> >>>>>> >>>> If it is, I'm concerned that the volume could be
>>>>>>>>>> attached to
>>>>>>>>>> >>> >>>>>> >>>> another VM
>>>>>>>>>> >>> >>>>>> >>>> before the Stopped VM is re-started and when the
>>>>>>>>>> Stopped VM
>>>>>>>>>> >>> >>>>>> >>>> gets
>>>>>>>>>> >>> >>>>>> >>>> restarted
>>>>>>>>>> >>> >>>>>> >>>> that it would disconnect the iSCSI volume from
>>>>>>>>>> underneath the
>>>>>>>>>> >>> >>>>>> >>>> VM
>>>>>>>>>> >>> >>>>>> >>>> that now
>>>>>>>>>> >>> >>>>>> >>>> has the volume attached.
>>>>>>>>>> >>> >>>>>> >>>>
>>>>>>>>>> >>> >>>>>> >>>> I still want to perform some tests on this, but
>>>>>>>>>> am first
>>>>>>>>>> >>> >>>>>> >>>> trying
>>>>>>>>>> >>> >>>>>> >>>> to get a
>>>>>>>>>> >>> >>>>>> >>>> VM to start after I've attached a volume to it
>>>>>>>>>> when it was in
>>>>>>>>>> >>> >>>>>> >>>> the
>>>>>>>>>> >>> >>>>>> >>>> Stopped
>>>>>>>>>> >>> >>>>>> >>>> State.
>>>>>>>>>> >>> >>>>>> >>>>
>>>>>>>>>> >>> >>>>>> >>>> Thanks,
>>>>>>>>>> >>> >>>>>> >>>> Mike
>>>>>>>>>> >>> >>>>>> >>>>
>>>>>>>>>> >>> >>>>>> >>>>
>>>>>>>>>> >>> >>>>>> >>>> On Mon, Oct 21, 2013 at 10:57 PM, Mike Tutkowski
>>>>>>>>>> >>> >>>>>> >>>> <mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>> >>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>> Thanks for that info, Marcus.
>>>>>>>>>> >>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>> By the way, I wanted to see if I could attach my
>>>>>>>>>> volume to a
>>>>>>>>>> >>> >>>>>> >>>>> VM
>>>>>>>>>> >>> >>>>>> >>>>> in the
>>>>>>>>>> >>> >>>>>> >>>>> Stopped State.
>>>>>>>>>> >>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>> The attach logic didn't trigger any exceptions;
>>>>>>>>>> however,
>>>>>>>>>> >>> >>>>>> >>>>> when I
>>>>>>>>>> >>> >>>>>> >>>>> started
>>>>>>>>>> >>> >>>>>> >>>>> the VM, I received an Insufficient Capacity
>>>>>>>>>> exception.
>>>>>>>>>> >>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>> If I detach the volume and then start the VM,
>>>>>>>>>> the VM starts
>>>>>>>>>> >>> >>>>>> >>>>> just
>>>>>>>>>> >>> >>>>>> >>>>> fine.
>>>>>>>>>> >>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>> I noticed a problem here (in
>>>>>>>>>> StoragePoolHostDaoImpl):
>>>>>>>>>> >>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>     @Override
>>>>>>>>>> >>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>     public StoragePoolHostVO findByPoolHost(long
>>>>>>>>>> poolId,
>>>>>>>>>> >>> >>>>>> >>>>> long
>>>>>>>>>> >>> >>>>>> >>>>> hostId) {
>>>>>>>>>> >>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>         SearchCriteria<StoragePoolHostVO> sc =
>>>>>>>>>> >>> >>>>>> >>>>> PoolHostSearch.create();
>>>>>>>>>> >>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>         sc.setParameters("pool_id", poolId);
>>>>>>>>>> >>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>         sc.setParameters("host_id", hostId);
>>>>>>>>>> >>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>         return findOneIncludingRemovedBy(sc);
>>>>>>>>>> >>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>     }
>>>>>>>>>> >>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>> The findOneIncludingRemovedBy method returns
>>>>>>>>>> null (the
>>>>>>>>>> >>> >>>>>> >>>>> poolId is
>>>>>>>>>> >>> >>>>>> >>>>> my
>>>>>>>>>> >>> >>>>>> >>>>> storage pool's ID and the hostId is the expected
>>>>>>>>>> host ID).
>>>>>>>>>> >>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>> I'm not sure what this method is trying to do.
>>>>>>>>>> >>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>> I looked in the storage_pool_host_ref table (is
>>>>>>>>>> that the
>>>>>>>>>> >>> >>>>>> >>>>> correct
>>>>>>>>>> >>> >>>>>> >>>>> table?) and it only has one row, which maps the
>>>>>>>>>> local
>>>>>>>>>> >>> >>>>>> >>>>> storage
>>>>>>>>>> >>> >>>>>> >>>>> pool of the
>>>>>>>>>> >>> >>>>>> >>>>> KVM host to the KVM host (which explains why no
>>>>>>>>>> match is
>>>>>>>>>> >>> >>>>>> >>>>> found
>>>>>>>>>> >>> >>>>>> >>>>> for my
>>>>>>>>>> >>> >>>>>> >>>>> situation).
>>>>>>>>>> >>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>> Do you understand what this logic is trying to
>>>>>>>>>> do?
>>>>>>>>>> >>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>> Thanks!
>>>>>>>>>> >>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>> On Mon, Oct 21, 2013 at 8:08 PM, Marcus Sorensen
>>>>>>>>>> >>> >>>>>> >>>>> <shadowsor@gmail.com>
>>>>>>>>>> >>> >>>>>> >>>>> wrote:
>>>>>>>>>> >>> >>>>>> >>>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> Do you have the capability to clone the root
>>>>>>>>>> disk? Normally
>>>>>>>>>> >>> >>>>>> >>>>>> the
>>>>>>>>>> >>> >>>>>> >>>>>> template is installed to primary, and then
>>>>>>>>>> cloned for each
>>>>>>>>>> >>> >>>>>> >>>>>> root
>>>>>>>>>> >>> >>>>>> >>>>>> disk.
>>>>>>>>>> >>> >>>>>> >>>>>> In some cases (such as CLVM), this isn't
>>>>>>>>>> efficient and so
>>>>>>>>>> >>> >>>>>> >>>>>> the
>>>>>>>>>> >>> >>>>>> >>>>>> template
>>>>>>>>>> >>> >>>>>> >>>>>> is copied fresh to populate each root disk.
>>>>>>>>>> >>> >>>>>> >>>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> I'm actually not 100% sure how this works in
>>>>>>>>>> the new code.
>>>>>>>>>> >>> >>>>>> >>>>>> It
>>>>>>>>>> >>> >>>>>> >>>>>> used to
>>>>>>>>>> >>> >>>>>> >>>>>> be handled by copyPhysicalDisk in the storage
>>>>>>>>>> adaptor,
>>>>>>>>>> >>> >>>>>> >>>>>> called
>>>>>>>>>> >>> >>>>>> >>>>>> by
>>>>>>>>>> >>> >>>>>> >>>>>> copyTemplateToPrimaryStorage, which runs on the
>>>>>>>>>> agent. It
>>>>>>>>>> >>> >>>>>> >>>>>> would
>>>>>>>>>> >>> >>>>>> >>>>>> pass
>>>>>>>>>> >>> >>>>>> >>>>>> template/secondary storage info, and the
>>>>>>>>>> destination
>>>>>>>>>> >>> >>>>>> >>>>>> volume/primary
>>>>>>>>>> >>> >>>>>> >>>>>> storage info, and copyPhysicalDisk would do the
>>>>>>>>>> work of
>>>>>>>>>> >>> >>>>>> >>>>>> installing the
>>>>>>>>>> >>> >>>>>> >>>>>> image to the destination.  Then subsequent root
>>>>>>>>>> disks would
>>>>>>>>>> >>> >>>>>> >>>>>> be
>>>>>>>>>> >>> >>>>>> >>>>>> cloned
>>>>>>>>>> >>> >>>>>> >>>>>> in CreateCommand by calling
>>>>>>>>>> createDiskFromTemplate.
>>>>>>>>>> >>> >>>>>> >>>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> In master it looks like this was moved to
>>>>>>>>>> >>> >>>>>> >>>>>> KVMStorageProcessor
>>>>>>>>>> >>> >>>>>> >>>>>> 'cloneVolumeFromBaseTemplate', although I think
>>>>>>>>>> this just
>>>>>>>>>> >>> >>>>>> >>>>>> takes
>>>>>>>>>> >>> >>>>>> >>>>>> over
>>>>>>>>>> >>> >>>>>> >>>>>> as default, and there's something in your
>>>>>>>>>> storage driver
>>>>>>>>>> >>> >>>>>> >>>>>> that
>>>>>>>>>> >>> >>>>>> >>>>>> should
>>>>>>>>>> >>> >>>>>> >>>>>> be capable of cloning templates on the mgmt
>>>>>>>>>> server side.
>>>>>>>>>> >>> >>>>>> >>>>>> I'm
>>>>>>>>>> >>> >>>>>> >>>>>> less sure
>>>>>>>>>> >>> >>>>>> >>>>>> about how the template gets to primary storage
>>>>>>>>>> in the first
>>>>>>>>>> >>> >>>>>> >>>>>> place, I
>>>>>>>>>> >>> >>>>>> >>>>>> assume copyTemplateToPrimaryStorage in
>>>>>>>>>> KVMStorageProcessor
>>>>>>>>>> >>> >>>>>> >>>>>> calling
>>>>>>>>>> >>> >>>>>> >>>>>> copyPhysicalDisk in your adaptor. It's a bit
>>>>>>>>>> tough for me
>>>>>>>>>> >>> >>>>>> >>>>>> to
>>>>>>>>>> >>> >>>>>> >>>>>> tell
>>>>>>>>>> >>> >>>>>> >>>>>> since our earlier storage adaptor did
>>>>>>>>>> everything on the
>>>>>>>>>> >>> >>>>>> >>>>>> host it
>>>>>>>>>> >>> >>>>>> >>>>>> mostly
>>>>>>>>>> >>> >>>>>> >>>>>> just worked with the default stuff.
>>>>>>>>>> >>> >>>>>> >>>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> On Mon, Oct 21, 2013 at 4:49 PM, Mike Tutkowski
>>>>>>>>>> >>> >>>>>> >>>>>> <mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>> >>> >>>>>> >>>>>> > Hey Marcus,
>>>>>>>>>> >>> >>>>>> >>>>>> >
>>>>>>>>>> >>> >>>>>> >>>>>> > So...now that this works well for data disks,
>>>>>>>>>> I was
>>>>>>>>>> >>> >>>>>> >>>>>> > wondering
>>>>>>>>>> >>> >>>>>> >>>>>> > what
>>>>>>>>>> >>> >>>>>> >>>>>> > might be
>>>>>>>>>> >>> >>>>>> >>>>>> > involved in getting this process to work for
>>>>>>>>>> root disks.
>>>>>>>>>> >>> >>>>>> >>>>>> >
>>>>>>>>>> >>> >>>>>> >>>>>> > Can you point me in the right direction as
>>>>>>>>>> far as what
>>>>>>>>>> >>> >>>>>> >>>>>> > gets
>>>>>>>>>> >>> >>>>>> >>>>>> > invoked
>>>>>>>>>> >>> >>>>>> >>>>>> > when a
>>>>>>>>>> >>> >>>>>> >>>>>> > VM is being created on KVM (so that its root
>>>>>>>>>> disk can be
>>>>>>>>>> >>> >>>>>> >>>>>> > created and
>>>>>>>>>> >>> >>>>>> >>>>>> > the
>>>>>>>>>> >>> >>>>>> >>>>>> > necessary template laid down or ISO
>>>>>>>>>> installed)?
>>>>>>>>>> >>> >>>>>> >>>>>> >
>>>>>>>>>> >>> >>>>>> >>>>>> > Thanks!
>>>>>>>>>> >>> >>>>>> >>>>>> >
>>>>>>>>>> >>> >>>>>> >>>>>> >
>>>>>>>>>> >>> >>>>>> >>>>>> > On Mon, Oct 21, 2013 at 1:14 PM, Mike
>>>>>>>>>> Tutkowski
>>>>>>>>>> >>> >>>>>> >>>>>> > <mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>> >>> >>>>>> >>>>>> >>
>>>>>>>>>> >>> >>>>>> >>>>>> >> Hey Marcus,
>>>>>>>>>> >>> >>>>>> >>>>>> >>
>>>>>>>>>> >>> >>>>>> >>>>>> >> Just wanted to let you know the branch of
>>>>>>>>>> mine that has
>>>>>>>>>> >>> >>>>>> >>>>>> >> your
>>>>>>>>>> >>> >>>>>> >>>>>> >> code
>>>>>>>>>> >>> >>>>>> >>>>>> >> and mine
>>>>>>>>>> >>> >>>>>> >>>>>> >> appears to work well with regards to
>>>>>>>>>> attaching a data
>>>>>>>>>> >>> >>>>>> >>>>>> >> disk
>>>>>>>>>> >>> >>>>>> >>>>>> >> to a
>>>>>>>>>> >>> >>>>>> >>>>>> >> running VM:
>>>>>>>>>> >>> >>>>>> >>>>>> >>
>>>>>>>>>> >>> >>>>>> >>>>>> >> fdisk -l from hypervisor:
>>>>>>>>>> >>> >>>>>> >>>>>> >>
>>>>>>>>>> >>> >>>>>> >>>>>> >> http://i.imgur.com/NkP5fo0.png
>>>>>>>>>> >>> >>>>>> >>>>>> >>
>>>>>>>>>> >>> >>>>>> >>>>>> >> fdisk -l from within VM:
>>>>>>>>>> >>> >>>>>> >>>>>> >>
>>>>>>>>>> >>> >>>>>> >>>>>> >> http://i.imgur.com/8YwiiC7.png
>>>>>>>>>> >>> >>>>>> >>>>>> >>
>>>>>>>>>> >>> >>>>>> >>>>>> >> I plan to do more testing on this over the
>>>>>>>>>> coming days.
>>>>>>>>>> >>> >>>>>> >>>>>> >>
>>>>>>>>>> >>> >>>>>> >>>>>> >> If all goes well, perhaps we can check this
>>>>>>>>>> code in by
>>>>>>>>>> >>> >>>>>> >>>>>> >> the
>>>>>>>>>> >>> >>>>>> >>>>>> >> end of
>>>>>>>>>> >>> >>>>>> >>>>>> >> the
>>>>>>>>>> >>> >>>>>> >>>>>> >> week?
>>>>>>>>>> >>> >>>>>> >>>>>> >>
>>>>>>>>>> >>> >>>>>> >>>>>> >> Talk to you later,
>>>>>>>>>> >>> >>>>>> >>>>>> >> Mike
>>>>>>>>>> >>> >>>>>> >>>>>> >>
>>>>>>>>>> >>> >>>>>> >>>>>> >>
>>>>>>>>>> >>> >>>>>> >>>>>> >> On Sun, Oct 20, 2013 at 10:23 PM, Mike
>>>>>>>>>> Tutkowski
>>>>>>>>>> >>> >>>>>> >>>>>> >> <mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>> >>> >>>>>> >>>>>> >>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>> Don't ask me, but it works now (I've been
>>>>>>>>>> having this
>>>>>>>>>> >>> >>>>>> >>>>>> >>> trouble
>>>>>>>>>> >>> >>>>>> >>>>>> >>> quite a
>>>>>>>>>> >>> >>>>>> >>>>>> >>> while today).
>>>>>>>>>> >>> >>>>>> >>>>>> >>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>> I guess the trick is to send you an e-mail.
>>>>>>>>>> :)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>> On Sun, Oct 20, 2013 at 10:05 PM, Marcus
>>>>>>>>>> Sorensen
>>>>>>>>>> >>> >>>>>> >>>>>> >>> <shadowsor@gmail.com>
>>>>>>>>>> >>> >>>>>> >>>>>> >>> wrote:
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>> Did you create a service offering that
>>>>>>>>>> uses local
>>>>>>>>>> >>> >>>>>> >>>>>> >>>> storage,
>>>>>>>>>> >>> >>>>>> >>>>>> >>>> or add
>>>>>>>>>> >>> >>>>>> >>>>>> >>>> a
>>>>>>>>>> >>> >>>>>> >>>>>> >>>> shared primary storage? By default there
>>>>>>>>>> is no storage
>>>>>>>>>> >>> >>>>>> >>>>>> >>>> that
>>>>>>>>>> >>> >>>>>> >>>>>> >>>> matches the
>>>>>>>>>> >>> >>>>>> >>>>>> >>>> built in offerings.
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>> On Oct 20, 2013 9:39 PM, "Mike Tutkowski"
>>>>>>>>>> >>> >>>>>> >>>>>> >>>> <mike.tutkowski@solidfire.com>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>> wrote:
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> Hey Marcus,
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> So, I went back to the branch of mine
>>>>>>>>>> that has your
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> code
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> and
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> mine and
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> was able to create a new CloudStack
>>>>>>>>>> install from
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> scratch
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> with it
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> (once
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> again, after manually deleting what was in
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> /var/lib/libvirt/images to the
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> get system VMs to start).
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> Anyways, my system VMs are running now
>>>>>>>>>> and I tried to
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> kick off a
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> VM
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> using the CentOS 6.3 image you provided
>>>>>>>>>> me a while
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> back.
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> The virtual router has a Status of
>>>>>>>>>> Running; however,
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> my
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> VM fails
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> to
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> start (with the generic message of
>>>>>>>>>> Insufficient
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> Capacity).
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> I've not seen this exception before
>>>>>>>>>> (related to the
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> VR).
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> Do you
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> have
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> any insight into this?:
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> com.cloud.exception.ResourceUnavailableException:
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> Resource
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> [Pod:1] is
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> unreachable: Unable to apply userdata and
>>>>>>>>>> password
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> entry
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> on
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> router
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> com.cloud.network.router.VirtualNetworkApplianceManagerImpl.applyRules(VirtualNetworkApplianceManagerImpl.java:3793)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> com.cloud.network.router.VirtualNetworkApplianceManagerImpl.applyUserData(VirtualNetworkApplianceManagerImpl.java:3017)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> com.cloud.network.element.VirtualRouterElement.addPasswordAndUserdata(VirtualRouterElement.java:933)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> org.apache.cloudstack.engine.orchestration.NetworkOrchestrator.prepareElement(NetworkOrchestrator.java:1172)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> org.apache.cloudstack.engine.orchestration.NetworkOrchestrator.prepareNic(NetworkOrchestrator.java:1288)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> org.apache.cloudstack.engine.orchestration.NetworkOrchestrator.prepare(NetworkOrchestrator.java:1224)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> com.cloud.vm.VirtualMachineManagerImpl.advanceStart(VirtualMachineManagerImpl.java:826)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> com.cloud.vm.VirtualMachineManagerImpl.start(VirtualMachineManagerImpl.java:508)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> org.apache.cloudstack.engine.cloud.entity.api.VMEntityManagerImpl.deployVirtualMachine(VMEntityManagerImpl.java:227)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> org.apache.cloudstack.engine.cloud.entity.api.VirtualMachineEntityImpl.deploy(VirtualMachineEntityImpl.java:209)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> com.cloud.vm.UserVmManagerImpl.startVirtualMachine(UserVmManagerImpl.java:3338)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> com.cloud.vm.UserVmManagerImpl.startVirtualMachine(UserVmManagerImpl.java:2919)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> com.cloud.vm.UserVmManagerImpl.startVirtualMachine(UserVmManagerImpl.java:2905)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> org.apache.cloudstack.api.command.user.vm.DeployVMCmd.execute(DeployVMCmd.java:421)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:161)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> com.cloud.api.ApiAsyncJobDispatcher.runJobInContext(ApiAsyncJobDispatcher.java:109)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> com.cloud.api.ApiAsyncJobDispatcher$1.run(ApiAsyncJobDispatcher.java:66)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:56)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:103)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:53)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> com.cloud.api.ApiAsyncJobDispatcher.runJob(ApiAsyncJobDispatcher.java:63)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$1.runInContext(AsyncJobManagerImpl.java:532)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(ManagedContextRunnable.java:49)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:56)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:103)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:53)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> org.apache.cloudstack.managed.context.ManagedContextRunnable.run(ManagedContextRunnable.java:46)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> java.util.concurrent.FutureTask.run(FutureTask.java:262)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> at java.lang.Thread.run(Thread.java:724)
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>>> Thanks!
>>>>>>>>>> >>> >>>>>> >>>>>> >>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>>
>>>>>>>>>> >>> >>>>>> >>>>>> >>> --
>>>>>>>>>> >>> >>>>>> >>>>>> >>> Mike Tutkowski
>>>>>>>>>> >>> >>>>>> >>>>>> >>> Senior CloudStack Developer, SolidFire Inc.
>>>>>>>>>> >>> >>>>>> >>>>>> >>> e: mike.tutkowski@solidfire.com
>>>>>>>>>> >>> >>>>>> >>>>>> >>> o: 303.746.7302
>>>>>>>>>> >>> >>>>>> >>>>>> >>> Advancing the way the world uses the cloud™
>>>>>>>>>> >>> >>>>>> >>>>>> >>
>>>>>>>>>> >>> >>>>>> >>>>>> >>
>>>>>>>>>> >>> >>>>>> >>>>>> >>
>>>>>>>>>> >>> >>>>>> >>>>>> >>
>>>>>>>>>> >>> >>>>>> >>>>>> >> --
>>>>>>>>>> >>> >>>>>> >>>>>> >> Mike Tutkowski
>>>>>>>>>> >>> >>>>>> >>>>>> >> Senior CloudStack Developer, SolidFire Inc.
>>>>>>>>>> >>> >>>>>> >>>>>> >> e: mike.tutkowski@solidfire.com
>>>>>>>>>> >>> >>>>>> >>>>>> >> o: 303.746.7302
>>>>>>>>>> >>> >>>>>> >>>>>> >> Advancing the way the world uses the cloud™
>>>>>>>>>> >>> >>>>>> >>>>>> >
>>>>>>>>>> >>> >>>>>> >>>>>> >
>>>>>>>>>> >>> >>>>>> >>>>>> >
>>>>>>>>>> >>> >>>>>> >>>>>> >
>>>>>>>>>> >>> >>>>>> >>>>>> > --
>>>>>>>>>> >>> >>>>>> >>>>>> > Mike Tutkowski
>>>>>>>>>> >>> >>>>>> >>>>>> > Senior CloudStack Developer, SolidFire Inc.
>>>>>>>>>> >>> >>>>>> >>>>>> > e: mike.tutkowski@solidfire.com
>>>>>>>>>> >>> >>>>>> >>>>>> > o: 303.746.7302
>>>>>>>>>> >>> >>>>>> >>>>>> > Advancing the way the world uses the cloud™
>>>>>>>>>> >>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>>
>>>>>>>>>> >>> >>>>>> >>>>> --
>>>>>>>>>> >>> >>>>>> >>>>> Mike Tutkowski
>>>>>>>>>> >>> >>>>>> >>>>> Senior CloudStack Developer, SolidFire Inc.
>>>>>>>>>> >>> >>>>>> >>>>> e: mike.tutkowski@solidfire.com
>>>>>>>>>> >>> >>>>>> >>>>> o: 303.746.7302
>>>>>>>>>> >>> >>>>>> >>>>> Advancing the way the world uses the cloud™
>>>>>>>>>> >>> >>>>>> >>>>
>>>>>>>>>> >>> >>>>>> >>>>
>>>>>>>>>> >>> >>>>>> >>>>
>>>>>>>>>> >>> >>>>>> >>>>
>>>>>>>>>> >>> >>>>>> >>>> --
>>>>>>>>>> >>> >>>>>> >>>> Mike Tutkowski
>>>>>>>>>> >>> >>>>>> >>>> Senior CloudStack Developer, SolidFire Inc.
>>>>>>>>>> >>> >>>>>> >>>> e: mike.tutkowski@solidfire.com
>>>>>>>>>> >>> >>>>>> >>>> o: 303.746.7302
>>>>>>>>>> >>> >>>>>> >>>> Advancing the way the world uses the cloud™
>>>>>>>>>> >>> >>>>>> >>>
>>>>>>>>>> >>> >>>>>> >>>
>>>>>>>>>> >>> >>>>>> >>>
>>>>>>>>>> >>> >>>>>> >>>
>>>>>>>>>> >>> >>>>>> >>> --
>>>>>>>>>> >>> >>>>>> >>> Mike Tutkowski
>>>>>>>>>> >>> >>>>>> >>> Senior CloudStack Developer, SolidFire Inc.
>>>>>>>>>> >>> >>>>>> >>> e: mike.tutkowski@solidfire.com
>>>>>>>>>> >>> >>>>>> >>> o: 303.746.7302
>>>>>>>>>> >>> >>>>>> >>> Advancing the way the world uses the cloud™
>>>>>>>>>> >>> >>>>>> >
>>>>>>>>>> >>> >>>>>> >
>>>>>>>>>> >>> >>>>>> >
>>>>>>>>>> >>> >>>>>> >
>>>>>>>>>> >>> >>>>>> > --
>>>>>>>>>> >>> >>>>>> > Mike Tutkowski
>>>>>>>>>> >>> >>>>>> > Senior CloudStack Developer, SolidFire Inc.
>>>>>>>>>> >>> >>>>>> > e: mike.tutkowski@solidfire.com
>>>>>>>>>> >>> >>>>>> > o: 303.746.7302
>>>>>>>>>> >>> >>>>>> > Advancing the way the world uses the cloud™
>>>>>>>>>> >>> >>>>>
>>>>>>>>>> >>> >>>>>
>>>>>>>>>> >>> >>>>>
>>>>>>>>>> >>> >>>>>
>>>>>>>>>> >>> >>>>> --
>>>>>>>>>> >>> >>>>> Mike Tutkowski
>>>>>>>>>> >>> >>>>> Senior CloudStack Developer, SolidFire Inc.
>>>>>>>>>> >>> >>>>> e: mike.tutkowski@solidfire.com
>>>>>>>>>> >>> >>>>> o: 303.746.7302
>>>>>>>>>> >>> >>>>> Advancing the way the world uses the cloud™
>>>>>>>>>> >>> >>>>
>>>>>>>>>> >>> >>>>
>>>>>>>>>> >>> >>>>
>>>>>>>>>> >>> >>>>
>>>>>>>>>> >>> >>>> --
>>>>>>>>>> >>> >>>> Mike Tutkowski
>>>>>>>>>> >>> >>>> Senior CloudStack Developer, SolidFire Inc.
>>>>>>>>>> >>> >>>> e: mike.tutkowski@solidfire.com
>>>>>>>>>> >>> >>>> o: 303.746.7302
>>>>>>>>>> >>> >>>> Advancing the way the world uses the cloud™
>>>>>>>>>> >>> >>
>>>>>>>>>> >>> >>
>>>>>>>>>> >>> >>
>>>>>>>>>> >>> >>
>>>>>>>>>> >>> >> --
>>>>>>>>>> >>> >> Mike Tutkowski
>>>>>>>>>> >>> >> Senior CloudStack Developer, SolidFire Inc.
>>>>>>>>>> >>> >> e: mike.tutkowski@solidfire.com
>>>>>>>>>> >>> >> o: 303.746.7302
>>>>>>>>>> >>> >> Advancing the way the world uses the cloud™
>>>>>>>>>> >>> >
>>>>>>>>>> >>> >
>>>>>>>>>> >>> >
>>>>>>>>>> >>> >
>>>>>>>>>> >>> > --
>>>>>>>>>> >>> > Mike Tutkowski
>>>>>>>>>> >>> > Senior CloudStack Developer, SolidFire Inc.
>>>>>>>>>> >>> > e: mike.tutkowski@solidfire.com
>>>>>>>>>> >>> > o: 303.746.7302
>>>>>>>>>> >>> > Advancing the way the world uses the cloud™
>>>>>>>>>> >>
>>>>>>>>>> >>
>>>>>>>>>> >>
>>>>>>>>>> >>
>>>>>>>>>> >> --
>>>>>>>>>> >> Mike Tutkowski
>>>>>>>>>> >> Senior CloudStack Developer, SolidFire Inc.
>>>>>>>>>> >> e: mike.tutkowski@solidfire.com
>>>>>>>>>> >> o: 303.746.7302
>>>>>>>>>> >> Advancing the way the world uses the cloud™
>>>>>>>>>> >
>>>>>>>>>> >
>>>>>>>>>> >
>>>>>>>>>> >
>>>>>>>>>> > --
>>>>>>>>>> > Mike Tutkowski
>>>>>>>>>> > Senior CloudStack Developer, SolidFire Inc.
>>>>>>>>>> > e: mike.tutkowski@solidfire.com
>>>>>>>>>> > o: 303.746.7302
>>>>>>>>>> > Advancing the way the world uses the cloud™
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> *Mike Tutkowski*
>>>>>>>>> *Senior CloudStack Developer, SolidFire Inc.*
>>>>>>>>> e: mike.tutkowski@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.tutkowski@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.tutkowski@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.tutkowski@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.tutkowski@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.tutkowski@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.tutkowski@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.tutkowski@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.tutkowski@solidfire.com
o: 303.746.7302
Advancing the way the world uses the
cloud<http://solidfire.com/solution/overview/?video=play>
*™*

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message