Oversubscription in Thin Provisioning

Registered by Xing Yang

We can adopt the similar mechanism introduced in Cinder:
https://github.com/openstack/cinder-specs/blob/master/specs/kilo/over-subscription-in-thin-provisioning.rst

Proposed new parameters:

provisioned_capacity: It is the apparent allocated space indicating how much capacity has been provisioned.

max_over_subscription_ratio: It is the float representation of the over subscription ratio when thin provisioning is involved. It is a ratio of provisioned capacity over total capacity. Default ratio is 1.0, meaning provisioned capacity cannot exceed the total capacity. Note that this ratio is per backend or per pool depending on driver implementation. Add option in manila.conf.

thin_provisioning_support = True or False (True for sparse files) (Add sparse_file option in manila.conf)
thick_provisioning_support = True or False

Existing parameter:
reserved_percentage (reserved_share_percentage in manila.conf)

Generic driver:
    Currently reports 'infinite' for total_capacity_gb and free_capacity_gb.
    Using Cinder quota API we can get some information:

$ cinder quota-usage 575976ef9ec54883b94fb8ae29e5e815+-----------------------+--------+----------+-------+
| Type | In_use | Reserved | Limit |
+-----------------------+--------+----------+-------+
| backup_gigabytes | 5 | 0 | 1000 |
| backups | 5 | 0 | 10 |
| gigabytes | 9 | 0 | 1000 |
| gigabytes_lvmdriver-1 | 9 | 0 | -1 |
| snapshots | 1 | 0 | 10 |
| snapshots_lvmdriver-1 | 1 | 0 | -1 |
| volumes | 8 | 0 | 10 |
| volumes_lvmdriver-1 | 8 | 0 | -1 |
+-----------------------+--------+----------+-------+

$ cinder quota-show 575976ef9ec54883b94fb8ae29e5e815 +-----------------------+-------+
| Property | Value |
+-----------------------+-------+
| backup_gigabytes | 1000 |
| backups | 10 |
| gigabytes | 1000 |
| gigabytes_lvmdriver-1 | -1 |
| snapshots | 10 |
| snapshots_lvmdriver-1 | -1 |
| volumes | 10 |
| volumes_lvmdriver-1 | -1 |
+-----------------------+-------+

Tenant running the command is "demo" and the id belongs to "demo". Will investigate more on how to report capacity for the generic driver.

get_pools is Admin API so we can't use it.

Link to summit discussion:
https://etherpad.openstack.org/p/YVR-manila-liberty-thin-provisioning

Blueprint information

Status:
Complete
Approver:
Ben Swartzlander
Priority:
Medium
Drafter:
Xing Yang
Direction:
Approved
Assignee:
Xing Yang
Definition:
Approved
Series goal:
Accepted for liberty
Implementation:
Implemented
Milestone target:
milestone icon 1.0.0
Started by
Xing Yang
Completed by
Ben Swartzlander

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/oversubscription-in-thin-provisioning,n,z

Addressed by: https://review.openstack.org/192044
    Support for oversubscription in thin provisioning

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.