SlideShare a Scribd company logo
A brief history of
(mostly)
Linux Containers
/ a nested talk /
Kir Kolyshkin <kir@openvz.org>
ContainerDays Boston, 5th
of June 2015
Last Century
● 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
● User Beancounters: per-group limits
● Al Viro: [mount] namespace
2001-2005: stone age
● 2001: Virtuozzo for … Windows (zOMG!!11one)
● 2001: Linux-Vserver (Jacques Gélinas, Herbert Pötzl)
● 2002: First Virtuozzo release (2.0!)
● 200?: Meiosys Metacluster, acq. by IBM in 2005
● 2004: First VZWin release
● 2004: CKRM, rsrc mgmt frmwrk frm IBM [FAIL]
● 2005: OpenVZ as open source Virtuozzo
2006-2010: up the stream!
2006-2010: up the stream!
● Lots of new namespaces:
– network
– PID
– IPC
– User (only completed in 2013, Linux 3.9)
● 2006: live migration in OpenVZ
● 2007: cgroups framework from Google [PASS]
● 2008: LXC tool (a la vzctl)
2010-2015: contemporaneity
●
2010: OpenVZ Vswap, 3rd
gen resource mgmt
● 2010: ploop (CT in a file with bells and whistles)
● 2011: CRIU aka chkpnt/rstr in usrspc
● 2013: a plenty of container projects:
– Docker, lmctfy, CoreOS
● 2014: CRIU for Docker & LXC
● 2015: OpenVZ re-born, new devel model,
new kernel & tools
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?

More Related Content

PDF
Containers in 5... 9 minutes
PDF
tDiary開発環境!VMWarePlayer編
PDF
Autentia OS - 20180210 - Docker y las películas de chinos
PDF
Libcontainer: joining forces under one roof
ODP
What's missing from upstream kernel containers?
ODP
Not so brief history of Linux Containers
PDF
Docker. General overview
PDF
LibCT: one lib to rule them all -- Andrey Vagin
Containers in 5... 9 minutes
tDiary開発環境!VMWarePlayer編
Autentia OS - 20180210 - Docker y las películas de chinos
Libcontainer: joining forces under one roof
What's missing from upstream kernel containers?
Not so brief history of Linux Containers
Docker. General overview
LibCT: one lib to rule them all -- Andrey Vagin

What's hot (16)

PPTX
Docker 1.9 release party - Docker Ha Noi
PDF
LibCT и контейнеры на уровне приложений -- Александр Бурлука
PPT
An overview of OpenVZ virtualization technology
KEY
Openvz - a quick introduction
PDF
Disaster Recovery Strategies Using oVirt's new Storage Connection Management ...
PDF
Fundamental Virtualisasi di openSUSE
PDF
How Docker didn't invent containers (Docker Meetup Brno #1)
PDF
Containers from scratch
PPTX
Containers - Cloud Phoenix March Meetup
PDF
Behind 12 sunsets
PDF
pkgsrc 2014 - the record of the past year
PDF
Corwin on containers
PDF
using Virtualbox NAT and shared folder
PDF
OpenZFS at AsiaBSDcon FreeBSD Developer Summit
PDF
Linux Containers & Docker
PDF
Minimalist Operating Systems for Containers
Docker 1.9 release party - Docker Ha Noi
LibCT и контейнеры на уровне приложений -- Александр Бурлука
An overview of OpenVZ virtualization technology
Openvz - a quick introduction
Disaster Recovery Strategies Using oVirt's new Storage Connection Management ...
Fundamental Virtualisasi di openSUSE
How Docker didn't invent containers (Docker Meetup Brno #1)
Containers from scratch
Containers - Cloud Phoenix March Meetup
Behind 12 sunsets
pkgsrc 2014 - the record of the past year
Corwin on containers
using Virtualbox NAT and shared folder
OpenZFS at AsiaBSDcon FreeBSD Developer Summit
Linux Containers & Docker
Minimalist Operating Systems for Containers
Ad

Similar to A brief history of Linux Containers (20)

ODP
Not so brief history of Linux Containers - Kir Kolyshkin
PDF
Libcontainer: joining forces under one roof
PDF
Libcontainer: joining forces under one roof
ODP
OpenVZ, Virtuozzo and Docker
PDF
Containerized Delivery on the Microsoft Stack
PDF
An Updated Performance Comparison of Virtual Machines and Linux Containers
PDF
Linux Kernel Exploitation
PPTX
Presentation on windows
PDF
Operating Systems
PDF
introduction.pdf
PPTX
Containerization & Docker - Under the Hood
PPTX
Exploring Docker Security
PDF
PPT
L2(1).PPT
PDF
Plan 9: Not (Only) A Better UNIX
PPTX
SummerStudent17_HandsOn Data Cloud Computing.pptx
PPTX
A History of Microsoft Windows
PPTX
A Bug Hunter's Perspective on Unix Drivers
ODP
N problems of Linux Containers
PPTX
Cloud.pptm
Not so brief history of Linux Containers - Kir Kolyshkin
Libcontainer: joining forces under one roof
Libcontainer: joining forces under one roof
OpenVZ, Virtuozzo and Docker
Containerized Delivery on the Microsoft Stack
An Updated Performance Comparison of Virtual Machines and Linux Containers
Linux Kernel Exploitation
Presentation on windows
Operating Systems
introduction.pdf
Containerization & Docker - Under the Hood
Exploring Docker Security
L2(1).PPT
Plan 9: Not (Only) A Better UNIX
SummerStudent17_HandsOn Data Cloud Computing.pptx
A History of Microsoft Windows
A Bug Hunter's Perspective on Unix Drivers
N problems of Linux Containers
Cloud.pptm
Ad

