cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mike Tutkowski" <mike.tutkow...@solidfire.com>
Subject Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option
Date Thu, 10 Apr 2014 06:00:44 GMT


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


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message