Uploaded image for project: 'CloudStack'
  1. CloudStack
  2. CLOUDSTACK-4475

[ZWPS] attaching an uploaded volume to a VM is always going to first primary storage added

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 4.2.1
    • 4.4.0
    • Doc, Storage Controller
    • Security Level: Public (Anyone can view this level - this is the default.)
    • vmware esxi 5.1

    Description

      Steps to reproduce:
      ==============
      1. Have an advanced zone deployment with two cluster one host and one cluster scoped primary storage each
      2. add two more zone wide primary storages
      3. create a deployment on zone scoped primary storage
      4. upload a volume.
      5. attach uploaded volume to VM created in step 3.

      Observation:
      =========
      While attaching volume, volume is always copied to first available primary storage in the storage_pool table and as a result attaching a volume created on cluster scoped primary storage to a VM with its root volume on zone wide primary storage fails.

      mysql> select * from storage_pool;
      ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

      id name uuid pool_type port data_center_id pod_id cluster_id used_bytes capacity_bytes host_address user_info path created removed update_time status storage_provider_name scope hypervisor managed capacity_iops

      ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

      1 primaryclus1 722e6181-8497-3d31-9933-a0a267ae376c NetworkFilesystem 2049 1 1 1 1678552014848 5902284800000 10.147.28.7 NULL /export/home/talluri/vmware.campo/primary 2013-08-23 12:11:12 NULL NULL Maintenance DefaultPrimary CLUSTER NULL 0 NULL
      2 pimaryclu2 9fd9b0fc-c9fd-39b8-8d66-06372c5ff6d2 NetworkFilesystem 2049 1 1 2 1676566495232 5902284800000 10.147.28.7 NULL /export/home/talluri/vmware.campo/clus1primary 2013-08-23 12:18:14 NULL NULL Up DefaultPrimary CLUSTER NULL 0 NULL
      3 clus1p2 22e0c3fe-a390-38fa-8ff7-e1d965a36309 NetworkFilesystem 2049 1 1 1 1660903886848 5902284800000 10.147.28.7 NULL /export/home/talluri/vmware.campo/clus1p2 2013-08-23 14:30:32 NULL NULL Up DefaultPrimary CLUSTER NULL 0 NULL
      4 clus1p3 f2d9fb6b-c433-3c03-acf8-8f73eac48fae NetworkFilesystem 2049 1 1 1 1660901400576 5902284800000 10.147.28.7 NULL /export/home/talluri/vmware.campo/clus1p3 2013-08-23 14:31:05 NULL NULL Up DefaultPrimary CLUSTER NULL 0 NULL
      5 clus2p2 13bf579c-51f3-317b-893a-98ff6ca8f486 NetworkFilesystem 2049 1 1 2 1660900147200 5902284800000 10.147.28.7 NULL /export/home/talluri/vmware.campo/clus2p2 2013-08-23 14:31:38 NULL NULL Up DefaultPrimary CLUSTER NULL 0 NULL
      7 clus2p3 294ae9ff-cb02-33a0-8f31-21fdd8ff34db NetworkFilesystem 2049 1 1 2 1660894195712 5902284800000 10.147.28.7 NULL /export/home/talluri/vmware.campo/clus2p3 2013-08-23 14:33:03 NULL NULL Up DefaultPrimary CLUSTER NULL 0 NULL
      8 z1 035188ce-7269-3440-8090-8c13da2158ba NetworkFilesystem 2049 1 NULL NULL 1626954428416 5902284800000 10.147.28.7 NULL /export/home/talluri/vmware.campo/z1 2013-08-23 16:57:56 NULL NULL Up DefaultPrimary ZONE VMware 0 NULL
      9 z2 f0840b39-e42e-3e48-8c36-e9d121512efd NetworkFilesystem 2049 1 NULL NULL 1627066220544 5902284800000 10.147.28.7 NULL /export/home/talluri/vmware.campo/z2 2013-08-23 16:58:25 NULL NULL Up DefaultPrimary ZONE VMware 0 NULL

      ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
      8 rows in set (0.00 sec)

      attach volume command:

      ===START=== 10.101.255.7 – GET command=attachVolume&id=bcba9a9e-de07-433f-bbad-4a9a03d5283f&virtualMachineId=67dbcb09-dbe6-4b8d-892d-e0bb02eecca4&response=json&sessionkey=Kzq5%2F2XXjxGbr%2FF4ahPYYcgKZDU%3D&_=1377264362757
      2013-08-24 00:20:09,974 DEBUG [cloud.async.AsyncJobManagerImpl] (catalina-exec-19:null) submit async job-62 = [ 556e947b-98bf-4e8f-a3cd-80ba46cd9e9d ], details: AsyncJobVO {id:62, userId: 2, accountId: 2, sessionKey: null, instanceType: Volume, instanceId: 21, cmd: org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd, cmdOriginator: null, cmdInfo:

      {"response":"json","id":"bcba9a9e-de07-433f-bbad-4a9a03d5283f","sessionkey":"Kzq5/2XXjxGbr/F4ahPYYcgKZDU\u003d","cmdEventType":"VOLUME.ATTACH","ctxUserId":"2","virtualMachineId":"67dbcb09-dbe6-4b8d-892d-e0bb02eecca4","httpmethod":"GET","_":"1377264362757","ctxAccountId":"2","ctxStartEventId":"181"}

      , cmdVersion: 0, callbackType: 0, callbackAddress: null, status: 0, processStatus: 0, resultCode: 0, result: null, initMsid: 7363452993625, completeMsid: null, lastUpdated: null, lastPolled: null, created: null}
      2013-08-24 00:20:09,976 DEBUG [cloud.api.ApiServlet] (catalina-exec-19:null) ===END=== 10.101.255.7 – GET command=attachVolume&id=bcba9a9e-de07-433f-bbad-4a9a03d5283f&virtualMachineId=67dbcb09-dbe6-4b8d-892d-e0bb02eecca4&response=json&sessionkey=Kzq5%2F2XXjxGbr%2FF4ahPYYcgKZDU%3D&_=1377264362757
      2013-08-24 00:20:09,979 DEBUG [cloud.async.AsyncJobManagerImpl] (Job-Executor-62:job-62 = [ 556e947b-98bf-4e8f-a3cd-80ba46cd9e9d ]) Executing org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd for job-62 = [ 556e947b-98bf-4e8f-a3cd-80ba46cd9e9d ]
      2013-08-24 00:20:10,022 DEBUG [storage.allocator.LocalStoragePoolAllocator] (Job-Executor-62:job-62 = [ 556e947b-98bf-4e8f-a3cd-80ba46cd9e9d ]) LocalStoragePoolAllocator trying to find storage pool to fit the vm
      2013-08-24 00:20:10,023 DEBUG [storage.allocator.ClusterScopeStoragePoolAllocator] (Job-Executor-62:job-62 = [ 556e947b-98bf-4e8f-a3cd-80ba46cd9e9d ]) ClusterScopeStoragePoolAllocator looking for storage pool
      2013-08-24 00:20:10,024 DEBUG [storage.allocator.ClusterScopeStoragePoolAllocator] (Job-Executor-62:job-62 = [ 556e947b-98bf-4e8f-a3cd-80ba46cd9e9d ]) Looking for pools in dc: 1 pod:1 cluster:null
      2013-08-24 00:20:10,034 DEBUG [storage.allocator.AbstractStoragePoolAllocator] (Job-Executor-62:job-62 = [ 556e947b-98bf-4e8f-a3cd-80ba46cd9e9d ]) Checking if storage pool is suitable, name: null ,poolId: 2
      2013-08-24 00:20:10,040 DEBUG [cloud.storage.StorageManagerImpl] (Job-Executor-62:job-62 = [ 556e947b-98bf-4e8f-a3cd-80ba46cd9e9d ]) Checking pool 2 for storage, totalSize: 5902284800000, usedBytes: 4282525622272, usedPct: 0.725570820010583, disable threshold: 0.85
      2013-08-24 00:20:10,048 DEBUG [cloud.storage.StorageManagerImpl] (Job-Executor-62:job-62 = [ 556e947b-98bf-4e8f-a3cd-80ba46cd9e9d ]) Checking pool: 2 for volume allocation [Vol[21|vm=null|DATADISK]], maxSize : 11804569600000, totalAllocatedSize : 2097152000, askingSize : 2097152000, allocated disable threshold: 0.85
      2013-08-24 00:20:10,048 DEBUG [storage.allocator.ClusterScopeStoragePoolAllocator] (Job-Executor-62:job-62 = [ 556e947b-98bf-4e8f-a3cd-80ba46cd9e9d ]) FirstFitStoragePoolAllocator returning 1 suitable storage pools
      2013-08-24 00:20:10,078 DEBUG [storage.motion.AncientDataMotionStrategy] (Job-Executor-62:job-62 = [ 556e947b-98bf-4e8f-a3cd-80ba46cd9e9d ]) copyAsync inspecting src type VOLUME copyAsync inspecting dest type VOLUME
      2013-08-24 00:20:10,104 DEBUG [agent.transport.Request] (Job-Executor-62:job-62 = [ 556e947b-98bf-4e8f-a3cd-80ba46cd9e9d ]) Seq 3-1450508329: Sending { Cmd , MgmtId: 7363452993625, via: 3, Ver: v1, Flags: 100011, [{"org.apache.cloudstack.storage.command.CopyCommand":{"srcTO":{"org.apache.cloudstack.storage.to.VolumeObjectTO":{"uuid":"bcba9a9e-de07-433f-bbad-4a9a03d5283f","volumeType":"DATADISK","dataStore":{"com.cloud.agent.api.to.NfsTO":{"_url":"nfs://10.147.28.7/export/home/talluri/vmware.campo/secondary","_role":"Image"}},"name":"uv","size":2097152000,"path":"volumes/2/21/da6a4f3f-fd51-3a23-ac2e-53d584936e92.ova","volumeId":21,"accountId":2,"format":"OVA","id":21,"hypervisorType":"VMware"}},"destTO":{"org.apache.cloudstack.storage.to.VolumeObjectTO":{"uuid":"bcba9a9e-de07-433f-bbad-4a9a03d5283f","volumeType":"DATADISK","dataStore":{"org.apache.cloudstack.storage.to.PrimaryDataStoreTO":{"uuid":"9fd9b0fc-c9fd-39b8-8d66-06372c5ff6d2","id":2,"poolType":"NetworkFilesystem","host":"10.147.28.7","path":"/export/home/talluri/vmware.campo/clus1primary","port":2049}},"name":"uv","size":2097152000,"volumeId":21,"accountId":2,"format":"OVA","id":21,"hypervisorType":"VMware"}},"executeInSequence":false,"wait":10800}}] }

      Error:

      2013-08-24 00:21:00,632 DEBUG [agent.transport.Request] (Job-Executor-62:job-62 = [ 556e947b-98bf-4e8f-a3cd-80ba46cd9e9d ]) Seq 3-1450508329: Received: { Ans: , MgmtId: 7363452993625, via: 3, Ver: v1, Flags: 10,

      { CopyCmdAnswer }

      }
      2013-08-24 00:21:00,690 ERROR [cloud.async.AsyncJobManagerImpl] (Job-Executor-62:job-62 = [ 556e947b-98bf-4e8f-a3cd-80ba46cd9e9d ]) Unexpected exception while executing org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd
      com.cloud.utils.exception.CloudRuntimeException: Can't move volume between scope: CLUSTER and ZONE
      at com.cloud.storage.VolumeManagerImpl.needMoveVolume(VolumeManagerImpl.java:1596)
      at com.cloud.storage.VolumeManagerImpl.attachVolumeToVM(VolumeManagerImpl.java:1871)
      at com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
      at org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd.execute(AttachVolumeCmd.java:122)
      at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:158)
      at com.cloud.async.AsyncJobManagerImpl$1.run(AsyncJobManagerImpl.java:531)
      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:679)
      2013-08-24 00:21:00,692 DEBUG [cloud.async.AsyncJobManagerImpl] (Job-Executor-62:job-62 = [ 556e947b-98bf-4e8f-a3cd-80ba46cd9e9d ]) Complete async job-62 = [ 556e947b-98bf-4e8f-a3cd-80ba46cd9e9d ], jobStatus: 2, resultCode: 530, result: Error Code: 530 Error text: Can't move volume between scope: CLUSTER and ZONE

      Attachments

        Activity

          People

            anshulg Anshul Gangwar
            talluri Srikanteswararao Talluri
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: