VPS(4) FreeBSD Kernel Interfaces Manual VPS(4)

NAME

vps — Virtual Private Systems

SYNOPSIS

To compile VPS into the kernel, place following lines in your kernel configuration file:

option VPS
option VIMAGE

The core code will be statically linked into the kernel, and some additional modules will be built:

vps_dev.ko
vps_account.ko
vps_suspend.ko
vps_libdump.ko
vps_snapst.ko
vps_restore.ko
vps_ddb.ko
vpsfs.ko
if_vps.ko

In order to have the all the code linked into the kernel rather than having several loadable modules, add:

option VPS_STATIC

DESCRIPTION

Virtual Private Systems (short VPS) is an operating system level virtualization implementation.

Virtualization solutions like XEN divide the host’s resources into several, often fixed-sized, parts, and runs several instances of the same or different operating systems. This implies a big performance impact, since loads of translation work for hardware access is necessary. Furthermore, resources can’t be shared and overcommitted very well.

In VPS, in comparison, the virtualization takes place one level higher, in the actual operating system. The drawback is that you can’t provide different operating systems or versions, but there is only very little performance impact compared to a native environment. Resource sharing, like diskspace and memory overcommittment work much better, too.

For network stack virtualization vimage/vnet is used.

VPS is capable of migrating a running instance to another physical host without closing any process, TCP session or any other resource.

Currently, since VPS is still experimental, not all resources or system setups are supported yet for live migration.

Description of the kernel modules:

vps_dev.ko

This module provides the /dev/vps interface and all the procedures required for vpsctl(8) to work.

vps_account.ko

This module provides the resource accounting and limiting functionality.

vps_suspend.ko

This module provides the suspend and resume commands described in vpsctl(8) under suspend and resume.

vps_libdump.ko

This module provides common routines for both the snapshot and restore modules.

vps_snapst.ko

This module provides the snapshot functionality described in vpsctl(8) under snapshot.

vps_restore.ko

This module provides the functionality to restore a VPS instance from a snapshot file or in live host to host migration. See vpsctl(8) under restore and migrate.

vps_ddb.ko

If compiled with option DDB this modules provides debugging routines.

vpsfs.ko

This module provides a virtual filesystem, that allows VPS to account and restrict diskspace usage per instance. Also see mount_vpsfs(8).

if_vps.ko

This module provides virtual network interfaces named vpsN. Each VPS instance can have zero, one or more interfaces. Whenever a packet is input to a vps interface, it is output on the vps interface that has the destination address of the packet configured on it AND is allowed to have this address by means of VPS instance configuration.

Interfaces can be created using the ’ifconfig create’ command, but usually vpsctl(8) will create and destroy them as needed. The first interface created is used as the default output interface, so after loading the module vps0, should be created, set to UP and kept on the main vps instance.

If you don’t want a certain functionality simply don’t load the respective module.

DIAGNOSTICS

If compiled with option DIAGNOSTIC following sysctls are available:

debug.vps_core_debug
debug.vps_if_debug
debug.vps_dev_debug
debug.vps_user_debug
debug.vps_snapst_debug
debug.vps_restore_debug
debug.vps_account_debug
debug.vps_vpsfs_debug

Each of them enables/disables debug output to the kernel message buffer for the corresponding module.

SEE ALSO

vps(9), vpsctl(8), vps.conf(5), mount_vpsfs(8), http://www.7he.at/freebsd/vps/

HISTORY

Work on VPS was started in February 2009.

AUTHORS

Virtual Private Systems for FreeBSD and this manual page as well, were written by Klaus P. Ohrhallinger.

Development of this software was partly funded by:

TransIP.nl <http://www.transip.nl/>

BUGS

VPS is in an early stage of development and has to be considered as experimental. This means many bugs have to be expected.

Please submit bug reports to freebsd-vps@7he.at.

VERSION

$Id: vps.4 120 2012-08-30 11:14:36Z klaus $

FreeBSD 10.0 August 29, 2012 FreeBSD 10.0