Docker for HPC? Yes, Singularity! Josef Hrabal

Similar documents
Singularity: Containers for High-Performance Computing. Grigory Shamov Nov 21, 2017

CONTAINERIZING JOBS ON THE ACCRE CLUSTER WITH SINGULARITY

Singularity: container formats

Travis Cardwell Technical Meeting

Presented By: Gregory M. Kurtzer HPC Systems Architect Lawrence Berkeley National Laboratory CONTAINERS IN HPC WITH SINGULARITY

Singularity - Containers for Scientific Computing ZID Workshop. Innsbruck Nov 2018

[Docker] Containerization

Introduction to Containers. Martin Čuma Center for High Performance Computing University of Utah

Centre de Calcul de l Institut National de Physique Nucléaire et de Physique des Particules. Singularity overview. Vanessa HAMAR

Introduction to Containers

Scientific Filesystem. Vanessa Sochat

Introduction to Containers. Martin Čuma Center for High Performance Computing University of Utah

OS Virtualization. Linux Containers (LXC)

Introduction to containers

LSST software stack and deployment on other architectures. William O Mullane for Andy Connolly with material from Owen Boberg

Singularity. Containers for Science

docker & HEP: containerization of applications for development, distribution and preservation

ISLET: Jon Schipp, AIDE jonschipp.com. An Attempt to Improve Linux-based Software Training

Operating system hardening

Andrej Filipčič

Cross platform enablement for the yocto project with containers. ELC 2017 Randy Witt Intel Open Source Technology Center

SAINT LOUIS JAVA USER GROUP MAY 2014

An introduction to Docker

Lecture 09: VMs and VCS head in the clouds

CS 470 Spring Virtualization and Cloud Computing. Mike Lam, Professor. Content taken from the following:

Alternatives to Solaris Containers and ZFS for Linux on System z

Simple custom Linux distributions with LinuxKit. Justin Cormack

Spring 2017 :: CSE 506. Introduction to. Virtual Machines. Nima Honarmand

Module 1: Virtualization. Types of Interfaces

OS Containers. Michal Sekletár November 06, 2016

Docker A FRAMEWORK FOR DATA INTENSIVE COMPUTING

Faculté Polytechnique

Midterm Presentation Schedule

InstallAnywhere: Requirements

High Performance Containers. Convergence of Hyperscale, Big Data and Big Compute

EE 660: Computer Architecture Cloud Architecture: Virtualization

Getting started with LXD

Who is Docker and how he can help us? Heino Talvik

Singularity tests at CC-IN2P3 for Atlas

Virtualization. join, aggregation, concatenation, array, N 1 ühendamine, agregeerimine, konkateneerimine, massiiv

Real world Docker applications

CS-580K/480K Advanced Topics in Cloud Computing. Container III

Container Adoption for NFV Challenges & Opportunities. Sriram Natarajan, T-Labs Silicon Valley Innovation Center

Table of Contents 1.1. Introduction. Overview of vsphere Integrated Containers 1.2

CS197U: A Hands on Introduction to Unix

Docker und IBM Digital Experience in Docker Container

Deployment Patterns using Docker and Chef

Shifter at CSCS Docker Containers for HPC

Software Distribution and Package Management

Virtualization. Starting Point: A Physical Machine. What is a Virtual Machine? Virtualization Properties. Types of Virtualization

Virtualization. ! Physical Hardware Processors, memory, chipset, I/O devices, etc. Resources often grossly underutilized

LINUX Virtualization. Running other code under LINUX

Docker Deep Dive. Daniel Klopp

Operating Systems 4/27/2015

Docker II - Judgement Day

for Kerrighed? February 1 st 2008 Kerrighed Summit, Paris Erich Focht NEC

Table of Contents 1.1. Overview. Containers, Docker, Registries vsphere Integrated Containers Engine

Testbed-12 TEAM Engine Virtualization User Guide

Logging, Monitoring, and Alerting

ViryaOS RFC: Secure Containers for Embedded and IoT. A proposal for a new Xen Project sub-project

Quick Prototyping+CI with LXC and Puppet

ROBIN SYSTEMS. Containerizing Oracle: Not Thinking About It Yet? You Should Be!!!

OS Security III: Sandbox and SFI

Introduction to Container Technology. Patrick Ladd Technical Account Manager April 13, 2016

