Support non-thin provision and thin provision volumes in one volume backend

Registered by ling-yun

Currently, many volume backend drivers only support create one type's volume according to its configuration.
As far as we know, some volume backend drivers based on cluster file system have the capability to support
create non-thin provision and thin provision volumes at the same time, which would could bring the following benefits:
1. It can offer more using flexibility to provide more kinds of volume.
2. It can make full use of volume backend storage, because it can avoid storage pool fragmentation.

Blueprint information

Status:
Complete
Approver:
None
Priority:
Not
Drafter:
ling-yun
Direction:
Needs approval
Assignee:
ling-yun
Definition:
Obsolete
Series goal:
None
Implementation:
Unknown
Milestone target:
milestone icon next
Completed by
Sean McGinnis

Related branches

Sprints

Whiteboard

If a particular backend supports specifying thin versus thick then that could/should be exposed via the existing means that we have currently (types/extra-specs). This would be fairly easy to implement with little change to the code base.

Is this what you're thinking, or is there something else you have in mind?

====
Yes, it can be done by extra-specs/types.
1. Current Problem
Nnow most of the volume drivers only support one volume type based on configuration.
For glusterfs driver, it only support thin volume or thick volume in one volume backend based on config item of glusterfs_sparsed_volumes.
But glusterfs volume backend has the capability to support thin and thick volume in one volume backend.
Others volume backend drivers also have the same problem.

2. Benifits of this bp:
1) One volume backend support two or more kinds of volumes in one volume backend
Subsuqent volume drivers should support more kinds of volume in one volume backend when implementing, instead only support one kind volume according to current volume drivers.

2) Make full use of volume backend storage, because it can avoid storage pool fragmentation.
According to the current volume drivers' implementation, we need two storage backend to support thin and non-thin volume, which would cause a storage pool fragmentation problem.
If volume driver support thin and non-thin volume in one volume backend, we could put two storage backend pool together to make full use of volume backend storage.

Based on these two points, I think it is necessary to rebase volume drivers and subsuqent volume drivers implement to support more kinds in one volume backend.
-- ling-yun

To my understanding, it is necessary to consider over-provisioning ratio for thin provisioning, for example. -- Jay Xu.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.