How to Install and Use OpenVZ on CentOS 6.3
This tutorial will help you to create a CentOS 6.3 for OpenVZ. By using OpenVZ, you can easily make a good number of Virtual Private Servers (VPS) on the same hardware, just like Xen and the Linux Vserver project. OpenVZ works as an open-source tool of Virtuozzo. Most of the providers of virtual servers used to use OpenVZ. It is also known as commercial virtualization solution. GPL used to license OpenVZ, whereas QPL is responsible for licensing the user-level tools. Below is the step by step guide to install and use OpenVZ on CentOS 6.3. However, it does not include the theoretical backgrounds.
Instructions
-
1
How to install OpenVZ
Before installing OpenVZ, you have to include the OpenVZ repository to yum:
cd /etc/yum.repos.d
wget http://download.openvz.org/openvz.repo
rpm --import http://download.openvz.org/RPM-GPG-Key-OpenVZ
Now, open openvz.repo...
vi openvz.repo
... and disable the [openvz-kernel-rhel5] repository (enabled=0) and enable the [openvz-kernel-rhel6] repository instead (enabled=1):
[...]
[openvz-kernel-rhel6]
name=OpenVZ RHEL6-based kernel
#baseurl=http://download.openvz.org/kernel/branches/rhel6-2.6.32/current/
mirrorlist=http://download.openvz.org/kernel/mirrors-rhel6-2.6.32
enabled=1
gpgcheck=1
gpgkey=http://download.openvz.org/RPM-GPG-Key-OpenVZ
[openvz-kernel-rhel5]
name=OpenVZ RHEL5-based kernel
#baseurl=http://download.openvz.org/kernel/branches/rhel5-2.6.18/current/
mirrorlist=http://download.openvz.org/kernel/mirrors-rhel5-2.6.18
enabled=0
gpgcheck=1
gpgkey=http://download.openvz.org/RPM-GPG-Key-OpenVZ -
2
There are some different types of OpenVZ kernels in the repository. This command – yum search vzkernel - will feature the available kernels.
[root@server1 yum.repos.d]# yum search vzkernel
[...]
vzkernel.i686 : The Linux kernel
vzkernel.x86_64 : The Linux kernel
vzkernel-devel.i686 : Development package for building kernel modules to match the kernel
vzkernel-devel.x86_64 : Development package for building kernel modules to match the kernel
vzkernel-firmware.noarch : Firmware wp-content/uploads used by the Linux kernel
vzkernel-headers.i686 : Header wp-content/uploads for the Linux kernel for use by glibc
vzkernel-headers.x86_64 : Header wp-content/uploads for the Linux kernel for use by glibc
[...]
[root@server1 yum.repos.d]#
Select one of them and installed it according to a given procedure.
yum install vzkernel -
3
By doing this, GRUB bootloader will also be automatically updated. But anyhow, launch /boot/grub/menu1st; and the first kernel stanza is now equipped with the new OpenVZ kernel. One thing to keep in mind is that default value should be 0 in order to automatically boot the first kernel (the OpenVZ kernel) as an alternative to the default CentOS kernel.
vi /boot/grub/menu.lst
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/mapper/vg_server1-lv_root
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title OpenVZ (2.6.32-042stab057.1)
root (hd0,0)
kernel /vmlinuz-2.6.32-042stab057.1 ro root=/dev/mapper/vg_server1-lv_root rd_LVM_LV=vg_server1/lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=de rd_LVM_LV=vg_server1/lv_swap rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-042stab057.1.img
title CentOS (2.6.32-279.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-279.el6.x86_64 ro root=/dev/mapper/vg_server1-lv_root rd_LVM_LV=vg_server1/lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=de rd_LVM_LV=vg_server1/lv_swap rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-279.el6.x86_64.img
-
4
In order to install some OpenVZ user tools, follow this code:
yum install vzctl vzquota
Now, open /etc/sysctl.conf and make sure that you have the following settings in it:
vi /etc/sysctl.conf
[...]
net.ipv4.ip_forward = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.all.rp_filter = 1
kernel.sysrq = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.conf.default.forwarding=1
[...] -
5
In case you want some modifications in /etc/sysctl.cof, run
sysctl -p
This is an important step for all those who have IP addresses of their virtual machines from a separate subnet than the IP address of a host system. In case you forget to do this, networking will not be done in the virtual machines.
Open /etc/vz/vz.conf and set NEIGHBOUR_DEVS to all:
vi /etc/vz/vz.conf
[...]
NEIGHBOUR_DEVS=all
[...] -
6
In order to use OpenVZ, you have to disable SELinux. Open /etc/sysconfig/selinux and set the value of SELINUX to disabled:
vi /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted -
7
Now reboot the system:
reboot
If your system reboots without any issue, then go ahead.
Run
uname –r
and your new OpenVZ kernel should show up:
[root@server1 ~]# uname -r
2.6.32-042stab057.1
[root@server1 ~]#