Status and Roadmap of the CernVM-FS Graphdriver Plugin for Docker CERN, SFT Group Meeting Nikola Hardi nhardi@cern.ch October 16, 2017 Supervisors: Jakob Blomer : jblomer@cern.ch Gerardo Ganis : gerardo.ganis@cern.ch Nikola Hardi nhardi@cern.ch Status and Roadmap of the CernVM-FS Graphdriver Plugin for Docker October 16, 2017 1 / 19
Project Overview Project Overview Nikola Hardi nhardi@cern.ch Status and Roadmap of the CernVM-FS Graphdriver Plugin for Docker October 16, 2017 2 / 19
Project Overview Recognizing the problem (1/2) Joint Blog Post Mesosphere & CERN (03/2016) Network traffic gets congested as gigabytes worth of Docker downloads are moving across the pipe [. . . ]. Companies [. . . ] such as Twitter have already experienced this phenomenon. Red Hat, “Containers for Grownups” (02/2016) 10 things to avoid in docker containers: . . . 3) Don’t create large images. Medallia (10/2015, CERN KT Screening) The problem today with Docker is that distribution of software is a mess, it is a “bottleneck” in our system. Jakob Blomer, CernVM-FS as a Distribution Engine for Application Containers, 24/05/2016 Nikola Hardi nhardi@cern.ch Status and Roadmap of the CernVM-FS Graphdriver Plugin for Docker October 16, 2017 3 / 19
Project Overview Recognizing the problem (2/2) Improved Docker Software Docker Software KT-Funded Project pull & push “apps” file-based transfer Docker “App Store” CernVM File System Jakob Blomer, CernVM-FS as a Distribution Engine for Application Containers, 24/05/2016 Nikola Hardi nhardi@cern.ch Status and Roadmap of the CernVM-FS Graphdriver Plugin for Docker October 16, 2017 4 / 19
Project Overview The CernVM-FS graphdriver plugin for Docker Host machine Remote server CernVM-FS Graphdriver This is CernVM-FS server plugin a container! Minio S3 S3 HTTP Docker Docker Docker client daemon registry $ docker plugin install cvmfs/overlay2-graphdriver Restart Dockerd with −− experimental − s cvmfs/overlay2-graphdriver $ docker run cvmfs/thin ubuntu echo ’’Good bye EP-SFT!‘‘ Nikola Hardi nhardi@cern.ch Status and Roadmap of the CernVM-FS Graphdriver Plugin for Docker October 16, 2017 5 / 19
Project Overview How it works Regular Docker Image Thin Image CernVM-FS graphdriver Scratch layer Thin image descriptor Local read-only layer CernVM-FS provided read-only layer Nikola Hardi nhardi@cern.ch Status and Roadmap of the CernVM-FS Graphdriver Plugin for Docker October 16, 2017 6 / 19
Project Overview Results Transferred Data [MB] Startup Time [s] 40 200 Just 3 MB! Constant startup time! 100 30 50 25 20 10 10 5 0 R OwnCloud Ubuntu R OwnCloud Ubuntu Nikola Hardi nhardi@cern.ch Status and Roadmap of the CernVM-FS Graphdriver Plugin for Docker October 16, 2017 7 / 19
Status Update Status Update Nikola Hardi nhardi@cern.ch Status and Roadmap of the CernVM-FS Graphdriver Plugin for Docker October 16, 2017 8 / 19
Status Update The software components The plugin container, consisting of two derived graphdriver plugins The docker2cvmfs utility for creating thin images The layer upload and publishing utilities (Minio S3 + web hook) co-located with a CernVM-FS release manager. Nikola Hardi nhardi@cern.ch Status and Roadmap of the CernVM-FS Graphdriver Plugin for Docker October 16, 2017 9 / 19
Status Update From prototype to pre-production 1 Support for both relevant union file systems (aufs, overlay2) 2 Standardized terminology: thin image, image descriptor and layers 3 Integration test suite 4 Usability improvements 5 Many bug fixes from real-world tests 6 Reproducible builds 7 Packaging and versioning of the different components Nikola Hardi nhardi@cern.ch Status and Roadmap of the CernVM-FS Graphdriver Plugin for Docker October 16, 2017 10 / 19
Prospective Collaborations Applications Prospective Collaborations Applications Nikola Hardi nhardi@cern.ch Status and Roadmap of the CernVM-FS Graphdriver Plugin for Docker October 16, 2017 11 / 19
Prospective Collaborations Applications Prospective Collaborations Applications ” Except the hard drives that At CERN: need to store all those CernVM-FS build jobs fat images [...] and the network latency that comes EP-SFT Jenkins with it. ” CERN IT OpenStack team (The Batch Services team) ” Astonishing results : Outside of the HEP: Running the application with thin image: instantaneous . ” Nexenio No evident network traffic The Docker team when using the CernVM-FS ( BuildKit and containerd maintainer ) graphdriver plugin. Nikola Hardi nhardi@cern.ch Status and Roadmap of the CernVM-FS Graphdriver Plugin for Docker October 16, 2017 12 / 19
Prospective Collaborations Applications Results of the cloud-benchmark-suite (1/2) The cluster startup time reduced from 5 min to less than 5 s. Nikola Hardi nhardi@cern.ch Status and Roadmap of the CernVM-FS Graphdriver Plugin for Docker October 16, 2017 13 / 19
Prospective Collaborations Applications Results of the cloud-benchmark-suite (2/2) Nikola Hardi nhardi@cern.ch Status and Roadmap of the CernVM-FS Graphdriver Plugin for Docker October 16, 2017 14 / 19
Prospective Collaborations Applications Publications and Dissemination Published an RFC at Docker Github issues page in November Presented the project at the ACAT 2017 in August Presentation and demo by CERN IT at the Dockercon Europe (starting today in Copenhagen!) Master thesis - starting in November (next week) Nikola Hardi nhardi@cern.ch Status and Roadmap of the CernVM-FS Graphdriver Plugin for Docker October 16, 2017 15 / 19
Roadmap and Summary Roadmap and Summary Nikola Hardi nhardi@cern.ch Status and Roadmap of the CernVM-FS Graphdriver Plugin for Docker October 16, 2017 16 / 19
Roadmap and Summary From pre-production to release Merging integration tests with existing CernVM-FS CI routines 1 Extending S3+webhook ensemble into a ”CernVM-FS portals” system. 2 E.g. the ability to send ”packages” (e.g. RPMs, tarballs with user software, docker layers etc.) via S3 to a CernVM-FS release manager for automatic publishing. Easier setup for the server side: cvmfs server portal. 3 The docker2cvmfs tool push command. 4 Local only commits on thin images. 5 Automatically create thin images on demand. 6 Improve handling of special files in CernVM-FS. 7 Server side garbage collection 8 Nikola Hardi nhardi@cern.ch Status and Roadmap of the CernVM-FS Graphdriver Plugin for Docker October 16, 2017 17 / 19
Roadmap and Summary Summary The plugin works and solves a real problem. First users have started testing the plugin with encouraging results. The plugin is already fully functional but usability can be improved. One of the first Docker v2 plugins and especially graphdriver plugins. Works on Centos 7.4 and CernVM . Requirements: Docker 1.13+ (January 2017) and OverlayFS or AUFS support in kernel. Nikola Hardi nhardi@cern.ch Status and Roadmap of the CernVM-FS Graphdriver Plugin for Docker October 16, 2017 18 / 19
Thank you and Goodbye Thank you and Goodbye! Thank you @EP-SFT for an amazing year I had! Nikola Hardi nhardi@cern.ch Status and Roadmap of the CernVM-FS Graphdriver Plugin for Docker October 16, 2017 19 / 19
Recommend
More recommend