A brief history of Linux Containers

Project Manager at Parallels, Inc.
Jun. 15, 2015
A brief history of Linux 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
A brief history of Linux Containers
A brief history of Linux Containers
1 of 7

More Related Content

What's hot

Docker 1.9 release party - Docker Ha NoiDocker 1.9 release party - Docker Ha Noi
Docker 1.9 release party - Docker Ha NoiVan Phuc
	LibCT и контейнеры на уровне приложений -- Александр Бурлука	LibCT и контейнеры на уровне приложений -- Александр Бурлука
LibCT и контейнеры на уровне приложений -- Александр БурлукаOpenVZ
An overview of OpenVZ virtualization technologyAn overview of OpenVZ virtualization technology
An overview of OpenVZ virtualization technologyOpenVZ
Openvz - a quick introductionOpenvz - a quick introduction
Openvz - a quick introductionOlle E Johansson
Disaster Recovery Strategies Using oVirt's new Storage Connection Management ...Disaster Recovery Strategies Using oVirt's new Storage Connection Management ...
Disaster Recovery Strategies Using oVirt's new Storage Connection Management ...Allon Mureinik
Fundamental Virtualisasi di openSUSEFundamental Virtualisasi di openSUSE
Fundamental Virtualisasi di openSUSEutianayuba

Similar to A brief history of Linux Containers

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
Libcontainer: joining forces under one roofLibcontainer: joining forces under one roof
Libcontainer: joining forces under one roofOpenVZ
Libcontainer: joining forces under one roofLibcontainer: joining forces under one roof
Libcontainer: joining forces under one roofMirantis IT Russia
OpenVZ, Virtuozzo and DockerOpenVZ, Virtuozzo and Docker
OpenVZ, Virtuozzo and DockerKirill Kolyshkin
Containerized Delivery on the Microsoft StackContainerized Delivery on the Microsoft Stack
Containerized Delivery on the Microsoft StackCornell Knulst
An Updated Performance Comparison of Virtual Machines and Linux ContainersAn Updated Performance Comparison of Virtual Machines and Linux Containers
An Updated Performance Comparison of Virtual Machines and Linux ContainersKento Aoyama

More from Kirill Kolyshkin

Speeding up ps and topSpeeding up ps and top
Speeding up ps and topKirill Kolyshkin
CRIU: Time and Space Travel for Linux ContainersCRIU: Time and Space Travel for Linux Containers
CRIU: Time and Space Travel for Linux ContainersKirill Kolyshkin
Criu texas-linux-fest-2014Criu texas-linux-fest-2014
Criu texas-linux-fest-2014Kirill Kolyshkin
Seven problems of Linux ContainersSeven problems of Linux Containers
Seven problems of Linux ContainersKirill Kolyshkin
Checkpoint/Restore: are we there yet?Checkpoint/Restore: are we there yet?
Checkpoint/Restore: are we there yet?Kirill Kolyshkin
OpenVZ Linux ContainersOpenVZ Linux Containers
OpenVZ Linux ContainersKirill Kolyshkin

Recently uploaded

Test Automation at Scale: Lessons from Top-Performing Distributed TeamsTest Automation at Scale: Lessons from Top-Performing Distributed Teams
Test Automation at Scale: Lessons from Top-Performing Distributed TeamsApplitools
What is Microsoft Power BI used for.pptxWhat is Microsoft Power BI used for.pptx
What is Microsoft Power BI used for.pptxJohnCommuserv
Semantic Search_ NLP_ ML.pdfSemantic Search_ NLP_ ML.pdf
Semantic Search_ NLP_ ML.pdfPlamenaDzharadat
advanced java.pdfadvanced java.pdf
advanced java.pdfAli Bozkurt
Taming Cloud Sprawl - XConf Europe 2023 - Kief.pdfTaming Cloud Sprawl - XConf Europe 2023 - Kief.pdf
Taming Cloud Sprawl - XConf Europe 2023 - Kief.pdfKief Morris
Improving User Experience with Our Website Feedback ToolImproving User Experience with Our Website Feedback Tool
Improving User Experience with Our Website Feedback ToolNot8 App

Recently uploaded(20)

A brief history of Linux Containers

Editor's Notes

  1. I like that this is a nested talk, it's like a novel within a book or story within a story. I don't like it's only 15 minutes, I got so much to tell you!
  2. 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's like chroot() but with bells and whistles. Kernel API is clone() call with CLONE_NEWNS flag.
  3. 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'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't talk much about it today, I promise! )
  4. 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'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.
  5. 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.
  6. 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's talk into a single slide. It won'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'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's an approach to upstream the containers checkpoint/restore and live migration. We have in-kernel cpt/rst and we failed to merge it.
  7. 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'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'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.