[
https://issues.apache.org/jira/browse/CLOUDSTACK-4475?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13754953#comment-13754953
]
edison su commented on CLOUDSTACK-4475:
---------------------------------------
The main issue of this bug is: if cluster primary storage and zone wide primary
storage are mixed together, the data disk by default will be created on cluster
wide primary storage. If admin wants data disk been created on zone wide
primary storage, then need to create a disk offering with the tag on zone wide
primary storage.
> [ZWPS] attaching an uploaded volume to a VM is always going to first primary
> storage added
> ------------------------------------------------------------------------------------------
>
> Key: CLOUDSTACK-4475
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-4475
> Project: CloudStack
> Issue Type: Bug
> Security Level: Public(Anyone can view this level - this is the
> default.)
> Components: Doc, Storage Controller
> Affects Versions: 4.2.1
> Environment: vmware esxi 5.1
> Reporter: Srikanteswararao Talluri
> Assignee: edison su
> Labels: ReleaseNote
> Fix For: 4.2.1
>
>
> 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
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira