From Fedora Project Wiki
 
(11 intermediate revisions by 4 users not shown)
Line 22: Line 22:


<!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name.  This keeps all change proposals in the same namespace -->
<!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name.  This keeps all change proposals in the same namespace -->
= Change Proposal Name <!-- The name of your change proposal --> =
= Docker Overlay 2 <!-- The name of your change proposal --> =


== Summary ==
== Summary ==
<!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release. -->
<!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release. -->
Change the default Docker Storage to be overlay2
Change the default Docker Storage to use OverlayFS via the overlay2 driver, for better performance.


== Owner ==
== Owner ==
Line 48: Line 48:


== Current status ==
== Current status ==
* Targeted release: [[Releases/F26 | Fedora 26 ]]  
* Targeted release: [[Releases/26 | Fedora 26 ]]
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
Line 58: Line 58:
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
-->
-->
* Tracker bug: <will be assigned by the Wrangler>
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1419514 #1419514]


== Detailed Description ==
== Detailed Description ==
Line 65: Line 65:




Upstream docker is moving to overlay2 by default for its storage. We
Upstream docker is moving to overlay2 by default for its storage. We
plan on following suit. Their are some performance advantages of
plan on following suit. (This is an updated driver for the OverlayFS
filesystem, not a second overlay filesystem.) There are some performance advantages of
overlay2 over devicemapper in memory sharing, which we would like to
overlay2 over devicemapper in memory sharing, which we would like to
take advantage of.   We now have SELinux support for Overlay file
take advantage of. We now have SELinux support for Overlay file
systems, so the security should be just as good.
systems, so the security should be just as good.  


Note: Overlay is not a Posix Compliant file system, so their could be
Note: Overlay is not a Posix Compliant file system, so there could be
problems with your containers running on overlay, so
problems with your containers running on overlay, so
we want to make sure it is fairly easy to switch back to devicemapper.
we want to make sure it is fairly easy to switch back to devicemapper.
Line 79: Line 80:
this was the only way we were able to get docker to work right away.  
this was the only way we were able to get docker to work right away.  
Switching to overlay2 will cause the storage to be shared with / and
Switching to overlay2 will cause the storage to be shared with / and
will eliminate this performance overhead.   This is the way we will ship
will eliminate this performance overhead. This is the way we will ship
Fedora Workstation.
Fedora Workstation.


Line 95: Line 96:
We will write up release notes to cover this change. Along with a blog
We will write up release notes to cover this change. Along with a blog
explaining the commands to switch back and forth.
explaining the commands to switch back and forth.


== Benefit to Fedora ==
== Benefit to Fedora ==
Line 105: Line 105:


== Scope ==
== Scope ==
* Proposal owners: Dan Walsh
* Proposal owners: Implementation of this Change
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->


Line 183: Line 183:
-->
-->


[[Category:ChangePageIncomplete]]
[[Category:ChangeAcceptedF26]]
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
<!-- The Wrangler announces the Change to the devel-announce list and changes the category to Category:ChangeAnnounced (no action required) -->  
<!-- The Wrangler announces the Change to the devel-announce list and changes the category to Category:ChangeAnnounced (no action required) -->  
<!-- After review, the Wrangler will move your page to Category:ChangeReadyForFesco... if it still needs more work it will move back to Category:ChangePageIncomplete-->
<!-- After review, the Wrangler will move your page to Category:ChangeReadyForFesco... if it still needs more work it will move back to Category:ChangePageIncomplete-->
Category:ChangeReadyForFesco
Category:ChangeReadyForWrangler


<!-- Select proper category, default is Self Contained Change -->
<!-- Select proper category, default is Self Contained Change -->

Latest revision as of 11:49, 6 February 2017

Self Container Change: This change will only affect users of the docker package.


Docker Overlay 2

Summary

Change the default Docker Storage to use OverlayFS via the overlay2 driver, for better performance.

Owner

  • Name: Lokesh Mandvekar
  • Name: Dan Walsh
  • Email: lsm5@fedoraproject.org, dwalsh@redhat.com
  • Release notes owner:
  • Product: Workstation, Atomic Host, Server

Current status

Detailed Description

Upstream docker is moving to overlay2 by default for its storage. We plan on following suit. (This is an updated driver for the OverlayFS filesystem, not a second overlay filesystem.) There are some performance advantages of overlay2 over devicemapper in memory sharing, which we would like to take advantage of. We now have SELinux support for Overlay file systems, so the security should be just as good.

Note: Overlay is not a Posix Compliant file system, so there could be problems with your containers running on overlay, so we want to make sure it is fairly easy to switch back to devicemapper.

Devicemapper out of the box, on Fedora Workstation, currently defaults to loopback devices for storage, which has a performance penalty, but this was the only way we were able to get docker to work right away. Switching to overlay2 will cause the storage to be shared with / and will eliminate this performance overhead. This is the way we will ship Fedora Workstation.

On Fedora atomic host and Fedora server we have been storing devicemapper storage on a separate partition. We plan on doing the same thing with overlay2. This means separate device will be mounted on /var/lib/docker. This will make it easier for someone to switch back to devicemapper, if overlay2 has problems.

Upgraded systems will not be effected.

If you want to switch from one storage to another take a look at the atomic storage commands.

We will write up release notes to cover this change. Along with a blog explaining the commands to switch back and forth.

Benefit to Fedora

Better performance of docker containers. Show that Fedora is leading the way in container development.


Scope

  • Proposal owners: Implementation of this Change
  • Other developers: N/A (not a System Wide Change)
  • Release engineering: N/A (not a System Wide Change)
  • Policies and guidelines: N/A (not a System Wide Change)
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

N/A (not a System Wide Change)

How To Test

Install a fresh docker, make sure the default storage is on overlay,if installing on atomic host or Fedora Server, make sure the overlay file system is setup on a different partion, and it mounted after a reboot.

Make sure you can switch from overlay2 back to devicemapper using atomic storage commands. N/A (not a System Wide Change)

User Experience

N/A (not a System Wide Change) Users should not notice the change other then if they use the docker or atomic CLI to examine the storage.

Dependencies

N/A (not a System Wide Change)

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change), Yes/No
  • Blocks product? product

Documentation

N/A (not a System Wide Change)

Release Notes

Category:ChangeReadyForWrangler