HostOnNet Blog

Installing OpenVZ

Install instructions for OpenVZ available at

http://wiki.openvz.org/Quick_installation

Here is what i done to install OpenVZ on CentOS 5 32 bit OS/

cd /etc/yum.repos.d
wget http://download.openvz.org/openvz.repo
rpm --import  http://download.openvz.org/RPM-GPG-Key-OpenVZ

Find if OS is 32 or 64 bit using uname -a

# uname -a
Linux server84.hosthat.com 2.6.18-92.1.18.el5 #1 SMP Wed Nov 12 09:30:27 EST 2008 i686 i686 i386 GNU/Linux
#

In this case, i686 in uname -a result means the OS is 32 bit.

Now we will find list of openvz kernal available

# yum list|grep ovzkernel
ovzkernel.i686                          2.6.18-128.1.1.el5.028stab062.3
ovzkernel-PAE.i686                      2.6.18-128.1.1.el5.028stab062.3
ovzkernel-PAE-devel.i686                2.6.18-128.1.1.el5.028stab062.3
ovzkernel-devel.i686                    2.6.18-128.1.1.el5.028stab062.3
ovzkernel-ent.i686                      2.6.18-128.1.1.el5.028stab062.3
ovzkernel-ent-devel.i686                2.6.18-128.1.1.el5.028stab062.3
ovzkernel-xen.i686                      2.6.18-128.1.1.el5.028stab062.3
ovzkernel-xen-devel.i686                2.6.18-128.1.1.el5.028stab062.3
#

We need to install .686 version of the kernel. Kernel with PAE is for servers with more than 4 GB of RAM.

We check memory available in the server with free -m

# free -m
             total       used       free     shared    buffers     cached
Mem:          2017       1662        355          0        175       1319
-/+ buffers/cache:        167       1850
Swap:         4071          0       4071
#

Its only 2 GB, so we can install non PAE kernel. For severs with more than 4 GB of RAM, always better to get 64 bit OS.

So we install

yum install ovzkernel.i686 ovzkernel-devel.i686

After install finished, we get

Installed: ovzkernel.i686 0:2.6.18-128.1.1.el5.028stab062.3 ovzkernel-devel.i686 0:2.6.18-128.1.1.el5.028stab062.3

To boot from this kernel, we need o configure boot loader, grub.

vi /boot/grub/grub.conf

The file contains

# 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/hde3
#          initrd /initrd-version.img
#boot=/dev/hde
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-128.1.1.el5.028stab062.3)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-128.1.1.el5.028stab062.3 ro root=LABEL=/1
        initrd /initrd-2.6.18-128.1.1.el5.028stab062.3.img
