+ All Categories
Home > Documents > POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní...

POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní...

Date post: 12-Oct-2020
Category:
Upload: others
View: 8 times
Download: 0 times
Share this document with a friend
25
POUIT˝ CONTAINER V METACENTRU aneb Singularity Miroslav Ruda CESNET SeminÆ MetaCentra, Praha 11.5. 2018
Transcript
Page 1: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

POUŽITÍ CONTAINERŮV METACENTRUaneb Singularity

Miroslav RudaCESNET

Seminář MetaCentra, Praha11.5. 2018

Page 2: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

Obsah

Virtualizace a containery obecněContainery pro HPC - SingularityPříkladyPoužití v MetaCentruDocker

M. Ruda, Containery, CESNET

Page 3: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

Containery v HPC I

Motivace - ne vždy vyhovuje prostředí MetaCentrasoftware vyžadující specifický systém, knihovnypředpřipravené prostředí, vlastní nebo projektovédůraz na reprodukovatelnost

Dlouhodobě používaná je virtualizace celého počítačeVMWare, VirtualBox, Xen, KVMnyní používanější, proto se s ním na začátku trochusrovnámesrovnání je o efektivitě, ztrátě výkonu,bezpečnosti, izolovatelnosti, přenositelnosti

M. Ruda, Containery, CESNET

Page 4: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

Containery v HPC II

Virtualizace hardware - iluze celého fyzického počítačena něm běží kompletní operační systémumožňuje jeden fyzický server rozdělit na několikvirtuálníchzákladní technologie pro cloudy, softwarovědefinovaná datacentra

Containery - zabalení/iluze vlastního systémovéhoprostředí potřebného pro konkrétní aplikaci

jeden společný operační systém, ten spravujecontainery, HW, přístup k datůmplus nástroje pro práci s containerycontainer jde sdílet - neobsahuje žádná data!

M. Ruda, Containery, CESNET

Page 5: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

Containery v HPC III

Historická vsuvka - hardwarová virtualizace1960’s IBM S/360 Mainframes1999 VMWare “VMWare Workstation”aplikační vituální stroj - 1996 Sun Javaopensource - Xen 2003, KVM od 2007

Historická vsuvka - containery1979 UNIX chroot (added to BSD in 1982)2001 Linux VServer (VPS Solution)2005 OpenVZ2008 Control Groups (cgroups v jádře Linuxu)2008 LXC (LinuX Containers)2013 Docker

M. Ruda, Containery, CESNET

Page 6: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

Containery

M. Ruda, Containery, CESNET

Page 7: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

Containery v Linux

Linux kernel Cgroupsskupinu procesůjde přiřadit (omezené) zdroje - CPU, paměť, disk

Linux kernel Namespacesomezení viditelnosti systémuMounts, UTS, uname, IPC, PID, Networks, User

obraz disku containeruiluze disku s filesystémem, kde je instalovanýsystém, knihovny i aplikacečasto jen tar soubordovoluje hierarchie, vrstvy, nejvyšší jezapisovatelná

Docker, Singularity, ale i LXC, uDocker, gVisor . . .rozdíly - efektivita, výkon, bezpečnost

M. Ruda, Containery, CESNET

Page 8: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

Docker

nejpoužívanější linuxové řešení containerůposkytuje nástroje pro vytvoření, správu adistribuci containerových obrazůprimárně určeno pro virtualizaci síťových služebje výhodný pro vývojáře, usnadňuje přenositelnost,reprodukovatelnost instalacenení až tak vhodný pro HPC výpočty, protože sesnaží nabízet až moc vlastností virtuálních strojů

přístup k rootovským oprávněním, proto vyžadujerootovské oprávnění v systémuproto isolace sítě pomocí virtualizace (výkon!)implementace dělá velké problémy paralelnímprostředím ala MPI, GPU kartaminesnadná spolupráce s autory na vylepšeních proHPC M. Ruda, Containery, CESNET

Page 9: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

Singularity I

containery určené pro náročné výpočtypracuje s obrazem containeru v souboru

portabilita - ne přenositelnost zdrojového kódu,ale distribuování odladěného prostředí ve forměvirtuálního stroje/disku z počítače

určeno pro prostředí, kde uživatelé nemajírootovské oprávnění, proto ho ani neemuluje a tímsnižuje bezpečnostní problémyfunguje s MPI úlohamivelký důraz na reprodukovatelnostsnaha využití nástrojů pro Docker, minimálnízávislost na vlastnostech v linuxovém jádře

M. Ruda, Containery, CESNET

Page 10: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

Singularity II

Využití - distribuce správně nainstalovaného softwareBioContainers (https://biocontainers.pro/)CMS, velká superpočítačová centra v USA

Bezpečnostdynamický a živelný vývoj, velmi časté chyby

EGI-SVG-2018-14213 (2018-03-29/2018-04-11)Local privilege escalation via overlayfsEGI-SVG-2018-14311 (2018-04-30)Local privilege escalation (without overlay support)nové verze v pátek odpoledne, z logů je zřejmýbezpečnostní problém

nové verze zároveň mění chování příkazů

M. Ruda, Containery, CESNET

Page 11: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

Jak v MetaCentru?

Příprava obrazu vyžaduje rootovské oprávněníSingularity na vlastním stroji nebo v cloudukonverze z Docker obrazusandbox a docker://metacentrum/ubuntu-fakeroot

Připravený obraz uložený v /home nebo /projektinteraktivně nebo přes PBSProfunguje MPI, kerberos, /software

Očekávané využití uživateli MetaCentravlastní software se specifickým prostředímpřebírání předpřipravených obrazů containerůnástroj pro zlepšení reprodukovatelnosti

M. Ruda, Containery, CESNET

Page 12: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

Prostor na dotazy, následují příklady

Page 13: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

Singularity workflow

Příprava containeru s rootovským oprávněním"když je potřeba root v containeru, musím být rooti mimo container"vytvoření nového containerubootstrap/install containermodifikace containeru

Využití containeru uživatelemsingularity shellsingularity execsingularity run

M. Ruda, Containery, CESNET

Page 14: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

Singularity příklady

$ singularity shell docker://ubuntu:latestDocker image path: index.docker.io/library/ubuntu:latest....Singularity ubuntu:latest:~> cat /etc/lsb-releaseDISTRIB_ID=UbuntuDISTRIB_RELEASE=18.04DISTRIB_CODENAME=bionicDISTRIB_DESCRIPTION="Ubuntu 18.04 LTS"Singularity ubuntu:latest:~>

M. Ruda, Containery, CESNET

Page 15: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

Singularity příklady

odin$ cat examples/debian/SingularityBootStrap: debootstrapOSVersion: stableMirrorURL: http://ftp.us.debian.org/debian/

%runscriptecho "This is what happens when you run the container..."

%postecho "Hello from inside the container"apt-get updateapt-get -y install vimapt-get clean

M. Ruda, Containery, CESNET

Page 16: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

Singularity příklady

odin$ sudo singularity create debian.imgCreating empty 768MiB image file: debian.imgFormatting image with ext3 file systemImage is done: debian.imgodin$ sudo singularity bootstrap debian.img examples/debian/SingularityBuilding into existing container: debian.img...Singularity container built: debian.imgCleaning up...odin$ singularity shell debian.imgSingularity: Invoking an interactive shell within container...

Singularity debian.img:~/> lsdebian.img singularity-2.5.1 singularity-2.5.1.tar.gzSingularity debian.img:~/> exit

M. Ruda, Containery, CESNET

Page 17: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

Singularity příklady

Využití namespaces

odin$ singularity exec -p debian.img ps axuUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDruda 1 0.0 0.0 28196 2556 pts/4 R+ 15:03 0:00 ps axuodin$ singularity exec debian.img ps axuUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.0 185308 5740 ? Ss Apr27 0:56 /usr/lib/systemd/systemd --switroot 2 0.0 0.0 0 0 ? S Apr27 0:00 [kthreadd]root 3 0.0 0.0 0 0 ? S Apr27 0:18 [ksoftirqd/0]root 5 0.0 0.0 0 0 ? S< Apr27 0:00 [kworker/0:0H]root 7 0.0 0.0 0 0 ? D Apr27 7:46 [rcu_sched]root 8 0.0 0.0 0 0 ? S Apr27 0:00 [rcu_bh]root 9 0.0 0.0 0 0 ? S Apr27 0:00 [migration/0]root 10 0.0 0.0 0 0 ? S Apr27 0:03 [watchdog/0]

M. Ruda, Containery, CESNET

Page 18: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

Singularity příklady

Modifikace obrazuodin$ singularity exec debian.img python --version/.singularity.d/actions/exec: 9: exec: python: not foundodin$ sudo singularity exec --writable debian.img apt-get -y install pythonReading package lists... Done...Setting up python (2.7.13-2) ...odin$ singularity exec debian.img python --versionPython 2.7.13

M. Ruda, Containery, CESNET

Page 19: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

Singularity příklady

odin$ cat hello.py#!/usr/bin/pythonimport sysprint("Hello World: The Python version is %s.%s.%s" % sys.version_info[:3])odin$ ./hello.pyHello World: The Python version is 3.4.6odin$ singularity exec debian.img ./hello.pyHello World: The Python version is 2.7.13odin$ cat hello.py |singularity exec debian.img pythonHello World: The Python version is 2.7.13odin$

M. Ruda, Containery, CESNET

Page 20: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

Singularity v MetaCentru

odin$ module add intelcdk-17.1odin$ singularity shell -B /software debian.imgSingularity: Invoking an interactive shell within container...

Singularity debian.img:~> /software/intelcdk-17.1/bin/iccicc: command line error: no files specified; for help type "icc -help"Singularity debian.img:~>

M. Ruda, Containery, CESNET

Page 21: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

Singularity v MetaCentru

$ qsub -l select=1 -l walltime=24:00:00 -- \\/usr/bin/singularity exec debian.img \\bash -c "/path/to/script.sh"

$ cat mpi_job.sh#!/bin/bash#PBS -l select=2:ncpus=2:mem=1gb:scratch_shared=4gb#PBS -l walltime=04:00:00#PBS -l place=scatter

module add openmpi-2.0.1-gcccat $PBS_NODEFILE |uniq >nodes.txtmpirun -n 2 --hostfile nodes.txt singularity exec \\

debian.img /path/to/programM. Ruda, Containery, CESNET

Page 22: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

Děkuji za pozornost

http://www.metacentrum.czhttps://wiki.metacentrum.cz/wiki/Singularityhttp://singularity.lbl.gov/user-guide

Page 23: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

Singularity v MetaCentru

odin$ singularity build --sandbox ubuntu \\docker://metacentrum/ubuntu-fakeroot

odin$ singularity shell -w ubuntuSingularity: Invoking an interactive shell within container...

Singularity ubuntu:~/soft-local/singularity> fakerootodin$ apt-get update -qqqodin$ apt-get install python...odin$ exitSingularity ubuntu:~/soft-local/singularity> exitodin$ singularity build ubuntu.simg ubuntuodin$ singularity exec ubuntu.simg python --versionPython 2.7.15rc1odin$ cat hello.py |singularity exec ubuntu.simg pythonHello World: The Python version is 2.7.15

M. Ruda, Containery, CESNET

Page 24: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

Docker v MetaCentru

Docker v cloudovém prostředí (pro provoz služeb)klasický Ubuntu/Centos/Debian obrazdoinstalovat Docker/Singularityručně nebo automatizovaně pustit dockerexistují i minimalizované instalace, které Dockerrovnou pustí (boot2docker)OpenStack má i možnost, ze Docker se používájako virtualizační nástroj místo KVM

zatím s tím nemáme žádné velké plánycontainery by šlo spravovat nástroji OpenStacku

pro správu doporučujeme docker-host neboKubernetespro zájemce máme i příklady z EGI /EOSCprostředí, kde používají i orchestraci přes vícecloudových poskytovatelůhttps://github.com/phnmnl/KubeNow-plugin

M. Ruda, Containery, CESNET

Page 25: POUıIT˝ CONTAINERŠ V METACENTRU · 2018. 5. 11. · 1999 VMWare VMWare Workstation aplika£ní vituÆlní stroj - 1996 Sun Java opensource - Xen 2003, KVM od 2007 HistorickÆ vsuvka

Děkuji za pozornost

http://www.metacentrum.czhttps://wiki.metacentrum.cz/wiki/Singularityhttp://singularity.lbl.gov/user-guide


Recommended