cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sate...@apache.org
Subject git commit: updated refs/heads/4.2 to 2210f1b
Date Wed, 06 Nov 2013 17:47:03 GMT
Updated Branches:
  refs/heads/4.2 9a8dddac2 -> 2210f1b0e


CLOUDSTACK-5061 - Cloudstack doesn't consider storage overprovisioning factor when using thin
Provisioning over VMWare VMFS datastores

Fix is use the storage overprovisioning factor (global configuration parameter "storage.overprovisioning.factor")
to calculate total provisioning capacity for storage space allocation over VMFS based storage
pools as well.
There are two level of thin provisioning provided in VMware, storage level and file-level
(VMDK) thin provisioning. in CloudStack, all volumes are provisioned with thin VMDK format,
so at hypervisor level, we ALWAYS do thin provisioning. If storage vendor has the ability
to provide storage level thin provisioning in addition to VMDK thin provisioning, it is also
allowed since it is transparent to Cloudstack.

Signed-off-by: Sateesh Chodapuneedi <sateesh@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/2210f1b0
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/2210f1b0
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/2210f1b0

Branch: refs/heads/4.2
Commit: 2210f1b0e49aaaaf15bfba4ec613546d69977003
Parents: 9a8ddda
Author: Sateesh Chodapuneedi <sateesh@apache.org>
Authored: Wed Nov 6 17:37:22 2013 +0530
Committer: Sateesh Chodapuneedi <sateesh@apache.org>
Committed: Wed Nov 6 17:37:22 2013 +0530

----------------------------------------------------------------------
 .../src/com/cloud/storage/StorageManagerImpl.java  | 17 ++++-------------
 1 file changed, 4 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2210f1b0/server/src/com/cloud/storage/StorageManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java
index f23d764..2a79b0c 100755
--- a/server/src/com/cloud/storage/StorageManagerImpl.java
+++ b/server/src/com/cloud/storage/StorageManagerImpl.java
@@ -974,19 +974,10 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager,
C
         List<CapacityVO> capacities = _capacityDao.search(capacitySC, null);
 
         long totalOverProvCapacity;
-        if (storagePool.getPoolType() == StoragePoolType.NetworkFilesystem) {
+        if (storagePool.getPoolType() == StoragePoolType.NetworkFilesystem || storagePool.getPoolType()
== StoragePoolType.VMFS) {
             BigDecimal overProvFactor = getStorageOverProvisioningFactor(storagePool.getDataCenterId());
-            totalOverProvCapacity = overProvFactor.multiply(new BigDecimal(storagePool.getCapacityBytes())).longValue();//
All
-            // this
-            // for
-            // the
-            // inaccuracy
-            // of
-            // floats
-            // for
-            // big
-            // number
-            // multiplication.
+            totalOverProvCapacity = overProvFactor.multiply(new BigDecimal(storagePool.getCapacityBytes())).longValue();
+            // All this is for the inaccuracy of floats for big number multiplication.
         } else {
             totalOverProvCapacity = storagePool.getCapacityBytes();
         }
@@ -1741,7 +1732,7 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager,
C
         }
 
         long totalOverProvCapacity;
-        if (pool.getPoolType() == StoragePoolType.NetworkFilesystem) {
+        if (pool.getPoolType() == StoragePoolType.NetworkFilesystem || pool.getPoolType()
== StoragePoolType.VMFS) {
             totalOverProvCapacity = getStorageOverProvisioningFactor(pool.getDataCenterId()).multiply(new
BigDecimal(pool.getCapacityBytes()))
                     .longValue();
         } else {


Mime
View raw message