More from Kirill Kolyshkin (6)

ODP
Speeding up ps and top
ODP
CRIU: Time and Space Travel for Linux Containers
ODP
Criu texas-linux-fest-2014
PPT
Seven problems of Linux Containers
ODP
Checkpoint/Restore: are we there yet?
PDF
OpenVZ Linux Containers
Speeding up ps and top
CRIU: Time and Space Travel for Linux Containers
Criu texas-linux-fest-2014
Seven problems of Linux Containers
Checkpoint/Restore: are we there yet?
OpenVZ Linux Containers

Recently uploaded (20)

PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Designing Intelligence for the Shop Floor.pdf
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
Why Generative AI is the Future of Content, Code & Creativity?
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
medical staffing services at VALiNTRY
PDF
Digital Strategies for Manufacturing Companies
PDF
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
PDF
System and Network Administraation Chapter 3
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PPTX
Computer Software and OS of computer science of grade 11.pptx
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Nekopoi APK 2025 free lastest update
PPTX
L1 - Introduction to python Backend.pptx
Navsoft: AI-Powered Business Solutions & Custom Software Development
Design an Analysis of Algorithms II-SECS-1021-03
CHAPTER 2 - PM Management and IT Context
PTS Company Brochure 2025 (1).pdf.......
Designing Intelligence for the Shop Floor.pdf
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Which alternative to Crystal Reports is best for small or large businesses.pdf
Why Generative AI is the Future of Content, Code & Creativity?
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Reimagine Home Health with the Power of Agentic AI​
medical staffing services at VALiNTRY
Digital Strategies for Manufacturing Companies
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
System and Network Administraation Chapter 3
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Computer Software and OS of computer science of grade 11.pptx
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Nekopoi APK 2025 free lastest update
L1 - Introduction to python Backend.pptx

A brief history of Linux Containers

  • 1. A brief history of (mostly) Linux Containers / a nested talk / Kir Kolyshkin <kir@openvz.org> ContainerDays Boston, 5th of June 2015
  • 2. Last Century ● 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 ● User Beancounters: per-group limits ● Al Viro: [mount] namespace
  • 3. 2001-2005: stone age ● 2001: Virtuozzo for … Windows (zOMG!!11one) ● 2001: Linux-Vserver (Jacques Gélinas, Herbert Pötzl) ● 2002: First Virtuozzo release (2.0!) ● 200?: Meiosys Metacluster, acq. by IBM in 2005 ● 2004: First VZWin release ● 2004: CKRM, rsrc mgmt frmwrk frm IBM [FAIL] ● 2005: OpenVZ as open source Virtuozzo
  • 5. 2006-2010: up the stream! ● Lots of new namespaces: – network – PID – IPC – User (only completed in 2013, Linux 3.9) ● 2006: live migration in OpenVZ ● 2007: cgroups framework from Google [PASS] ● 2008: LXC tool (a la vzctl)
  • 6. 2010-2015: contemporaneity ● 2010: OpenVZ Vswap, 3rd gen resource mgmt ● 2010: ploop (CT in a file with bells and whistles) ● 2011: CRIU aka chkpnt/rstr in usrspc ● 2013: a plenty of container projects: – Docker, lmctfy, CoreOS ● 2014: CRIU for Docker & LXC ● 2015: OpenVZ re-born, new devel model, new kernel & tools
  • 7. 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

  • #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: 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, revealed a 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.
  • #4: Vzwin: really crazy idea, no source code – lot of reverse engineering. Implemented by live kernel patching. Called “the most advanced software ever written for Windows” by someone at MS. Linux-Vserver – another pioneering project, unfortunately they don&amp;apos;t want to contribute anything to upstream kernel. Meiosys Metacluster was another implementation of Linux containers, specifically targeted for live migration. I am not sure about years but it was between 2000 and 2005 and then it the company was acquired CKRM is a demonstration of a phenomenon that all the vowels can be removed from the sentence without any harm to its meaning. Also, that the way IBM worked with Linux was broken (more on that). OpenVZ – well this is what I work on for the last 10 years of my life. I won&amp;apos;t talk much about it today, I promise! )
  • #5: 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.
  • #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: Yes, I have used a dictionary to come with this title... It looks like this slide is a try to fit about 2/3rds my tomorrow&amp;apos;s talk into a single slide. It won&amp;apos;t fit, so I will just give a very brief overview. VSwap is third-generation of our approach to per-container resource management, after 10 years of experience. First gen worked fine but was too complicated to configure, second gen won&amp;apos;t work, this one works and is easy to config! Ploop is a container in a file technology, a la QCOW or Linux kernel loop device. It comes with a few extra features for CTs, too CRIU is our best open source project to date. It&amp;apos;s an approach to upstream the containers checkpoint/restore and live migration. We have in-kernel cpt/rst and we failed to merge it.
  • #8: 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.