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 Thu, 24 Oct 2013 04:47:07 GMT
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>
*™*

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