title CentOS (2.6.18-92.1.18.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-92.1.18.el5 ro root=LABEL=/1
        initrd /initrd-2.6.18-92.1.18.el5.img
title CentOS (2.6.18-92.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-92.el5 ro root=LABEL=/1
        initrd /initrd-2.6.18-92.el5.img

Here default=0 means first entry in the file get booted, that is

title CentOS (2.6.18-128.1.1.el5.028stab062.3)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-128.1.1.el5.028stab062.3 ro root=LABEL=/1
        initrd /initrd-2.6.18-128.1.1.el5.028stab062.3.img

This is our new openvz kernel, so nothing to change in boot loader.

Now need to make some changes in

vi /etc/sysctl.conf

At the end of the file add

# On Hardware Node we generally need
# packet forwarding enabled and proxy arp disabled
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.default.proxy_arp = 0

# Enables source route verification
net.ipv4.conf.all.rp_filter = 1

# Enables the magic-sysrq key
kernel.sysrq = 1

# We do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0

Disable SELinux if you have not already done.

vi /etc/sysconfig/selinux

In the file change value of SELINUX to disabled.

SELINUX=disabled

Now reboot the server, so server will boot with new openvz kernel

reboot

After reboot, we have the new kernal shown in uname -a

root@server84 [~]# uname -a
Linux server84.hosthat.com 2.6.18-128.1.1.el5.028stab062.3 #1 SMP Tue May 5 17:31:34 MSD 2009 i686 i686 i386 GNU/Linux
root@server84 [~]#

Now install

yum install vzctl vzquota

You need to do a reboot now

reboot

To create a VPS, download an OS Template from

http://download.openvz.org/template/precreated/

To create an VPS with ubuntu OS

cd /vz/template/cache
wget http://download.openvz.org/template/precreated/ubuntu-9.04-x86.tar.gz

Now you have the OS template cache, before creating VPS, i need a FREE IP

In cpanel servers, go to

Main >> IP Functions >> Show or Delete Current IP Addresses

Delete a IP that is not used.

On non Cpanel servers you need to edit the file

vi /etc/sysconfig/network-scripts/ifcfg-eth0-range0

OR

vi /etc/sysconfig/network-scripts/ifcfg-eth0:X

Here is the syntax to create a new VPS

vzctl create CTID --ostemplate osname
vzctl set CTID --ipadd a.b.c.d --save
vzctl set CTID --nameserver a.b.c.d --save
vzctl start CTID

To create VSP i run following commands

vzctl create 101 --ostemplate ubuntu-9.04-x86
vzctl set 101 --ipadd 67.159.32.134 --save
vzctl set 101 --nameserver vps2.hosthat.com --save
vzctl set 101 --nameserver 208.67.222.222 --save
vzctl set 101 --onboot yes --save
vzctl set 101 --kmemsize 60000000 --save
vzctl set 101 --privvmpages 900000 --save
vzctl set 101 --numproc 1000 --save
vzctl set 101 --numtcpsock 500 --save
vzctl set 101 --tcpsndbuf 20000000:35000000 --save
vzctl set 101 --tcprcvbuf 20000000:35000000 --save
vzctl set 101 --diskspace 10048576:10153434 --save
vzctl set 101 --cpuunits 1000 --save
vzctl start 101

Here are the results

root@server84 [~]# vzctl create 101 --ostemplate ubuntu-9.04-x86
Unable to get full ostemplate name for ubuntu-9.04-x86
Creating container private area (ubuntu-9.04-x86)
vzquota : (error) Quota on syscall for id 101: File exists
vzquota on failed [3]
vzquota : (error) Quota is not running for id 101
Performing postcreate actions
Container private area was created
root@server84 [~]# vzctl set 101 --ipadd 67.159.32.134 --save
Saved parameters for CT 101
root@server84 [~]# vzctl set 101 --nameserver vps2.hosthat.com --save
Saved parameters for CT 101
root@server84 [~]# vzctl set 101 --nameserver 208.67.222.222 --save
Saved parameters for CT 101
root@server84 [~]# vzctl set 101 --onboot yes --save
Saved parameters for CT 101
root@server84 [~]# vzctl set 101 --kmemsize 60000000 --save
Saved parameters for CT 101
root@server84 [~]# vzctl set 101 --privvmpages 900000 --save
Saved parameters for CT 101
root@server84 [~]# vzctl set 101 --numproc 1000 --save
Saved parameters for CT 101
root@server84 [~]# vzctl set 101 --numtcpsock 500 --save
Saved parameters for CT 101
root@server84 [~]# vzctl set 101 --tcpsndbuf 20000000:35000000 --save
Saved parameters for CT 101
vzctl set 101 --tcprcvbuf 20000000:35000000 --save
root@server84 [~]# vzctl set 101 --tcprcvbuf 20000000:35000000 --save
Saved parameters for CT 101
root@server84 [~]# vzctl set 101 --diskspace 10048576:10153434 --save
Saved parameters for CT 101
root@server84 [~]# vzctl set 101 --cpuunits 1000 --save
Saved parameters for CT 101
root@server84 [~]#

Now lets start VSP

root@server84 [~]# vzctl start 101
Starting container ...
vzquota : (error) Quota on syscall for id 101: File exists
vzquota on failed [3]
root@server84 [~]#

The error was due to quota was not enabled in the hard disk.

This error was fixed by adding usrquota in /etc/fstab for / partition

root@server84 [/]# cat /etc/fstab
LABEL=/1                /                       ext3    defaults,usrquota        1 1
LABEL=/boot1            /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
LABEL=SWAP-hde2         swap                    swap    defaults        0 0
/usr/tmpDSK             /tmp                    ext3    defaults,noauto        0 0
/tmp             /var/tmp                    ext3    defaults,bind,noauto        0 0
root@server84 [/]#

To start VSP

root@server84 [/]# vzctl start 101
Starting container ...
Container is mounted
Adding IP address(es): 67.159.32.134
Setting CPU units: 1000
Configure meminfo: 900000
File resolv.conf was modified
Container start in progress...
root@server84 [/]#

To set root password

vzctl enter 101
passwd
root@server84 [/]# vzctl enter 101
entered into CT 101
root@server84:/# cat /etc/*issue
Ubuntu 9.04 \n \l

root@server84:/# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@server84:/#

Now VPS is ready, i am able to connect to VPS from my computer with SSH.


Posted in Virtualization

  • Feras

    Thanks Stefin,

    Very helpfull, i’ll be back after install it..

  • joe

    thanks for posting this. Do you know why this error occurs:
    Unable to get full ostemplate name for ubuntu-9.04-x86

    I get the same thing and i don’t know what causes it.

  • why after editing grub to load openvz kernel than i reboot but the server never startup again?

  • admin

    You need to check console to see what error you are getting. if remote server, ask the data center tech to chk why server is not booting.