Book Image

Containerization with LXC

By : Konstantin Ivanov
Book Image

Containerization with LXC

By: Konstantin Ivanov

Overview of this book

In recent years, containers have gained wide adoption by businesses running a variety of application loads. This became possible largely due to the advent of kernel namespaces and better resource management with control groups (cgroups). Linux containers (LXC) are a direct implementation of those kernel features that provide operating system level virtualization without the overhead of a hypervisor layer. This book starts by introducing the foundational concepts behind the implementation of LXC, then moves into the practical aspects of installing and configuring LXC containers. Moving on, you will explore container networking, security, and backups. You will also learn how to deploy LXC with technologies like Open Stack and Vagrant. By the end of the book, you will have a solid grasp of how LXC is implemented and how to run production applications in a highly available and scalable way.
Table of Contents (17 chapters)
Containerization with LXC
About the Author
About the Reviewer
Customer Feedback

Using the ZFS backing store

ZFS is both a filesystem and LVM. It consists of a storage pool that manages multiple block devices and provides a virtual storage interface to the filesystem that can then easily be extended on the go. The following diagram shows the general structure of ZFS and its components:

Similar to the LVM, multiple block devices can be aggregated into a Storage pool, from which different directories can be carved.

The main features ZFS provides are data reliability due to the implementation of transparent checksums, automatic compression and deduplication of data, parallel constant time directory operations and, most importantly in the context of LXC, COW snapshots and clones.

Let's install the userspace tools on Ubuntu:

root@ubuntu:~# apt-add-repository ppa:zfs-native/daily

root@ubuntu:~# apt-get update

root@ubuntu:~# apt-get install ubuntu-zfs

The package names are different on CentOS:

[root@centos ~]# yum update

[root@centos ~]# reboot