1 / 20

Dockerizing CVMFS Release Management with a Remote Repository

Learn how to Dockerize release management process for CVMFS with a remote repository to improve scalability and reduce resource wastage.

jamesglewis
Download Presentation

Dockerizing CVMFS Release Management with a Remote Repository

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DockerizingCVMFS Release Management with a Remote Repository Lillian Huang IT-ST-FDO Supervisor: Dan van der Ster University of Michigan Lillian Huang

  2. CVMFS Overview Lillian Huang • The CernVM-File System was built to deploy software on the WLCG • Read-only, HTTP based, highly cacheable, signed repositories

  3. CERN Stratum 0 Architecture Lillian Huang

  4. CERN Stratum 0 Architecture Lillian Huang

  5. Areas for Improvement Lillian Huang Load balance for Stratum 0 VMs Every new repository needs a new VM for release management Some release management machines are idle for weeks at a time, but continue to use up space and resources—wasteful Difficult to scale performance of single repository CVMFS currently has a single point of failure at Stratum 0 with respect to data storage

  6. My Project Lillian Huang • Dockerized release management—create a container image that can be started on demand by release managers • Don’t need a new VM for each new repo • Resources not wasted • Decrease load on Stratum 0 VMs • Remote shared storage—we used S3 • Scales storage independently of VMs • No single point of failure

  7. Components Lillian Huang • Docker image that contains cvmfs_server software and is able to mount /cvmfs in rw mode • S3-based repository • This aspect was pretty out-of-the-box • Source: http://cvmfs.readthedocs.io/en/stable/cpt-repo.html#s3-compatible-storage-systems

  8. As of last time: Lillian Huang Created S3-hosted repository: Docker image for container with release management capabilities: Kubernetes: X User-Friendly Command: ??

  9. cvmfs_server_docker() Lillian Huang • Parses through options: • -i <image name>: pulls and runs specified image rather than the default at gitlab-registry.cern.ch/cvmfs/it-cvmfs-docker/cvmfs_container • -c <absolute path>: mounts specified directory of configuration files to /tmp/config_files in the container • -f <absolute path>: mounts specified bash script of commands to run at /dockerfile_commands.sh rather than the default (shown on previous slide) • Makes sure there is exactly 1 repo name given • Pulls and runs image to start container

  10. Testing Lillian Huang • Does it work? • Does running in a container slow publishing? • Does S3 slow down publishing? Can we speed it up with parallel connections? • Tested on testng.cern.ch with • varied numbers of tiny unique files per transaction • Linux kernel (50k files)

  11. Results Lillian Huang

  12. Results Lillian Huang

  13. Conclusion Lillian Huang • The Dockerized release management process is possible! • Remote storage makes this possible and is useable today • S3 works out of the box, but performance was not extensively tested • EP-SFT working on new remote publishing mechanism • Pull request pending

  14. Special Thanks Lillian Huang Dan van der Ster Julien Leduc, JakobBlomer Prof. JunjieZhu, Prof. Myron Campbell Prof. Steve Goldfarb CariCesarotti NSF support All of the lovely people I’ve met

  15. Thank you! Lillian Huang

  16. Backup Lillian Huang

  17. Dockerfile Lillian Huang

  18. Start-up Commands Create various directories necessary for OverlayFS, as well as placing a number of configuration files in the correct places for CVMFS to work Content hash Run /bin/bash for interactive container Lillian Huang

  19. cvmfs_server_docker() Interactive container Non-default command file mounted here Necessary volume to write to CVMFS (scratch space) Changed at run-time due to user input Volume containing config files Add /dev/fuse with permissions WIP: https://github.com/lilhuang/cvmfs/tree/docker Lillian Huang Pulls and runs the image

More Related