SlideShare une entreprise Scribd logo
1  sur  32
OpenVZ,
Virtuozzo,
and Docker
Kirill Kolyshkin <kir@openvz.org>
LinuxFest Northwest, 25 Apr 2015
openvz.org | criu.org | virtuozzo.com
Agenda
● The history of containers
● Virtuozzo relaunch
– and an important announce
● Docker: in, out, and on the side
openvz.org | criu.org | virtuozzo.com
1999: the idea
● Our chief scientist, an MIPT professor proposed
an idea of virtual environments as groups of
processes
● Three main components were:
– groups of processes with namespace isolation
– file system to share code and save RAM
– resource isolation / management
openvz.org | criu.org | virtuozzo.com
2000: the first steps
● Feb: 3 engineers started working on it in MIPT
– plus a sysadmin and a manager
– and a guy to write web management
● Jul: public beta testing:
– one server for VEs, one for web mgmt
– around 5000 VEs (virtual environments)
● Sep: hired a mathematician from MSU to work
on resource management (User Beancounters)
openvz.org | criu.org | virtuozzo.com
2001
● Virtuozzo for Windows (VZWIN) started
– really crazy idea!
– no source code – lot of reverse engineering
– implemented by live kernel patching
– in Windows everything is an object, so those
objects are virtualized / namespaced
– “most advanced software ever written for Windows”
● Linux-VServer project appeared
openvz.org | criu.org | virtuozzo.com
2002: release
● Jan: first Virtuozzo for Linux release: 2.0
● Feb: first commercial customers
openvz.org | criu.org | virtuozzo.com
2003
● Developing, developing, developing...
openvz.org | criu.org | virtuozzo.com
2004
● Feb: Solaris Zones/Containers released
– btw kudos to Sun for the term “containers”
● Dec: first Virtuozzo for Windows release
openvz.org | criu.org | virtuozzo.com
2005
● OpenVZ project was born
(better late than never)
openvz.org | criu.org | virtuozzo.com
2006
● Jan: port to kernel 2.6.15
● Apr: port to Fedora Core 5 kernel
● Aug: Debian includes OpenVZ kernel/tools
● Aug: rebase to RHEL 4 kernel
● Oct: port to SPARC[8] and PPC
● Nov: port to 2.6.18 kernel
● Nov: live migration
openvz.org | criu.org | virtuozzo.com
2007
● IBM AIX WPARs, HP-UX SRP containers
● Mar: Rebase to RHEL5 kernel
● Mar: Port to 2.6.20 kernel
● May: Knoppix-based OpenVZ Live CD
● Sep: CentOS-based OpenVZ Live CD
openvz.org | criu.org | virtuozzo.com
2008
● Lots of patches to upstream kernel:
– network namespace
– PID namespace
– IPC namespace
– et cetera
● LXC (userspace tool a la vzctl)
● Apr: port to kernel 2.6.25
● Oct: Port to ARM
openvz.org | criu.org | virtuozzo.com
2009
● Parallels appears in Top 10 Linux contributors
openvz.org | criu.org | virtuozzo.com
2010
● Port to RHEL6
● VSwap (RAM/swap limits, simplified UBC)
● ploop aka CT filesystem in a file
– on-demand allocation
– instant snapshots
– online resize, merge, compact
– write tracker (improved live migration)
openvz.org | criu.org | virtuozzo.com
2011
● Jul: initial proposal for CRIU
● The idea is to implement
most of CR in userspace
● Checkpoint: takes most of
task info from /proc etc.
● Restore: read dump,
recreate environment
openvz.org | criu.org | virtuozzo.com
2012
● Jul: initial CRIU release (v0.1)
● Oct: vzctl 4.0 with vanilla kernel support
● ???: started working on RHEL7-based kernel
openvz.org | criu.org | virtuozzo.com
2013
● Docker appeared
● lmctfy appeared
● CoreOS appeared
● vzctl adds io/iops limit support
● May: OpenVZ maintenance partnership
https://openvz.org/Support
openvz.org | criu.org | virtuozzo.com
2014
● vzctl 4.8, faster live mirgation
● Dec: Parallels announces merging OpenVZ
and Parallels Cloud Server into single common
open source codebase
blog.openvz.org/49158.html
openvz.org | criu.org | virtuozzo.com
Current OpenVZ problems
● Kernel development is not quite open
– devel@ list is deserted, no kernel git repo, ...
● OpenVZ and Virtuozzo have forked userspace
– Userspace development effort is doubled
– OpenVZ can't be easily upgraded to VZ
– Some features are missing (vzpkg anyone?)
– Unnecessary complications for QA and support
openvz.org | criu.org | virtuozzo.com
What is the new Virtuozzo?
● Open source development process
– for real, this time
– open discussions via public mailing list
– source code repository for the kernel
– https://openvz.org/Contribute
● Unified code base
● Bare metal distro (with installer etc.)
● KVM support (coming later)
openvz.org | criu.org | virtuozzo.com
The (long-awaited) announce
● Today we open src.openvz.org with
RHEL7-based VZ kernel git repo
src.openvz.org
● Site is still in beta, but registration works
● Will be integrated with JIRA bug tracking
openvz.org | criu.org | virtuozzo.com
RHEL7-based OpenVZ kernel
● Is beta
● Uses CRIU for migration :)
● Container API has changed, so
current vzctl doesn't work
● To contribute:
openvz.org/Contribute
openvz.org/How_to_submit_patches
openvz.org | criu.org | virtuozzo.com
Nearest future (sorry no ETAs)
● Publish VZ tools
● Establish all the processes
● Release beta
● …
● PROFIT!!!
openvz.org | criu.org | virtuozzo.com
What about Docker?
● We love Docker
● We support Docker everywhere
– Docker inside (in OpenVZ containers)
– Docker outside (using OpenVZ kernel)
– Docker live migration with CRIU
openvz.org | criu.org | virtuozzo.com
Docker inside VZ containers
● openvz.org/Docker_inside_CT
● Available since Feb (kernel 042stab105.4)
● Current limitations:
– no checkpointing / live migration
– only vfs graph driver
– no bridges inside Docker containers inside VZ CTs
openvz.org | criu.org | virtuozzo.com
Russian dolls for Docker
● allow nested net, pid, IPC, UTC namespaces
● allow bridges, disable venet inside nested netns
● allow eth devices renaming inside CT
● some sysfs and caps hacks here and there
● bogus cpusets and cgroups
● many small fixes here and there
openvz.org | criu.org | virtuozzo.com
Live demo goes here
openvz.org | criu.org | virtuozzo.com
Docker on top of OpenVZ
● Upstream kernel is not as good as OpenVZ
(resource mgmt, /proc and /sys virt., etc)
● Why not use OpenVZ kernel?
● Implementation: libct for libcontainer, Oct 2014
github.com/avagin/libct
● About to be included, pull request opened Mar:
github.com/docker/libcontainer/pull/434
openvz.org | criu.org | virtuozzo.com
Docker on the side: checkpointing
● CRIU 1.3 (1 Sep 2014), external CR works
– external as in Docker knows nothing about it
– docker ps, stop, kill, logs will not work correctly
● Solution: native docker checkpoint / restore
● CRIU 1.5.1, released 31 Mar 2015
github.com/SaiedKazemi/docker/wiki
openvz.org | criu.org | virtuozzo.com
Docker C/R use cases
● Live migration
● Restart Docker daemon w/o losing Cts
● Reboot the host w/o losing Cts
● “Forensic debugging” (CRIU image analisys)
● Docker CR demo: youtu.be/HFt9v6yqsXo
openvz.org | criu.org | virtuozzo.com
Contacts
● Google+: OpenVZ
● Twitter: @_openvz_
● Facebook: openvz.org
● blog.openvz.org
● openvz.org/Contacts
Kirill Kolyshkin <kir@openvz.org>
openvz.org | criu.org | virtuozzo.com
Future directions
● Deliver Virtuozzo 7
● Forth-generation resource management
– dynamic mgmt by a userspace daemon
– bursts, guarantees, etc.
● Port to POWER (ARM?)
● MetaPC (single system image, based on CRIU)

Contenu connexe

Tendances

Linux Container Technology 101
Linux Container Technology 101Linux Container Technology 101
Linux Container Technology 101inside-BigData.com
 
Lxc – next gen virtualization for cloud intro (cloudexpo)
Lxc – next gen virtualization for cloud   intro (cloudexpo)Lxc – next gen virtualization for cloud   intro (cloudexpo)
Lxc – next gen virtualization for cloud intro (cloudexpo)Boden Russell
 
container crash course
container crash coursecontainer crash course
container crash courseAndrew Shafer
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to dockerHiroki Endo
 
Docker Architecture (v1.3)
Docker Architecture (v1.3)Docker Architecture (v1.3)
Docker Architecture (v1.3)rajdeep
 
[DockerCon 2019] Hardening Docker daemon with Rootless mode
[DockerCon 2019] Hardening Docker daemon with Rootless mode[DockerCon 2019] Hardening Docker daemon with Rootless mode
[DockerCon 2019] Hardening Docker daemon with Rootless modeAkihiro Suda
 
Linux Container Brief for IEEE WG P2302
Linux Container Brief for IEEE WG P2302Linux Container Brief for IEEE WG P2302
Linux Container Brief for IEEE WG P2302Boden Russell
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to KubernetesImesh Gunaratne
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes IntroductionMiloš Zubal
 
Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...
Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...
Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...Jérôme Petazzoni
 
SCALE 2011 Deploying OpenStack with Chef
SCALE 2011 Deploying OpenStack with ChefSCALE 2011 Deploying OpenStack with Chef
SCALE 2011 Deploying OpenStack with ChefMatt Ray
 
Evoluation of Linux Container Virtualization
Evoluation of Linux Container VirtualizationEvoluation of Linux Container Virtualization
Evoluation of Linux Container VirtualizationImesh Gunaratne
 
Ceph and Mirantis OpenStack
Ceph and Mirantis OpenStackCeph and Mirantis OpenStack
Ceph and Mirantis OpenStackMirantis
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to DockerAlan Forbes
 
Virtual Machines and Docker
Virtual Machines and DockerVirtual Machines and Docker
Virtual Machines and DockerDanish Khakwani
 
LXC – NextGen Virtualization for Cloud benefit realization (cloudexpo)
LXC – NextGen Virtualization for Cloud benefit realization (cloudexpo)LXC – NextGen Virtualization for Cloud benefit realization (cloudexpo)
LXC – NextGen Virtualization for Cloud benefit realization (cloudexpo)Boden Russell
 
Docker: the road ahead
Docker: the road aheadDocker: the road ahead
Docker: the road aheadshykes
 
Introduction to Microservices with Docker and Kubernetes
Introduction to Microservices with Docker and KubernetesIntroduction to Microservices with Docker and Kubernetes
Introduction to Microservices with Docker and KubernetesDavid Charles
 

Tendances (20)

Linux Container Technology 101
Linux Container Technology 101Linux Container Technology 101
Linux Container Technology 101
 
Lxc – next gen virtualization for cloud intro (cloudexpo)
Lxc – next gen virtualization for cloud   intro (cloudexpo)Lxc – next gen virtualization for cloud   intro (cloudexpo)
Lxc – next gen virtualization for cloud intro (cloudexpo)
 
container crash course
container crash coursecontainer crash course
container crash course
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Docker Architecture (v1.3)
Docker Architecture (v1.3)Docker Architecture (v1.3)
Docker Architecture (v1.3)
 
[DockerCon 2019] Hardening Docker daemon with Rootless mode
[DockerCon 2019] Hardening Docker daemon with Rootless mode[DockerCon 2019] Hardening Docker daemon with Rootless mode
[DockerCon 2019] Hardening Docker daemon with Rootless mode
 
Linux Container Brief for IEEE WG P2302
Linux Container Brief for IEEE WG P2302Linux Container Brief for IEEE WG P2302
Linux Container Brief for IEEE WG P2302
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
 
OpenVZ Linux Containers
OpenVZ Linux ContainersOpenVZ Linux Containers
OpenVZ Linux Containers
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...
Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...
Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...
 
SCALE 2011 Deploying OpenStack with Chef
SCALE 2011 Deploying OpenStack with ChefSCALE 2011 Deploying OpenStack with Chef
SCALE 2011 Deploying OpenStack with Chef
 
Evoluation of Linux Container Virtualization
Evoluation of Linux Container VirtualizationEvoluation of Linux Container Virtualization
Evoluation of Linux Container Virtualization
 
Ceph and Mirantis OpenStack
Ceph and Mirantis OpenStackCeph and Mirantis OpenStack
Ceph and Mirantis OpenStack
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Virtual Machines and Docker
Virtual Machines and DockerVirtual Machines and Docker
Virtual Machines and Docker
 
LXC – NextGen Virtualization for Cloud benefit realization (cloudexpo)
LXC – NextGen Virtualization for Cloud benefit realization (cloudexpo)LXC – NextGen Virtualization for Cloud benefit realization (cloudexpo)
LXC – NextGen Virtualization for Cloud benefit realization (cloudexpo)
 
Docker: the road ahead
Docker: the road aheadDocker: the road ahead
Docker: the road ahead
 
Docker internals
Docker internalsDocker internals
Docker internals
 
Introduction to Microservices with Docker and Kubernetes
Introduction to Microservices with Docker and KubernetesIntroduction to Microservices with Docker and Kubernetes
Introduction to Microservices with Docker and Kubernetes
 

En vedette

A Performance Comparison of Container-based Virtualization Systems for MapRed...
A Performance Comparison of Container-based Virtualization Systems for MapRed...A Performance Comparison of Container-based Virtualization Systems for MapRed...
A Performance Comparison of Container-based Virtualization Systems for MapRed...Marcelo Veiga Neves
 
System Containers and Application Containers: Who Cares?
System Containers and Application Containers: Who Cares?System Containers and Application Containers: Who Cares?
System Containers and Application Containers: Who Cares?Virtuozzo
 
Virtuozzo Storage for Docker
Virtuozzo Storage for DockerVirtuozzo Storage for Docker
Virtuozzo Storage for DockerVirtuozzo
 
Docker: Aspects of Container Isolation
Docker: Aspects of Container IsolationDocker: Aspects of Container Isolation
Docker: Aspects of Container Isolationallingeek
 
KVM and docker LXC Benchmarking with OpenStack
KVM and docker LXC Benchmarking with OpenStackKVM and docker LXC Benchmarking with OpenStack
KVM and docker LXC Benchmarking with OpenStackBoden Russell
 

En vedette (7)

A Performance Comparison of Container-based Virtualization Systems for MapRed...
A Performance Comparison of Container-based Virtualization Systems for MapRed...A Performance Comparison of Container-based Virtualization Systems for MapRed...
A Performance Comparison of Container-based Virtualization Systems for MapRed...
 
System Containers and Application Containers: Who Cares?
System Containers and Application Containers: Who Cares?System Containers and Application Containers: Who Cares?
System Containers and Application Containers: Who Cares?
 
Virtuozzo Storage for Docker
Virtuozzo Storage for DockerVirtuozzo Storage for Docker
Virtuozzo Storage for Docker
 
Minneapolis-St. Paul Overview
Minneapolis-St. Paul OverviewMinneapolis-St. Paul Overview
Minneapolis-St. Paul Overview
 
Docker: Aspects of Container Isolation
Docker: Aspects of Container IsolationDocker: Aspects of Container Isolation
Docker: Aspects of Container Isolation
 
tutorial presentation
tutorial presentationtutorial presentation
tutorial presentation
 
KVM and docker LXC Benchmarking with OpenStack
KVM and docker LXC Benchmarking with OpenStackKVM and docker LXC Benchmarking with OpenStack
KVM and docker LXC Benchmarking with OpenStack
 

Similaire à OpenVZ, Virtuozzo and Docker

Not so brief history of Linux Containers - Kir Kolyshkin
Not so brief history of Linux Containers - Kir KolyshkinNot so brief history of Linux Containers - Kir Kolyshkin
Not so brief history of Linux Containers - Kir KolyshkinOpenVZ
 
Not so brief history of Linux Containers
Not so brief history of Linux ContainersNot so brief history of Linux Containers
Not so brief history of Linux ContainersKirill Kolyshkin
 
How Docker didn't invent containers (Docker Meetup Brno #1)
How Docker didn't invent containers (Docker Meetup Brno #1)How Docker didn't invent containers (Docker Meetup Brno #1)
How Docker didn't invent containers (Docker Meetup Brno #1)Pavel Snajdr
 
LibCT: one lib to rule them all -- Andrey Vagin
LibCT: one lib to rule them all -- Andrey VaginLibCT: one lib to rule them all -- Andrey Vagin
LibCT: one lib to rule them all -- Andrey VaginOpenVZ
 
Linux Containers & Docker
Linux Containers & DockerLinux Containers & Docker
Linux Containers & DockerJumping Bean
 
What's new in kubernetes 1.3?
What's new in kubernetes 1.3?What's new in kubernetes 1.3?
What's new in kubernetes 1.3?Suraj Deshmukh
 
LibCT и контейнеры на уровне приложений -- Александр Бурлука
	LibCT и контейнеры на уровне приложений -- Александр Бурлука	LibCT и контейнеры на уровне приложений -- Александр Бурлука
LibCT и контейнеры на уровне приложений -- Александр БурлукаOpenVZ
 
N problems of Linux Containers
N problems of Linux ContainersN problems of Linux Containers
N problems of Linux ContainersKirill Kolyshkin
 
Security of Linux containers in the cloud
Security of Linux containers in the cloudSecurity of Linux containers in the cloud
Security of Linux containers in the cloudDobrica Pavlinušić
 
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special EditionIntroduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special EditionJérôme Petazzoni
 
OpenStack London Meetup, 18 Nov 2015
OpenStack London Meetup, 18 Nov 2015OpenStack London Meetup, 18 Nov 2015
OpenStack London Meetup, 18 Nov 2015Jesse Pretorius
 
N problems of Linux containers
N problems of Linux containersN problems of Linux containers
N problems of Linux containersOpenVZ
 
Seven problems of Linux Containers
Seven problems of Linux ContainersSeven problems of Linux Containers
Seven problems of Linux ContainersKirill Kolyshkin
 
Seven problems of Linux containers
Seven problems of Linux containersSeven problems of Linux containers
Seven problems of Linux containersOpenVZ
 
Build a PaaS with OpenShift Origin
Build a PaaS with OpenShift OriginBuild a PaaS with OpenShift Origin
Build a PaaS with OpenShift OriginSteven Pousty
 
Workshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Workshop : 45 minutes pour comprendre Docker avec Jérôme PetazzoniWorkshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Workshop : 45 minutes pour comprendre Docker avec Jérôme PetazzoniTheFamily
 
Introduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" EditionIntroduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" EditionJérôme Petazzoni
 
Containers - Cloud Phoenix March Meetup
Containers - Cloud Phoenix March MeetupContainers - Cloud Phoenix March Meetup
Containers - Cloud Phoenix March MeetupMiguel Zuniga
 
OpenVZ Linux containers
OpenVZ Linux containersOpenVZ Linux containers
OpenVZ Linux containersOpenVZ
 
Docker and-containers-for-development-and-deployment-scale12x
Docker and-containers-for-development-and-deployment-scale12xDocker and-containers-for-development-and-deployment-scale12x
Docker and-containers-for-development-and-deployment-scale12xrkr10
 

Similaire à OpenVZ, Virtuozzo and Docker (20)

Not so brief history of Linux Containers - Kir Kolyshkin
Not so brief history of Linux Containers - Kir KolyshkinNot so brief history of Linux Containers - Kir Kolyshkin
Not so brief history of Linux Containers - Kir Kolyshkin
 
Not so brief history of Linux Containers
Not so brief history of Linux ContainersNot so brief history of Linux Containers
Not so brief history of Linux Containers
 
How Docker didn't invent containers (Docker Meetup Brno #1)
How Docker didn't invent containers (Docker Meetup Brno #1)How Docker didn't invent containers (Docker Meetup Brno #1)
How Docker didn't invent containers (Docker Meetup Brno #1)
 
LibCT: one lib to rule them all -- Andrey Vagin
LibCT: one lib to rule them all -- Andrey VaginLibCT: one lib to rule them all -- Andrey Vagin
LibCT: one lib to rule them all -- Andrey Vagin
 
Linux Containers & Docker
Linux Containers & DockerLinux Containers & Docker
Linux Containers & Docker
 
What's new in kubernetes 1.3?
What's new in kubernetes 1.3?What's new in kubernetes 1.3?
What's new in kubernetes 1.3?
 
LibCT и контейнеры на уровне приложений -- Александр Бурлука
	LibCT и контейнеры на уровне приложений -- Александр Бурлука	LibCT и контейнеры на уровне приложений -- Александр Бурлука
LibCT и контейнеры на уровне приложений -- Александр Бурлука
 
N problems of Linux Containers
N problems of Linux ContainersN problems of Linux Containers
N problems of Linux Containers
 
Security of Linux containers in the cloud
Security of Linux containers in the cloudSecurity of Linux containers in the cloud
Security of Linux containers in the cloud
 
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special EditionIntroduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
 
OpenStack London Meetup, 18 Nov 2015
OpenStack London Meetup, 18 Nov 2015OpenStack London Meetup, 18 Nov 2015
OpenStack London Meetup, 18 Nov 2015
 
N problems of Linux containers
N problems of Linux containersN problems of Linux containers
N problems of Linux containers
 
Seven problems of Linux Containers
Seven problems of Linux ContainersSeven problems of Linux Containers
Seven problems of Linux Containers
 
Seven problems of Linux containers
Seven problems of Linux containersSeven problems of Linux containers
Seven problems of Linux containers
 
Build a PaaS with OpenShift Origin
Build a PaaS with OpenShift OriginBuild a PaaS with OpenShift Origin
Build a PaaS with OpenShift Origin
 
Workshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Workshop : 45 minutes pour comprendre Docker avec Jérôme PetazzoniWorkshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Workshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
 
Introduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" EditionIntroduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" Edition
 
Containers - Cloud Phoenix March Meetup
Containers - Cloud Phoenix March MeetupContainers - Cloud Phoenix March Meetup
Containers - Cloud Phoenix March Meetup
 
OpenVZ Linux containers
OpenVZ Linux containersOpenVZ Linux containers
OpenVZ Linux containers
 
Docker and-containers-for-development-and-deployment-scale12x
Docker and-containers-for-development-and-deployment-scale12xDocker and-containers-for-development-and-deployment-scale12x
Docker and-containers-for-development-and-deployment-scale12x
 

Plus de Kirill Kolyshkin

CRIU: Time and Space Travel for Linux Containers
CRIU: Time and Space Travel for Linux ContainersCRIU: Time and Space Travel for Linux Containers
CRIU: Time and Space Travel for Linux ContainersKirill Kolyshkin
 
What's missing from upstream kernel containers?
What's missing from upstream kernel containers?What's missing from upstream kernel containers?
What's missing from upstream kernel containers?Kirill Kolyshkin
 
A brief history of Linux Containers
A brief history of Linux Containers A brief history of Linux Containers
A brief history of Linux Containers Kirill Kolyshkin
 
Criu texas-linux-fest-2014
Criu texas-linux-fest-2014Criu texas-linux-fest-2014
Criu texas-linux-fest-2014Kirill Kolyshkin
 
Checkpoint/Restore: are we there yet?
Checkpoint/Restore: are we there yet?Checkpoint/Restore: are we there yet?
Checkpoint/Restore: are we there yet?Kirill Kolyshkin
 

Plus de Kirill Kolyshkin (6)

Speeding up ps and top
Speeding up ps and topSpeeding up ps and top
Speeding up ps and top
 
CRIU: Time and Space Travel for Linux Containers
CRIU: Time and Space Travel for Linux ContainersCRIU: Time and Space Travel for Linux Containers
CRIU: Time and Space Travel for Linux Containers
 
What's missing from upstream kernel containers?
What's missing from upstream kernel containers?What's missing from upstream kernel containers?
What's missing from upstream kernel containers?
 
A brief history of Linux Containers
A brief history of Linux Containers A brief history of Linux Containers
A brief history of Linux Containers
 
Criu texas-linux-fest-2014
Criu texas-linux-fest-2014Criu texas-linux-fest-2014
Criu texas-linux-fest-2014
 
Checkpoint/Restore: are we there yet?
Checkpoint/Restore: are we there yet?Checkpoint/Restore: are we there yet?
Checkpoint/Restore: are we there yet?
 

Dernier

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 

Dernier (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 

OpenVZ, Virtuozzo and Docker

  • 1. OpenVZ, Virtuozzo, and Docker Kirill Kolyshkin <kir@openvz.org> LinuxFest Northwest, 25 Apr 2015
  • 2. openvz.org | criu.org | virtuozzo.com Agenda ● The history of containers ● Virtuozzo relaunch – and an important announce ● Docker: in, out, and on the side
  • 3. openvz.org | criu.org | virtuozzo.com 1999: the idea ● Our chief scientist, an MIPT professor proposed an idea of virtual environments as groups of processes ● Three main components were: – groups of processes with namespace isolation – file system to share code and save RAM – resource isolation / management
  • 4. openvz.org | criu.org | virtuozzo.com 2000: the first steps ● Feb: 3 engineers started working on it in MIPT – plus a sysadmin and a manager – and a guy to write web management ● Jul: public beta testing: – one server for VEs, one for web mgmt – around 5000 VEs (virtual environments) ● Sep: hired a mathematician from MSU to work on resource management (User Beancounters)
  • 5. openvz.org | criu.org | virtuozzo.com 2001 ● Virtuozzo for Windows (VZWIN) started – really crazy idea! – no source code – lot of reverse engineering – implemented by live kernel patching – in Windows everything is an object, so those objects are virtualized / namespaced – “most advanced software ever written for Windows” ● Linux-VServer project appeared
  • 6. openvz.org | criu.org | virtuozzo.com 2002: release ● Jan: first Virtuozzo for Linux release: 2.0 ● Feb: first commercial customers
  • 7. openvz.org | criu.org | virtuozzo.com 2003 ● Developing, developing, developing...
  • 8. openvz.org | criu.org | virtuozzo.com 2004 ● Feb: Solaris Zones/Containers released – btw kudos to Sun for the term “containers” ● Dec: first Virtuozzo for Windows release
  • 9. openvz.org | criu.org | virtuozzo.com 2005 ● OpenVZ project was born (better late than never)
  • 10. openvz.org | criu.org | virtuozzo.com 2006 ● Jan: port to kernel 2.6.15 ● Apr: port to Fedora Core 5 kernel ● Aug: Debian includes OpenVZ kernel/tools ● Aug: rebase to RHEL 4 kernel ● Oct: port to SPARC[8] and PPC ● Nov: port to 2.6.18 kernel ● Nov: live migration
  • 11. openvz.org | criu.org | virtuozzo.com 2007 ● IBM AIX WPARs, HP-UX SRP containers ● Mar: Rebase to RHEL5 kernel ● Mar: Port to 2.6.20 kernel ● May: Knoppix-based OpenVZ Live CD ● Sep: CentOS-based OpenVZ Live CD
  • 12. openvz.org | criu.org | virtuozzo.com 2008 ● Lots of patches to upstream kernel: – network namespace – PID namespace – IPC namespace – et cetera ● LXC (userspace tool a la vzctl) ● Apr: port to kernel 2.6.25 ● Oct: Port to ARM
  • 13. openvz.org | criu.org | virtuozzo.com 2009 ● Parallels appears in Top 10 Linux contributors
  • 14. openvz.org | criu.org | virtuozzo.com 2010 ● Port to RHEL6 ● VSwap (RAM/swap limits, simplified UBC) ● ploop aka CT filesystem in a file – on-demand allocation – instant snapshots – online resize, merge, compact – write tracker (improved live migration)
  • 15. openvz.org | criu.org | virtuozzo.com 2011 ● Jul: initial proposal for CRIU ● The idea is to implement most of CR in userspace ● Checkpoint: takes most of task info from /proc etc. ● Restore: read dump, recreate environment
  • 16. openvz.org | criu.org | virtuozzo.com 2012 ● Jul: initial CRIU release (v0.1) ● Oct: vzctl 4.0 with vanilla kernel support ● ???: started working on RHEL7-based kernel
  • 17. openvz.org | criu.org | virtuozzo.com 2013 ● Docker appeared ● lmctfy appeared ● CoreOS appeared ● vzctl adds io/iops limit support ● May: OpenVZ maintenance partnership https://openvz.org/Support
  • 18. openvz.org | criu.org | virtuozzo.com 2014 ● vzctl 4.8, faster live mirgation ● Dec: Parallels announces merging OpenVZ and Parallels Cloud Server into single common open source codebase blog.openvz.org/49158.html
  • 19. openvz.org | criu.org | virtuozzo.com Current OpenVZ problems ● Kernel development is not quite open – devel@ list is deserted, no kernel git repo, ... ● OpenVZ and Virtuozzo have forked userspace – Userspace development effort is doubled – OpenVZ can't be easily upgraded to VZ – Some features are missing (vzpkg anyone?) – Unnecessary complications for QA and support
  • 20. openvz.org | criu.org | virtuozzo.com What is the new Virtuozzo? ● Open source development process – for real, this time – open discussions via public mailing list – source code repository for the kernel – https://openvz.org/Contribute ● Unified code base ● Bare metal distro (with installer etc.) ● KVM support (coming later)
  • 21. openvz.org | criu.org | virtuozzo.com The (long-awaited) announce ● Today we open src.openvz.org with RHEL7-based VZ kernel git repo src.openvz.org ● Site is still in beta, but registration works ● Will be integrated with JIRA bug tracking
  • 22. openvz.org | criu.org | virtuozzo.com RHEL7-based OpenVZ kernel ● Is beta ● Uses CRIU for migration :) ● Container API has changed, so current vzctl doesn't work ● To contribute: openvz.org/Contribute openvz.org/How_to_submit_patches
  • 23. openvz.org | criu.org | virtuozzo.com Nearest future (sorry no ETAs) ● Publish VZ tools ● Establish all the processes ● Release beta ● … ● PROFIT!!!
  • 24. openvz.org | criu.org | virtuozzo.com What about Docker? ● We love Docker ● We support Docker everywhere – Docker inside (in OpenVZ containers) – Docker outside (using OpenVZ kernel) – Docker live migration with CRIU
  • 25. openvz.org | criu.org | virtuozzo.com Docker inside VZ containers ● openvz.org/Docker_inside_CT ● Available since Feb (kernel 042stab105.4) ● Current limitations: – no checkpointing / live migration – only vfs graph driver – no bridges inside Docker containers inside VZ CTs
  • 26. openvz.org | criu.org | virtuozzo.com Russian dolls for Docker ● allow nested net, pid, IPC, UTC namespaces ● allow bridges, disable venet inside nested netns ● allow eth devices renaming inside CT ● some sysfs and caps hacks here and there ● bogus cpusets and cgroups ● many small fixes here and there
  • 27. openvz.org | criu.org | virtuozzo.com Live demo goes here
  • 28. openvz.org | criu.org | virtuozzo.com Docker on top of OpenVZ ● Upstream kernel is not as good as OpenVZ (resource mgmt, /proc and /sys virt., etc) ● Why not use OpenVZ kernel? ● Implementation: libct for libcontainer, Oct 2014 github.com/avagin/libct ● About to be included, pull request opened Mar: github.com/docker/libcontainer/pull/434
  • 29. openvz.org | criu.org | virtuozzo.com Docker on the side: checkpointing ● CRIU 1.3 (1 Sep 2014), external CR works – external as in Docker knows nothing about it – docker ps, stop, kill, logs will not work correctly ● Solution: native docker checkpoint / restore ● CRIU 1.5.1, released 31 Mar 2015 github.com/SaiedKazemi/docker/wiki
  • 30. openvz.org | criu.org | virtuozzo.com Docker C/R use cases ● Live migration ● Restart Docker daemon w/o losing Cts ● Reboot the host w/o losing Cts ● “Forensic debugging” (CRIU image analisys) ● Docker CR demo: youtu.be/HFt9v6yqsXo
  • 31. openvz.org | criu.org | virtuozzo.com Contacts ● Google+: OpenVZ ● Twitter: @_openvz_ ● Facebook: openvz.org ● blog.openvz.org ● openvz.org/Contacts Kirill Kolyshkin <kir@openvz.org>
  • 32. openvz.org | criu.org | virtuozzo.com Future directions ● Deliver Virtuozzo 7 ● Forth-generation resource management – dynamic mgmt by a userspace daemon – bursts, guarantees, etc. ● Port to POWER (ARM?) ● MetaPC (single system image, based on CRIU)

Notes de l'éditeur

  1. Our chief scientist, a professor from MIPT, Alexander Tormasov went to Singapore to propose to Sergey Beloussov a new direction
  2. In February 2000 an office in MIPT was established. You can think of MIPT as the Russian MIT. There were just 3 engineers, a sysadmin and a manager/engineer, and they started working on the first mockup version. Later they hired two guys to work on web management tools and QA and support, and in a few months they started some initial public testing, putting two servers on the internet, one was for VZ, another for web mgmt. It was up to 5000 VEs there – hot summer! That testing revealed a problem with resource isolation, and they hired a guy, a mathematician from MSU (you can think of MSU as the Russian Stanford) to work on resource management stuff, later known as User Beancounters. That guy, by the way, later became a professor in Economics.
  3. Kernel development process is not quite open. It is open source, formally, but practically it&amp;apos;s more like “throw it over the wall” style development. I would say as open as RHEL process Userspace situation is twisted... Back in the day there was a single vzctl
  4. Let me start with a bold statement: our contributions to the Linux kernel opened the road for projects like Docker (and LXC, and CoreOS etc.). So we love Docker almost as our child! OK, let it be cousin. Docker is using containers functionality from the kernel, OpenVZ uses it, too, so naturally they interfere.