The Perfect Setup - OpenVZ with CentOS 4.4 - Page 3

2. Installing OpenVZ Kernel

Step #7 - Downloading and Installing OpenVZ Kernel

# cd /etc/yum.repos.d

# wget

# yum install ovzkernel

Step #8 - Configuring the bootloader

In case GRUB is used as the boot loader, it will be configured automatically: lines similar to these will be added to the /boot/grub/grub.conf file:

title Cent OS (2.6.8-022stab029.1)
       root (hd0,0)
       kernel /vmlinuz-2.6.8-022stab029.1 ro root=/dev/sda5 quiet rhgb vga=0x31B
       initrd /initrd-2.6.8-022stab029.1.img

Change Cent OS to OpenVZ (just for clarity reasons, so the OpenVZ kernels will not be mixed up with non OpenVZ ones). Remove extra arguments from the kernel line, leaving only the root=... parameter. The modifed portion of /etc/grub.conf should look like this:

title OpenVZ (2.6.8-022stab029.1)
        root (hd0,0)
        kernel /vmlinuz-2.6.8-022stab029.1 ro root=/dev/sda5
        initrd /initrd-2.6.8-022stab029.1.img

Step #9 - Configuring sysctl

There is a number of kernel parameters that should be set for OpenVZ to work correctly. These parameters are stored in /etc/sysctl.conf file. Here is the relevant part of the file; please edit it accordingly.

# On Hardware Node we generally need
# packet forwarding enabled and proxy arp disabled
net.ipv4.ip_forward = 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
# TCP Explict Congestion Notification
#net.ipv4.tcp_ecn = 0
# we do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0

Step #10 - Configuring SELinux

SELinux should be disabled. To that effect, put the following line to /etc/sysconfig/selinux:


Step #11 - Conntracks

In the stable OpenVZ kernels (those that are 2.6.8-based) netfilter connection tracking for VE0 is disabled by default. If you have a stateful firewall enabled on the host node (it is there by default) you should either disable it, or enable connection tracking for VE0.

To enable conntracks for VE0, add the following line to /etc/modprobe.conf file:

options ip_conntrack ip_conntrack_enable_ve0=1

Note: in kernels later than 2.6.8, connection tracking is enabled by default

Step #12 - Rebooting into OpenVZ kernel

Now reboot the machine and choose "OpenVZ" on the boot loader menu. If the OpenVZ kernel has been booted successfully, proceed to installing the user-level tools for OpenVZ.

Step #13 - Installing the utilities

OpenVZ needs some user-level tools installed. Those are:

vzctl - A utility to control OpenVZ VPSs (create, destroy, start, stop, set parameters etc.)

vzquota - A utility to manage quotas for VPSs. Mostly used indirectly (by vzctl).

# yum install vzctl vzquota

Step #14 - Starting OpenVZ

# /sbin/service vz start

Note: OpenVZ is now set up on your machine. To load OpenVZ kernel by default, edit the default line in the /boot/grub/grub.conf file to point to the OpenVZ kernel. For example, if the OpenVZ kernel is the first kernel mentioned in the file, put it as default 0. See man grub.conf for more details.

3. OS template cache preparation

Step #15 - Installing template utilities

# yum install vzpkg vzyum vzrpm43-python vzrpm44-python

Step #16 - Installing OS template metadata

# yum search vztmpl

# yum install vztmpl-XXX [...]


yum install vztmpl-centos-4.i386

Step #17 - Installing repository cache (optional)


Step #18 - Alternative: use precreated template cache

cd /vz/template/cache

Download Precreated Templates from:

4. VE Creation and other oprations with VEs

Step #19 – Creating VE

[host-node]# vzctl create 112 --ostemplate centos-4-i386-default

Step #20 – Adding IP(s) to VE

[host-node]# vzctl set 112 --ipadd --save

Step #21 – Starting VE

[host-node]# vzctl start 112

Step #22 – Running ps command from Hardware Node

Your freshly-created VE should be up and running now; you can see its processes:

[host-node]# vzctl exec VEID ps ax

Step #23 - To enter VE give the following command:

[host-node]# vzctl enter VEID

entered into VPS VEID

Step #24 - To exit from VE, just type exit and press enter:

[ve]# exit

exited from VPS VEID


Step #25 - To stop VE:

[host-node]# vzctl stop VEID

Stopping VPS ...
VPS was stopped
VPS is unmounted

Step #26 - To destroy VE:

[host-node]# vzctl destroy VEID

Destroying VPS private area: /vz/private/VEID
VPS private area was destroyed


Share this page:

2 Comment(s)

Add comment


From: at: 2008-06-25 00:36:56

The pictures in step 2 do not match the instructions.

The words say,  Manual partition with Disk Druid.

 The pics say, Automatic with Manual verification.

 Also, the example text for partition layout does not match the resulting view in the partition editor.

 Unless using the automatic partitioning scheme, logical volumes must be created by hand.

 I love these tutorials!! I just thought I would point these things out for future clarity.

From: at: 2007-02-06 02:27:44

Make Sure you download the correct kernel

When you download the kernel, make sure you have the right one. If you have a SMP (or hyperthreading) CPU make sure you download the SMP version of the kernel (ovzkernel-smp) and if you have 4gb of ram or more make sure you get (ovzkernel-entnosplit)


With the newest version of OpenVZ, you should get the utilites aready included on the kernel install. So you may not need to install the utils.


It is best to add a DNS server after you add the ip address to the server:

vzctl set 112 --ipadd --save

Centos Template Cache

Sometimes it is best to download a precompiled version of the Centos-4 template.  Creating your own template can cause problems at times.