What is virtualization?

A.V.Bogdanov, PyaeSoneKoKo
State Marine Technical University, St.petersburg
Network virtualization
 Storage virtualization
 Server virtualization
Full virtualization
 Paravirtualization
 OS resource virtualization
• Better utilization of hardware resources
• Reduced time to market
• High availability
• Disaster recovery
• Testing new technologies
• Migrating services to new platforms
• Solaris zones
• Linux branded zones
• Xen (dom0 and domU)
• Crossbow (virtualized network stacks)
• More to come …
Better isolation as compared to a chroot (chroot jail).
Low overhead. LXC uses minimal resources in terms of
RAM and hard drive space without the overhead of
installing a guest OS in a virtual machine ( VMWare /
VirtualBox / KVM ).
Applications and services (servers) run at native speed.
There is support for Linux containers in libvirt .
Linux containers work well with btrfs .
No special hardware is required, runs on 32 and 64 bit
Linux containers are Open source.
Unlike XEN or OpenVZ , no patch is required to the kernel.
Create control group filesystem as the root user.
# mkdir -p /cgroup
# mount none -t cgroup /cgroup
Add to fstab so it will be there after a reboot.
# vi /etc/fstab and add line below
none /cgroup cgroup defaults 0 0
Applications to install.
# apt-get install libvirt-bin debootstrap
We need to download and install this pkg.
# dpkg -i lxc_0.7.2-1_amd64.deb
# Create a container
# lxc-create -f /path/to/{CONTAINER_NAME}/main/config/file -n
# lxc-create -f /etc/lxc/lxc-centos.conf -n centos
Create a rootfs directory
# mkdir /var/lib/lxc/centos/rootfs
Copy files you worked on earlier.
# cp -r /home/yourhomeidirectory/LXC/Centos5-x86_64/*
# cp -r /home/yourhomeidirectory/LXC/Centos5x86_64/* /var/lib/lxc/centos/rootfs
Create this file for creating and setup default devices for your
# vi /usr/local/bin/lxc-config and add information below, also only
needs to be run once for every new container you create.
# cd /var/lib/lxc/CONTAINER_NAME}/rootfs/
# cd /var/lib/lxc/centos/rootfs/
# /usr/local/bin/lxc-config # fix /dev
Chrooting into the rootfs file system for centos
# chroot /var/lib/lxc/centos/rootfs/
Setup root password for your container.
# passwd root
Start or Remove some services from running
# chkconfig sshd on
# chkconfig httpd on
# chkconfig xinetd off
# chkconfig sendmail off
When finish type exit to finish chroot session.
Destroy container and files
# lxc-destroy -n {CONTAINER_NAME}
# lxc-destroy -n centos
Start container
# lxc-start -n {CONTAINER_NAME} init
# lxc-start -n centos init
Stop container
# lxc-stop -n {CONTAINER_NAME}
# lxc-stop -n centos
Connect to tty console
# lxc-console -n centos -t 1 doesn’t seem to work for me.
Check your configuration
# lxc-checkconfig
List containers
# lxc-ls
If you receive this error lxc-ls warning, got bogus unix line, reinstall uml-utiilities
# sudo apt-get –reinstall install uml-utilities
# lxc-info -n {CONTAINER_NAME}
# lxc-info -n centos
Containers may be used for a number of different reasons.
These include:
Resource partitioning with maximum performance.
 Multiple secure applications instances (e.g. a walled
 Process isolation (e.g. process jails).
 GPL insulation.
1. Reduced overhead
1. Reduced flexibility
2. Increased density
2. Decreased isolation
3. Reduced sprawl
“LXC linux containers are reliable and predictable – and has
what we need in an operating system. The Solaris OS also allows
multiple applications to be consolidated onto a single system
through virtualization, which makes it an ideal solution for
standardization. Virtualization features ensure high availability,
which is critical to Argonne’s environment.”

similar documents