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
ODP
OpenVZ, Virtuozzo and Docker
PDF
OpenVZ Linux containers
PDF
Woc15
PDF
Kонтейнерная виртуализация в продуктах parallels прошлое, настоящее и будущее.
PDF
OpenVZ Linux Containers
PDF
Pivotal : Moments in Container History
 
PPT
Linux Virtualization
PDF
What's really the difference between a VM and a Container?
PPT
An overview of OpenVZ virtualization technology
ODP
Openvz booth
PDF
ContainerDays Boston 2015: "A Brief History of Containers" (Jeff Victor & Kir...
PDF
Containers > VMs
ODP
Containerize vs Virtualize? NGDC 2009
PDF
What's really the difference between a VM and a Container?
PPTX
Containers are the future of the Cloud
PDF
Linux container & docker
PDF
Libcontainer: joining forces under one roof
PDF
Libcontainer: joining forces under one roof
ODP
N problems of Linux Containers
Not so brief history of Linux Containers - Kir Kolyshkin
OpenVZ, Virtuozzo and Docker
OpenVZ Linux containers
Woc15
Kонтейнерная виртуализация в продуктах parallels прошлое, настоящее и будущее.
OpenVZ Linux Containers
Pivotal : Moments in Container History
 
Linux Virtualization
What's really the difference between a VM and a Container?
An overview of OpenVZ virtualization technology
Openvz booth
ContainerDays Boston 2015: "A Brief History of Containers" (Jeff Victor & Kir...
Containers > VMs
Containerize vs Virtualize? NGDC 2009
What's really the difference between a VM and a Container?
Containers are the future of the Cloud
Linux container & docker
Libcontainer: joining forces under one roof
Libcontainer: joining forces under one roof
N problems of Linux Containers
Ad

Recently uploaded (20)

PPTX
Python is a high-level, interpreted programming language
PDF
Practical Indispensable Project Management Tips for Delivering Successful Exp...
PDF
Sun and Bloombase Spitfire StoreSafe End-to-end Storage Security Solution
PPTX
Lecture 5 Software Requirement Engineering
PDF
Microsoft Office 365 Crack Download Free
PPTX
Viber For Windows 25.7.1 Crack + Serial Keygen
PPTX
Cybersecurity-and-Fraud-Protecting-Your-Digital-Life.pptx
PDF
Type Class Derivation in Scala 3 - Jose Luis Pintado Barbero
PPTX
4Seller: The All-in-One Multi-Channel E-Commerce Management Platform for Glob...
PDF
infoteam HELLAS company profile 2025 presentation
PPTX
Download Adobe Photoshop Crack 2025 Free
PDF
Introduction to Ragic - #1 No Code Tool For Digitalizing Your Business Proces...
PPTX
Chapter 1 - Transaction Processing and Mgt.pptx
PDF
SOFTWARE ENGINEERING Software Engineering (3rd Edition) by K.K. Aggarwal & Yo...
PPTX
Full-Stack Developer Courses That Actually Land You Jobs
PDF
CCleaner 6.39.11548 Crack 2025 License Key
PDF
E-Commerce Website Development Companyin india
PDF
What Makes a Great Data Visualization Consulting Service.pdf
PDF
AI-Powered Fuzz Testing: The Future of QA
PPTX
Computer Software - Technology and Livelihood Education
Python is a high-level, interpreted programming language
Practical Indispensable Project Management Tips for Delivering Successful Exp...
Sun and Bloombase Spitfire StoreSafe End-to-end Storage Security Solution
Lecture 5 Software Requirement Engineering
Microsoft Office 365 Crack Download Free
Viber For Windows 25.7.1 Crack + Serial Keygen
Cybersecurity-and-Fraud-Protecting-Your-Digital-Life.pptx
Type Class Derivation in Scala 3 - Jose Luis Pintado Barbero
4Seller: The All-in-One Multi-Channel E-Commerce Management Platform for Glob...
infoteam HELLAS company profile 2025 presentation
Download Adobe Photoshop Crack 2025 Free
Introduction to Ragic - #1 No Code Tool For Digitalizing Your Business Proces...
Chapter 1 - Transaction Processing and Mgt.pptx
SOFTWARE ENGINEERING Software Engineering (3rd Edition) by K.K. Aggarwal & Yo...
Full-Stack Developer Courses That Actually Land You Jobs
CCleaner 6.39.11548 Crack 2025 License Key
E-Commerce Website Development Companyin india
What Makes a Great Data Visualization Consulting Service.pdf
AI-Powered Fuzz Testing: The Future of QA
Computer Software - Technology and Livelihood Education

A brief history of Linux Containers

  • 1. A brief history of (mostly) Linux Containers / a nested talk / Kir Kolyshkin <[email protected]> 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.