What is virtualization?
Download
Report
Transcript What is virtualization?
VIRTUALIZATION WITH
SOLARIS
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
processors.
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.
lxc_0.7.2-1_amd64.deb
# dpkg -i lxc_0.7.2-1_amd64.deb
# Create a container
# lxc-create -f /path/to/{CONTAINER_NAME}/main/config/file -n
{CONTAINER_NAME}
# 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/*
/var/lib/lxc/{CONTAINER_NAME}/rootfs
# cp -r /home/yourhomeidirectory/LXC/Centos5x86_64/* /var/lib/lxc/centos/rootfs
Create this file for creating and setup default devices for your
containers.
# 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
Is it RUNNING or STOPPED
# 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
garden).
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.”