Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Feature Specification

Feature Description

  • The feature allows CloudStack admins to define over-provisioning for individual primary data storages. This will eliminate the tight dependency over the global parameter to leverage underlying overprovisioning.
    A typical Cloud deployment will have different combinations of primary storages. They could either be from different vendors or from the same vendor but different products.
  • Depending on the storage capability, CloudStack admins will have the flexibility to determine what the over-provisioning factor should be for each primary storage.

...

  • Available storage exposed for the primary data store will be (actualStorageSize) * (storage.overprovisioning.factor for the primary)
  • The total summation of capacity of all the primary storages will be displayed on the dashboard with appropriate alerts.
  • All operations like attach Volume, copy Template, resize Volume, Migration etc. will be handled to adhere to the overprovisioning of the primary data store involved.
    For Instance :

...

  • In case of volume migration the current behavior is that CloudStack calculates the totalOverProvCapacity which is (total storage capacity) * (storage.overprovisioning.factor) for the destination Primary Storage.

...

  •  As

...

  • part of validation, the destination Primary Storage must have a higher totalOverProvCapacity than the expected total allocated space.
  • Threshold parameters like notificationthreshold and disablethreshold will be used to alert and disable alarming usage of storage.
  • Primary stores at Local, Cluster level and Zone Wide Primary Storages will be supported.
  • Data Stores of Type NFS and VMFS are only supported to use overprovisioning. Support of other types will be addressed in CLOUDSTACK-5806.
    General Workflow:
  • admin can update an existing primary store by setting overprovisioning in the per primary setting.
  • This value will override the value at the global level. This leverages the granularity of global parameters introduced in 4.2
  • To fall back to the global value, null value can be passed.
  • To disable overprovision a value of 1 will be passed.

DB Schema changes

Not required.

All existing records of zone level storage.overprovisioning.factor settings will be migrated from data_center_details to storage_pool_details

Web Services APIs

listStoragePool will have overprovision factor also listed.

#list storagepools

{ "liststoragepoolsresponse" : { "count":1 ,"storagepool" : [ {"id":"f5183dc8-ba13-35af-b3ae-a4a824631ee2","zoneid":"d7422250-a454-4158-a3a4-6ff9192e4684",
"zonename":"z1","podid":"92b9434c-58b4-410f-b49d-d71d89c143dc","podname":"pod1","name":"primary-5","ipaddress":"10.102.192.101",
"path":"/Saksham/primarystorage","created":"2014-03-11T10:59:08+0530","type":"NetworkFilesystem","clusterid":"ab6d733a-a410-416b-b6af-91f3d554dcb0",
"clustername":"xen2","disksizetotal":9915218558976,"disksizeallocated":0,"disksizeused":1208230281216,"state":"Up","scope":"CLUSTER","overprovisionfactor":"2.0",
"storagecapabilities":{"VOLUME_SNAPSHOT_QUIESCEVM":"false"}} ] } }

Logging and debugging

.All operations like setting and resetting storage overprovision factor, attach Volume, copy Template, resize Volume etc that involve Primary Storages capacity calculations would be logged at different log levels (INFO, ERROR, DEBUG) in management server log file.

Upgrade Scenarios

Upgraded setup will have an primary store setting for each primary store with the value same as the global setting.

All storage pools in  a zone which has modified the value from the original value, will have the some modified value in the new setup for each primary data store belonging to that zone.

UI Changes

Primary Storage Tab will have the settings to edit storage,overprovisioning.factor also.

Future Scope (Post 4.4)

Ability to intuitively decide overprovision factor

...

  • Storage stats will now include actual used size (requires writing/modifying resource calls). This value will be used by the admin to decrease/increase the overprovision factor depending upon the actual capacity used.

  • For

...

  • example, a higher value of used size will be indicative of lowering overprovisioning for further vm deployments.

Allow overprovisioning for types other than NFS and VMFS:

  • Depending upon the fix for CLOUDSTACK-5806, which as suggested by community requires implementing isOverProvisionSupported(), which will be used to calculate allocated storage as per-primary type basis, thus not restricting this functionality to NFS and VMFS only.

  • Incorporating the fix will allow admin to overprovision primary based on the overprovisioning capability

...

DB Schema changes

Adding new column used_size to storage_pool table

Web Services APIs

listStoragePool will have overprovision factor also listed.

Logging and debugging

.All operations like setting and resetting storage overprovision factor, attach Volume, copy Template, resize Volume etc that involve Primary Storages capacity calculations would be logged at different log levels (INFO, ERROR, DEBUG) in management server log file.

Upgrade Scenarios

Appropriate Upgrades will be handled.

UI Changes

...

  • .