[
https://issues.apache.org/jira/browse/CLOUDSTACK-6146?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13912580#comment-13912580
]
ASF subversion and git services commented on CLOUDSTACK-6146:
-------------------------------------------------------------
Commit c652ff45dffaafa1cb0de29103e90fe936382028 in cloudstack's branch
refs/heads/4.3-forward from [~likithas]
[ https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;h=c652ff4 ]
CLOUDSTACK-6146. [VMware] [ESXi 5.5] Live storage migration of an already
migrated volume fails
In vCenter 5.5, once a volume is migrated the VMDKs are renamed to match the
name of the VM.
If a volume has been renamed upon migration update its volumePath to that of
the new disk filename.
> subsequent migration fails as cloud stack renames files after 1st migration
> ---------------------------------------------------------------------------
>
> Key: CLOUDSTACK-6146
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-6146
> Project: CloudStack
> Issue Type: Bug
> Security Level: Public(Anyone can view this level - this is the
> default.)
> Affects Versions: 4.3.0
> Environment: ESXi 5.5
> Reporter: praveena palaniswamy
> Assignee: Likitha Shetty
> Priority: Critical
> Fix For: 4.3.0
>
>
> CLoudplatform/Cloudstack, renames the files after first successful migration
> and therefore, subsequent migration fails. This happens with
> CloudPlatform 4.3
> Hypervisor: ESXi5.5
> 1. File name gets renamed after migration, which inturn fails subsequent
> migrations (CLOUDSTACK issue)
> a. Before migration of data disk the contents of VM folder can be seen
> below
> [root@host148 i-2-3-VM]# ls -l
> total 40060
> -rw-------. 1 root root 3221225472 Feb 13 2014
> 7868703c4e8345a58d568ece092baa0e-flat.vmdk
> -rw-------. 1 root root 518 Feb 13 06:05
> 7868703c4e8345a58d568ece092baa0e.vmdk
> [root@host148 i-2-3-VM]#
> b. After migration, cloudstack renames the file name
> 7868703c4e8345a58d568ece092baa0e.vmdk to i-2-3-VM_2.vmdk
> [root@host148 i-2-3-VM]# ls -l
> total 19072
> -rw-------. 1 root root 3221225472 Feb 13 2014 i-2-3-VM_2-flat.vmdk
> -rw-------. 1 root root 519 Feb 13 2014 i-2-3-VM_2.vmdk
> [root@host148 i-2-3-VM]#
> c. So when we call the migration for the second time, cloudstack looks for
> the file “7868703c4e8345a58d568ece092baa0e.vmdk” and it does not find it and
> migration fails.
> d. Be it from netapp to non-netapp, or netapp to netapp, all the
> subsequent migration fails with the following message
> 2014-02-13 06:17:57,399 ERROR [c.c.h.v.r.VmwareResource]
> (DirectAgent-415:ctx-33da787a 10.61.166.68) Catch Exception
> java.lang.Exception due to java.lang.Exception: No such disk device:
> 7868703c4e8345a58d568ece092baa0e.vmdk
> java.lang.Exception: No such disk device:
> 7868703c4e8345a58d568ece092baa0e.vmdk
> at
> com.cloud.hypervisor.vmware.resource.VmwareResource.getVirtualDiskInfo(VmwareResource.java:4420)
> at
> com.cloud.hypervisor.vmware.resource.VmwareResource.execute(VmwareResource.java:4397)
> at
> com.cloud.hypervisor.vmware.resource.VmwareResource.executeRequest(VmwareResource.java:454)
> at
> com.cloud.agent.manager.DirectAgentAttache$Task.runInContext(DirectAgentAttache.java:216)
> 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$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:722)
> 2014-02-13 06:17:57,400 DEBUG [c.c.a.m.DirectAgentAttache]
> (DirectAgent-415:ctx-33da787a) Seq 1-2016020265: Response Received:
> 2014-02-13 06:17:57,401 DEBUG [c.c.a.t.Request]
> (DirectAgent-415:ctx-33da787a) Seq 1-2016020265: Processing: { Ans: ,
> MgmtId: 52230907924, via: 1, Ver: v1, Flags: 110,
> [{"com.cloud.agent.api.storage.MigrateVolumeAnswer":{"result":false,"details":"Catch
> Exception java.lang.Exception due to java.lang.Exception: No such disk
> device: 7868703c4e8345a58d568ece092baa0e.vmdk","wait":0}}] }
> 2014-02-13 06:17:57,401 DEBUG [c.c.a.t.Request] (Job-Executor-7:ctx-5972265e
> ctx-d2079367) Seq 1-2016020265: Received: { Ans: , MgmtId: 52230907924, via:
> 1, Ver: v1, Flags: 110, { MigrateVolumeAnswer } }
> 2014-02-13 06:17:57,401 DEBUG [o.a.c.s.m.AncientDataMotionStrategy]
> (Job-Executor-7:ctx-5972265e ctx-d2079367) copy failed
> com.cloud.utils.exception.CloudRuntimeException: Failed to migrate volume
> org.apache.cloudstack.storage.volume.VolumeObject@70240ea0 to storage pool
> org.apache.cloudstack.storage.datastore.PrimaryDataStoreImpl@4f3c63e4
> at
> org.apache.cloudstack.storage.motion.AncientDataMotionStrategy.migrateVolumeToPool(AncientDataMotionStrategy.java:386)
> at
> org.apache.cloudstack.storage.motion.AncientDataMotionStrategy.copyAsync(AncientDataMotionStrategy.java:421)
> at
> org.apache.cloudstack.storage.motion.DataMotionServiceImpl.copyAsync(DataMotionServiceImpl.java:70)
> at
> org.apache.cloudstack.storage.volume.VolumeServiceImpl.migrateVolume(VolumeServiceImpl.java:931)
> at
> com.cloud.storage.VolumeApiServiceImpl.liveMigrateVolume(VolumeApiServiceImpl.java:1680)
> at
> com.cloud.storage.VolumeApiServiceImpl.orchestrateMigrateVolume(VolumeApiServiceImpl.java:1666)
> at
> com.cloud.storage.VolumeApiServiceImpl.migrateVolume(VolumeApiServiceImpl.java:1622)
> 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:601)
> at
> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
> at
> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
> at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
> at
> org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)
> at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
> at
> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
> at $Proxy196.migrateVolume(Unknown Source)
> at
> org.apache.cloudstack.api.command.user.volume.MigrateVolumeCmd.execute(MigrateVolumeCmd.java:103)
> 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$5.runInContext(AsyncJobManagerImpl.java:526)
> 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$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:722)
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)