Evolution of Linux Containers to Container Native Storage...
Submitted by Sameer Kandarkar (@skandark) on Wednesday, 14 August 2019
Section: Full talk (40 mins) Category: DevOps
The focus of this session will be on the journey of the containerization technology since 1974 (The First Container) to the container native storage.
How containers evolved year by year and became an invariable solution for isolating applications at the operating system level, although you can also isolate an entire operating system inside a container, if you’d like
Journey of a Linux container from a small piece of code to userspace tools like docker, podman, CRIO and to the solution for persistent storage for container based applications as Container native Storage(CNS).
Evolution of Containerization Technology
Linux container is a solution for virtualizing software at the operating system level within the Linux kernel. Unlike traditional hypervisors containers lets you run single applications in virtual environments.
Container’s main advantages include making it easy to control a virtual environment using userspace tools from the host OS,
requiring less overhead than a traditional hypervisor and increasing the portability of individual apps by making it possible to distribute them inside containers.
Linux containers sounds a lot like Docker or CoreOS containers, it’s because Linux containers used to be the underlying technology that made Docker and CoreOS tick. More recently, however, Docker has gone in its own direction and no longer depends on Linux container.
In this session, will talk about the evolution of containerization technology from 1974-2019. Different phases of containers such as chroot of unix v7, Free BSD Jails, Linux Vserver, Solaris Containers, Open VZ, Process Containers (also known as Control Groups)
, Linux Containers (LXC), Warden, LMCTFY(Let Me Contain That For You) by Google, Docker , Podman, Kubernetes and Openshift.
This Session will cover the Container Technology Stack.
Container Technology Stack is built on modern kernel features
chrootfs : apparent root FS directory
A chroot on Unix operating systems is an operation that changes the apparent root directory for the current running process and its children.
A program that is run in such a modified environment cannot name (and therefore normally cannot access) files outside the designated directory tree.
namespaces: process based resource isolation –
Namespaces are the foundation of lightweight process virtualization . They enable a process and its children to have different views of the underlying system.
cgroups: limits, prioritization, accounting & control
Linux Security Modules (LSM): Mandatory Access Control (MAC)
User space interfaces for kernel functions LXC tools – Tools to isolate process(es) virtualizing kernel resources LXC commoditization
LXC virtualization Orchestration & management
Software defined storage with containers (CNS: Container Native Storage)
Container technology will also affect how organizations think about storage for applications and emerging microservices. However, while containers do a great job of encapsulating application logic, they do not offer a viable solution for storing application data across the life cycle of the container. Ephemeral (or local) storage is not enough—stateful container-based applications require that data remain available beyond the life of the container. Software defined storage with containers provides a solution for persistent storage
Storage for and in Containers
There’s More Than One Type of Container Storage
1. Storage For Containers
2. Storage In Containers
1. Demo on Container Technology Stack
2. Demo on Container Storage
I am a part a Red Hat’s Gluster Storage Team. I work on openshift backend storage and software defined storage. Since my college days I am very fond of containers and very enthusiastic about opensource culture. I like to talk to people on various platforms, would love to contribute and share my learnings about the opensource technologies such as containers, kubernets, SDS solutions etc