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