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, 11 Oct 2013 19:07:08 GMT
We will also require iscsiadm to be present, which I believe is part of the
open-iscsi package on Ubuntu, so I guess what's another couple
dependencies. :)


On Fri, Oct 11, 2013 at 1:03 PM, Marcus Sorensen <shadowsor@gmail.com>wrote:

> Oops, that patch got cut off:
>
>
> diff --git a/debian/control b/debian/control
> index 46dd505..72a0fb1 100644
> --- a/debian/control
> +++ b/debian/control
> @@ -22,7 +22,7 @@ Description: CloudStack server library
>
>  Package: cloudstack-agent
>  Architecture: all
> -Depends: openjdk-6-jre | openjdk-7-jre, cloudstack-common (=
> ${source:Version}), lsb-base (>= 3.2), libcommons-daemon-java, libjna-java,
> openssh-client, libvirt0, sysvinit-utils, qemu-kvm, libvirt-bin,
> uuid-runtime, rsync, grep, iproute, perl-base, perl-modules, ebtables,
> vlan, wget, jsvc, ipset
> +Depends: openjdk-6-jre | openjdk-7-jre, cloudstack-common (=
> ${source:Version}), lsb-base (>= 3.2), libcommons-daemon-java, libjna-java,
> openssh-client, libvirt0, sysvinit-utils, qemu-kvm, libvirt-bin,
> uuid-runtime, rsync, grep, iproute, perl-base, perl-modules, ebtables,
> vlan, wget, jsvc, ipset, util-linux
>  Conflicts: cloud-agent, cloud-agent-libs, cloud-agent-deps,
> cloud-agent-scripts
>  Description: CloudStack agent
>   The CloudStack agent is in charge of managing shared computing resources
> in
> diff --git a/packaging/centos63/cloud.spec b/packaging/centos63/cloud.spec
> index 5f8a2a5..07127a4 100644
> --- a/packaging/centos63/cloud.spec
> +++ b/packaging/centos63/cloud.spec
> @@ -81,6 +81,7 @@ Requires: mkisofs
>  Requires: MySQL-python
>  Requires: python-paramiko
>  Requires: ipmitool
> +Requires: util-linux-ng
>  Requires: %{name}-common = %{_ver}
>  Requires: %{name}-awsapi = %{_ver}
>  Obsoletes: cloud-client < 4.1.0
>
>
> On Fri, Oct 11, 2013 at 1:02 PM, Marcus Sorensen <shadowsor@gmail.com>wrote:
>
>> Yes, blockdev is a part of the util-linux package, and all but a minimal
>> install should have it. To be safe, we could add 'util-linux' to the deb
>> requires and 'util-linux-ng' to the rpm requires for the agents. Something
>> like:
>>
>> diff --git a/debian/control b/debian/control
>> index 46dd505..72a0fb1 100644
>> --- a/debian/control
>> +++ b/debian/control
>> @@ -22,7 +22,7 @@ Description: CloudStack server library
>>
>>  Package: cloudstack-agent
>>  Architecture: all
>> -Depends: openjdk-6-jre | openjdk-7-jre, cloudstack-common (=
>> ${source:Version}), lsb-base (>= 3.2), libcommons-daemon-java, libjna-java,
>> openssh-client, libvirt0, sysvinit-utils, qemu-kvm, libvirt-bin
>> +Depends: openjdk-6-jre | openjdk-7-jre, cloudstack-common (=
>> ${source:Version}), lsb-base (>= 3.2), libcommons-daemon-java, libjna-java,
>> openssh-client, libvirt0, sysvinit-utils, qemu-kvm, libvirt-bin
>>  Conflicts: cloud-agent, cloud-agent-libs, cloud-agent-deps,
>> cloud-agent-scripts
>>  Description: CloudStack agent
>>   The CloudStack agent is in charge of managing shared computing
>> resources in
>> diff --git a/packaging/centos63/cloud.spec b/packaging/centos63/cloud.spec
>> index 5f8a2a5..07127a4 100644
>> --- a/packaging/centos63/cloud.spec
>> +++ b/packaging/centos63/cloud.spec
>> @@ -81,6 +81,7 @@ Requires: mkisofs
>>  Requires: MySQL-python
>>  Requires: python-paramiko
>>  Requires: ipmitool
>> +Requires: util-linux-ng
>>  Requires: %{name}-common = %{_ver}
>>  Requires: %{name}-awsapi = %{_ver}
>>  Obsoletes: cloud-client < 4.1.0
>>
>> If you wanted to be indepedent of that, you could use sysfs in a
>> roundabout way:
>>
>> marcus@marcus-bsdesk:~/code$ ls -l
>> /dev/disk/by-path/pci-0000\:00\:1f.2-scsi-0\:0\:0\:0
>> lrwxrwxrwx 1 root root 9 Oct  7 09:25
>> /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 -> ../../sdc
>>
>> we are pointing to /dev/sdc
>>
>> marcus@marcus-bsdesk:~/code$ cat /sys/block/sdc/size
>> 5860533168
>> *size in sectors*
>>
>> marcus@marcus-bsdesk:~/code$ cat /sys/block/sdc/queue/hw_sector_size
>> 512
>>
>> 5860533168 * 512 = 3000592982016
>>
>> compared to:
>> marcus@marcus-bsdesk:~/code$ sudo blockdev --getsize64 /dev/sdc
>> 3000592982016
>>
>>
>>
>>
>>
>>
>>
>>
>> On Fri, Oct 11, 2013 at 12:36 PM, Mike Tutkowski <
>> mike.tutkowski@solidfire.com> wrote:
>>
>>> Hey Marcus,
>>>
>>> What do you think about me running the following to get the device size
>>> for my PhysicalDisk instances?
>>>
>>> "blockdev --getsize64 /dev/disk/by-path/ip-" + host + "-iscsi-" + iqn +
>>> "-lun-0
>>>
>>> That should work on whatever platforms the KVM agent runs (mainly Ubuntu
>>> and CentOS), right?
>>>
>>> Thanks
>>>
>>>
>>> On Thu, Oct 10, 2013 at 7:56 PM, Mike Tutkowski <
>>> mike.tutkowski@solidfire.com> wrote:
>>>
>>>> I made a bunch of updates, Marcus:
>>>>
>>>>
>>>> https://github.com/mike-tutkowski/incubator-cloudstack/commit/c13442eaa228a5ae37d3b13f6c98636de158a908
>>>>
>>>>
>>>> On Thu, Oct 10, 2013 at 4:40 PM, Mike Tutkowski <
>>>> mike.tutkowski@solidfire.com> wrote:
>>>>
>>>>> Hey Marcus,
>>>>>
>>>>> I haven't had a chance to test this yet, but I thought you might be
>>>>> interested in the merge of your work with mine.
>>>>>
>>>>> I've also replaced the direct CHAP parameters with a Map<String,
>>>>> String> (which currently only stores the CHAP credentials, but could be
>>>>> used for more in the future).
>>>>>
>>>>> I still have a bit of work to do around the getPhysicalDisk method,
>>>>> but this should give you a good idea of where we're at:
>>>>>
>>>>>
>>>>> https://github.com/mike-tutkowski/incubator-cloudstack/commit/30433a20d1707ea1870024e80732bcfdbd64f69a
>>>>>
>>>>> Talk to you later
>>>>>
>>>>>
>>>>> On Wed, Oct 9, 2013 at 3:52 PM, Mike Tutkowski <
>>>>> mike.tutkowski@solidfire.com> wrote:
>>>>>
>>>>>> I've got the code all merged, by the way.
>>>>>>
>>>>>> I should be able to start in on testing soon (tonight or tomorrow).
>>>>>>
>>>>>>
>>>>>> On Wed, Oct 9, 2013 at 3:51 PM, Mike Tutkowski <
>>>>>> mike.tutkowski@solidfire.com> wrote:
>>>>>>
>>>>>>> Will do...I'll remove it (there is similar code in two methods).
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Oct 9, 2013 at 3:49 PM, Marcus Sorensen <shadowsor@gmail.com
>>>>>>> > wrote:
>>>>>>>
>>>>>>>> Yeah, that looks like leftovers from refactoring our 4.1 code into
>>>>>>>> 4.2 and making it something more generic. It looks like it could be removed.
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Oct 9, 2013 at 3:40 PM, Mike Tutkowski <
>>>>>>>> mike.tutkowski@solidfire.com> wrote:
>>>>>>>>
>>>>>>>>> Hey Marcus,
>>>>>>>>>
>>>>>>>>> I'm merging your changes into mine.
>>>>>>>>>
>>>>>>>>> It looks like I can remove your call to getPhysicalDisk (below)
>>>>>>>>> (and the associated KVMPhysicalDisk variable, as well).
>>>>>>>>>
>>>>>>>>> I assume you would never want to produce any side effects in your
>>>>>>>>> getPhysicalDisk implementation, right? Seems like that would be unintuitive.
>>>>>>>>>
>>>>>>>>>     public boolean connectPhysicalDisksViaVmSpec(VirtualMachineTO
>>>>>>>>> vmSpec) {
>>>>>>>>>
>>>>>>>>>         boolean result = false;
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>         final String vmName = vmSpec.getName();
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>         List<DiskTO> disks = Arrays.asList(vmSpec.getDisks());
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>         for (DiskTO disk : disks) {
>>>>>>>>>
>>>>>>>>>             KVMPhysicalDisk physicalDisk = null;
>>>>>>>>>
>>>>>>>>>             KVMStoragePool pool = null;
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>             if (disk.getType() != Volume.Type.ISO) {
>>>>>>>>>
>>>>>>>>>                 VolumeObjectTO vol = (VolumeObjectTO)
>>>>>>>>> disk.getData();
>>>>>>>>>
>>>>>>>>>                 PrimaryDataStoreTO store = (PrimaryDataStoreTO)
>>>>>>>>> vol.getDataStore();
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>                 pool = getStoragePool(store.getPoolType(),
>>>>>>>>> store.getUuid());
>>>>>>>>>
>>>>>>>>>                 physicalDisk = pool.getPhysicalDisk(vol.getPath());
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>                 StorageAdaptor adaptor =
>>>>>>>>> getStorageAdaptor(pool.getType());
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>                 result =
>>>>>>>>> adaptor.connectPhysicalDisk(vol.getPath(), pool);
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>                 if (! result) {
>>>>>>>>>
>>>>>>>>>                     s_logger.error("Failed to connect disks via
>>>>>>>>> vm spec for vm:" + vmName + " volume:" + vol.toString());
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>                     return result;
>>>>>>>>>
>>>>>>>>>                 }
>>>>>>>>>
>>>>>>>>>             }
>>>>>>>>>
>>>>>>>>>         }
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>         return result;
>>>>>>>>>
>>>>>>>>>     }
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Wed, Oct 9, 2013 at 12:01 AM, Mike Tutkowski <
>>>>>>>>> mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>
>>>>>>>>>> Excellent...that template worked like a charm.
>>>>>>>>>>
>>>>>>>>>> Thanks!
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Tue, Oct 8, 2013 at 11:50 PM, Mike Tutkowski <
>>>>>>>>>> mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Perfect
>>>>>>>>>>>
>>>>>>>>>>> Almost done downloading...I'll give it a try in a moment.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Tue, Oct 8, 2013 at 11:47 PM, Marcus Sorensen <
>>>>>>>>>>> shadowsor@gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Not password enabled, root password is just 'password'. I
>>>>>>>>>>>> mainly just use it for devcloud-kvm testing.
>>>>>>>>>>>>  On Oct 8, 2013 11:45 PM, "Mike Tutkowski" <
>>>>>>>>>>>> mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Great - thanks!
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Tue, Oct 8, 2013 at 11:38 PM, Marcus Sorensen <
>>>>>>>>>>>>> shadowsor@gmail.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Use my tiny centos image. I'm not sure what's up with that
>>>>>>>>>>>>>> crufty old default centos template.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Register this qcow2 template:
>>>>>>>>>>>>>> http://marcus.mlsorensen.com/cloudstack-extras/tiny-centos-63.qcow2
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Needs a service offering with at least 192MB to run.
>>>>>>>>>>>>>> On Oct 8, 2013 11:36 PM, "Mike Tutkowski" <
>>>>>>>>>>>>>> mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Perhaps you might know something about this, Marcus.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> My instance suffers a Kernel panic while booting up.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I'm just using the built-in KVM template (CentOS
>>>>>>>>>>>>>>> 5.5(64-bit) no GUI (KVM)) with 1 CPU and 512 MB memory.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> http://i.imgur.com/QuPH2Ub.png
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I tried to just use an ISO instead, but apparently that
>>>>>>>>>>>>>>> functionality is broken, as well (related to Disk Offerings).
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Tue, Oct 8, 2013 at 10:39 PM, Mike Tutkowski <
>>>>>>>>>>>>>>> mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> OK, all is good now.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I have both system VMs up and running and the Agent States
>>>>>>>>>>>>>>>> read as "Up," as well.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On Tue, Oct 8, 2013 at 9:50 PM, Mike Tutkowski <
>>>>>>>>>>>>>>>> mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> I believe we've been down this road before:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> 2013-10-09 03:47:41,281 ERROR [cloud.agent.AgentShell]
>>>>>>>>>>>>>>>>> (main:null) Unable to start agent: Resource class not found:
>>>>>>>>>>>>>>>>> com.cloud.storage.resource.PremiumSecondaryStorageResource due to:
>>>>>>>>>>>>>>>>> java.lang.ClassNotFoundException:
>>>>>>>>>>>>>>>>> com.cloud.storage.resource.PremiumSecondaryStorageResource
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> The solution was to compile without -Dnoredist.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> I will try that now.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> On Tue, Oct 8, 2013 at 9:36 PM, Marcus Sorensen <
>>>>>>>>>>>>>>>>> shadowsor@gmail.com> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> You may be able to find a stack trace for the java
>>>>>>>>>>>>>>>>>> process in /var/log/cloud or the messages file, on the system vm.
>>>>>>>>>>>>>>>>>>  On Oct 8, 2013 9:21 PM, "Mike Tutkowski" <
>>>>>>>>>>>>>>>>>> mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Interesting...I ran the following:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> /usr/local/cloud/systemvm/ssvm-check.sh
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> It says the Java process is not running.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> This is the KVM system template I'm using:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> http://download.cloud.com/templates/4.2/systemvmtemplate-2013-06-12-master-kvm.qcow2.bz2
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> I just picked the one that was referenced in the
>>>>>>>>>>>>>>>>>>> VM_Template table in 4.3.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> On Tue, Oct 8, 2013 at 9:05 PM, Mike Tutkowski <
>>>>>>>>>>>>>>>>>>> mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Found it.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> As an FYI, this is the doc I was referring to:
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> https://cwiki.apache.org/confluence/display/CLOUDSTACK/SSVM%2C+templates%2C+Secondary+storage+troubleshooting
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> On Tue, Oct 8, 2013 at 9:04 PM, Mike Tutkowski <
>>>>>>>>>>>>>>>>>>>> mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> CS MS can ping the SSVM's public IP address.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> SSVM can ping CS MS.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>  I think we had a nice debug document for SSVM
>>>>>>>>>>>>>>>>>>>>> mentioned on a CS e-mail...I'll try to find it.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> On Tue, Oct 8, 2013 at 8:29 PM, Marcus Sorensen <
>>>>>>>>>>>>>>>>>>>>> shadowsor@gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> You could start by trying to ping them from mgmt
>>>>>>>>>>>>>>>>>>>>>> server, or trying to VNC to them if the OS isn't up. I'm assuming you
>>>>>>>>>>>>>>>>>>>>>> prepped a current system vm template (maybe you're even reusing a secondary
>>>>>>>>>>>>>>>>>>>>>> storage). If you can ping their 169.254 addresses, you can "cloudstack-ssh
>>>>>>>>>>>>>>>>>>>>>> 169.254.x.x" as root on the kvm host to get in
>>>>>>>>>>>>>>>>>>>>>>  On Oct 8, 2013 7:31 PM, "Mike Tutkowski" <
>>>>>>>>>>>>>>>>>>>>>> mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Looks like I'll have to dig up that doc on debugging
>>>>>>>>>>>>>>>>>>>>>>> SSVM...it's been about 30 mins since the VMs came up.
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> On Tue, Oct 8, 2013 at 7:29 PM, Marcus Sorensen <
>>>>>>>>>>>>>>>>>>>>>>> shadowsor@gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> You may just have to wait a bit. That means the VMS
>>>>>>>>>>>>>>>>>>>>>>>> are started but the services aren't up. Usually takes 5-10 min to get both
>>>>>>>>>>>>>>>>>>>>>>>> up in my fusion vm. If that doesn't get better you may have to log into the
>>>>>>>>>>>>>>>>>>>>>>>> system VMS and see what's going on.
>>>>>>>>>>>>>>>>>>>>>>>>  On Oct 8, 2013 7:25 PM, "Mike Tutkowski" <
>>>>>>>>>>>>>>>>>>>>>>>> mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> Doh! I didn't restart the necessary service after
>>>>>>>>>>>>>>>>>>>>>>>>> exporting my NFS share.
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> The system VMs come up now; however, SSVM has a
>>>>>>>>>>>>>>>>>>>>>>>>> dash (-) for its Agent State and the CS MS console keeps printing out the
>>>>>>>>>>>>>>>>>>>>>>>>> following:
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> INFO  [o.a.c.s.e.DefaultEndPointSelector]
>>>>>>>>>>>>>>>>>>>>>>>>> (StatsCollector-3:ctx-018adc41) No running ssvm is found, so command will
>>>>>>>>>>>>>>>>>>>>>>>>> be sent to LocalHostEndPoint
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> On Tue, Oct 8, 2013 at 4:35 PM, Marcus Sorensen <
>>>>>>>>>>>>>>>>>>>>>>>>> shadowsor@gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> Can you mount the secondary storage from your KVM
>>>>>>>>>>>>>>>>>>>>>>>>>> host?
>>>>>>>>>>>>>>>>>>>>>>>>>> On Oct 8, 2013 4:01 PM, "Mike Tutkowski" <
>>>>>>>>>>>>>>>>>>>>>>>>>> mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> Although the host is added to KVM, I do see the
>>>>>>>>>>>>>>>>>>>>>>>>>>> following issues in the CS MS console (any thoughts on this?):
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> WARN  [c.c.u.d.Merovingian2]
>>>>>>>>>>>>>>>>>>>>>>>>>>> (secstorage-1:ctx-c1c573ee) Was unable to find lock for the key
>>>>>>>>>>>>>>>>>>>>>>>>>>> template_spool_ref2 and thread id 2049868806
>>>>>>>>>>>>>>>>>>>>>>>>>>> INFO  [c.c.v.VirtualMachineManagerImpl]
>>>>>>>>>>>>>>>>>>>>>>>>>>> (secstorage-1:ctx-c1c573ee) Unable to contact resource.
>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.exception.StorageUnavailableException:
>>>>>>>>>>>>>>>>>>>>>>>>>>> Resource [StoragePool:1] is unreachable: Unable to create
>>>>>>>>>>>>>>>>>>>>>>>>>>> Vol[1|vm=1|ROOT]:com.cloud.utils.exception.CloudRuntimeException:
>>>>>>>>>>>>>>>>>>>>>>>>>>> org.libvirt.LibvirtException: internal error Child process (/bin/mount
>>>>>>>>>>>>>>>>>>>>>>>>>>> 192.168.233.10:/mnt/secondary/template/tmpl/1/3
>>>>>>>>>>>>>>>>>>>>>>>>>>> /mnt/334b3c4e-764b-362a-be2c-ebe8c490d0a9) status unexpected: exit status 32
>>>>>>>>>>>>>>>>>>>>>>>>>>>  at
>>>>>>>>>>>>>>>>>>>>>>>>>>> org.apache.cloudstack.engine.orchestration.VolumeOrchestrator.recreateVolume(VolumeOrchestrator.java:1027)
>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>> org.apache.cloudstack.engine.orchestration.VolumeOrchestrator.prepare(VolumeOrchestrator.java:1069)
>>>>>>>>>>>>>>>>>>>>>>>>>>>  at
>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.vm.VirtualMachineManagerImpl.advanceStart(VirtualMachineManagerImpl.java:830)
>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.vm.VirtualMachineManagerImpl.advanceStart(VirtualMachineManagerImpl.java:649)
>>>>>>>>>>>>>>>>>>>>>>>>>>>  at
>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.storage.secondary.SecondaryStorageManagerImpl.startSecStorageVm(SecondaryStorageManagerImpl.java:261)
>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.storage.secondary.SecondaryStorageManagerImpl.allocCapacity(SecondaryStorageManagerImpl.java:693)
>>>>>>>>>>>>>>>>>>>>>>>>>>>  at
>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.storage.secondary.SecondaryStorageManagerImpl.expandPool(SecondaryStorageManagerImpl.java:1265)
>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.secstorage.PremiumSecondaryStorageManagerImpl.scanPool(PremiumSecondaryStorageManagerImpl.java:123)
>>>>>>>>>>>>>>>>>>>>>>>>>>>  at
>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.secstorage.PremiumSecondaryStorageManagerImpl.scanPool(PremiumSecondaryStorageManagerImpl.java:50)
>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.vm.SystemVmLoadScanner.loadScan(SystemVmLoadScanner.java:101)
>>>>>>>>>>>>>>>>>>>>>>>>>>>  at
>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.vm.SystemVmLoadScanner.access$100(SystemVmLoadScanner.java:33)
>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.vm.SystemVmLoadScanner$1.reallyRun(SystemVmLoadScanner.java:78)
>>>>>>>>>>>>>>>>>>>>>>>>>>>  at
>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.vm.SystemVmLoadScanner$1.runInContext(SystemVmLoadScanner.java:71)
>>>>>>>>>>>>>>>>>>>>>>>>>>> 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.runAndReset(FutureTask.java:304)
>>>>>>>>>>>>>>>>>>>>>>>>>>>  at
>>>>>>>>>>>>>>>>>>>>>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
>>>>>>>>>>>>>>>>>>>>>>>>>>>  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)
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> On Tue, Oct 8, 2013 at 3:58 PM, Mike Tutkowski <
>>>>>>>>>>>>>>>>>>>>>>>>>>> mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> So...got some good news:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> I spent a couple hours setting up a KVM
>>>>>>>>>>>>>>>>>>>>>>>>>>>> environment on Ubuntu 12.04.1 from scratch (Installing SSH, Open iSCSI,
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Java 7, KVM, Git, CloudStack, CloudStack DEBs, KVM system template, etc.)
>>>>>>>>>>>>>>>>>>>>>>>>>>>> and I can now add this KVM host to CloudStack (on a related note, no errors
>>>>>>>>>>>>>>>>>>>>>>>>>>>> in agent.err either).
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> I have no idea what is messed up with my old
>>>>>>>>>>>>>>>>>>>>>>>>>>>> KVM install on Ubuntu, but the new one works.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> That being the case, I can close out the JIRA
>>>>>>>>>>>>>>>>>>>>>>>>>>>> ticket I logged a while back and start integrating your code into mine.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> On Mon, Oct 7, 2013 at 7:46 PM, Mike Tutkowski
>>>>>>>>>>>>>>>>>>>>>>>>>>>> <mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Right...yeah, I didn't mean we'd commit to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 4.2, but maybe I should work off of 4.2 since master seems to be un-stable
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> in this regard.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I plan to set up a machine in the lab tomorrow
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> with Ubuntu 12.04 from scratch to see if it works when I start clean, but -
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> if it doesn't - I should just use 4.2 for development.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On Mon, Oct 7, 2013 at 7:05 PM, Marcus
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sorensen <shadowsor@gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> We can't. This patch will never see 4.2. You
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> can still start working on your plugin on 4.2, but the change represented
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> by this patch can only go into master.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  On Oct 7, 2013 5:01 PM, "Mike Tutkowski" <
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> So, now that I'm getting back to this, do
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> you think I should just try to make this work with 4.2 (like we originally
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> talked about)?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I updated again from master, rebuilt,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> redeployed DEBs and still get this JNA error message:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> log4j:WARN No appenders could be found for
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> logger (org.apache.commons.httpclient.params.DefaultHttpParams).
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> log4j:WARN Please initialize the log4j
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> system properly.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> log4j:WARN See
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> http://logging.apache.org/log4j/1.2/faq.html#noconfigfor more info.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> java.lang.reflect.InvocationTargetException
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> java.lang.reflect.Method.invoke(Method.java:606)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> org.apache.commons.daemon.support.DaemonLoader.start(DaemonLoader.java:243)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Caused by: java.lang.UnsatisfiedLinkError:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Can't obtain updateLastError method for class com.sun.jna.Native
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  at com.sun.jna.Native.initIDs(Native
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Method)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> com.sun.jna.Native.<clinit>(Native.java:139)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at org.libvirt.jna.Libvirt.<clinit>(Unknown
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Source)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  at org.libvirt.Library.<clinit>(Unknown
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Source)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at org.libvirt.Connect.<init>(Unknown Source)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.hypervisor.kvm.resource.LibvirtConnection.getConnection(LibvirtConnection.java:44)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.hypervisor.kvm.resource.LibvirtConnection.getConnection(LibvirtConnection.java:37)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.hypervisor.kvm.resource.LibvirtComputingResource.configure(LibvirtComputingResource.java:733)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.agent.Agent.<init>(Agent.java:161)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.agent.AgentShell.launchAgent(AgentShell.java:415)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.agent.AgentShell.launchAgentFromClassInfo(AgentShell.java:370)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.agent.AgentShell.launchAgent(AgentShell.java:351)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.agent.AgentShell.start(AgentShell.java:448)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  ... 5 more
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Cannot start daemon
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Service exit with a return value of 5
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On Mon, Oct 7, 2013 at 2:31 PM, Mike
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Tutkowski <mike.tutkowski@solidfire.com>wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sure, that's a good plan.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I'll get to it.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On Mon, Oct 7, 2013 at 2:29 PM, Marcus
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sorensen <shadowsor@gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I know you mentioned you might need some
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> minor changes to it, as well as other minor changes just for master (attach
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> volume switched to pool vs adapter or something). My hope was that you
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> would be able to send an update that works for your plugin on master, I'll
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> test against existing libvirtd storage and apply it.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  On Oct 7, 2013 1:49 PM, "Mike Tutkowski"
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <mike.tutkowski@solidfire.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    This is an automatically generated
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> e-mail. To reply, visit:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> https://reviews.apache.org/r/14381/
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> This looks reasonable to me, Marcus.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> When do you think you might start the process of getting this into master?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - Mike Tutkowski
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On September 30th, 2013, 5:14 p.m. UTC,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Marcus Sorensen wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>   Review request for cloudstack, edison
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> su and Mike Tutkowski.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> By Marcus Sorensen.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> *Updated Sept. 30, 2013, 5:14 p.m.*
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  *Repository: * cloudstack-git
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Description
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> With custom storage plugins comes the need to prep the KVM host prior to utilizing the disks. e.g. an iscsi initiator needs to log into the target and scan for the lun before it can be used on the host. This patch is an example I developed against 4.2, minor changes may be necessary to apply to master, but I want to share with others who are working on storage so they can ensure it works for them. Please tweak as you see fit.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> MigrateCommand: pass vmTO object so we can see which disks/storage pool types belong to the vm when migrating a VM. This facilitates being able to call disconnectPhysicalDisksViaVmSpec
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> VirtualMachineManagerImpl: pass VirtualMachineTO when migrating so that we can see which disks belong to the VM and what storage pools/adaptors should be used
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> LibvirtComputingResource: add calls KVMStoragePoolManager's connectPhysicalDiskViaVmSpec and disconnectPhysicalDiskViaVmSpec calls where appropriate (when starting a vm, migrating a vm). Ensure that we create 'raw' format XML disk definitions when the storage format is RAW. Move cleanupDisk logic to storage adaptors so that each adaptor type can clean up its disks in is own way.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> KVMStoragePoolManager:  add connectPhysicalDisk, disconnectPhysicalDisk, connectPhysicalDiskViaVmSpec, disconnectPhysicalDiskViaVmSpec, disconnectPhysicalDiskByPath. These all call the specific StorageAdaptor's connectPhysicalDisk, disconnectPhysicalDisk, or disconnectPhysicalDiskByPath calls.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> KVMStorageProcessor: Call connectPhysicalDisk/disconnectPhysicalDisk on the storage adaptor. Whether or not this is implemented is up to the storage adaptor.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> LibvirtStorageAdaptor: implement dummy connectPhysicalDisk/disconnectPhysicalDisk, move cleanupDisk logic from LibvirtComputingResource to disconnectPhysicalDiskByPath
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> StorageAdaptor: define connectPhysicalDisk/disconnectPhysicalDisk/disconnectPhysicalDiskByPath in the interface
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>   Testing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Basic testing with my storage adaptor
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>   Diffs
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    - core/src/com/cloud/agent/api/MigrateCommand.java
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    (5042b8c)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    - plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    (3ee811f)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    - plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    (e09c9ba)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    - plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    (c69f9b0)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    - plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    (123a9f1)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    - plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    (4956d8d)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    - server/src/com/cloud/vm/VirtualMachineManagerImpl.java
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    (d46bbb0)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> View Diff<https://reviews.apache.org/r/14381/diff/>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> *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>
>>>>>>>>>>>>>>>>>>>> *™*
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>> *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>
>>>>>>> *™*
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> *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