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:

1 Comment(s)