SlideShare a Scribd company logo
1 of 25
A brief history of
Linux Containers
Kir Kolyshkin <kir@openvz.org>
ContainerCon, Seattle, 17th
of August 2015
A (not so) brief history of
(mostly) Linux Containers
Kir Kolyshkin <kir@openvz.org>
ContainerCon, Seattle, 17th
of August 2015
Evolution of OS
● Single process → batch processing → multitask
● Single user → multiple users and groups
● Single computer → network of computers
● Single userspace → multiple userspaces
a.k.a. containers
What year
do you think
the history
of Linux Containers
started?
1999-2000
● 1999: Initial idea about Virtuozzo
– “virtual environments” – groups of processes
– a file system to share code / save RAM
– resource management / isolation
● 2000: 5 engineers, public testing, 5000 VEs
with root accounts, public source code release
2000
● User Beancounters:
– per process group limits
– Andrey Savochkin and Alan Cox
– barrier, limit, held, maxheld, failcnt
● Al Viro: [mount] namespace
2001
● Virtuozzo for … Windows!
– no source code – lots of reverse engineering
– live kernel patching
– “most advanced software ever written for Windows”
● Linux-VServer project
– Jacques Gélinas, Herbert Pötzl
2002-2003
● 2002 Jan: First Virtuozzo release (v2.0)
● 2003: Meiosys Metacluster
– containers for the sake of live migration
– acquired by IBM in 2005
2004-2005
● Feb: Solaris Zones/Containers released
– kudos to Sun for the term “containers”!
● Dec: first Virtuozzo for Windows release
● CKRM, rsrc mgmt frmwrk frm IBM [FAIL]
● 2005: OpenVZ project announced
– better late than never
2006-2010: up the stream!
● Lots of new namespaces:
– PID (process tree)
– net (net devices, addresses, routing etc)
– IPC (shared memory, semaphores, msg queues)
– UTS (hostname, kernel version)
– Mount (filesystem mounts and files, 2000)
– user (UIDs/GIDs, only completed in 2013, Linux 3.9)
● Use: clone() with CLONE_NEW* flags
2006-2010: up the stream!
2006
● Kernel ports: 2.6.15, FC5, RHEL4, 2.6.18
● “Weekend project” ports to SPARC and Power
● Live migration in OpenVZ
Checkpointing and Live Migration
● Live migration, simplified:
– freeze processes, dump their complete state
– copy that dump to other machine
– restore from dump; unfreeze!
● Initially implemented in the kernel
– touches every subsystem (except drivers)
– so, really hard to merge upstream
Trying hard to merge cpt/rst
2007
● IBM AIX WPARs
● HP-UX SRP containers
● Rebase to RHEL5 kernel, port to 2.6.20
● 2007: cgroups framework from Google [PASS]
– based on cpusets feature from BULL/SGI
CGroups
● Cgroups is a mechanism to control resources
per hierarchical groups of processes
● Modern alternative to user beancounters
● Cgroups is nothing without controllers:
– blkio, cpu, cpuacct, cpuset, devices, freezer,
memory, net_cls, net_prio
● Cgroups are orthogonal to namespaces
● Still working on it: just added kmem controller
2008-2009
● Kernel port to 2.6.25
● Weekend project – port to ARM
● LXC (userspace tool a la vzctl) was born
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)
20
2011-2012: CRIU
● Jul 2011: initial proposal for CRIU
● Idea: implement most of
C/R in userspace
using existing APIs
● Jul 2012: initial
CRIU release (v0.1)
criu.org
21
2013
● Docker appeared
● lmctfy appeared
● CoreOS appeared
● vzctl adds io/iops limit support
23
2014
● CRIU for Docker & LXC support
● LXD announced
● OpenStack talks abt adding containers support
24
OpenVZ in 2015
● New, more open development model
● Unified with Virtuozzo
● Plays well with Docker (in, out, and on the side)
CRIU in 2015
● 3 years old, tools at version 1.6.2
● Users: Google, Samsung, Huawei, ...
● LXC & Docker – integrated!
● TCP connection migration works!
● About 160 patches merged to 3.x - 4.x kernels
under CONFIG_CHECKPOINT_RESTORE
● Live migration: p.haul (criu.org/P.Haul)
Future!
● Virtuozzo 7
●
4th
gen of resource management: vcmmd
– More dynamic, with bursts, guarantees etc
● Proper port to POWER, ARM
● CRIU: p.haul, integration
(http://criu.org/Integration)
● MetaPC? Mosaic?
kir@openvz.org
@kolyshkin
@_openvz_
@__criu__
openvz.org/Contacts
Booth 333 (third floor, far right corner)

More Related Content

What's hot

tDiary開発環境!VMWarePlayer編
tDiary開発環境!VMWarePlayer編tDiary開発環境!VMWarePlayer編
tDiary開発環境!VMWarePlayer編
freedomcat
 
Libcontainer: joining forces under one roof
Libcontainer: joining forces under one roofLibcontainer: joining forces under one roof
Libcontainer: joining forces under one roof
Andrey Vagin
 
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph GaluschkaOpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
NETWAYS
 

What's hot (17)

tDiary開発環境!VMWarePlayer編
tDiary開発環境!VMWarePlayer編tDiary開発環境!VMWarePlayer編
tDiary開発環境!VMWarePlayer編
 
FOSDEM2015: Live migration for containers is around the corner
FOSDEM2015: Live migration for containers is around the cornerFOSDEM2015: Live migration for containers is around the corner
FOSDEM2015: Live migration for containers is around the corner
 
Docker. General overview
Docker. General overviewDocker. General overview
Docker. General overview
 
Libcontainer: joining forces under one roof
Libcontainer: joining forces under one roofLibcontainer: joining forces under one roof
Libcontainer: joining forces under one roof
 
Checkpoint/restore of containers with CRIU
Checkpoint/restore of containers with CRIUCheckpoint/restore of containers with CRIU
Checkpoint/restore of containers with CRIU
 
Corwin on containers
Corwin on containersCorwin on containers
Corwin on containers
 
BKK16-407 AOSP Toolchain Evolution and experimental languages on AOSP
BKK16-407 AOSP Toolchain Evolution and experimental languages on AOSPBKK16-407 AOSP Toolchain Evolution and experimental languages on AOSP
BKK16-407 AOSP Toolchain Evolution and experimental languages on AOSP
 
Kubernetes on CRI-O
Kubernetes on CRI-OKubernetes on CRI-O
Kubernetes on CRI-O
 
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph GaluschkaOpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
 
Caching in Docker - the hardest thing in computer science
Caching in Docker - the hardest thing in computer scienceCaching in Docker - the hardest thing in computer science
Caching in Docker - the hardest thing in computer science
 
N problems of Linux containers
N problems of Linux containersN problems of Linux containers
N problems of Linux containers
 
Scaling Docker Registry
Scaling Docker RegistryScaling Docker Registry
Scaling Docker Registry
 
Kvm forum 2013 - future integration points for oVirt storage
Kvm forum 2013 - future integration points for oVirt storageKvm forum 2013 - future integration points for oVirt storage
Kvm forum 2013 - future integration points for oVirt storage
 
The NetBSD package Collection - a.k.a pkgsrc
The NetBSD package Collection - a.k.a pkgsrcThe NetBSD package Collection - a.k.a pkgsrc
The NetBSD package Collection - a.k.a pkgsrc
 
Notary - container signing
Notary - container signingNotary - container signing
Notary - container signing
 
An Open Source Story: Open Containers & Open Communities
An Open Source Story: Open Containers & Open CommunitiesAn Open Source Story: Open Containers & Open Communities
An Open Source Story: Open Containers & Open Communities
 
BKK16-507 AOSP builds of Linaro with CI v2
BKK16-507 AOSP builds of Linaro with CI v2BKK16-507 AOSP builds of Linaro with CI v2
BKK16-507 AOSP builds of Linaro with CI v2
 

Viewers also liked

Using hypervisor and container technology to increase datacenter security pos...
Using hypervisor and container technology to increase datacenter security pos...Using hypervisor and container technology to increase datacenter security pos...
Using hypervisor and container technology to increase datacenter security pos...
Black Duck by Synopsys
 

Viewers also liked (14)

The evolving container landscape
The evolving container landscapeThe evolving container landscape
The evolving container landscape
 
Containers in the Enterprise
Containers in the EnterpriseContainers in the Enterprise
Containers in the Enterprise
 
Using hypervisor and container technology to increase datacenter security pos...
Using hypervisor and container technology to increase datacenter security pos...Using hypervisor and container technology to increase datacenter security pos...
Using hypervisor and container technology to increase datacenter security pos...
 
Deploying Containers in Production and at Scale
Deploying Containers in Production and at ScaleDeploying Containers in Production and at Scale
Deploying Containers in Production and at Scale
 
EMC World 2016 - code.13 State of the Container Ecosystem with Persistent App...
EMC World 2016 - code.13 State of the Container Ecosystem with Persistent App...EMC World 2016 - code.13 State of the Container Ecosystem with Persistent App...
EMC World 2016 - code.13 State of the Container Ecosystem with Persistent App...
 
Cloud Trends Nov2015 Structure
Cloud Trends Nov2015 StructureCloud Trends Nov2015 Structure
Cloud Trends Nov2015 Structure
 
DevConf 2017 - Realistic Container Platform Simulations
DevConf 2017 - Realistic Container Platform SimulationsDevConf 2017 - Realistic Container Platform Simulations
DevConf 2017 - Realistic Container Platform Simulations
 
Cloud Native in the Enterprise: Real-World Data on Container and Microservice...
Cloud Native in the Enterprise: Real-World Data on Container and Microservice...Cloud Native in the Enterprise: Real-World Data on Container and Microservice...
Cloud Native in the Enterprise: Real-World Data on Container and Microservice...
 
The 2016 State of Cloud IT Report
The 2016 State of Cloud IT ReportThe 2016 State of Cloud IT Report
The 2016 State of Cloud IT Report
 
State of the Cloud DevOps Trends
State of the Cloud DevOps TrendsState of the Cloud DevOps Trends
State of the Cloud DevOps Trends
 
Red Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform OverviewRed Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform Overview
 
Cloud Native Landscape (CNCF and OCI)
Cloud Native Landscape (CNCF and OCI)Cloud Native Landscape (CNCF and OCI)
Cloud Native Landscape (CNCF and OCI)
 
Realizing Linux Containers (LXC)
Realizing Linux Containers (LXC)Realizing Linux Containers (LXC)
Realizing Linux Containers (LXC)
 
The State of Sales & Marketing at the 50 Fastest-Growing B2B Companies
The State of Sales & Marketing at the 50 Fastest-Growing B2B CompaniesThe State of Sales & Marketing at the 50 Fastest-Growing B2B Companies
The State of Sales & Marketing at the 50 Fastest-Growing B2B Companies
 

Similar to Not so brief history of Linux Containers

Evolution of Linux Containerization
Evolution of Linux Containerization Evolution of Linux Containerization
Evolution of Linux Containerization
WSO2
 
Revolutionizing the cloud with container virtualization
Revolutionizing the cloud with container virtualizationRevolutionizing the cloud with container virtualization
Revolutionizing the cloud with container virtualization
WSO2
 
Fedora Virtualization Day: Linux Containers & CRIU
Fedora Virtualization Day: Linux Containers & CRIUFedora Virtualization Day: Linux Containers & CRIU
Fedora Virtualization Day: Linux Containers & CRIU
Andrey Vagin
 

Similar to Not so brief history of Linux Containers (20)

LibCT и контейнеры на уровне приложений -- Александр Бурлука
	LibCT и контейнеры на уровне приложений -- Александр Бурлука	LibCT и контейнеры на уровне приложений -- Александр Бурлука
LibCT и контейнеры на уровне приложений -- Александр Бурлука
 
Evolution of Linux Containerization
Evolution of Linux Containerization Evolution of Linux Containerization
Evolution of Linux Containerization
 
Evoluation of Linux Container Virtualization
Evoluation of Linux Container VirtualizationEvoluation of Linux Container Virtualization
Evoluation of Linux Container Virtualization
 
OpenVZ, Virtuozzo and Docker
OpenVZ, Virtuozzo and DockerOpenVZ, Virtuozzo and Docker
OpenVZ, Virtuozzo and Docker
 
20240201 [HPC Containers] Rootless Containers.pdf
20240201 [HPC Containers] Rootless Containers.pdf20240201 [HPC Containers] Rootless Containers.pdf
20240201 [HPC Containers] Rootless Containers.pdf
 
Containerization & Docker - Under the Hood
Containerization & Docker - Under the HoodContainerization & Docker - Under the Hood
Containerization & Docker - Under the Hood
 
A brief history of Linux Containers
A brief history of Linux Containers A brief history of Linux Containers
A brief history of Linux Containers
 
Brief history of Linux containers
Brief history of Linux containersBrief history of Linux containers
Brief history of Linux containers
 
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 > VMs
Containers > VMsContainers > VMs
Containers > VMs
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
HLayer / Docker and its ecosystem
HLayer / Docker and its ecosystemHLayer / Docker and its ecosystem
HLayer / Docker and its ecosystem
 
Revolutionizing the cloud with container virtualization
Revolutionizing the cloud with container virtualizationRevolutionizing the cloud with container virtualization
Revolutionizing the cloud with container virtualization
 
2. Vagin. Linux containers. June 01, 2013
2. Vagin. Linux containers. June 01, 20132. Vagin. Linux containers. June 01, 2013
2. Vagin. Linux containers. June 01, 2013
 
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copy
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copyLinux containers – next gen virtualization for cloud (atl summit) ar4 3 - copy
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copy
 
Fedora Virtualization Day: Linux Containers & CRIU
Fedora Virtualization Day: Linux Containers & CRIUFedora Virtualization Day: Linux Containers & CRIU
Fedora Virtualization Day: Linux Containers & CRIU
 
OpenVZ Linux Containers
OpenVZ Linux ContainersOpenVZ Linux Containers
OpenVZ Linux Containers
 
Docker introduction for Carbon IT
Docker introduction for Carbon ITDocker introduction for Carbon IT
Docker introduction for Carbon IT
 
[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020
 

More from Kirill Kolyshkin

Speeding up ps and top
Speeding up ps and topSpeeding up ps and top
Speeding up ps and top
Kirill Kolyshkin
 

More from 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
 
N problems of Linux Containers
N problems of Linux ContainersN problems of Linux Containers
N problems of Linux Containers
 
Criu texas-linux-fest-2014
Criu texas-linux-fest-2014Criu texas-linux-fest-2014
Criu texas-linux-fest-2014
 
Seven problems of Linux Containers
Seven problems of Linux ContainersSeven problems of Linux Containers
Seven problems of Linux Containers
 
Checkpoint/Restore: are we there yet?
Checkpoint/Restore: are we there yet?Checkpoint/Restore: are we there yet?
Checkpoint/Restore: are we there yet?
 

Recently uploaded

CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
anilsa9823
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Recently uploaded (20)

Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 

Not so brief history of Linux Containers

  • 1. A brief history of Linux Containers Kir Kolyshkin <kir@openvz.org> ContainerCon, Seattle, 17th of August 2015
  • 2. A (not so) brief history of (mostly) Linux Containers Kir Kolyshkin <kir@openvz.org> ContainerCon, Seattle, 17th of August 2015
  • 3. Evolution of OS ● Single process → batch processing → multitask ● Single user → multiple users and groups ● Single computer → network of computers ● Single userspace → multiple userspaces a.k.a. containers
  • 4. What year do you think the history of Linux Containers started?
  • 5. 1999-2000 ● 1999: Initial idea about Virtuozzo – “virtual environments” – groups of processes – a file system to share code / save RAM – resource management / isolation ● 2000: 5 engineers, public testing, 5000 VEs with root accounts, public source code release
  • 6. 2000 ● User Beancounters: – per process group limits – Andrey Savochkin and Alan Cox – barrier, limit, held, maxheld, failcnt ● Al Viro: [mount] namespace
  • 7. 2001 ● Virtuozzo for … Windows! – no source code – lots of reverse engineering – live kernel patching – “most advanced software ever written for Windows” ● Linux-VServer project – Jacques Gélinas, Herbert Pötzl
  • 8. 2002-2003 ● 2002 Jan: First Virtuozzo release (v2.0) ● 2003: Meiosys Metacluster – containers for the sake of live migration – acquired by IBM in 2005
  • 9. 2004-2005 ● Feb: Solaris Zones/Containers released – kudos to Sun for the term “containers”! ● Dec: first Virtuozzo for Windows release ● CKRM, rsrc mgmt frmwrk frm IBM [FAIL] ● 2005: OpenVZ project announced – better late than never
  • 10. 2006-2010: up the stream! ● Lots of new namespaces: – PID (process tree) – net (net devices, addresses, routing etc) – IPC (shared memory, semaphores, msg queues) – UTS (hostname, kernel version) – Mount (filesystem mounts and files, 2000) – user (UIDs/GIDs, only completed in 2013, Linux 3.9) ● Use: clone() with CLONE_NEW* flags
  • 11. 2006-2010: up the stream!
  • 12. 2006 ● Kernel ports: 2.6.15, FC5, RHEL4, 2.6.18 ● “Weekend project” ports to SPARC and Power ● Live migration in OpenVZ
  • 13. Checkpointing and Live Migration ● Live migration, simplified: – freeze processes, dump their complete state – copy that dump to other machine – restore from dump; unfreeze! ● Initially implemented in the kernel – touches every subsystem (except drivers) – so, really hard to merge upstream
  • 14. Trying hard to merge cpt/rst
  • 15. 2007 ● IBM AIX WPARs ● HP-UX SRP containers ● Rebase to RHEL5 kernel, port to 2.6.20 ● 2007: cgroups framework from Google [PASS] – based on cpusets feature from BULL/SGI
  • 16. CGroups ● Cgroups is a mechanism to control resources per hierarchical groups of processes ● Modern alternative to user beancounters ● Cgroups is nothing without controllers: – blkio, cpu, cpuacct, cpuset, devices, freezer, memory, net_cls, net_prio ● Cgroups are orthogonal to namespaces ● Still working on it: just added kmem controller
  • 17. 2008-2009 ● Kernel port to 2.6.25 ● Weekend project – port to ARM ● LXC (userspace tool a la vzctl) was born
  • 18. 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)
  • 19. 20 2011-2012: CRIU ● Jul 2011: initial proposal for CRIU ● Idea: implement most of C/R in userspace using existing APIs ● Jul 2012: initial CRIU release (v0.1) criu.org
  • 20. 21 2013 ● Docker appeared ● lmctfy appeared ● CoreOS appeared ● vzctl adds io/iops limit support
  • 21. 23 2014 ● CRIU for Docker & LXC support ● LXD announced ● OpenStack talks abt adding containers support
  • 22. 24 OpenVZ in 2015 ● New, more open development model ● Unified with Virtuozzo ● Plays well with Docker (in, out, and on the side)
  • 23. CRIU in 2015 ● 3 years old, tools at version 1.6.2 ● Users: Google, Samsung, Huawei, ... ● LXC & Docker – integrated! ● TCP connection migration works! ● About 160 patches merged to 3.x - 4.x kernels under CONFIG_CHECKPOINT_RESTORE ● Live migration: p.haul (criu.org/P.Haul)
  • 24. Future! ● Virtuozzo 7 ● 4th gen of resource management: vcmmd – More dynamic, with bursts, guarantees etc ● Proper port to POWER, ARM ● CRIU: p.haul, integration (http://criu.org/Integration) ● MetaPC? Mosaic?

Editor's Notes

  1. I like that this is a nested talk, it&amp;apos;s like a novel within a book or story within a story. I don&amp;apos;t like it&amp;apos;s only 15 minutes, I got so much to tell you!
  2. I like that this is a nested talk, it&amp;apos;s like a novel within a book or story within a story. I don&amp;apos;t like it&amp;apos;s only 15 minutes, I got so much to tell you!
  3. So, this is the first containercon. When do you think the history of containers started for Linux?
  4. Disclaimer: I work for Odin (ex Parallels, ex SWsoft), my POV is skewed. Our chief scientist, a professor from MIPT (~ru MIT), Alexander Tormasov proposed a new direction to senior mgmt – lightweight partitioning. He was inspired by IBM mainframe partitioning. The idea is to have multiple “virtual environments”, – isolated groups of processes, each acting as a standalone Linux machine (except for the kernel – shared). Another idea was about file system to share code (binaries/libraries) and therefore save RAM, making density even higher. Third cornerstone was resource isolation. In Feb 2000 they got an office in MIPT, 3 engineers, a sysadm, a manager/engineer. Later two guys for web mgmt tools. Initial public testing, hot summer – 5000 VEs,
  5. That initial testing revealed a big problem with resource isolation. A mathematician from MSU (~ru Stanford) hired, he wrote User Beancounters (with Alan Cox, luid idea from HP-UX). WARNING: PhD in economics! Also in 2000 Al Viro wrote a first namespace for Linux kernel – the [mount] namespace. It&amp;apos;s like chroot() but with bells and whistles. Kernel API is clone() call with CLONE_NEWNS flag.
  6. As a result of OpenVZ upstreaming efforts, a few more namespaces appeared in the Linux kernel. Most notable ones are netns and pidns. Netns was developed by OpenVZ kernel guys based on their experience with OVZ kernel but from scratch. Pidns – were there two implementations, one from IBM, one from us, we won as ours had zero overhead on the first level of nesting. User namespace was all IBM work, and it was initially merged in 2.6.23 (2007), but was only completed (became usable) in Linux 3.9 (2013). We failed to upstream our User Beancounters, but Google contributed cgroups framework (it was an adaptation of cpusets feature from BULL/Silicon Graphics). As stuff become available in the kernel, userspace tools emerged. LXC is such a tool from IBM.
  7. This time period was characterized by lots of container-related patches contributed to the Linux kernel, i.e. the upstreaming age. Our company is few hundred people, and our kernel team is only about 10 people, give or take, and I am very proud of the fact that this upstreaming effort made us appear in the top10 companies contributing to the Linux kernel. Well, it&amp;apos;s the bottom of that top10, that is. Other companies in that list are way bigger. Now, upstreaming is probably as complicated for developers as it is for salmons when they run. They die exhausted, they got eaten by grizzly bears, etc. On the right you can see a salmon, err, a developer, and on the left is a bear, err, a Linux kernel subsystem maintainer.
  8. This time period was characterized by lots of container-related patches contributed to the Linux kernel, i.e. the upstreaming age. Our company is few hundred people, and our kernel team is only about 10 people, give or take, and I am very proud of the fact that this upstreaming effort made us appear in the top10 companies contributing to the Linux kernel. Well, it&amp;apos;s the bottom of that top10, that is. Other companies in that list are way bigger. Now, upstreaming is probably as complicated for developers as it is for salmons when they run. They die exhausted, they got eaten by grizzly bears, etc. On the right you can see a salmon, err, a developer, and on the left is a bear, err, a Linux kernel subsystem maintainer.
  9. What is LXC? From the first glance very similar to OpenVZ In fact LXC is just a user space tool a la vzctl LXC uses standard kernel OpenVZ is a complete set with its own kernel, many tools, libraries etc. A superset of OpenVZ also existsas a commercial product (Virtuozzo)
  10. Virtuozzo 7 is reboot of OpenVZ. Ten years ago we made a mistake of not having our devel process open enough, this time we are trying to fix it. This April we opened our next kernel git repo, and just this Monday we opened our toolchain. We also moved all of our discussions to the public mailing list, and we follow the git fork-branch-pull request model of developing for our tools. The other thing is next gen resource management. It&amp;apos;s more dynamic, with a user-space daemon which would allow bursts, guarantees and in general more elastic limits.
  11. Virtuozzo 7 is reboot of OpenVZ. Ten years ago we made a mistake of not having our devel process open enough, this time we are trying to fix it. This April we opened our next kernel git repo, and just this Monday we opened our toolchain. We also moved all of our discussions to the public mailing list, and we follow the git fork-branch-pull request model of developing for our tools. The other thing is next gen resource management. It&amp;apos;s more dynamic, with a user-space daemon which would allow bursts, guarantees and in general more elastic limits. We will probably be working on a proper ARM and POWER ports (the improper ones were done by me years ago just to demonstrate that the containers technology is arch-agnostic). The only arch-dependent feature is CPT/RST as it requires deep knowledge of arch to develop. CRIU is ported to ARM currently. Finally, a MetaPC is something we&amp;apos;re thinking about, a way to combine many servers into a single virtual big one. This is anti-partitioning, and it will work with the help of CRIU.