[ 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)