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 <shadow...@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.tutkow...@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 <shadow...@gmail.com>
> > wrote:
> >>
> >> That's right. All should be well.
> >>
> >> On Oct 22, 2013 6:03 PM, "Mike Tutkowski" <mike.tutkow...@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.tutkow...@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.tutkow...@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 <
> shadow...@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.tutkow...@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.tutkow...@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.tutkow...@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
> >>>>>> >>> <shadow...@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.tutkow...@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.tutkow...@solidfire.com
> >>>>>> >>> o: 303.746.7302
> >>>>>> >>> Advancing the way the world uses the cloud™
> >>>>>> >>
> >>>>>> >>
> >>>>>> >>
> >>>>>> >>
> >>>>>> >> --
> >>>>>> >> Mike Tutkowski
> >>>>>> >> Senior CloudStack Developer, SolidFire Inc.
> >>>>>> >> e: mike.tutkow...@solidfire.com
> >>>>>> >> o: 303.746.7302
> >>>>>> >> Advancing the way the world uses the cloud™
> >>>>>> >
> >>>>>> >
> >>>>>> >
> >>>>>> >
> >>>>>> > --
> >>>>>> > Mike Tutkowski
> >>>>>> > Senior CloudStack Developer, SolidFire Inc.
> >>>>>> > e: mike.tutkow...@solidfire.com
> >>>>>> > o: 303.746.7302
> >>>>>> > Advancing the way the world uses the cloud™
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> Mike Tutkowski
> >>>>> Senior CloudStack Developer, SolidFire Inc.
> >>>>> e: mike.tutkow...@solidfire.com
> >>>>> o: 303.746.7302
> >>>>> Advancing the way the world uses the cloud™
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> Mike Tutkowski
> >>>> Senior CloudStack Developer, SolidFire Inc.
> >>>> e: mike.tutkow...@solidfire.com
> >>>> o: 303.746.7302
> >>>> Advancing the way the world uses the cloud™
> >>>
> >>>
> >>>
> >>>
> >>> --
> >>> Mike Tutkowski
> >>> Senior CloudStack Developer, SolidFire Inc.
> >>> e: mike.tutkow...@solidfire.com
> >>> o: 303.746.7302
> >>> Advancing the way the world uses the cloud™
> >
> >
> >
> >
> > --
> > Mike Tutkowski
> > Senior CloudStack Developer, SolidFire Inc.
> > e: mike.tutkow...@solidfire.com
> > o: 303.746.7302
> > Advancing the way the world uses the cloud™
>



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

Reply via email to