Open main menu

OpenVZ Virtuozzo Containers Wiki β

Installation on Debian/old

< Installation on Debian
Revision as of 14:05, 10 November 2007 by Kir (talk | contribs) (removed excessive pre's, splitted into subections, reworded kernel config subsection or build your own kernel-image (debian way))

Contents

Sarge-Dapper (OldStable)

The OpenVZ packages at http://debian.systs.org/ aimed to install OpenVZ in a easy way, some tasks are even completed during the install process!

edit apt source settings

Add to your "/etc/apt/sources.list"

 deb http://debian.systs.org/debian sarge openvz

and get the new package lists

# apt-get update

precompiled kernel images at debian.systs.org (dso)

The kernel-images on debian.systs.org (dso) use the same kernel-config taken from OpenVZ. (most kernel-modules are built-in!)

If there is more than one CPU available (or a CPU with hyperthreading), use the kernel-smp deb. If there is more than 4 Gb of RAM available, use the kernel-enterprise deb. Otherwise, use the plain kernel deb (kernel).

Kernel flavors list
Kernel type Description Hardware Use case
- uniprocessor up to 4GB of RAM
-smp symmetric multiprocessor up to 4 GB of RAM 10-20 VPSs
-entnosplit SMP + PAE support up to 64 GB of RAM 10-30 VPSs
-enterprise SMP + PAE support + 4/4GB split up to 64 GB of RAM >20-30 VPSs

kernel-image: i368 and amd64

 ovzkernel-2.6.9
 ovzkernel-2.6.9-smp

kernel-image: i386 only:

 ovzkernel-2.6.9-enterprise 
 ovzkernel-2.6.9-entnosplit

OpenVZ tool(s) for i386 and amd64

 vzctl
 vzquota
 vzprocps
 vzdump

template(s) for i368 and amd64 : Debian 3.1 Minimal

 vzctl-ostmpl-debian

installing the kernel-images, toolset and debian-os-template

Example: install the stable OpenVZ kernel, tools and Debian OS Template

# aptitude install ovzkernel-2.6.9 vzctl vzquota vzdump vzctl-ostmpl-debian


If you are using GRUB, maybe you need to update the /boot/grub/menu.lst file (can be configured at /etc/kernel-img.conf):

# /sbin/grub-update 


Reboot in your new Debian Sarge OpenVZ System

# reboot


That's all :-)

Now it's time to setup your VEs with the minimal Debian-3.1 Template, create new one or download another precreated OS-Template.

Etch (Stable)

OpenVZ is now a part of Debian Etch repository. The packages are 'vzctl' and 'vzquota'.

install the kernel-image

precompiled kernel images at download.openvz.org

A Debian OpenVZ kernel repository is online, for direct access http://download.openvz.org/kernel/debian/etch/


add to your "/etc/apt/sources.list"

 deb http://download.openvz.org/debian etch main

Update package lists

 # apt-get update

List downloadable OpenVZ linux-images

 # apt-cache search linux-image-2.6.18-openvz

Install a kernel

 # apt-get install <linux-image>

precompiled kernel images at debian.systs.org

Add to your "/etc/apt/sources.list"

 deb http://debian.systs.org/ etch openvz

Add the signing key of debian.systs.org (dso) apt-keyring, (need root permissions)

 # wget http://debian.systs.org/dso_archiv_signing_key.asc -q -O - | apt-key add -

and get the new package lists

 # apt-get update

Choose a linux image (version 028stab039.1) :

 ovzkernel-2.6.18 (i386 and amd64)
 ovzkernel-2.6.18-smp (i386 and amd64)
 ovzkernel-2.6.18-enterprise only (i386)
# apt-get install <linux-image>

Build your own kernel-image (debian way)

Installing sources

To install the kernel-source and the OpenVZ kernel patch, run:

# apt-get install kernel-package linux-source-2.6.18 kernel-patch-openvz libncurses5-dev

Unpacking

Unpack the kernel source:

 # cd /usr/src
 # tar xjf linux-source-2.6.18.tar.bz2
 # cd linux-source-2.6.18

Kernel config

You need a kernel config. You can use the config of the debian-kernel:

# cp /boot/config-2.6.18-5-686 .config

Or get a 2.6.18 kernel configuration from http://download.openvz.org/kernel/branches/2.6.18/current/configs/ (depending on your architecture; the below example is for i686):

# wget http://download.openvz.org/kernel/branches/2.6.18/current/configs/kernel-2.6.18-i686.config.ovz -O .config

Patching and configuring

Now you can apply the openvz kernel patch and modify your kernel-config:

# ../kernel-patches/all/apply/openvz
# make menuconfig

You need the following OpenVZ kernel config settings:

(taken from OpenVZ Kernel 2.6.18-028test010.1 on 686)

Filesystem
\_ [*] Second extended fs support (CONFIG_EXT2_FS)
\_ [*] Ext3 journalling file system support (CONFIG_EXT3_FS)
\_ [M] Quota Support (CONFIG_QUOTA)
	\_ [*] Compatibility with older quotactl interface (CONFIG_QUOTA_COMPAT)
	\_ [*]Quota format v2 support (CONFIG_QFMT_V2)
\_ [*] VPS filesystem (CONFIG_SIM_FS)
\_ [M] Virtuozzo Disk Quota support	(CONFIG_VZ_QUOTA)
	\-> [*] Per-user and per-group quota in Virtuozzo quota partitions (VZ_QUOTA_UGID)

Security
	\->[ ] Enable different security models

OpenVZ ... (what else :-)
\_[*] Virtual Environment support (CONFIG_VE)
	\_ <M> VE calls interface (CONFIG_VE_CALLS)
	\_ <M> VE networking (CONFIG_VE_NETDEV)
	\_ <M> Virtual ethernet device (CONFIG_VE_ETHDEV)
	\_ <M> VE device (CONFIG_VZ_DEV)
	\_ [*] VE netfiltering (CONFIG_VE_IPTABLES)
	\_ <M> VE watchdog module (CONFIG_VZ_WDOG)
	\_ <M> Checkpointing & restoring Virtual Environments (CONFIG_VZ_CHECKPOINT)

User resources ... (User Beancounters)
\_ [*] Enable user resource accounting (CONFIG_USER_RESOURCE)
\_ [*] Account physical memory usage ( CONFIG_USER_RSS_ACCOUNTING)
\_ [*] Account disk IO (CONFIG_UBC_IO_ACCT)
\_ [*] Account swap usage (CONFIG_USER_SWAP_ACCOUNTING)
\_ [*] Report resource usage in /proc (CONFIG_USER_RESOURCE_PROC)
\_ [*] User resources debug features (CONFIG_UBC_DEBUG)
\_ [*] Debug kmemsize with cache counters (CONFIG_UBC_DEBUG_KMEM)
  Note: better to build the kernel-headers as well, so afterward other kernel-modules can

be built without whole kernel tree (e.g. drbd -> drbd0.7-module-source)

See also : "make-kpkg --targets"

Compiling

Compile your kernel (as user root, or you need the --rootcmd!)

# make-kpkg --append_to_version=-1-openvz --added_patches=openvz --revision=1 --initrd binary-arch
or all above with one step 
# make-kpkg --append_to_version=-1-openvz --added_patches=openvz --revision=1 --initrd --config menuconfig binary-arch

Installing

Install the kernel and update initramfs:

# dpkg -i ../linux-image-2.6.18-1-openvz_1_i386.deb
# update-initramfs -c -k 2.6.18-1-openvz
  Note: update-initramfs is done, when make-kpkg is use with --initrd option
  Note: update-grub can be configured by /etc/kernel-img.conf

Bootloader

Update the bootloader (if not done before)

GRUB :

# /usr/sbin/update-grub
  Note: since the Debian Etch release the location of update-grub is moved from /sbin/update-grub to /usr/sbin/update-grub

Install the toolset

You need the toolset for managing OpenVZ Virtual Environments (VE)

 # apt-get install vzctl vzquota vzdump vzctl-ostmpl-debian

modify needed settings

If you want network access for the virtual server then you need to enable IP forwarding.

An old (before Etch) Debian Way: set "ip_forward" to yes in /etc/network/option.

# editor /etc/network/options

The new (from Etch) standard way is to use sysctl for this (see below).


In some cases you may need to enable proxy_arp for the network devices that you want your virtual hosts to be accessible on. You can add this to a specific interface in the network configuration (/etc/network/interfaces) by the following lines, replace %DEV% with your device name (ie. eth0).

Example:

[...]
# device: %DEV%
iface %DEV% inet static
        address 192.168.0.2
        netmask 255.255.255.0
        network 192.168.2.0
        broadcast 192.168.2.255
        gateway 192.168.2.1

        up sysctl -w net.ipv4.conf.%DEV%.proxy_arp=100
        pre-down sysctl -w net.ipv4.conf.%DEV%.proxy_arp=0
[...]

or use the /etc/network/if-up/ and /etc/network/if-down.d/ directories.

 INFO: # man 5 interfaces (to read more about debian's network interface configuration for ifup and ifdown)
 INFO: It is recommanded to add the magic-sysrq key, to your /etc/sysctl.conf

a (plain) OpenVZ Linux Way:

Add settings to "/etc/sysctl.conf"

 # 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 


 INFO: Suggestion: Please make a symlink from /var/lib/vz to /vz as backward compability to Main OpenVZ
 (Debian vz root directory is installed FHS-like to /var/lib/vz)

 # ln -s /var/lib/vz /vz


Before you restart your Server, keep in mind, that your system has all needed modules enabled; booting from your harddisk (e.g. hardware modules, raid system(s), lvm2 etc). May you need a INITRD (initramdisk) or compile needed kernel modules statically in.


# reboot


That's all!

Now it's time to create a OS Template or download another precreated OS-Template.


INFO: Suggestions: Setup your default OS Template in /etc/vz/vz.conf