<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.openvz.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Christoph</id>
	<title>OpenVZ Virtuozzo Containers Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.openvz.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Christoph"/>
	<link rel="alternate" type="text/html" href="https://wiki.openvz.org/Special:Contributions/Christoph"/>
	<updated>2026-06-13T22:30:37Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Checkpointing_and_live_migration&amp;diff=2383</id>
		<title>Checkpointing and live migration</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Checkpointing_and_live_migration&amp;diff=2383"/>
		<updated>2006-10-06T10:17:19Z</updated>

		<summary type="html">&lt;p&gt;Christoph: /* Manual Checkpoint and Restore Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CPT is an extension to OpenVZ kernel which allows to save full state of a running VE and to restore it later on the same or on a different host in a way transparent for running applications and network connections. This technique has several applications, the most important being live (zero-downtime) migration of VEs and taking an instant snapshot of a running VE for later resume, i. e. CheckPoinTing.&lt;br /&gt;
&lt;br /&gt;
Before CPT, it was only possible to migrate a VE through shutdown and subsequent reboot. The procedure not only introduces quite a long downtime of network services, it is not transparent for clients using the VE, making impossible migration, when clients runs some tasks which are not tolerant to shutdowns.&lt;br /&gt;
&lt;br /&gt;
Comparing to this old scheme, CPT allows to migrate a VE in a way, essentially invisible both for users of this VE and for external clients, using network services located inside VE. It still introduces a short delay in service, required for actual checkpoint/restore of the processes, but this delay is indistinguishable from a short interruption of network connectivity.&lt;br /&gt;
&lt;br /&gt;
== Online migration ==&lt;br /&gt;
&lt;br /&gt;
There is special utility vzmigrate in OpenVZ distribution intended to support VE migration. With it help one can perform live (a.k.a. online) migration, i.&amp;amp;nbsp;e. for migration VE “freezes” for some time, and after migration it continues to work as though nothing has happened. Online migration can be performed by&lt;br /&gt;
&amp;lt;pre&amp;gt;vzmigrate --online &amp;lt;host&amp;gt; VEID&amp;lt;/pre&amp;gt;&lt;br /&gt;
command. During online migration all VE private data saved to an image file, which is transferred to target host.&lt;br /&gt;
&lt;br /&gt;
In order for vzmigrate to work without asking for a password, ssh public keys from the source host should be placed to destination host's &amp;lt;code&amp;gt;authorized_keys&amp;lt;/code&amp;gt;. In other words, command &amp;lt;code&amp;gt;ssh root@host&amp;lt;/code&amp;gt; should not ask you for a password. See [[ssh keys]] for more info.&lt;br /&gt;
&lt;br /&gt;
== Manual Checkpoint and Restore Functions ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;vzmigrate&amp;lt;/code&amp;gt; is not strictly required to perform online migration. &amp;lt;code&amp;gt;vzctl&amp;lt;/code&amp;gt; utility, accompanied with some file system backup tools, provides enough of power to do all the tasks.&lt;br /&gt;
&lt;br /&gt;
VE can be checkpointed with command:&lt;br /&gt;
&amp;lt;pre&amp;gt;vzctl chkpnt VEID --dumpfile &amp;lt;path&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This command saves all the state of running VE to dump file and stops the VE. If the option &amp;lt;code&amp;gt;--dumpfile&amp;lt;/code&amp;gt; is not set, &amp;lt;code&amp;gt;vzctl&amp;lt;/code&amp;gt; uses default path &amp;lt;code&amp;gt;/vz/dump/Dump.VEID&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
After this it is possible to restore the VE exactly in the same state executing:&lt;br /&gt;
&amp;lt;pre&amp;gt;vzctl restore VEID --dumpfile &amp;lt;path&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
If dump file and file system is transferred to another HW node, the same command can restore VE there with the same success.&lt;br /&gt;
&lt;br /&gt;
It is critical requirement that file system at the moment of restore must be identical to the file system at the moment of checkpointing. If this requirement is not held, depending on severity of changes process of restoration can be aborted or the processes inside VE can see this as an external corruption of open files. When VE is restored on the same node where it was checkpointed, it is enough not to touch file system accessible by the VE. When VE is transferred to another node it is necessary to synchronize VE file system before restore. &amp;lt;code&amp;gt;vzctl&amp;lt;/code&amp;gt; does not provide this functionality and external tools (f.e. &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt;) are required.&lt;br /&gt;
&lt;br /&gt;
== Step-by-step Checkpoint and Restore ==&lt;br /&gt;
&lt;br /&gt;
Process of checkpointing can be performed by stages. It consists of three steps.&lt;br /&gt;
&lt;br /&gt;
First step – suspending VE. At this stage CPT moves all the processes to special beforehand known state and stops VE network interfaces. This stage can be done by&lt;br /&gt;
&amp;lt;pre&amp;gt;vzctl chkpnt VEID --suspend&amp;lt;/pre&amp;gt;&lt;br /&gt;
command. Second step – dumping VE. At this phase CPT saves state of processes and global state of VE to image file. All the process private data need to be saved: address space, register set, opened files/pipes/sockets, System V IPC structures, current working directory, signal handlers, timers, terminal settings, user identities (uid, gid, etc), process identities (pid, pgrp, sid, etc), rlimit and other data. This stage can be done by&lt;br /&gt;
&amp;lt;pre&amp;gt;vzctl chkpnt VEID --dump --dumpfile &amp;lt;path&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
command. Third step – killing or resuming processes. If the migration succeeds VE can be stopped with the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;vzctl chkpnt VEID --kill&amp;lt;/pre&amp;gt;&lt;br /&gt;
If migration failed by some reason or if the goal was taking a snapshot of VE state for later restore, CPT can resume VE with:&lt;br /&gt;
&amp;lt;pre&amp;gt;vzctl chkpnt VEID --resume&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Process of restoring consists of two steps. The first step is to restore processes and to leave them in a special frozen state. After this step processes are ready to continue execution, however, in some cases CPT has to do some operations after process is woken up, therefore CPT sets process return point to function in our module. This stage can be done by&lt;br /&gt;
&amp;lt;pre&amp;gt;vzctl restore VEID --undump --dumpfile &amp;lt;path&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
command. Second step – waking up processes or killing them if restore process failed. After CPT wakes up process, it performs necessary operations in our function and continues execution. This stages can be done by&lt;br /&gt;
&amp;lt;pre&amp;gt;vzctl restore VEID --resume&lt;br /&gt;
vzctl restore VEID --kill&amp;lt;/pre&amp;gt;&lt;br /&gt;
commands.&lt;/div&gt;</summary>
		<author><name>Christoph</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=HA_cluster_with_DRBD_and_Heartbeat&amp;diff=2375</id>
		<title>HA cluster with DRBD and Heartbeat</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=HA_cluster_with_DRBD_and_Heartbeat&amp;diff=2375"/>
		<updated>2006-10-04T15:17:39Z</updated>

		<summary type="html">&lt;p&gt;Christoph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article shows how to setup a OpenVZ high availability (HA) cluster using the data replication software DRBD and the cluster manager Heartbeat. In this example the two machines builing the cluster run on CentOS 4.3. The article also shows how to do kernel updates in the cluster, including necessary steps like recompiling of new DRBD userspace tools. For this purpose, kernel 2.6.8-022stab078.10 (containing DRBD module 0.7.17) is used as initial kernel version, and kernel 2.6.8-022stab078.14 (containing DRBD module 0.7.20) as updated kernel version.&lt;br /&gt;
&lt;br /&gt;
Additional information about clustering of virtual machines can be found in the following paper: http://www.linuxtag.org/2006/fileadmin/linuxtag/dvd/12080-paper.pdf&lt;br /&gt;
&lt;br /&gt;
Some other additional information can be found in the documentation of the Thomas-Krenn.AG cluster (The author of this howto is working in the cluster development there, that is the reason why he was able to write this howto :-). The full documentation with interesting illustrations is currently only available in German:&lt;br /&gt;
http://my.thomas-krenn.com/service_support/index.php/page.242&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
The OpenVZ kernel already includes the DRBD module. The DRBD userspace tools and the cluster manager Heartbeat must be provided seperately. As the API version of the DRBD userspace tools must exactly match the API version of the module, compile them yourself. Also compile Heartbeat yourself, as at the time of this writing the CentOS extras repository only contained an old CVS version of Heartbeat.&lt;br /&gt;
&lt;br /&gt;
On a hardware node for production use there should not be any application that is not really needed for running OpenVZ (any things which are not needed by OpenVZ should run in a VE for security reasons). As a result, compile DRBD and Heartbeat on another machine running CentOS 4.3 (in this example I used a virtual machine on a VMware Server).&lt;br /&gt;
&lt;br /&gt;
=== Compiling Heartbeat ===&lt;br /&gt;
Heartbeat version 1.2.* has successfully been used in a lot of two-node-clusters around the world. As the codebase used in version 1.2.* is in production use for many years now, the code is very stable. At the time of writing, Heartbeat version 1.2.4 is the current version of the 1.2.* branch.&lt;br /&gt;
&lt;br /&gt;
Get the tar.gz of the current version of the 1.2.* branch from http://linux-ha.org/download/index.html, at the time of this writing this is http://linux-ha.org/download/heartbeat-1.2.4.tar.gz. Use rpmbuild to build the package:&lt;br /&gt;
&amp;lt;pre&amp;gt;rpmbuild -ta heartbeat-1.2.4.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
After that, you find four rpm packes in /usr/src/redhat/RPMS/i386 (heartbeat-1.2.4-1.i386.rpm, heartbeat-ldirectord-1.2.4-1.i386.rpm, heartbeat-pils-1.2.4-1.i386.rpm, heartbeat-stonith-1.2.4-1.i386.rpm). In this example only heartbeat-1.2.4-1.i386.rpm, heartbeat-pils-1.2.4-1.i386.rpm, and heartbeat-stonith-1.2.4-1.i386.rpm are needed.&lt;br /&gt;
&lt;br /&gt;
=== Compiling DRBD userspace tools ===&lt;br /&gt;
When compiling the DRBD userspace tools, you have to take care to take the version that matches the DRBD version that is included in the OpenVZ kernel you want to use. If you are unsure about the version, do the following steps while running the OpenVZ kernel that you want to use on a test machine (I used another virtual machine on a VMware server to try this):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@testmachine ~]# cat /proc/version&lt;br /&gt;
Linux version 2.6.8-022stab078.10 (root@rhel4-32) (gcc version 3.4.5 20051201 (Red Hat 3.4.5-2)) #1 Wed Jun 21 12:01:20 MSD 2006&lt;br /&gt;
[root@testmachine ~]# modprobe drbd&lt;br /&gt;
[root@testmachine ~]# cat /proc/drbd&lt;br /&gt;
version: 0.7.17 (api:77/proto:74)&lt;br /&gt;
SVN Revision: 2093 build by phil@mescal, 2006-03-06 15:04:12&lt;br /&gt;
 0: cs:Unconfigured&lt;br /&gt;
 1: cs:Unconfigured&lt;br /&gt;
[root@testmachine ~]# rmmod drbd&lt;br /&gt;
[root@testmachine ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here the version of the DRBD module is 0.7.17. So the userspace tools for 0.7.17 are neccessary.&lt;br /&gt;
&lt;br /&gt;
Back on the buildmachine, do the following to create the rpm:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@buildmachine ~]# yum install kernel-devel gcc bison flex&lt;br /&gt;
Setting up Install Process&lt;br /&gt;
Setting up repositories&lt;br /&gt;
Reading repository metadata in from local files&lt;br /&gt;
Parsing package install arguments&lt;br /&gt;
Nothing to do&lt;br /&gt;
[root@buildmachine ~]# tar xfz drbd-0.7.17.tar.gz&lt;br /&gt;
[root@buildmachine ~]# cd drbd-0.7.17&lt;br /&gt;
[root@buildmachine drbd-0.7.17]# make rpm&lt;br /&gt;
[...]&lt;br /&gt;
You have now:&lt;br /&gt;
-rw-r--r--  1 root root 288728 Jul 30 10:40 dist/RPMS/i386/drbd-0.7.17-1.i386.rpm&lt;br /&gt;
-rw-r--r--  1 root root 518369 Jul 30 10:40 dist/RPMS/i386/drbd-km-2.6.9_34.0.2.EL-0.7.17-1.i386.rpm&lt;br /&gt;
[root@buildmachine drbd-0.7.17]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that in this way the kernel-devel from CentOS is used, but this does not matter as the created drbd-km rpm will not be used (the DRBD kernel module is already included in OpenVZ kernel). If the kernel-devel package is not the same version as the kernel package that is currently running, it is possible to execute 'make rpm KDIR=/usr/src/kernels/2.6.9-34.0.2.EL-i686/' to directly point to the kernel sources.&lt;br /&gt;
&lt;br /&gt;
== Installing the two nodes ==&lt;br /&gt;
Install the two machines in the same way as you would install them for a normal OpenVZ installation, but do not create a filesystem for the /vz. This filesystem will be installed later on on top of DRBD.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+'''Example installation configuration'''&lt;br /&gt;
! Parameter !! node1 !! node2&lt;br /&gt;
|-&lt;br /&gt;
! hostname&lt;br /&gt;
| ovz-node1&lt;br /&gt;
| ovz-node2&lt;br /&gt;
|-&lt;br /&gt;
! / filesystem&lt;br /&gt;
| hda1, 10 GB&lt;br /&gt;
| hda1, 10 GB&lt;br /&gt;
|-&lt;br /&gt;
! swap space&lt;br /&gt;
| hda2, 2048 MB&lt;br /&gt;
| hda2, 2048 MB&lt;br /&gt;
|-&lt;br /&gt;
! public LAN&lt;br /&gt;
| eth0, 192.168.1.201&lt;br /&gt;
| eth0, 192.168.1.202&lt;br /&gt;
|-&lt;br /&gt;
! private LAN&lt;br /&gt;
| eth1, 192.168.255.1 (Gbit Ethernet)&lt;br /&gt;
| eth1, 192.168.255.2 (Gbit Ethernet)&lt;br /&gt;
|-&lt;br /&gt;
! other install options&lt;br /&gt;
| no firewall, no SELinux&lt;br /&gt;
| no firewall, no SELinux&lt;br /&gt;
|-&lt;br /&gt;
! package groups&lt;br /&gt;
| deactivated everything, only kept vim-enhanced&lt;br /&gt;
| deactivated everything, only kept vim-enhanced&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installing OpenVZ ==&lt;br /&gt;
&lt;br /&gt;
Get the OpenVZ kernel and utilities and install them on both nodes, as described in [[quick installation]]. Update grub configuration to use the OpenVZ kernel by default. Disable starting of OpenVZ on system boot on both nodes (OpenVZ will be started and stopped by Heartbeat):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@ovz-node1 ~]# chkconfig --del vz&lt;br /&gt;
[root@ovz-node1 ~]# &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then reboot both machines.&lt;br /&gt;
&lt;br /&gt;
== Setting up DRBD ==&lt;br /&gt;
&lt;br /&gt;
On each of the two nodes create a partition that acts as underlying DRBD device. The partitions should have exactly the same size (I created a 10 GB partition hda3 using fdisk on each node for this example). Note that it might be necessary to reboot the machines to re-read the partition table.&lt;br /&gt;
&lt;br /&gt;
Install the rpm of the DRBD userspace tools on both nodes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@ovz-node1 ~]# rpm -ihv drbd-0.7.17-1.i386.rpm&lt;br /&gt;
Preparing...                ########################################### [100%]&lt;br /&gt;
   1:drbd                   ########################################### [100%]&lt;br /&gt;
[root@ovz-node1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then create the drbd.conf configuration file and copy it to /etc/drbd.conf on both nodes. Below is the example configuration file that is used in this article:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
resource r0 {&lt;br /&gt;
  protocol C;&lt;br /&gt;
  incon-degr-cmd &amp;quot;echo '!DRBD! pri on incon-degr' | wall ; sleep 60 ; halt -f&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  startup {&lt;br /&gt;
    degr-wfc-timeout 120;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  net {&lt;br /&gt;
    on-disconnect reconnect;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  disk {&lt;br /&gt;
    on-io-error   detach;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  syncer {&lt;br /&gt;
    rate 30M;&lt;br /&gt;
    group 1;&lt;br /&gt;
    al-extents 257;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  on ovz-node1 {&lt;br /&gt;
    device     /dev/drbd0;&lt;br /&gt;
    disk       /dev/hda3;&lt;br /&gt;
    address    192.168.255.1:7788;&lt;br /&gt;
    meta-disk  internal;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  on ovz-node2 {&lt;br /&gt;
    device     /dev/drbd0;&lt;br /&gt;
    disk       /dev/hda3;&lt;br /&gt;
    address    192.168.255.2:7788;&lt;br /&gt;
    meta-disk  internal;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Start DRBD on both nodes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@ovz-node1 ~]# /etc/init.d/drbd start&lt;br /&gt;
Starting DRBD resources:    [ d0 s0 n0 ].&lt;br /&gt;
[root@ovz-node1 ~]# &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then check the status of /proc/drbd:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@ovz-node1 ~]# cat /proc/drbd&lt;br /&gt;
version: 0.7.17 (api:77/proto:74)&lt;br /&gt;
SVN Revision: 2093 build by phil@mescal, 2006-03-06 15:04:12&lt;br /&gt;
 0: cs:Connected st:Secondary/Secondary ld:Inconsistent&lt;br /&gt;
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0&lt;br /&gt;
[root@ovz-node1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Both nodes are now Secondary and Inconsistent. The latter is because the underlying storage is not yet in-sync, and DRBD has no way to know whether you want the initial sync from ovz-node1 to ovz-node2, or ovz-node2 to ovz-node1. As there is no data below it yet, it does not matter.&lt;br /&gt;
&lt;br /&gt;
To start the sync from ovz-node1 to ovz-node2, do the following on ovz-node1:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@ovz-node1 ~]# drbdadm -- --do-what-I-say primary all&lt;br /&gt;
[root@ovz-node1 ~]# cat /proc/drbd&lt;br /&gt;
version: 0.7.17 (api:77/proto:74)&lt;br /&gt;
SVN Revision: 2093 build by phil@mescal, 2006-03-06 15:04:12&lt;br /&gt;
 0: cs:SyncSource st:Primary/Secondary ld:Consistent&lt;br /&gt;
    ns:627252 nr:0 dw:0 dr:629812 al:0 bm:38 lo:640 pe:0 ua:640 ap:0&lt;br /&gt;
        [=&amp;gt;..................] sync'ed:  6.6% (8805/9418)M&lt;br /&gt;
        finish: 0:04:51 speed: 30,888 (27,268) K/sec&lt;br /&gt;
[root@ovz-node1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
As you see, DRBD syncs with about 30 MB per second, as we told it so in /etc/drbd.conf. On the SyncSource (ovz-node1 in this case) the DRBD device is already useable (although it is syncing in the background).&lt;br /&gt;
&lt;br /&gt;
So you can immediately create the filesystem:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@ovz-node1 ~]# mkfs.ext3 /dev/drbd0&lt;br /&gt;
[...]&lt;br /&gt;
[root@ovz-node1 ~]# &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Copy necessary OpenVZ files to DRBD device ===&lt;br /&gt;
&lt;br /&gt;
Move the original /vz directory to /vz.orig and recreate the /vz directory to have it as a mount point '''(do this on both nodes)''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@ovz-node1 ~]# mv /vz /vz.orig&lt;br /&gt;
[root@ovz-node1 ~]# mkdir /vz&lt;br /&gt;
[root@ovz-node1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Afterwards move the necessary OpenVZ directories (/etc/vz, /etc/sysconfig/vz-scripts, /var/vzquota) and replace them with symbolic links '''(do this on both nodes)''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@ovz-node1 ~]# mv /etc/vz /etc/vz.orig&lt;br /&gt;
[root@ovz-node1 ~]# mv /etc/sysconfig/vz-scripts /etc/sysconfig/vz-scripts.orig&lt;br /&gt;
[root@ovz-node1 ~]# mv /var/vzquota /var/vzquota.orig&lt;br /&gt;
[root@ovz-node1 ~]# ln -s /vz/cluster/etc/vz /etc/vz&lt;br /&gt;
[root@ovz-node1 ~]# ln -s /vz/cluster/etc/sysconfig/vz-scripts /etc/sysconfig/vz-scripts&lt;br /&gt;
[root@ovz-node1 ~]# ln -s /vz/cluster/var/vzquota /var/vzquota&lt;br /&gt;
[root@ovz-node1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Currently, ovz-node1 is still Primary of /dev/drbd0. You can now mount it and copy the necessary files to it '''(only on ovz-node1!)''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@ovz-node1 ~]# mount /dev/drbd0 /vz&lt;br /&gt;
[root@ovz-node1 ~]# cp -a /vz.orig/* /vz/&lt;br /&gt;
[root@ovz-node1 ~]# mkdir -p /vz/cluster/etc&lt;br /&gt;
[root@ovz-node1 ~]# mkdir -p /vz/cluster/etc/sysconfig&lt;br /&gt;
[root@ovz-node1 ~]# mkdir -p /vz/cluster/var&lt;br /&gt;
[root@ovz-node1 ~]# cp -a /etc/vz /vz/cluster/etc/&lt;br /&gt;
[root@ovz-node1 ~]# cp -a /etc/sysconfig/vz-scripts /vz/cluster/etc/sysconfig/&lt;br /&gt;
[root@ovz-node1 ~]# cp -a /var/vzquota /vz/cluster/var/&lt;br /&gt;
[root@ovz-node1 ~]# umount /dev/drbd0&lt;br /&gt;
[root@ovz-node1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting up Heartbeat ==&lt;br /&gt;
&lt;br /&gt;
Install the neccessary Heartbeat rpms on both nodes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@ovz-node1 ~]# rpm -ihv heartbeat-1.2.4-1.i386.rpm heartbeat-pils-1.2.4-1.i386.rpm heartbeat-stonith-1.2.4-1.i386.rpm&lt;br /&gt;
Preparing...                ########################################### [100%]&lt;br /&gt;
   1:heartbeat-pils         ########################################### [ 33%]&lt;br /&gt;
   2:heartbeat-stonith      ########################################### [ 67%]&lt;br /&gt;
   3:heartbeat              ########################################### [100%]&lt;br /&gt;
[root@ovz-node1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Create the Heartbeat configuration file ha.cf and copy it to /etc/ha.d/ha.cf on both nodes. Details about this file can be found at http://www.linux-ha.org/ha.cf. Below is an example configuration which uses the two network connections and also a serial connection for heartbeat packets:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Heartbeat logging configuration&lt;br /&gt;
logfacility daemon&lt;br /&gt;
&lt;br /&gt;
# Heartbeat cluster members&lt;br /&gt;
node ovz-node1&lt;br /&gt;
node ovz-node2&lt;br /&gt;
&lt;br /&gt;
# Heartbeat communication timing&lt;br /&gt;
keepalive 1&lt;br /&gt;
warntime 10&lt;br /&gt;
deadtime 30&lt;br /&gt;
initdead 120&lt;br /&gt;
&lt;br /&gt;
# Heartbeat communication paths&lt;br /&gt;
udpport 694&lt;br /&gt;
ucast eth1 192.168.255.1&lt;br /&gt;
ucast eth1 192.168.255.2&lt;br /&gt;
ucast eth0 192.168.1.201&lt;br /&gt;
ucast eth0 192.168.1.202&lt;br /&gt;
baud 19200&lt;br /&gt;
serial /dev/ttyS0&lt;br /&gt;
&lt;br /&gt;
# Don't fail back automatically&lt;br /&gt;
auto_failback off&lt;br /&gt;
&lt;br /&gt;
# Monitoring of network connection to default gateway&lt;br /&gt;
ping 192.168.1.1&lt;br /&gt;
respawn hacluster /usr/lib64/heartbeat/ipfail&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Create the Heartbeat configuration file authkeys and copy it to /etc/ha.d/authkeys on both nodes. Set the permissions of this file to 600. Details about this file can be found at http://www.linux-ha.org/authkeys. Below is an example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth 1&lt;br /&gt;
1 sha1 PutYourSuperSecretKeyHere&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Create the Heartbeat configuration file haresources and copy it to /etc/ha.d/haresources on both nodes. Details about this file can be found at http://www.linux-ha.org/haresources. Below is an example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ovz-node1 drbddisk::r0 Filesystem::/dev/drbd0::/vz::ext3 vz MailTo::youremail@yourdomain.tld&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Finally, you can now start heartbeat on both nodes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@ovz-node1 ~]# /etc/init.d/heartbeat start&lt;br /&gt;
Starting High-Availability services:&lt;br /&gt;
                                                           [  OK  ]&lt;br /&gt;
[root@ovz-node1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to do OpenVZ kernel updates when it contains a new DRBD version ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As mentioned above, it is important to use the correct version of the DRBD userspace tools. When an OpenVZ kernel contains a new DRBD version, it is important that the DRBD API version of the userspace tools matches the API version of the DRBD module that is included in the OpenVZ kernel. The API versions can be found at http://svn.drbd.org/drbd/branches/drbd-0.7/ChangeLog. The best way is to always use the version of the DRBD userspace tools that matches the version of the DRBD module that is included in the OpenVZ kernel.&lt;br /&gt;
&lt;br /&gt;
In this example the initial cluster installation contained OpenVZ kernel 2.6.8-022stab078.10, which contains the DRBD module 0.7.17. The steps below show the update procedure to OpenVZ kernel 2.6.8-022stab078.14, which contains the DRBD module 0.7.20.&lt;br /&gt;
In the first step build the DRBD userspace tools version 0.7.20 on your buildmachine. Then stop Heartbeat and DRBD on the passive node (hint: you can use 'cat /proc/drbd' to get a hint which node is active and which one is passive):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@ovz-node2 ~]# cat /proc/drbd&lt;br /&gt;
version: 0.7.17 (api:77/proto:74)&lt;br /&gt;
SVN Revision: 2093 build by phil@mescal, 2006-03-06 15:04:12&lt;br /&gt;
 0: cs:Connected st:Secondary/Primary ld:Consistent&lt;br /&gt;
    ns:60 nr:136 dw:196 dr:97 al:3 bm:3 lo:0 pe:0 ua:0 ap:0&lt;br /&gt;
[root@ovz-node2 ~]# /etc/init.d/heartbeat stop&lt;br /&gt;
Stopping High-Availability services:&lt;br /&gt;
                                                           [  OK  ]&lt;br /&gt;
[root@ovz-node2 ~]# cat /proc/drbd&lt;br /&gt;
version: 0.7.17 (api:77/proto:74)&lt;br /&gt;
SVN Revision: 2093 build by phil@mescal, 2006-03-06 15:04:12&lt;br /&gt;
 0: cs:Connected st:Secondary/Primary ld:Consistent&lt;br /&gt;
    ns:60 nr:136 dw:196 dr:97 al:3 bm:3 lo:0 pe:0 ua:0 ap:0&lt;br /&gt;
[root@ovz-node2 ~]# /etc/init.d/drbd stop&lt;br /&gt;
Stopping all DRBD resources.&lt;br /&gt;
[root@ovz-node2 ~]# cat /proc/drbd&lt;br /&gt;
cat: /proc/drbd: No such file or directory&lt;br /&gt;
[root@ovz-node2 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then install the new kernel and the DRBD userspace tools on this node:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@ovz-node2 ~]# rpm -ihv ovzkernel-2.6.8-022stab078.14.i686.rpm&lt;br /&gt;
warning: ovzkernel-2.6.8-022stab078.14.i686.rpm: V3 DSA signature: NOKEY, key ID a7a1d4b6&lt;br /&gt;
Preparing...                ########################################### [100%]&lt;br /&gt;
   1:ovzkernel              ########################################### [100%]&lt;br /&gt;
[root@ovz-node2 ~]# rpm -Uhv drbd-0.7.20-1.i386.rpm&lt;br /&gt;
Preparing...                ########################################### [100%]&lt;br /&gt;
   1:drbd                   ########################################### [100%]&lt;br /&gt;
/sbin/service&lt;br /&gt;
Stopping all DRBD resources.&lt;br /&gt;
[root@ovz-node2 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now set the new kernel as default kernel in /etc/grub.conf and then reboot this node.&lt;br /&gt;
&lt;br /&gt;
After the reboot, the new DRBD version is visible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@ovz-node2 ~]# cat /proc/drbd&lt;br /&gt;
version: 0.7.20 (api:79/proto:74)&lt;br /&gt;
SVN Revision: 2260 build by phil@mescal, 2006-07-04 15:18:57&lt;br /&gt;
 0: cs:Connected st:Secondary/Primary ld:Consistent&lt;br /&gt;
    ns:0 nr:28 dw:28 dr:0 al:0 bm:2 lo:0 pe:0 ua:0 ap:0&lt;br /&gt;
[root@ovz-node2 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To update the other node, switch-over the services to make the current active node the passive node. Execute the following on the still active node (it could be that the hb_standby command is located in /usr/lib/heartbeat):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@ovz-node1 ~]# /usr/lib64/heartbeat/hb_standby&lt;br /&gt;
2006/08/03_21:09:41 Going standby [all].&lt;br /&gt;
[root@ovz-node1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now do the same steps on the new passive node to update it: stop Heartbeat and DRBD, install the new kernel and the new DRBD userspace tools, set the new kernel as default kernel in /etc/grub.conf and reboot the node.&lt;br /&gt;
&lt;br /&gt;
== How to do updates of vzctl, vzctl-lib, and vzquota ==&lt;br /&gt;
&lt;br /&gt;
Ensure after every update of OpenVZ tools that OpenVZ is not started on system boot. To disable starting of OpenVZ on system boot execute on both nodes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@ovz-node1 ~]# chkconfig --del vz&lt;br /&gt;
[root@ovz-node1 ~]# &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Christoph</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Quick_installation_(legacy)&amp;diff=2346</id>
		<title>Quick installation (legacy)</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Quick_installation_(legacy)&amp;diff=2346"/>
		<updated>2006-09-21T09:56:29Z</updated>

		<summary type="html">&lt;p&gt;Christoph: /* Conntracks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document briefly describes the steps needed to install OpenVZ on your machine.&lt;br /&gt;
&lt;br /&gt;
This document is also available in the following languages: [http://forum.openvz.org/index.php?t=tree&amp;amp;amp;goto=35&amp;amp;amp;#msg_35 French],  [http://forum.openvz.org/index.php?t=tree&amp;amp;amp;goto=1805&amp;amp;amp;#msg_1805 German].&lt;br /&gt;
&lt;br /&gt;
OpenVZ consists of a kernel, user-level tools, and VE templates. This guide tells how to install the kernel and the tools.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
This guide assumes you are running recent release of Fedora Core (like FC5) or RHEL/CentOS 4. Currently, OpenVZ kernel tries to support the same hardware that Red Hat kernels support. For full hardware compatibility list, see [http://www.virtuozzo.com/en/products/virtuozzo/hcl/ Virtuozzo HCL].&lt;br /&gt;
&lt;br /&gt;
=== rpm or yum? ===&lt;br /&gt;
&lt;br /&gt;
In case you have yum utility available on you system, you may want to use it effectively to install and update OpenVZ packages. In case you don't have yum, or don't want to use it, you can use plain old rpm. Instructions for both rpm and yum are provided below.&lt;br /&gt;
&lt;br /&gt;
=== yum pre-setup ===&lt;br /&gt;
If you want to use yum, you should set up OpenVZ yum repository first.&lt;br /&gt;
&lt;br /&gt;
Download [http://download.openvz.org/openvz.repo openvz.repo] file and put it to your &amp;lt;code&amp;gt;/etc/yum.repos.d/&amp;lt;/code&amp;gt; repository. This can be achieved by the following commands, as root:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /etc/yum.repos.d&lt;br /&gt;
# wget http://download.openvz.org/openvz.repo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In case you can not cd to /etc/yum.repos.d, it means either yum is not installed on your system, or yum version is too old. In that case, just stick to rpm installation method.&lt;br /&gt;
&lt;br /&gt;
== Kernel installation ==&lt;br /&gt;
&lt;br /&gt;
{{Note|In case you want to recompile the kernel yourself rather than use the one provided by OpenVZ, see [[kernel build]].}}&lt;br /&gt;
&lt;br /&gt;
First, you need to choose what “flavor” of the kernel you want to install. Please refer to [[Kernel flavors]] for more information.&lt;br /&gt;
&lt;br /&gt;
=== Using yum ===&lt;br /&gt;
Run the following command&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# yum install ovzkernel[-flavor]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here &amp;lt;code&amp;gt;[-flavor]&amp;lt;/code&amp;gt; is optional, and can be &amp;lt;code&amp;gt;-smp&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;-enterprise&amp;lt;/code&amp;gt;. Refer to [[kernel flavors]] for more info.&lt;br /&gt;
&lt;br /&gt;
=== Using rpm ===&lt;br /&gt;
Get the kernel binary RPM from the [http://openvz.org/download/kernel/ Download » Kernel] page, or directly from [http://download.openvz.org/kernel/ download.openvz.org/kernel], or from one of its [[Download mirrors|mirrors]]. You need only one kernel RPM so please [[Kernel flavors|choose the appropriate one]] depending on your hardware.&lt;br /&gt;
&lt;br /&gt;
Next, install the kernel RPM you chose:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rpm -ihv ovzkernel[-flavor]*.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here &amp;lt;code&amp;gt;[-flavor]&amp;lt;/code&amp;gt; is optional, and can be &amp;lt;code&amp;gt;-smp&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;-enterprise&amp;lt;/code&amp;gt;. Refer to [[kernel flavors]] for more info.&lt;br /&gt;
&lt;br /&gt;
{{Note|&amp;lt;tt&amp;gt;rpm -U&amp;lt;/tt&amp;gt; (where &amp;lt;tt&amp;gt;-U&amp;lt;/tt&amp;gt; stands for ''upgrade'') should '''not''' be used, otherwise all currently installed kernels will be uninstalled.}}&lt;br /&gt;
&lt;br /&gt;
== Configuring the bootloader ==&lt;br /&gt;
&lt;br /&gt;
In case GRUB is used as the boot loader, it will be configured automatically: lines similar to these will be added to the &amp;lt;tt&amp;gt;/boot/grub/grub.conf&amp;lt;/tt&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title Fedora Core (2.6.8-022stab029.1)&lt;br /&gt;
       root (hd0,0)&lt;br /&gt;
       kernel /vmlinuz-2.6.8-022stab029.1 ro root=/dev/sda5 quiet rhgb vga=0x31B&lt;br /&gt;
       initrd /initrd-2.6.8-022stab029.1.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Change &amp;lt;tt&amp;gt;Fedora Core&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;OpenVZ&amp;lt;/tt&amp;gt; (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 &amp;lt;tt&amp;gt;root=...&amp;lt;/tt&amp;gt; parameter. The modifed portion of &amp;lt;tt&amp;gt;/etc/grub.conf&amp;lt;/tt&amp;gt; should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title OpenVZ (2.6.8-022stab029.1)&lt;br /&gt;
        root (hd0,0)&lt;br /&gt;
        kernel /vmlinuz-2.6.8-022stab029.1 ro root=/dev/sda5&lt;br /&gt;
        initrd /initrd-2.6.8-022stab029.1.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuring ==&lt;br /&gt;
&lt;br /&gt;
Please make sure the following steps are performed before rebooting into OpenVZ kernel.&lt;br /&gt;
&lt;br /&gt;
=== sysctl ===&lt;br /&gt;
&lt;br /&gt;
There is a number of kernel parameters that should be set for OpenVZ to work correctly. These parameters are stored in &amp;lt;tt&amp;gt;/etc/sysctl.conf&amp;lt;/tt&amp;gt; file. Here is the relevant part of the file; please edit it accordingly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# On Hardware Node we generally need&lt;br /&gt;
# packet forwarding enabled and proxy arp disabled&lt;br /&gt;
net.ipv4.ip_forward = 1&lt;br /&gt;
net.ipv4.conf.default.proxy_arp = 0&lt;br /&gt;
# Enables source route verification&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
# Enables the magic-sysrq key&lt;br /&gt;
kernel.sysrq = 1&lt;br /&gt;
# TCP Explict Congestion Notification&lt;br /&gt;
#net.ipv4.tcp_ecn = 0&lt;br /&gt;
# we do not want all our interfaces to send redirects&lt;br /&gt;
net.ipv4.conf.default.send_redirects = 1&lt;br /&gt;
net.ipv4.conf.all.send_redirects = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SELinux ===&lt;br /&gt;
&lt;br /&gt;
SELinux should be disabled. To that effect, put the following line to &amp;lt;code&amp;gt;/etc/sysconfig/selinux&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELINUX=disabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conntracks ===&lt;br /&gt;
&lt;br /&gt;
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]].&lt;br /&gt;
&lt;br /&gt;
To enable conntracks for VE0, add the following line to &amp;lt;code&amp;gt;/etc/modprobe.conf&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options ip_conntrack ip_conntrack_enable_ve0=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|in kernels later than 2.6.8, connection tracking is enabled by default}}&lt;br /&gt;
&lt;br /&gt;
== Rebooting into OpenVZ kernel ==&lt;br /&gt;
&lt;br /&gt;
Now reboot the machine and choose &amp;quot;OpenVZ&amp;quot; on the boot loader menu. If the OpenVZ kernel has been booted successfully, proceed to installing the user-level tools for OpenVZ.&lt;br /&gt;
&lt;br /&gt;
== Installing the utilities ==&lt;br /&gt;
&lt;br /&gt;
OpenVZ needs some user-level tools installed. Those are:&lt;br /&gt;
&lt;br /&gt;
; vzctl&lt;br /&gt;
:    A utility to control OpenVZ VPSs (create, destroy, start, stop, set parameters etc.)&lt;br /&gt;
; vzquota&lt;br /&gt;
:    A utility to manage quotas for VPSs. Mostly used indirectly (by vzctl).&lt;br /&gt;
&lt;br /&gt;
=== Using yum ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# yum install vzctl vzquota&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Using rpm ===&lt;br /&gt;
&lt;br /&gt;
Download the binary RPMs of these utilities from [http://openvz.org/download/utils/ Download » Utils], or directly from [http://download.openvz.org/utils/ download.openvz.org/utils], or from one of its [[Download mirrors|mirrors]]. Install them:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rpm -Uhv vzctl*.rpm vzquota*.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If rpm complains about unresolved dependencies, you'll have to satisfy them first, then repeat the installation.&lt;br /&gt;
&lt;br /&gt;
When all the tools are installed, start the OpenVZ subsystem.&lt;br /&gt;
&lt;br /&gt;
== Starting OpenVZ ==&lt;br /&gt;
&lt;br /&gt;
As root, execute the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# /sbin/service vz start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will load all the needed OpenVZ kernel modules. This script should also start all the VPSs marked to be auto-started on machine boot (there aren't any yet).&lt;br /&gt;
&lt;br /&gt;
During the next reboot, this script should be executed automatically.&lt;br /&gt;
&lt;br /&gt;
== Next steps ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The next step is to prepare the [[OS template]]: please continue to [[OS template cache preparation]] document.&lt;br /&gt;
&lt;br /&gt;
[[Category: Installation]]&lt;br /&gt;
[[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Christoph</name></author>
		
	</entry>
</feed>