ovirt and Docker Integration

The only open-source type-1 hypervisor

Linux Containers Roadmap Red Hat Enterprise Linux 7 RC. Bhavna Sarathy Senior Technology Product Manager, Red Hat

Welcome to Linux Foundation E-Learning Training

Operating-System Structures

Virtualization (II) SPD Course 17/03/2010 Massimo Coppola

Server Monitoring. AppDynamics Pro Documentation. Version 4.1.x. Page 1

Zdeněk Kubala Senior QA

Investigating Containers for Future Services and User Application Support

Making Immutable Infrastructure simpler with LinuxKit. Justin Cormack

Getting Started With Containers

Installing Virtualbox Guest Additions Vboxadditions on CentOS 7, Fedora 19 / 20 and RHEL 6.5 / 5.10 on Windows host

VM Migration, Containers (Lecture 12, cs262a)

Distributed Systems COMP 212. Lecture 18 Othon Michail

STATUS OF PLANS TO USE CONTAINERS IN THE WORLDWIDE LHC COMPUTING GRID

Welcome to Linux Foundation E-Learning Training

Containerizing GPU Applications with Docker for Scaling to the Cloud

Utilizing Oracle Solaris Containers with Oracle Database. Björn Rost

개발자와운영자를위한 DevOps 플랫폼 OpenShift Container Platform. Hyunsoo Senior Solution Architect 07.Feb.2017

Building A Better Test Platform:

Virtualization and Performance

A Greybeard's Worst Nightmare

KVM Forum Vancouver, Daniel P. Berrangé

Acronis Backup & Recovery 11.5

Ubuntuを利用した世界最高のOSSプラットフォーム. Takaaki Suzuki Canonical - Solutions Architect

, Inc

Virtualbox Mount Shared Folder Ubuntu Permission Denied

Immutable Application Containers Reproducibility of CAE-computations through Immutable Application Containers

Introduction to Docker. Antonis Kalipetis Docker Athens Meetup

Cloud Computing. Luigi Santangelo Department of Computer Engineering University of Pavia

System Requirements ENTERPRISE

Kubernetes The Path to Cloud Native

Tooling Linux for the Future of Embedded Systems. Patrick Quairoli Director of Alliance and Embedded Technology SUSE /

How Container Runtimes matter in Kubernetes?

Welcome to Linux Foundation E-Learning Training

Ubuntu Install Partition Server On. Virtualbox 4.3 >>>CLICK HERE<<<

Transcription:

Docker for HPC? Yes, Singularity! Josef Hrabal IT4Innovations josef.hrabal@vsb.cz support@it4i.cz

Virtual Machine Hardware (CPU, Memory, NIC, HDD) Host OS (Windows, Linux, MacOS) Hypervisor (VirtualBox, VMware, Hyper-V) Guest OS Guest OS Bins/Libs Bins/Libs App 1 App 2

Pros: Virtual Machine Complete isolation between virtual machines Compatibility - same virtual HW on all physical machines Portability run on any host OS Aggregation of resources Snapshots Cons: No direct resource sharing Overhead, Boot time Large VM images contain whole OS Difficult to run on a cluster (kernel modules etc.)

Container Container Engine (Docker) (Singularity) Hardware (CPU, Memory, NIC, HDD) Host OS Bins/Libs Bins/Libs App 1 App 2

Container Encapsulations of system environments Pros: Speed - start, create, replicate or destroy quickly Portability run on any Linux based OS Allows access to host filesystems Image contain only necessary files Aggregation of resources Small overhead Cons: Shares kernel of host OS Weaker isolation

Container History 1979 chroot (changing root directory) 2000 FreeBSD Jails (early container technology) 2001 Linux VServer (namespace separation) 2004 Solaris Containers (Solaris 10) 2005 OpenVZ (patched Linux kernel) 2006 Process Containers (limiting and isolating resources) 2007 Control Groups (renamed Process Containers) 2008 LXC - LinuX Containers (using cgroups and namespaces) 2011 Warden (work on any OS) 2013 LMCRFY (open source Google s container) 2013 Docker (opensourced) 2014 Rocket (similar to Docker by CoreOS) 2016 Windows Containers (MS Windows Server 2016)

Containers in Industry Hardware (CPU, Memory, NIC, HDD)

