support for different docker storage driver

Registered by Hua Wang on 2015-12-01

Docker has several storage drivers, such as aufs, devicemapper. We should add support for them, so that the user can select a storage driver which meets his demand.

Blueprint information

Status:
Complete
Approver:
Adrian Otto
Priority:
Medium
Drafter:
Hua Wang
Direction:
Approved
Assignee:
Spyros Trigazis
Definition:
Approved
Series goal:
Accepted for newton
Implementation:
Implemented
Milestone target:
None
Started by
hongbin on 2016-06-27
Completed by
hongbin on 2016-06-27

Related branches

Sprints

Whiteboard

In our 2015-12-01 team meeting we decided to table this for now. I suggest adding an outline to explain the planned implementation, and a level-of-effort estimate, and place that in the description.
We can come back to this when we have both 1) A user seeking this, and 2) A developer willing to add it. --adrian_otto

CERN's use case of OverlayFS:
It has been observed that creation and removal of containers in our infrastructure are both very slow especially on Hard Disk Drives (which are currently the majority), using the default storage driver in Fedora/Centos: devicemapper. A significant performance improvement has been noticed when overlay was used as a storage driver.

times for creating/removing a container holding CERN experiment framework software:
* devicemapper
  - create: 2 to 3 seconds
  - remove: 6 to 7 seconds
* overlay
  - create: less than 1.5 seconds
  - remove: less than 1.5 seconds

CERN's experiment framework software uses two different versions of python and various python and kernel libraries.
-- Spyros Trigazis

(strigazi):
1. We must decide if docker-storage-drivers will be an optional parameter, if so, we should also choose its default value. Probably devicemapper, since it's the one used as the only storage driver for both swarm and kubernetes.
2. This feature could be implemented with labels. What design we should follow?
3. OverlayFS can be used in a mesos cluster. If docker-storage-drivers will be an optional parameter it can be ignored for mesos or add support for overlayfs in mesos clusters. This can be done in a another bp.

Gerrit topic: https://review.openstack.org/#q,topic:bp/support-for-different-docker-storage-driver,n,z

Addressed by: https://review.openstack.org/284720
    Add docker-storage-driver attribute to baymodel

Addressed by: https://review.openstack.org/322955
    Add docker-storage-driver argument to baymodel

Newton Design Notes: https://etherpad.openstack.org/p/newton-magnum-container-storage

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.