Return-Path: X-Original-To: apmail-cloudstack-dev-archive@www.apache.org Delivered-To: apmail-cloudstack-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id E15E310FF7 for ; Fri, 28 Mar 2014 00:19:39 +0000 (UTC) Received: (qmail 54950 invoked by uid 500); 28 Mar 2014 00:19:38 -0000 Delivered-To: apmail-cloudstack-dev-archive@cloudstack.apache.org Received: (qmail 54864 invoked by uid 500); 28 Mar 2014 00:19:38 -0000 Mailing-List: contact dev-help@cloudstack.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cloudstack.apache.org Delivered-To: mailing list dev@cloudstack.apache.org Received: (qmail 54852 invoked by uid 99); 28 Mar 2014 00:19:38 -0000 Received: from reviews-vm.apache.org (HELO reviews.apache.org) (140.211.11.40) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 28 Mar 2014 00:19:38 +0000 Received: from reviews.apache.org (localhost [127.0.0.1]) by reviews.apache.org (Postfix) with ESMTP id 1C5D51D5BF6; Fri, 28 Mar 2014 00:19:35 +0000 (UTC) Content-Type: multipart/alternative; boundary="===============7244405218380009213==" MIME-Version: 1.0 Subject: Re: Review Request 19446: CLOUDSTACK-6191: Volume provisioning type option From: "Mike Tutkowski" To: "Marcus Sorensen" , "Wido den Hollander" , "Mike Tutkowski" Cc: "Yoshikazu Nojima" , "cloudstack" Date: Fri, 28 Mar 2014 00:19:35 -0000 Message-ID: <20140328001935.4904.77350@reviews.apache.org> X-ReviewBoard-URL: https://reviews.apache.org Auto-Submitted: auto-generated Sender: "Mike Tutkowski" X-ReviewGroup: cloudstack X-ReviewRequest-URL: https://reviews.apache.org/r/19446/ X-Sender: "Mike Tutkowski" References: <20140326232509.8508.10111@reviews.apache.org> In-Reply-To: <20140326232509.8508.10111@reviews.apache.org> Reply-To: "Mike Tutkowski" X-ReviewRequest-Repository: cloudstack-git --===============7244405218380009213== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/19446/#review38853 ----------------------------------------------------------- api/src/com/cloud/offering/DiskOffering.java 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 > > --===============7244405218380009213==--