skip to main content
10.1145/3126908.3126925acmconferencesArticle/Chapter ViewAbstractPublication PagesscConference Proceedingsconference-collections
research-article
Open Access

Charliecloud: unprivileged containers for user-defined software stacks in HPC

Published:12 November 2017Publication History

ABSTRACT

Supercomputing centers are seeing increasing demand for user-defined software stacks (UDSS), instead of or in addition to the stack provided by the center. These UDSS support user needs such as complex dependencies or build requirements, externally required configurations, portability, and consistency. The challenge for centers is to provide these services in a usable manner while minimizing the risks: security, support burden, missing functionality, and performance. We present Charliecloud, which uses the Linux user and mount namespaces to run industry-standard Docker containers with no privileged operations or daemons on center resources. Our simple approach avoids most security risks while maintaining access to the performance and functionality already on offer, doing so in just 800 lines of code. Charliecloud promises to bring an industry-standard UDSS user workflow to existing, minimally altered HPC resources.

References

  1. Amazon Web Services, Inc. 2015. An introduction to high performance computing on AWS. White paper. Amazon Web Services, Inc. https://d0.awsstatic.com/whitepapers/Intro_to_HPC_on_AWS.pdfGoogle ScholarGoogle Scholar
  2. Evan Andersen. 2016. How Nvidia breaks Chrome incognito. (Jan. 2016). https://charliehorse55.wordpress.com/2016/01/09/how-nvidia-breaks-chrome-incognito/Google ScholarGoogle Scholar
  3. Diego Calleja. 2013. Linux 3.8. (April 2013). http://kernelnewbies.org/Linux_3.8Google ScholarGoogle Scholar
  4. Hao Chen, David Wagner, and Drew Dean. 2002. Setuid Demystified. In USENIX Security Symposium. http://crypto.stanford.edu/cs155/papers/setuid-usenix02.pdf Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. CoreOS Inc. 2017. rkt 1.25.0 documentation. (2017). https://coreos.com/rkt/docs/1.25.0/Google ScholarGoogle Scholar
  6. Docker, Inc. 2016. Dockerfile reference. Documentation. Docker, Inc. https://docs.docker.com/engine/reference/builder/Google ScholarGoogle Scholar
  7. Docker Inc. 2017. Docker Docs. Documentation. Docker, Inc. https://docs.docker.comGoogle ScholarGoogle Scholar
  8. John L. Furlani and Peter W. Osel. 1996. Abstract yourself with modules. In USENIX System Administration Conference. http://modules.sourceforge.net/docs/absmod.pdf Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Tyler Hicks. 2017. CVE-2017-7184: kernel: Local privilege escalation in XFRM framework. (March 2017). http://seclists.org/oss-sec/2017/q1/689Google ScholarGoogle Scholar
  10. Solomon Hykes. 2015. Introducing runC: A lightweight universal container runtime. (June 2015). https://blog.docker.com/2015/06/runcGoogle ScholarGoogle Scholar
  11. Intel Corporation 2016. Intel® MPI benchmarks: User guide and methodology description. Documentation. Intel Corporation. https://software.intel.com/sites/default/files/managed/66/e8/IMB_Users_Guide.pdfGoogle ScholarGoogle Scholar
  12. Keith R. Jackson, Lavanya Ramakrishnan, Krishna Muriki, Shane Canon, Shreyas Cholia, John Shalf, Harvey J. Wasserman, and Nicholas J. Wright. 2010. Performance analysis of high performance computing applications on the Amazon Web Services cloud. In IEEE CloudCom. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Doug Jacobsen and Shane Canon. 2015. Contain this, unleashing Docker for HPC. (May 2015). http://www.nersc.gov/assets/Uploads/nersc-brownbag-docker-jacobsen-canon.pdfGoogle ScholarGoogle Scholar
  14. Douglas M. Jacobsen and Richard Shane Canon. 2015. Contain this, unleashing Docker for HPC. In Cray User Group. http://www.nersc.gov/assets/Uploads/cug2015udi.pdfGoogle ScholarGoogle Scholar
  15. Venkateswararao Jujjuri, Eric Van Hensbergen, Anthony Liguori, and Badari Pulavarty. 2010. VirtFS---a virtualization aware file system pass-through. In Ottawa Linux Symposium (OLS). https://www.kernel.org/doc/ols/2010/ols2010-pages-109-120.pdfGoogle ScholarGoogle Scholar
  16. Michael Kerrisk. 2013. Namespaces in operation, part 1: Namespaces overview. Linux Weekly News (Jan. 2013). https://lwn.net/Articles/531114/Google ScholarGoogle Scholar
  17. Michael Kerrisk. 2013. Namespaces in operation, part 5: User namespaces. Linux Weekly News (Feb. 2013). https://lwn.net/Articles/532593/Google ScholarGoogle Scholar
  18. Michael Kerrisk et al. 2015. pid_namespaces(7). Man page. http://man7.org/linux/man-pages/man7/pid_namespaces.7.htmlGoogle ScholarGoogle Scholar
  19. Michael Kerrisk et al. 2016. chroot(2). Man page. http://man7.org/linux/man-pages/man2/chroot.2.htmlGoogle ScholarGoogle Scholar
  20. Michael Kerrisk et al. 2016. clone(2). Man page. http://man7.org/linux/man-pages/man2/clone.2.htmlGoogle ScholarGoogle Scholar
  21. Michael Kerrisk et al. 2016. namespaces(7). Man page. http://man7.org/linux/man-pages/man7/namespaces.7.htmlGoogle ScholarGoogle Scholar
  22. Michael Kerrisk et al. 2016. setns(2). Man page. http://man7.org/linux/man-pages/man2/setns.2.htmlGoogle ScholarGoogle Scholar
  23. Michael Kerrisk et al. 2016. unshare(2). Man page. http://man7.org/linux/man-pages/man2/unshare.2.htmlGoogle ScholarGoogle Scholar
  24. Michael Kerrisk et al. 2016. user_namespaces(7). Man page. http://man7.org/linux/man-pages/man7/user_namespaces.7.htmlGoogle ScholarGoogle Scholar
  25. Gregory M. Kurtzer. 2016. Singularity. (July 2016). http://singularity.lbl.gov/Google ScholarGoogle Scholar
  26. Ning Liu, Jason Cope, Philip Carns, Christopher Carothers, Robert Ross, Gary Grider, Adam Crume, and Carlos Maltzahn. 2012. On the role of burst buffers in leadership-class storage systems. In Mass Storage Systems and Technologies (MSST).Google ScholarGoogle Scholar
  27. Scott Lowe. 2009. What is SR-IOV? (Dec. 2009). http://blog.scottlowe.org/2009/12/02/what-is-sr-iov/Google ScholarGoogle Scholar
  28. Doug McIlroy, E. N. Pinson, and B. A. Tague. 1978. UNIX time-sharing system: Foreword. Bell System Technical Journal 67, 6 (1978).Google ScholarGoogle Scholar
  29. Open Container Initiative 2016. About. Mission statement. Open Container Initiative. https://www.opencontainers.org/aboutGoogle ScholarGoogle Scholar
  30. Larry Pezzaglia. 2012. CHOS in production. (April 2012). https://www.nersc.gov/assets/pubs_presos/chos.pdfGoogle ScholarGoogle Scholar
  31. Red Hat Inc. 2016. CVE-2016-10208. (Nov. 2016). https://access.redhat.com/security/cve/cve-2016-10208Google ScholarGoogle Scholar
  32. Reventlov. 2015. Using the docker command to root the host (totally not a security issue). (April 2015). http://reventlov.com/advisories/using-the-docker-command-to-root-the-hostGoogle ScholarGoogle Scholar
  33. Rami Rosen. 2016. Namespaces and cgroups, the basis of Linux containers. (Feb. 2016). http://www.netdevconf.org/1.1/proceedings/slides/rosen-namespaces-cgroups-lxc.pdfGoogle ScholarGoogle Scholar
  34. Cristian Ruiz, Emmanuel Jeanvoine, and Lucas Nussbaum. 2015. Performance evaluation of containers for HPC. In Euro-Par 2015: Parallel Processing Workshops.Google ScholarGoogle Scholar
  35. Jerome H. Saltzer. 1974. Protection and the control of information sharing in Multics. CACM 17, 7 (July 1974). Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Simes. 2002. How to break out of a chroot() jail. (May 2002). https://web.archive.org/web/20160209154009/http://www.bpfh.net/simes/computing/chroot-break.htmlGoogle ScholarGoogle Scholar
  37. Robert Swiecki. 2016. NsJail. (Dec. 2016). https://google.github.io/nsjail/Google ScholarGoogle Scholar
  38. systemd contributors. 2017. systemd-nspawn. Man page. https://www.freedesktop.org/software/systemd/man/systemd-nspawn.htmlGoogle ScholarGoogle Scholar
  39. Wikipedia editors. 2016. Virtualization. (Feb. 2016). https://en.wikipedia.org/w/index.php?title=Virtualization&oldid=704408822Google ScholarGoogle Scholar
  40. Miguel G. Xavier, Marcelo V. Neves, Fabio D. Rossi, Tiago C. Ferreto, Timoteo Lange, and Cesar A. F. De Rose. 2013. Performance evaluation of container-based virtualization for high performance computing environments. In Euromicro Parallel, Distributed, and Network-Based Processing. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Charliecloud: unprivileged containers for user-defined software stacks in HPC

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          SC '17: Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis
          November 2017
          801 pages
          ISBN:9781450351140
          DOI:10.1145/3126908
          • General Chair:
          • Bernd Mohr,
          • Program Chair:
          • Padma Raghavan

          Copyright © 2017 Owner/Author

          This work is licensed under a Creative Commons Attribution International 4.0 License.

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 12 November 2017

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          SC '17 Paper Acceptance Rate61of327submissions,19%Overall Acceptance Rate1,516of6,373submissions,24%

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader