cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marcus Sorensen <shadow...@gmail.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 Thu, 24 Oct 2013 04:40:16 GMT
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™

Mime
View raw message