You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cloudstack.apache.org by Yoshikazu Nojima <ma...@ynojima.net> on 2014/03/20 05:56:36 UTC
Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/
-----------------------------------------------------------
Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
Bugs: CLOUDSTACK-6191
https://issues.apache.org/jira/browse/CLOUDSTACK-6191
Repository: cloudstack-git
Description
-------
purpose:
Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
Scope:
First, start with KVM+NFS installation.
Leave rooms to support other hypervisors.
For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
Diffs
-----
api/src/com/cloud/offering/DiskOffering.java 4641b9a
api/src/com/cloud/storage/Storage.java 8ab2463
api/src/com/cloud/storage/Volume.java 304dbcf
api/src/com/cloud/vm/DiskProfile.java 5fdacf2
api/src/org/apache/cloudstack/api/ApiConstants.java 97b1cd7
api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 78101fb
api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 0894eec
api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java d371f9a
api/src/org/apache/cloudstack/api/response/VolumeResponse.java 27e95de
client/WEB-INF/classes/resources/messages.properties 8329325
core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
engine/orchestration/pom.xml e5250c4
engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java a74d79c
engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3873dd2
engine/schema/src/com/cloud/storage/DiskOfferingVO.java d1a48d2
engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java 1d7d1b2
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 9813389
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java 5de8bd2
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 550bd01
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java aa763d5
plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
server/src/com/cloud/configuration/ConfigurationManagerImpl.java 9b9bd13
server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java c692491
server/src/com/cloud/server/ConfigurationServerImpl.java b8da4c8
server/src/com/cloud/storage/VolumeApiServiceImpl.java 5ffa99b
server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
server/test/com/cloud/vm/UserVmManagerTest.java 43010a3
server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
setup/db/db/schema-440to450.sql 2bd5386
test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
test/integration/smoke/test_disk_offerings.py 4588a26
test/integration/smoke/test_volumes.py 719c824
ui/dictionary.jsp 074db7f
ui/scripts/configuration.js 7b2f4e9
ui/scripts/docs.js 32237f3
ui/scripts/storage.js e69a07e
Diff: https://reviews.apache.org/r/19446/diff/
Testing
-------
Compute offering creation
- create a compute offering with "provisioningtype="thin"
- create a compute offering with "provisioningtype="sparse"
- create a compute offering with "provisioningtype="fat"
Disk offering creation
- create a disk offering with "provisioningtype=thin"
- create a disk offering with "provisioningtype=sparse"
- create a disk offering with "provisioningtype=fat"
New VM deployment
- deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
- deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
- deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
New data disk creation and attachment
- create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
- create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
- create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
Thanks,
Yoshikazu Nojima
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Yoshikazu Nojima <ma...@ynojima.net>.
> On March 28, 2014, 12:19 a.m., Mike Tutkowski wrote:
> > api/src/com/cloud/offering/DiskOffering.java, line 20
> > <https://reviews.apache.org/r/19446/diff/3/?file=538047#file538047line20>
> >
> > I haven't had a chance to look through your code yet, but have some high-level questions.
> >
> > Is this parameter intended on being utilized only on the hypervisor side? It looks like you referenced KVM and NFS. Does this mean the hypervisor would thinly, fully, or sparsely create the root or data disk based on this info?
> >
> > If so, it looks like it would be up to the storage adaptor in question (in the KVM agent code) to honor this parameter.
> >
> > The reason I ask is because the SolidFire (storage) plug-in behaves quite a bit differently from other storage plug-ins and I want to make sure I understand if this impacts me.
> >
> > In the SolidFire case, I dynamically create volumes on our SAN in response to VMs needing root disks or a data disk being attached to a VM for the first time (the storage is not pre-allocated).
> >
> > For KVM support, I developed a new storage adaptor (a generic iSCSI adaptor...not SolidFire specific) that runs in the KVM agent.
> >
> > Thanks for clarifying!
> Is this parameter intended on being utilized only on the hypervisor side? It looks like you referenced KVM and NFS. Does this mean the hypervisor would thinly, fully, or sparsely create the root or data disk based on this info?
Yes, your understanding is correct. This parameter is intened to be used by hypervisors to decide provisioning type(thin/fat/sparse) of volumes.
This paramaeter doesn't relate to the fact that volume creation is delayed to the timing of attach.
- Yoshikazu
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review38853
-----------------------------------------------------------
On March 26, 2014, 11:24 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated March 26, 2014, 11:24 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java 87fa8ee
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 27e95de
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java 4ebde04
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java 1d7d1b2
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 9813389
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java c1a5043
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 550bd01
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java aa763d5
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java bdceed7
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java c692491
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java 5ffa99b
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java b67c164
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js 7b2f4e9
> ui/scripts/docs.js 32237f3
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Mike Tutkowski <mi...@solidfire.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review38853
-----------------------------------------------------------
api/src/com/cloud/offering/DiskOffering.java
<https://reviews.apache.org/r/19446/#comment71180>
I haven't had a chance to look through your code yet, but have some high-level questions.
Is this parameter intended on being utilized only on the hypervisor side? It looks like you referenced KVM and NFS. Does this mean the hypervisor would thinly, fully, or sparsely create the root or data disk based on this info?
If so, it looks like it would be up to the storage adaptor in question (in the KVM agent code) to honor this parameter.
The reason I ask is because the SolidFire (storage) plug-in behaves quite a bit differently from other storage plug-ins and I want to make sure I understand if this impacts me.
In the SolidFire case, I dynamically create volumes on our SAN in response to VMs needing root disks or a data disk being attached to a VM for the first time (the storage is not pre-allocated).
For KVM support, I developed a new storage adaptor (a generic iSCSI adaptor...not SolidFire specific) that runs in the KVM agent.
Thanks for clarifying!
- Mike Tutkowski
On March 26, 2014, 11:24 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated March 26, 2014, 11:24 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java 87fa8ee
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 27e95de
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java 4ebde04
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java 1d7d1b2
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 9813389
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java c1a5043
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 550bd01
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java aa763d5
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java bdceed7
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java c692491
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java 5ffa99b
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java b67c164
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js 7b2f4e9
> ui/scripts/docs.js 32237f3
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Yoshikazu Nojima <ma...@ynojima.net>.
> On March 28, 2014, 12:33 a.m., Mike Tutkowski wrote:
> > api/src/com/cloud/offering/DiskOffering.java, line 66
> > <https://reviews.apache.org/r/19446/diff/3/?file=538047#file538047line66>
> >
> > By the way, it would really benefit CloudStack if we were to come up with a generic way of passing key/value pairs to storage plug-ins instead of adding new parameters to the compute and disk offerings as needed.
> >
> > In many cases, the parameters we add are only utilized on certain platforms and the multitude of options can become confusing to users.
> >
> > We have plans for such a feature in 4.5, but I'm not sure how far Chris (from NetApp) has made it in development.
> >
> > We should consider using his code for this property, if possible.
Sounds nice. If it comes in 4.5, I would like to consider utilizing that mechanism. Is a feature specification already written for it?
- Yoshikazu
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review38855
-----------------------------------------------------------
On March 26, 2014, 11:24 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated March 26, 2014, 11:24 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java 87fa8ee
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 27e95de
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java 4ebde04
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java 1d7d1b2
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 9813389
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java c1a5043
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 550bd01
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java aa763d5
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java bdceed7
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java c692491
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java 5ffa99b
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java b67c164
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js 7b2f4e9
> ui/scripts/docs.js 32237f3
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Mike Tutkowski <mi...@solidfire.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review38855
-----------------------------------------------------------
api/src/com/cloud/offering/DiskOffering.java
<https://reviews.apache.org/r/19446/#comment71182>
By the way, it would really benefit CloudStack if we were to come up with a generic way of passing key/value pairs to storage plug-ins instead of adding new parameters to the compute and disk offerings as needed.
In many cases, the parameters we add are only utilized on certain platforms and the multitude of options can become confusing to users.
We have plans for such a feature in 4.5, but I'm not sure how far Chris (from NetApp) has made it in development.
We should consider using his code for this property, if possible.
- Mike Tutkowski
On March 26, 2014, 11:24 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated March 26, 2014, 11:24 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java 87fa8ee
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 27e95de
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java 4ebde04
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java 1d7d1b2
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 9813389
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java c1a5043
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 550bd01
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java aa763d5
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java bdceed7
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java c692491
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java 5ffa99b
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java b67c164
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js 7b2f4e9
> ui/scripts/docs.js 32237f3
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Yoshikazu Nojima <ma...@ynojima.net>.
> On March 27, 2014, 11:41 p.m., Marcus Sorensen wrote:
> > I'm also seeing some strange behavior on normal qcow2 (local) storage. When it is installing the template to primary storage, in the past it has detected we are going from qcow2 to qcow2 and simply copies the image rather than going the costly route of 'qemu-img convert'. It still does that, but prior to the cp it is creating a new qcow2, then copying over it with the template. So if I had to guess, the LVM might actually work if it didn't try to qemu-img create before doing the regular template copy that is appropriate for the storage type. I think we can skip the "qemu-img create" in this template install code path.
> >
> > 2014-03-27 17:37:35,949 DEBUG [kvm.storage.KVMStorageProcessor] (agentRequest-Handler-3:null) Copying template to primary storage, template format is qcow2
> > 2014-03-27 17:37:35,969 DEBUG [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-3:null) copyPhysicalDisk: disk size:194240512, virtualsize:1073741824 format:qcow2
> > 2014-03-27 17:37:35,969 DEBUG [utils.script.Script] (agentRequest-Handler-3:null) Executing: qemu-img create -o preallocation=off, -f qcow2 /var/lib/libvirt/images/11b71cf8-382f-4b38-a2b0-45e148a010e7 1073741824
> > 2014-03-27 17:37:36,019 DEBUG [utils.script.Script] (agentRequest-Handler-3:null) Execution is successful.
> > 2014-03-27 17:37:36,019 DEBUG [utils.script.Script] (agentRequest-Handler-3:null) Formatting '/var/lib/libvirt/images/11b71cf8-382f-4b38-a2b0-45e148a010e7', fmt=qcow2 size=1073741824 encryption=off cluster_size=65536 preallocation='off'
> >
> > 2014-03-27 17:37:36,020 DEBUG [utils.script.Script] (agentRequest-Handler-3:null) Executing: qemu-img info --output json /var/lib/libvirt/images/11b71cf8-382f-4b38-a2b0-45e148a010e7
> > 2014-03-27 17:37:36,031 DEBUG [utils.script.Script] (agentRequest-Handler-3:null) Execution is successful.
> > 2014-03-27 17:37:36,032 DEBUG [utils.script.Script] (agentRequest-Handler-3:null) Executing: qemu-img info --output json /mnt/939559aa-1bac-310a-a2ce-205336bdb136/2d7d88a8-6233-3ce1-9292-bc805d2e92e5.qcow2
> > 2014-03-27 17:37:36,040 DEBUG [utils.script.Script] (agentRequest-Handler-3:null) Execution is successful.
> > 2014-03-27 17:37:36,041 DEBUG [utils.script.Script] (agentRequest-Handler-3:null) Executing: /bin/bash -c cp -f /mnt/939559aa-1bac-310a-a2ce-205336bdb136/2d7d88a8-6233-3ce1-9292-bc805d2e92e5.qcow2 /var/lib/libvirt/images/11b71cf8-382f-4b38-a2b0-45e148a010e7
I think qcow2 image is created prior to the cp even without this patch, but without this patch, createPhysicalDisk calls libvirt and it doesn't output output the creation to a log.
I'm not sure why current implementation create a volume and override it, but it it is not necessary, I will erase it.
- Yoshikazu
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review38845
-----------------------------------------------------------
On March 26, 2014, 11:24 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated March 26, 2014, 11:24 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java 87fa8ee
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 27e95de
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java 4ebde04
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java 1d7d1b2
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 9813389
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java c1a5043
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 550bd01
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java aa763d5
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java bdceed7
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java c692491
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java 5ffa99b
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java b67c164
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js 7b2f4e9
> ui/scripts/docs.js 32237f3
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Marcus Sorensen <sh...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review38845
-----------------------------------------------------------
I'm also seeing some strange behavior on normal qcow2 (local) storage. When it is installing the template to primary storage, in the past it has detected we are going from qcow2 to qcow2 and simply copies the image rather than going the costly route of 'qemu-img convert'. It still does that, but prior to the cp it is creating a new qcow2, then copying over it with the template. So if I had to guess, the LVM might actually work if it didn't try to qemu-img create before doing the regular template copy that is appropriate for the storage type. I think we can skip the "qemu-img create" in this template install code path.
2014-03-27 17:37:35,949 DEBUG [kvm.storage.KVMStorageProcessor] (agentRequest-Handler-3:null) Copying template to primary storage, template format is qcow2
2014-03-27 17:37:35,969 DEBUG [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-3:null) copyPhysicalDisk: disk size:194240512, virtualsize:1073741824 format:qcow2
2014-03-27 17:37:35,969 DEBUG [utils.script.Script] (agentRequest-Handler-3:null) Executing: qemu-img create -o preallocation=off, -f qcow2 /var/lib/libvirt/images/11b71cf8-382f-4b38-a2b0-45e148a010e7 1073741824
2014-03-27 17:37:36,019 DEBUG [utils.script.Script] (agentRequest-Handler-3:null) Execution is successful.
2014-03-27 17:37:36,019 DEBUG [utils.script.Script] (agentRequest-Handler-3:null) Formatting '/var/lib/libvirt/images/11b71cf8-382f-4b38-a2b0-45e148a010e7', fmt=qcow2 size=1073741824 encryption=off cluster_size=65536 preallocation='off'
2014-03-27 17:37:36,020 DEBUG [utils.script.Script] (agentRequest-Handler-3:null) Executing: qemu-img info --output json /var/lib/libvirt/images/11b71cf8-382f-4b38-a2b0-45e148a010e7
2014-03-27 17:37:36,031 DEBUG [utils.script.Script] (agentRequest-Handler-3:null) Execution is successful.
2014-03-27 17:37:36,032 DEBUG [utils.script.Script] (agentRequest-Handler-3:null) Executing: qemu-img info --output json /mnt/939559aa-1bac-310a-a2ce-205336bdb136/2d7d88a8-6233-3ce1-9292-bc805d2e92e5.qcow2
2014-03-27 17:37:36,040 DEBUG [utils.script.Script] (agentRequest-Handler-3:null) Execution is successful.
2014-03-27 17:37:36,041 DEBUG [utils.script.Script] (agentRequest-Handler-3:null) Executing: /bin/bash -c cp -f /mnt/939559aa-1bac-310a-a2ce-205336bdb136/2d7d88a8-6233-3ce1-9292-bc805d2e92e5.qcow2 /var/lib/libvirt/images/11b71cf8-382f-4b38-a2b0-45e148a010e7
- Marcus Sorensen
On March 26, 2014, 11:24 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated March 26, 2014, 11:24 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java 87fa8ee
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 27e95de
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java 4ebde04
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java 1d7d1b2
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 9813389
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java c1a5043
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 550bd01
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java aa763d5
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java bdceed7
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java c692491
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java 5ffa99b
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java b67c164
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js 7b2f4e9
> ui/scripts/docs.js 32237f3
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Yoshikazu Nojima <ma...@ynojima.net>.
> On March 27, 2014, 11:27 p.m., Marcus Sorensen wrote:
> > So far I'm getting this. I want to go back and test without the patch, because with LVM it should be 'lvcreate' follwed by 'qemu-img convert', and I want to see if it's due to the patch, or another change:
> >
> > 2014-03-27 17:23:57,954 DEBUG [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:null) copyPhysicalDisk: disk size:194240512, virtualsize:1073741824 format:qcow2
> > 2014-03-27 17:23:57,954 DEBUG [utils.script.Script] (agentRequest-Handler-1:null) Executing: qemu-img create -o preallocation=off, -f raw /dev/vg0/5f554197-4993-4f46-8481-701ad482abe7 1073741824
> > 2014-03-27 17:23:57,960 DEBUG [utils.script.Script] (agentRequest-Handler-1:null) Exit value is 1
> > 2014-03-27 17:23:57,960 DEBUG [utils.script.Script] (agentRequest-Handler-1:null) Unknown option 'preallocation'Invalid options for file format 'raw'.
> > 2014-03-27 17:23:57,960 ERROR [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:null) Failed to create /dev/vg0/5f554197-4993-4f46-8481-701ad482abe7 due to a failed executing of qemu-img: Unknown option 'preallocation'Invalid options for file format 'raw'.
>
> Marcus Sorensen wrote:
> I assume it would break other raw types as well.
>
> Marcus Sorensen wrote:
> We may actually be relying on the libvirt volume create now, not the 'lvcreate' command, I'll need to look at that. I believe LVM works in the 4.4 branch, however.
Yes, it seems it is caused by changing the underlying API of createPhysicalDisk from libvirt to qemu-img since libvirt doesn't support preallcation option specification. I will make createPhysicalDisk aware storage type and if it is not NFS, I will make it use libvirt.
Also, I will fix the bug "preallocation option is specified to RAW format", which affects Ceph installation.
- Yoshikazu
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review38838
-----------------------------------------------------------
On March 26, 2014, 11:24 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated March 26, 2014, 11:24 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java 87fa8ee
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 27e95de
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java 4ebde04
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java 1d7d1b2
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 9813389
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java c1a5043
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 550bd01
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java aa763d5
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java bdceed7
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java c692491
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java 5ffa99b
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java b67c164
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js 7b2f4e9
> ui/scripts/docs.js 32237f3
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Marcus Sorensen <sh...@gmail.com>.
> On March 27, 2014, 11:27 p.m., Marcus Sorensen wrote:
> > So far I'm getting this. I want to go back and test without the patch, because with LVM it should be 'lvcreate' follwed by 'qemu-img convert', and I want to see if it's due to the patch, or another change:
> >
> > 2014-03-27 17:23:57,954 DEBUG [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:null) copyPhysicalDisk: disk size:194240512, virtualsize:1073741824 format:qcow2
> > 2014-03-27 17:23:57,954 DEBUG [utils.script.Script] (agentRequest-Handler-1:null) Executing: qemu-img create -o preallocation=off, -f raw /dev/vg0/5f554197-4993-4f46-8481-701ad482abe7 1073741824
> > 2014-03-27 17:23:57,960 DEBUG [utils.script.Script] (agentRequest-Handler-1:null) Exit value is 1
> > 2014-03-27 17:23:57,960 DEBUG [utils.script.Script] (agentRequest-Handler-1:null) Unknown option 'preallocation'Invalid options for file format 'raw'.
> > 2014-03-27 17:23:57,960 ERROR [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:null) Failed to create /dev/vg0/5f554197-4993-4f46-8481-701ad482abe7 due to a failed executing of qemu-img: Unknown option 'preallocation'Invalid options for file format 'raw'.
>
> Marcus Sorensen wrote:
> I assume it would break other raw types as well.
We may actually be relying on the libvirt volume create now, not the 'lvcreate' command, I'll need to look at that. I believe LVM works in the 4.4 branch, however.
- Marcus
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review38838
-----------------------------------------------------------
On March 26, 2014, 11:24 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated March 26, 2014, 11:24 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java 87fa8ee
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 27e95de
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java 4ebde04
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java 1d7d1b2
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 9813389
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java c1a5043
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 550bd01
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java aa763d5
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java bdceed7
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java c692491
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java 5ffa99b
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java b67c164
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js 7b2f4e9
> ui/scripts/docs.js 32237f3
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Marcus Sorensen <sh...@gmail.com>.
> On March 27, 2014, 11:27 p.m., Marcus Sorensen wrote:
> > So far I'm getting this. I want to go back and test without the patch, because with LVM it should be 'lvcreate' follwed by 'qemu-img convert', and I want to see if it's due to the patch, or another change:
> >
> > 2014-03-27 17:23:57,954 DEBUG [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:null) copyPhysicalDisk: disk size:194240512, virtualsize:1073741824 format:qcow2
> > 2014-03-27 17:23:57,954 DEBUG [utils.script.Script] (agentRequest-Handler-1:null) Executing: qemu-img create -o preallocation=off, -f raw /dev/vg0/5f554197-4993-4f46-8481-701ad482abe7 1073741824
> > 2014-03-27 17:23:57,960 DEBUG [utils.script.Script] (agentRequest-Handler-1:null) Exit value is 1
> > 2014-03-27 17:23:57,960 DEBUG [utils.script.Script] (agentRequest-Handler-1:null) Unknown option 'preallocation'Invalid options for file format 'raw'.
> > 2014-03-27 17:23:57,960 ERROR [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:null) Failed to create /dev/vg0/5f554197-4993-4f46-8481-701ad482abe7 due to a failed executing of qemu-img: Unknown option 'preallocation'Invalid options for file format 'raw'.
I assume it would break other raw types as well.
- Marcus
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review38838
-----------------------------------------------------------
On March 26, 2014, 11:24 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated March 26, 2014, 11:24 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java 87fa8ee
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 27e95de
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java 4ebde04
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java 1d7d1b2
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 9813389
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java c1a5043
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 550bd01
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java aa763d5
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java bdceed7
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java c692491
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java 5ffa99b
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java b67c164
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js 7b2f4e9
> ui/scripts/docs.js 32237f3
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Marcus Sorensen <sh...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review38838
-----------------------------------------------------------
So far I'm getting this. I want to go back and test without the patch, because with LVM it should be 'lvcreate' follwed by 'qemu-img convert', and I want to see if it's due to the patch, or another change:
2014-03-27 17:23:57,954 DEBUG [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:null) copyPhysicalDisk: disk size:194240512, virtualsize:1073741824 format:qcow2
2014-03-27 17:23:57,954 DEBUG [utils.script.Script] (agentRequest-Handler-1:null) Executing: qemu-img create -o preallocation=off, -f raw /dev/vg0/5f554197-4993-4f46-8481-701ad482abe7 1073741824
2014-03-27 17:23:57,960 DEBUG [utils.script.Script] (agentRequest-Handler-1:null) Exit value is 1
2014-03-27 17:23:57,960 DEBUG [utils.script.Script] (agentRequest-Handler-1:null) Unknown option 'preallocation'Invalid options for file format 'raw'.
2014-03-27 17:23:57,960 ERROR [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:null) Failed to create /dev/vg0/5f554197-4993-4f46-8481-701ad482abe7 due to a failed executing of qemu-img: Unknown option 'preallocation'Invalid options for file format 'raw'.
- Marcus Sorensen
On March 26, 2014, 11:24 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated March 26, 2014, 11:24 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java 87fa8ee
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 27e95de
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java 4ebde04
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java 1d7d1b2
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 9813389
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java c1a5043
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 550bd01
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java aa763d5
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java bdceed7
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java c692491
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java 5ffa99b
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java b67c164
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js 7b2f4e9
> ui/scripts/docs.js 32237f3
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Marcus Sorensen <sh...@gmail.com>.
> On April 10, 2014, 3:29 p.m., Marcus Sorensen wrote:
> > Ship It!
commit 11f5bdd78de4121331b07995800f6e9e7c22f2c0
Author: Marcus Sorensen <ma...@betterservers.com>
Date: Thu Apr 10 09:23:04 2014 -0600
CLOUDSTACK-6191 Add support for specifying volume provisioning
type (thin, sparse, fat) in disk/compute offerings.
Submitted-by: Yoshikazu Nojima <ma...@ynojima.net>
Reviewed-by: Marcus Sorensen, Mike Tutowski
- Marcus
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review40019
-----------------------------------------------------------
On April 9, 2014, 10:58 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated April 9, 2014, 10:58 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java c7d6da1
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 45c15da
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java c5e0983
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java beb5e10
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 604bdae
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java 61d90e9
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 605d154
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java 89707c9
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java 30afd7b
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java 3cd3e80
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java c0741c5
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/storage/VolumeApiServiceImplTest.java 0be6f3a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java 927d5e3
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js ba6bdce
> ui/scripts/docs.js df4bcf0
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Marcus Sorensen <sh...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review40019
-----------------------------------------------------------
Ship it!
Ship It!
- Marcus Sorensen
On April 9, 2014, 10:58 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated April 9, 2014, 10:58 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java c7d6da1
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 45c15da
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java c5e0983
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java beb5e10
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 604bdae
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java 61d90e9
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 605d154
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java 89707c9
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java 30afd7b
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java 3cd3e80
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java c0741c5
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/storage/VolumeApiServiceImplTest.java 0be6f3a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java 927d5e3
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js ba6bdce
> ui/scripts/docs.js df4bcf0
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by ASF Subversion and Git Services <as...@urd.zones.apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review40017
-----------------------------------------------------------
Commit 11f5bdd78de4121331b07995800f6e9e7c22f2c0 in cloudstack's branch refs/heads/master from Marcus Sorensen
[ https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;h=11f5bdd ]
CLOUDSTACK-6191 Add support for specifying volume provisioning
type (thin, sparse, fat) in disk/compute offerings.
Submitted-by: Yoshikazu Nojima <ma...@ynojima.net>
Reviewed-by: Marcus Sorensen, Mike Tutowski
- ASF Subversion and Git Services
On April 9, 2014, 10:58 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated April 9, 2014, 10:58 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java c7d6da1
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 45c15da
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java c5e0983
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java beb5e10
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 604bdae
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java 61d90e9
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 605d154
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java 89707c9
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java 30afd7b
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java 3cd3e80
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java c0741c5
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/storage/VolumeApiServiceImplTest.java 0be6f3a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java 927d5e3
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js ba6bdce
> ui/scripts/docs.js df4bcf0
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Mike Tutkowski <mi...@solidfire.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review47133
-----------------------------------------------------------
Thanks! Also, thanks for opening a JIRA ticket. We can track this going forward with that ticket.
- Mike Tutkowski
On April 9, 2014, 4:58 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated April 9, 2014, 4:58 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java c7d6da1
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 45c15da
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java c5e0983
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java beb5e10
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 604bdae
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java 61d90e9
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 605d154
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java 89707c9
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java 30afd7b
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java 3cd3e80
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java c0741c5
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/storage/VolumeApiServiceImplTest.java 0be6f3a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java 927d5e3
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js ba6bdce
> ui/scripts/docs.js df4bcf0
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Mike Tutkowski <mi...@solidfire.com>.
> On April 10, 2014, 5:55 a.m., Marcus Sorensen wrote:
> > I verified that CLVM, Local, and NFS storage all work. From the agent side the code looks fine. I'll defer to Mike regarding the offering changes since he's done some work there before.
The Disk Offering logic seems to follow our standard patterns.
I know at one point I suggested we might take advantage of a new generic-properties concept (like passing key/value pairs around instead of putting new columns in DB tables).
As it turns out, though, the person who was working on that feature has recently changed companies and no longer has the time to pursue that development work.
I expect to pick up that work, but it won't be in place for a least a release or two, so we should just go forward (as this code does) with following our standard patterns for adding such a property.
Unless anyone else has any comments regarding this review, I am OK with it going into master.
- Mike
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review39986
-----------------------------------------------------------
On April 9, 2014, 10:58 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated April 9, 2014, 10:58 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java c7d6da1
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 45c15da
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java c5e0983
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java beb5e10
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 604bdae
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java 61d90e9
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 605d154
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java 89707c9
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java 30afd7b
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java 3cd3e80
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java c0741c5
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/storage/VolumeApiServiceImplTest.java 0be6f3a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java 927d5e3
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js ba6bdce
> ui/scripts/docs.js df4bcf0
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Marcus Sorensen <sh...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review39986
-----------------------------------------------------------
I verified that CLVM, Local, and NFS storage all work. From the agent side the code looks fine. I'll defer to Mike regarding the offering changes since he's done some work there before.
- Marcus Sorensen
On April 9, 2014, 10:58 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated April 9, 2014, 10:58 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java c7d6da1
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 45c15da
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java c5e0983
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java beb5e10
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 604bdae
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java 61d90e9
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 605d154
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java 89707c9
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java 30afd7b
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java 3cd3e80
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java c0741c5
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/storage/VolumeApiServiceImplTest.java 0be6f3a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java 927d5e3
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js ba6bdce
> ui/scripts/docs.js df4bcf0
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Mike Tutkowski <mi...@solidfire.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review47040
-----------------------------------------------------------
Hi Noji,
Is it possible for you to take a look at this issue?
If you click on the Storage tab in the GUI when you should have one or more volumes, you'll see an error displayed.
It appears we're missing several columns in the volume_view.
I would recommend going back to previous SQL scripts to find the last time we drop and re-create volume_view and use that volume_view as a starting point for your new volume_view. You can then add on the additional columns that are necessary for your use case.
Does that sounds good? I could log a JIRA ticket for you, if that would help?
Thanks!
Mike
- Mike Tutkowski
On April 9, 2014, 4:58 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated April 9, 2014, 4:58 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java c7d6da1
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 45c15da
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java c5e0983
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java beb5e10
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 604bdae
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java 61d90e9
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 605d154
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java 89707c9
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java 30afd7b
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java 3cd3e80
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java c0741c5
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/storage/VolumeApiServiceImplTest.java 0be6f3a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java 927d5e3
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js ba6bdce
> ui/scripts/docs.js df4bcf0
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Marcus Sorensen <sh...@gmail.com>.
> On April 10, 2014, 12:16 a.m., Marcus Sorensen wrote:
> > engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java, line 1270
> > <https://reviews.apache.org/r/19446/diff/3-4/?file=538059#file538059line1270>
> >
> > Building to test now.
> >
> > Does this patch contain changes that are unrelated to the feature? Or are changes such as this integral to the function of the feature?
Sorry, I don't see this in the final patch. I think I clicked on the diff between r3 and r4.
- Marcus
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review39968
-----------------------------------------------------------
On April 9, 2014, 10:58 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated April 9, 2014, 10:58 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java c7d6da1
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 45c15da
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java c5e0983
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java beb5e10
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 604bdae
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java 61d90e9
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 605d154
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java 89707c9
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java 30afd7b
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java 3cd3e80
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java c0741c5
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/storage/VolumeApiServiceImplTest.java 0be6f3a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java 927d5e3
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js ba6bdce
> ui/scripts/docs.js df4bcf0
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Marcus Sorensen <sh...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review39968
-----------------------------------------------------------
engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java
<https://reviews.apache.org/r/19446/#comment72750>
Building to test now.
Does this patch contain changes that are unrelated to the feature? Or are changes such as this integral to the function of the feature?
- Marcus Sorensen
On April 9, 2014, 10:58 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated April 9, 2014, 10:58 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java c7d6da1
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 45c15da
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java c5e0983
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java beb5e10
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 604bdae
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java 61d90e9
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 605d154
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java 89707c9
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java 30afd7b
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java 3cd3e80
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java c0741c5
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/storage/VolumeApiServiceImplTest.java 0be6f3a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java 927d5e3
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js ba6bdce
> ui/scripts/docs.js df4bcf0
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Mike Tutkowski <mi...@solidfire.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review47037
-----------------------------------------------------------
It looks like we're missing two columns in volume_view:
+ vm_template.name template_name,
+ vm_template.display_text template_display_text,
I noticed this in the GUI when you go to the Storage tab to view the volumes (you get an error).
I plan to check in a fix soon.
- Mike Tutkowski
On April 9, 2014, 4:58 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated April 9, 2014, 4:58 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java c7d6da1
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 45c15da
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java c5e0983
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java beb5e10
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 604bdae
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java 61d90e9
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 605d154
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java 89707c9
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java 30afd7b
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java 3cd3e80
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java c0741c5
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/storage/VolumeApiServiceImplTest.java 0be6f3a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java 927d5e3
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js ba6bdce
> ui/scripts/docs.js df4bcf0
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Yoshikazu Nojima <ma...@ynojima.net>.
> On July 1, 2014, 6:19 p.m., Mike Tutkowski wrote:
> > http://i.imgur.com/PW7lqbs.png
> >
> > Six fields have been removed from the volume_view and five of those six are still in use.
Hi Mike,
Thank you for let me know.
I reproduced the issue.
It seems this commit made change to the schema of 4.4 after I checked in the upgrade script from 4.4 to 4.5, but he didn't apply his change to the upgrade script from 4.4 to 4.5.
https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;a=blobdiff;f=setup/db/db/schema-430to440.sql;h=3b525c41a1befd94c5ffc324c357b566606a97d0;hp=e53c97090b18613e92e2a7fd4503cf6e1233fd88;hb=7ae784b;hpb=6c8a0a1f968c2679ea0ca0c776e680318b3d08cf
I will work on this issue.
I filed this issue in this ticket : CLOUDSTACK-7032
Thanks!
- Yoshikazu
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review47114
-----------------------------------------------------------
On April 9, 2014, 10:58 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated April 9, 2014, 10:58 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java c7d6da1
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 45c15da
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java c5e0983
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java beb5e10
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 604bdae
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java 61d90e9
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 605d154
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java 89707c9
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java 30afd7b
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java 3cd3e80
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java c0741c5
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/storage/VolumeApiServiceImplTest.java 0be6f3a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java 927d5e3
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js ba6bdce
> ui/scripts/docs.js df4bcf0
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Mike Tutkowski <mi...@solidfire.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review47114
-----------------------------------------------------------
http://i.imgur.com/PW7lqbs.png
Six fields have been removed from the volume_view and five of those six are still in use.
- Mike Tutkowski
On April 9, 2014, 4:58 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated April 9, 2014, 4:58 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java c7d6da1
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 45c15da
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java c5e0983
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java beb5e10
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 604bdae
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java 61d90e9
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 605d154
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java 89707c9
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java 30afd7b
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java 3cd3e80
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java c0741c5
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/storage/VolumeApiServiceImplTest.java 0be6f3a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java 927d5e3
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js ba6bdce
> ui/scripts/docs.js df4bcf0
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Yoshikazu Nojima <ma...@ynojima.net>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/
-----------------------------------------------------------
(Updated April 9, 2014, 10:58 p.m.)
Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
Changes
-------
Now it works with local storage (confirmed).
I suppose it works with CLVM too (preallocation option will be discarded).
Bugs: CLOUDSTACK-6191
https://issues.apache.org/jira/browse/CLOUDSTACK-6191
Repository: cloudstack-git
Description
-------
purpose:
Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
Scope:
First, start with KVM+NFS installation.
Leave rooms to support other hypervisors.
For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
Diffs (updated)
-----
api/src/com/cloud/offering/DiskOffering.java 4641b9a
api/src/com/cloud/storage/Storage.java 8ab2463
api/src/com/cloud/storage/Volume.java 304dbcf
api/src/com/cloud/vm/DiskProfile.java 5fdacf2
api/src/org/apache/cloudstack/api/ApiConstants.java c7d6da1
api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
api/src/org/apache/cloudstack/api/response/VolumeResponse.java 45c15da
client/WEB-INF/classes/resources/messages.properties 8abe874
core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java c5e0983
engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java beb5e10
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 604bdae
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java 61d90e9
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 605d154
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java 89707c9
plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
server/src/com/cloud/configuration/ConfigurationManagerImpl.java 30afd7b
server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java 3cd3e80
server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
server/src/com/cloud/storage/VolumeApiServiceImpl.java c0741c5
server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
server/test/com/cloud/storage/VolumeApiServiceImplTest.java 0be6f3a
server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
server/test/com/cloud/vm/UserVmManagerTest.java 927d5e3
server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
setup/db/db/schema-440to450.sql 2bd5386
test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
test/integration/smoke/test_disk_offerings.py 4c8a34c
test/integration/smoke/test_volumes.py 411ecf1
ui/dictionary.jsp ebe71b6
ui/scripts/configuration.js ba6bdce
ui/scripts/docs.js df4bcf0
ui/scripts/storage.js e69a07e
Diff: https://reviews.apache.org/r/19446/diff/
Testing
-------
Compute offering creation
- create a compute offering with "provisioningtype="thin"
- create a compute offering with "provisioningtype="sparse"
- create a compute offering with "provisioningtype="fat"
Disk offering creation
- create a disk offering with "provisioningtype=thin"
- create a disk offering with "provisioningtype=sparse"
- create a disk offering with "provisioningtype=fat"
New VM deployment
- deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
- deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
- deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
New data disk creation and attachment
- create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
- create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
- create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
Thanks,
Yoshikazu Nojima
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Marcus Sorensen <sh...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review38852
-----------------------------------------------------------
I have verified that LVM still works without this patch.
- Marcus Sorensen
On March 26, 2014, 11:24 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated March 26, 2014, 11:24 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java 87fa8ee
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 27e95de
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java 4ebde04
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java 1d7d1b2
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 9813389
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java c1a5043
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 550bd01
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java aa763d5
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java bdceed7
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java c692491
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java 5ffa99b
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java b67c164
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js 7b2f4e9
> ui/scripts/docs.js 32237f3
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Yoshikazu Nojima <ma...@ynojima.net>.
> On March 28, 2014, 1:46 a.m., Mike Tutkowski wrote:
> > api/src/com/cloud/storage/Storage.java, line 94
> > <https://reviews.apache.org/r/19446/diff/3/?file=538048#file538048line94>
> >
> > Not a big deal, but do we want to maybe make constants for "thin", "sparse" and "fat" and use them in the getProvisioningType method and in assigning values to THIN, SPARSE, and FAT?
Yes, will do.
- Yoshikazu
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review38862
-----------------------------------------------------------
On March 26, 2014, 11:24 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated March 26, 2014, 11:24 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java 87fa8ee
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 27e95de
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java 4ebde04
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java 1d7d1b2
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 9813389
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java c1a5043
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 550bd01
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java aa763d5
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java bdceed7
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java c692491
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java 5ffa99b
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java b67c164
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js 7b2f4e9
> ui/scripts/docs.js 32237f3
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Mike Tutkowski <mi...@solidfire.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review38862
-----------------------------------------------------------
api/src/com/cloud/storage/Storage.java
<https://reviews.apache.org/r/19446/#comment71188>
Not a big deal, but do we want to maybe make constants for "thin", "sparse" and "fat" and use them in the getProvisioningType method and in assigning values to THIN, SPARSE, and FAT?
- Mike Tutkowski
On March 26, 2014, 11:24 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated March 26, 2014, 11:24 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java 87fa8ee
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 27e95de
> client/WEB-INF/classes/resources/messages.properties 8abe874
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java 4ebde04
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java 1d7d1b2
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 9813389
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java c1a5043
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 550bd01
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java aa763d5
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java bdceed7
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java c692491
> server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
> server/src/com/cloud/storage/VolumeApiServiceImpl.java 5ffa99b
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java b67c164
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4c8a34c
> test/integration/smoke/test_volumes.py 411ecf1
> ui/dictionary.jsp ebe71b6
> ui/scripts/configuration.js 7b2f4e9
> ui/scripts/docs.js 32237f3
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Yoshikazu Nojima <ma...@ynojima.net>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/
-----------------------------------------------------------
(Updated March 26, 2014, 11:24 p.m.)
Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
Changes
-------
rebase to origin/master
Bugs: CLOUDSTACK-6191
https://issues.apache.org/jira/browse/CLOUDSTACK-6191
Repository: cloudstack-git
Description
-------
purpose:
Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
Scope:
First, start with KVM+NFS installation.
Leave rooms to support other hypervisors.
For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
Diffs (updated)
-----
api/src/com/cloud/offering/DiskOffering.java 4641b9a
api/src/com/cloud/storage/Storage.java 8ab2463
api/src/com/cloud/storage/Volume.java 304dbcf
api/src/com/cloud/vm/DiskProfile.java 5fdacf2
api/src/org/apache/cloudstack/api/ApiConstants.java 87fa8ee
api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6cd5d84
api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 91bd441
api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java 764ade5
api/src/org/apache/cloudstack/api/response/VolumeResponse.java 27e95de
client/WEB-INF/classes/resources/messages.properties 8abe874
core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java 4ebde04
engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3be0aaa
engine/schema/src/com/cloud/storage/DiskOfferingVO.java 99214b2
engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java 1d7d1b2
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 9813389
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java c1a5043
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 550bd01
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java aa763d5
plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
server/src/com/cloud/configuration/ConfigurationManagerImpl.java bdceed7
server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java c692491
server/src/com/cloud/server/ConfigurationServerImpl.java 13135b0
server/src/com/cloud/storage/VolumeApiServiceImpl.java 5ffa99b
server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
server/test/com/cloud/vm/UserVmManagerTest.java b67c164
server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
setup/db/db/schema-440to450.sql 2bd5386
test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
test/integration/smoke/test_disk_offerings.py 4c8a34c
test/integration/smoke/test_volumes.py 411ecf1
ui/dictionary.jsp ebe71b6
ui/scripts/configuration.js 7b2f4e9
ui/scripts/docs.js 32237f3
ui/scripts/storage.js e69a07e
Diff: https://reviews.apache.org/r/19446/diff/
Testing
-------
Compute offering creation
- create a compute offering with "provisioningtype="thin"
- create a compute offering with "provisioningtype="sparse"
- create a compute offering with "provisioningtype="fat"
Disk offering creation
- create a disk offering with "provisioningtype=thin"
- create a disk offering with "provisioningtype=sparse"
- create a disk offering with "provisioningtype=fat"
New VM deployment
- deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
- deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
- deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
New data disk creation and attachment
- create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
- create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
- create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
Thanks,
Yoshikazu Nojima
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Yoshikazu Nojima <ma...@ynojima.net>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review38122
-----------------------------------------------------------
engine/orchestration/pom.xml
<https://reviews.apache.org/r/19446/#comment70088>
Thank you for pointing out. It seems it is by mistake. I made it comment in when I implemented the feature as global setting option.
- Yoshikazu Nojima
On March 21, 2014, 5:02 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated March 21, 2014, 5:02 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java 87fa8ee
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 78101fb
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 0894eec
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java d371f9a
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 27e95de
> client/WEB-INF/classes/resources/messages.properties 8329325
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java 4ebde04
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3873dd2
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java d1a48d2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java 1d7d1b2
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 9813389
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java 5de8bd2
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 550bd01
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java aa763d5
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java bdceed7
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java c692491
> server/src/com/cloud/server/ConfigurationServerImpl.java 4781010
> server/src/com/cloud/storage/VolumeApiServiceImpl.java 5ffa99b
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java b67c164
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4588a26
> test/integration/smoke/test_volumes.py 719c824
> ui/dictionary.jsp 074db7f
> ui/scripts/configuration.js 7b2f4e9
> ui/scripts/docs.js 32237f3
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Yoshikazu Nojima <ma...@ynojima.net>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/
-----------------------------------------------------------
(Updated March 21, 2014, 5:02 p.m.)
Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
Changes
-------
I corrected the unnecessary comment in.
Bugs: CLOUDSTACK-6191
https://issues.apache.org/jira/browse/CLOUDSTACK-6191
Repository: cloudstack-git
Description
-------
purpose:
Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
Scope:
First, start with KVM+NFS installation.
Leave rooms to support other hypervisors.
For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
Diffs (updated)
-----
api/src/com/cloud/offering/DiskOffering.java 4641b9a
api/src/com/cloud/storage/Storage.java 8ab2463
api/src/com/cloud/storage/Volume.java 304dbcf
api/src/com/cloud/vm/DiskProfile.java 5fdacf2
api/src/org/apache/cloudstack/api/ApiConstants.java 87fa8ee
api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 78101fb
api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 0894eec
api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java d371f9a
api/src/org/apache/cloudstack/api/response/VolumeResponse.java 27e95de
client/WEB-INF/classes/resources/messages.properties 8329325
core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java 4ebde04
engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3873dd2
engine/schema/src/com/cloud/storage/DiskOfferingVO.java d1a48d2
engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java 1d7d1b2
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 9813389
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java 5de8bd2
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 550bd01
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java aa763d5
plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
server/src/com/cloud/configuration/ConfigurationManagerImpl.java bdceed7
server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java c692491
server/src/com/cloud/server/ConfigurationServerImpl.java 4781010
server/src/com/cloud/storage/VolumeApiServiceImpl.java 5ffa99b
server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
server/test/com/cloud/vm/UserVmManagerTest.java b67c164
server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
setup/db/db/schema-440to450.sql 2bd5386
test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
test/integration/smoke/test_disk_offerings.py 4588a26
test/integration/smoke/test_volumes.py 719c824
ui/dictionary.jsp 074db7f
ui/scripts/configuration.js 7b2f4e9
ui/scripts/docs.js 32237f3
ui/scripts/storage.js e69a07e
Diff: https://reviews.apache.org/r/19446/diff/
Testing
-------
Compute offering creation
- create a compute offering with "provisioningtype="thin"
- create a compute offering with "provisioningtype="sparse"
- create a compute offering with "provisioningtype="fat"
Disk offering creation
- create a disk offering with "provisioningtype=thin"
- create a disk offering with "provisioningtype=sparse"
- create a disk offering with "provisioningtype=fat"
New VM deployment
- deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
- deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
- deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
New data disk creation and attachment
- create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
- create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
- create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
Thanks,
Yoshikazu Nojima
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Yoshikazu Nojima <ma...@ynojima.net>.
> On March 21, 2014, 5:08 a.m., Marcus Sorensen wrote:
> > Looks good for the most part, however due to the major changes in LibvirtStorageAdaptor I'd like to run through some testing (particularly on LVM). It may take me a few days to get to that. Mike may also want to chime in since he did the iops changes to disk offerings and should be familiar with all of the mgmt server changes required for disk offering features.
I see. Since I have only executed testing on a test environment with CloudStack/KVM/NFS installation, it would be appreciated that you execute testing on your CLVM environment.
- Yoshikazu
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review38055
-----------------------------------------------------------
On March 21, 2014, 5:02 p.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated March 21, 2014, 5:02 p.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java 87fa8ee
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 78101fb
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 0894eec
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java d371f9a
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 27e95de
> client/WEB-INF/classes/resources/messages.properties 8329325
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java 4ebde04
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3873dd2
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java d1a48d2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java 1d7d1b2
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 9813389
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java 5de8bd2
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 550bd01
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java aa763d5
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java bdceed7
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java c692491
> server/src/com/cloud/server/ConfigurationServerImpl.java 4781010
> server/src/com/cloud/storage/VolumeApiServiceImpl.java 5ffa99b
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java b67c164
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4588a26
> test/integration/smoke/test_volumes.py 719c824
> ui/dictionary.jsp 074db7f
> ui/scripts/configuration.js 7b2f4e9
> ui/scripts/docs.js 32237f3
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Marcus Sorensen <sh...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review38055
-----------------------------------------------------------
Looks good for the most part, however due to the major changes in LibvirtStorageAdaptor I'd like to run through some testing (particularly on LVM). It may take me a few days to get to that. Mike may also want to chime in since he did the iops changes to disk offerings and should be familiar with all of the mgmt server changes required for disk offering features.
- Marcus Sorensen
On March 20, 2014, 4:56 a.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated March 20, 2014, 4:56 a.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java 97b1cd7
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 78101fb
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 0894eec
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java d371f9a
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 27e95de
> client/WEB-INF/classes/resources/messages.properties 8329325
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/pom.xml e5250c4
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java a74d79c
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3873dd2
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java d1a48d2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java 1d7d1b2
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 9813389
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java 5de8bd2
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 550bd01
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java aa763d5
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java 9b9bd13
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java c692491
> server/src/com/cloud/server/ConfigurationServerImpl.java b8da4c8
> server/src/com/cloud/storage/VolumeApiServiceImpl.java 5ffa99b
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java 43010a3
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4588a26
> test/integration/smoke/test_volumes.py 719c824
> ui/dictionary.jsp 074db7f
> ui/scripts/configuration.js 7b2f4e9
> ui/scripts/docs.js 32237f3
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>
Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Posted by Marcus Sorensen <sh...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19446/#review38053
-----------------------------------------------------------
engine/orchestration/pom.xml
<https://reviews.apache.org/r/19446/#comment70021>
Is this applicable to the change, or something accidentally committed?
- Marcus Sorensen
On March 20, 2014, 4:56 a.m., Yoshikazu Nojima wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19446/
> -----------------------------------------------------------
>
> (Updated March 20, 2014, 4:56 a.m.)
>
>
> Review request for cloudstack, Mike Tutkowski, Marcus Sorensen, and Wido den Hollander.
>
>
> Bugs: CLOUDSTACK-6191
> https://issues.apache.org/jira/browse/CLOUDSTACK-6191
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> purpose:
> Thin provisioning of a volume saves consumption of a storage, and fat provisioning minimizes IOPS performance overhead.
> This feature adds a disk offering parameter to provide users an option to select how to provision volumes.
> Especially, qcow2 format is known that its performance can be improved by deploying a volume as a sparse file.[1] This feature also supports sparse provisioning.
>
> http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/#.232---preallocation
>
> Scope:
> First, start with KVM+NFS installation.
> Leave rooms to support other hypervisors.
>
> For more details please refer fs: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Volume+provisioning+type+option
>
>
> Diffs
> -----
>
> api/src/com/cloud/offering/DiskOffering.java 4641b9a
> api/src/com/cloud/storage/Storage.java 8ab2463
> api/src/com/cloud/storage/Volume.java 304dbcf
> api/src/com/cloud/vm/DiskProfile.java 5fdacf2
> api/src/org/apache/cloudstack/api/ApiConstants.java 97b1cd7
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java 67c9792
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 78101fb
> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java 0894eec
> api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java d371f9a
> api/src/org/apache/cloudstack/api/response/VolumeResponse.java 27e95de
> client/WEB-INF/classes/resources/messages.properties 8329325
> core/src/org/apache/cloudstack/storage/to/VolumeObjectTO.java 11a3324
> engine/orchestration/pom.xml e5250c4
> engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java a74d79c
> engine/orchestration/test/com/cloud/vm/VirtualMachineManagerImplTest.java 49b2fc5
> engine/schema/src/com/cloud/service/ServiceOfferingVO.java 3873dd2
> engine/schema/src/com/cloud/storage/DiskOfferingVO.java d1a48d2
> engine/schema/src/com/cloud/storage/VolumeVO.java 9f27c23
> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java 385f8e6
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java 1d7d1b2
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtStorageVolumeDef.java 35777cf
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStorageAdaptor.java 761bb37
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/IscsiAdmStoragePool.java 2cecfa3
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java ca3d32f
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java 583d48a
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java 9813389
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java 5de8bd2
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java 550bd01
> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java c751aab
> plugins/hypervisors/kvm/src/org/apache/cloudstack/utils/qemu/QemuImg.java 4bec375
> plugins/hypervisors/kvm/test/org/apache/cloudstack/utils/qemu/QemuImgTest.java 8bdff4d
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java 2a7bcac
> plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java aa763d5
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMManagerTest.java f418586
> plugins/network-elements/internal-loadbalancer/test/org/apache/cloudstack/internallbvmmgr/InternalLBVMServiceTest.java 62ca09b
> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java bf28c03
> server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java 7fcc5c6
> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java 8a0431b
> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java e3e0a9e
> server/src/com/cloud/api/query/vo/ServiceOfferingJoinVO.java dbeb530
> server/src/com/cloud/api/query/vo/VolumeJoinVO.java 8165d68
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java 9b9bd13
> server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 0512096
> server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java c692491
> server/src/com/cloud/server/ConfigurationServerImpl.java b8da4c8
> server/src/com/cloud/storage/VolumeApiServiceImpl.java 5ffa99b
> server/src/com/cloud/test/DatabaseConfig.java 8d7b42a
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java fb63766
> server/test/com/cloud/vm/UserVmManagerTest.java 43010a3
> server/test/org/apache/cloudstack/service/ServiceOfferingVOTest.java a3f8afb
> services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java f8edefa
> setup/db/db/schema-440to450.sql 2bd5386
> test/integration/smoke/test_deploy_vm_provisioningtype_sparse.py PRE-CREATION
> test/integration/smoke/test_disk_offerings.py 4588a26
> test/integration/smoke/test_volumes.py 719c824
> ui/dictionary.jsp 074db7f
> ui/scripts/configuration.js 7b2f4e9
> ui/scripts/docs.js 32237f3
> ui/scripts/storage.js e69a07e
>
> Diff: https://reviews.apache.org/r/19446/diff/
>
>
> Testing
> -------
>
> Compute offering creation
> - create a compute offering with "provisioningtype="thin"
> - create a compute offering with "provisioningtype="sparse"
> - create a compute offering with "provisioningtype="fat"
> Disk offering creation
> - create a disk offering with "provisioningtype=thin"
> - create a disk offering with "provisioningtype=sparse"
> - create a disk offering with "provisioningtype=fat"
> New VM deployment
> - deploy a VM with a "thin" type compute offering, and check the root volume is provisioned as s thin disk
> - deploy a VM with a "sparse" type compute offering, and check the root volume is provisioned as s sparse disk
> - deploy a VM with a "fat" type compute offering, and check the root volume is provisioned as s fat disk
> New data disk creation and attachment
> - create and attach "thin" type volume to a VM, and check the data volume is provisioned as s thin disk
> - create and attach "sparse" type volume to a VM, and check the data volume is provisioned as s sparse disk
> - create and attach "fat" type volume to a VM, and check the data volume is provisioned as s fat disk
>
>
> Thanks,
>
> Yoshikazu Nojima
>
>