Installing And Using OpenVZ On CentOS 5.2 - Page 2

2 Using OpenVZ

Before we can create virtual machines with OpenVZ, we need to have a template for the distribution that we want to use in the virtual machines in the /vz/template/cache directory. The virtual machines will be created from that template. You can find a list of precreated templates on

I want to use CentOS 5 in my virtual machines, so I download a CentOS 5 template (a default CentOS 5 template in this case):

cd /vz/template/cache

I will now show you the basic commands for using OpenVZ.

To set up a VPS from the default CentOS 5 template, run:

vzctl create 101 --ostemplate centos-5-i386-default --config vps.basic

The 101 must be a uniqe ID - each virtual machine must have its own unique ID. You can use the last part of the virtual machine's IP address for it. For example, if the virtual machine's IP address is, you use 101 as the ID.

If you want to have the vm started at boot, run

vzctl set 101 --onboot yes --save

To set a hostname and IP address for the vm, run:

vzctl set 101 --hostname --save
vzctl set 101 --ipadd --save

Next we set the number of sockets to 120 and assign a few nameservers to the vm:

vzctl set 101 --numothersock 120 --save
vzctl set 101 --nameserver --nameserver --nameserver --nameserver --save

(Instead of using the vzctl set commands, you can as well directly edit the vm's configuration file which is stored in the /etc/vz/conf directory. If the ID of the vm is 101, then the configuration file is /etc/vz/conf/101.conf.)

To start the vm, run

vzctl start 101

To set a root password for the vm, execute

vzctl exec 101 passwd

You can now either connect to the vm via SSH (e.g. with PuTTY), or you enter it as follows:

vzctl enter 101

To leave the vm's console, type


To stop a vm, run

vzctl stop 101

To restart a vm, run

vzctl restart 101

To delete a vm from the hard drive (it must be stopped before you can do this), run

vzctl destroy 101

To get a list of your vms and their statuses, run

vzlist -a

[root@server1 cache]# vzlist -a
       101         18 running
[root@server1 cache]#

To find out about the resources allocated to a vm, run

vzctl exec 101 cat /proc/user_beancounters

[root@server1 cache]# vzctl exec 101 cat /proc/user_beancounters
Version: 2.5
       uid  resource           held    maxheld    barrier      limit    failcnt
      101:  kmemsize        1508202    1661695   11055923   11377049          0
            lockedpages           0          0        256        256          0
            privvmpages        5430       7102      65536      69632          0
            shmpages            381        381      21504      21504          0
            dummy                 0          0          0          0          0
            numproc              19         21        240        240          0
            physpages          2489       2775          0 2147483647          0
            vmguarpages           0          0      33792 2147483647          0
            oomguarpages       2489       2775      26112 2147483647          0
            numtcpsock            5          5        360        360          0
            numflock              3          4        188        206          0
            numpty                0          1         16         16          0
            numsiginfo            0          2        256        256          0
            tcpsndbuf         44720          0    1720320    2703360          0
            tcprcvbuf         81920          0    1720320    2703360          0
            othersockbuf      13144      14356    1126080    2097152          0
            dgramrcvbuf           0       8380     262144     262144          0
            numothersock         11         13        120        120          0
            dcachesize            0          0    3409920    3624960          0
            numfile             503        531       9312       9312          0
            dummy                 0          0          0          0          0
            dummy                 0          0          0          0          0
            dummy                 0          0          0          0          0
            numiptent            10         10        128        128          0
[root@server1 cache]#

The failcnt column is very important, it should contain only zeros; if it doesn't, this means that the vm needs more resources than are currently allocated to the vm. Open the vm's configuration file in /etc/vz/conf and raise the appropriate resource, then restart the vm.

To find out more about the vzctl command, run

man vzctl


3 Links

Share this page:

4 Comment(s)

Add comment


From: vasil at: 2009-11-30 17:56:02

This was a great article almost everything worked flawless. 

I had to add  to add /usr/sbin to PATH, otherwize vzctl would not start

one more hiccup is name resolution from the virtual linuxes, it won't resolve  names unless I stop iptables firewall on the box itself, ping by ip address works fine even with iptables.

 BTW I was using Centos 5.4 as a base OS so the how-to works fine even for Centos 5.4


From: daniele at: 2012-05-09 12:34:22

In /etc/yum.repos.d/openvz.repo  disable centos6 repo and enable centos5 repo, or yum install ovzkernel does not work.

If you install vzkernel from centos 6 repo in centos5, the system doesn't boot (kernel panic),

From: Anonymous at: 2009-05-28 07:07:01

There seems to be a problem with running MySQL within OpenVZ and with its kerenl. I did an instalation on HP Proliant DL380 and it went pretty clean. However when I tried to start MySQL (service mysqld start), I got 'No such file or directory'. I even did a reinstall, removal and a new instalation with yum and got the same, on host as well as within the nodes.

There was a mention on the net that it could be the lack of memory ... I dissagree: 4 Gb RAM, 8 Gb swap; total memory usage RAM 10% / swap 0%.

So, is there anyone with the same problem ... Better yet, with a solution.

Thanks to all ...


From: wese at: 2009-06-02 12:12:55


It's not about lack of memory for the Server it self, but for the container you created.

Check 'cat /proc/user_beancounters' for the Fail-Count.