Containers in HPC Hardware (CPU, Memory, NIC, HDD)

Containers in HPC

Docker: Containers in HPC Most widely used containerization tool Image-based deployment model Perfect for local resources User can gain root access to a host s filesystem Singularity: Permissions inside a container are the same as those outside of the container User can access their files stored outside of the container Designed for use on the cluster, support MPI! More at https://sylabs.io

Image: Singularity Virtual filesystem Software and OS are installed on this virtual filesystem Built single time on a machine with root access Used multiple times on a cluster Immutable by default Container: A running instance of an Image Possible to access files outside of container Possible to WRITE new files outside of container Home folder is mounted by default

Singularity Personal Linux Machine (with root access) 2. Copy image to cluster Image 1. Create and bootstrap image Own image Existing image Convert Docker Cluster 3. Launch container Image /home /scratch Container /home /scratch

Creating Singularity Image Types of Image: Compressed read-only squashfs filesystem image Writable ext3 filesystem image (--writable option) Writable (ch)root directory image (--sandbox option) Image can be created from: shub:// docker:// existing container directory archive bootstrap file

Creating Singularity Image # singularity build ubuntu.img ubuntu.def Use recipe in def file to install OS and SW # singularity build ubuntu.img docker://ubuntu:latest # singularity build ubuntu.img shub://singularityhub:ubuntu Create image from Docker/Singularity Hub # singularity build ubuntu.img /tmp/ubuntu Create image from chroot directory (sandbox)

Bootstrap Definition File Header: Define base OS distribution to use (Bootstrap:) As base can be used: shub Singularity Hub docker Docker Hub localimage saved locally on a computer yum yum based systems (CentOS, Scientific Linux ) debootstrap apt based systems (Debian, Ubuntu ) arch Arch Linux busybox - BusyBox zypper zypper based systems (Suse, OpenSuse ) Other parameters depends on the base used

Bootstrap Definition File %setup: Runs commands outside of the container at start of the bootstrap process Runs before %post section %post: Runs once inside the container during bootstrap process Software installation %files: Copy files from outside of the image to the inside of it Pairs of <source> <destination> Runs after %post section

Bootstrap Definition File %environment: Define environment variables inside container %runscript: Define custom runscript Command line parameter parsing etc $ singularity run <image> %test: Test the proper function of the container Runs at the end of the bootstrapping process Disable by --notest option

Bootstrap Definition File %labels: Define custom labels/metadata <label_name>=<label_value> $ singularity inspect <image> %help: Add help for the image $ singularity help ubuntu.img

Running Singularity Image $ singularity shell <image> Start a container and invoke interactive shell $ singularity run <image> Start a container and exec runscript inside container $ singularity exec <image> <command> Start a container and exec command inside container $ singularity run app <app_name> <image> Start a container and exec apprun script inside container

Running an Instance $ singularity instance.start <image> <instance_name> Start an instance of container in background Useful for running services $ singularity instance.list List of started instances $ singularity instance.stop <instance_name> Stop running instance $ singularity run instance://<instance_name> $ singularity shell instance://<instance_name>

SCI-F Apps Standard Container Integration Format Provides internal modularity of containers One container can contain multiple applications with different environment Apps have own sections in bootstrap file: %appinstall %apphelp %apprun %applabels %appenv %apptest %appfiles

Singularity on IT4I Clusters Version 2.5 installed on both clusters Prepared images with: CentOS 6.9 CentOS 7.5 Fedora 26 Debian 8.0 Ubuntu 16.04 Prepared images are available as modules Full OpenMPI support inside container Full Lmod support inside container Singularity wrappers for better user experience

Singularity Wrappers (WIP) $ image-shell Invoke interactive shell inside loaded singularity container module $ image-run Exec runscript inside loaded singularity container module $ image-exec <command> Exec command inside loaded singularity container module $ image-mpi <command> Exec mpirun inside loaded singularity container module $ image-update Update local copy of image from /apps

Why Singularity? Different or newer version of library is needed (e.g. glibc) Isolate work from environment and software available on the cluster Standardize workflow on different HPC systems Prefer a different Linux distribution than is on the cluster (e.g. I hate CentOS, Gentoo rulez! )

Singularity Thank you for your attention! Josef Hrabal IT4Innovations