FreeVPS Documentation

FreeVPS Kernel

 

Related Docs:  

FreeVPS Installation FreeVPS Tools Building FreeVPS Kernel Binaries FreeVPS Bug Tracker



To enable new system calls, it is required to install the new patched kernel on your Linux box. We currently support:

  • RedHat 7.3
  • RedHat Enterprise Linux release 3
  • CentOS 3.x

Other UNIX clones are not supported, but you may try this kernel on them.

FreeVPS kernel is the base Enterprise Linux kernel release 2.4.21-15.0.4.EL patched with FreeVPS 1.3 patch.

We provide RPM packages of the kernel-freevps for most architectures, such as:

athlon (supports SMP)
i386
i686 (supports SMP)

kernel-freevps-1.3-x.rpm can be downloaded from the FreeVPS download area. And they are built for:
Red Hat Linux release 7.3
Red Hat Enterprise Linux release 3

Kernels are compiled using basic configuration, that's why they support only standard hardware.
Kernel configs were used:

kernel-2.4.21-athlon-smp.config
kernel-2.4.21-athlon.config
kernel-2.4.21-i386-BOOT.config
kernel-2.4.21-i686-hugemem.config
kernel-2.4.21-i686-smp.config
kernel-2.4.21-i686.config

Thus, if you want to use some special devices, you need to recompile kernel using kernel sources.

The following kernel sources for development purposes are available for download:

Red Hat Linux release 7.3
http://www.freevps.com/download/rpms/RH_73/kernel-freevps-source-1.3-x.i386.rpm
http://www.freevps.com/download/rpms/RH_73/kernel-freevps-1.3-x.src.rpm

Red Hat Enterprise Linux release 3
http://www.freevps.com/download/rpms/RH_EL/kernel-freevps-source-1.3-x.i386.rpm
http://www.freevps.com/download/rpms/RH_EL/kernel-freevps-1.3-x.src.rpm

Before installing FreeVPS kernel, you must update some packages on your box. For Red Hat Linux release 7.3 you need to update:
modutils-2.4.25-11.EL.i386.rpm
modutils-devel-2.4.25-11.EL.i386.rpm
SysVinit-2.85-4.i386.rpm
pam-0.75-51.i386.rpm
pam-devel-0.75-51.i386.rpm
vixie-cron-3.0.1-74.i386.rpm

You can download them from: http://www.freevps.com/download/rpms/RH_73

New kernel-freevps-1.3 may also conflict with some older packages, so you need to update them first.
If you have such kind of problems, please contact our support:
support-help@freevps.com
support@freevps.com

 

FreeVPS Kernel Configuration

After kernel is successfully installed, in the /proc/vservers/ directory you may find useful and detailed information on VPS system calls and configuration.

  1. /proc/vservers/setup - VPS processes setup file; if it doesn't exist here, VPS is not implemented.

    Parameters:

    freevps patch version x.xx - FreeVPS kernel version; x.xx is a kernel release;
    freevps build xxxxxxxxxx - FreeVPS kernel build;
    syscall new_context 271 - syscall number to access the new_context kernel function
    syscall context_network 272 - syscall number to access the context_network kernel function
    syscall limits 273 - syscall number to access the limits kernel function
    total contexts count 11 - the highest context's id starting from zero.
    active contexts count 8 - the number of started contexts.

    0 is the host context id, 1 is the entire system context id (host + all VPS), contexts ids starting from 3 are virtual server context ids. Thus, to know the number of VPSs on the box, subtract 4 from the number specified in contexts count (8 in this example).

    Here, the most important parameter is freevps build. It identifies the version of the kernel installed in your system. See table of FreeVPS releases for versions' first build numbers.

  2. /proc/vservers/self - information about a particular VPS, not about the host machine.

    Parameters:

    vserver id - context id number of a virtual server
    nodename - host name assigned to a virtual server
    domainname - VPS domain name
    flags - context flags:

    LOCK - enable/disable requests to a new context
    SCHED - enable/disable a mode where processes of a context that remains idle for a long time take higher priority in the scheduler
    NPROC - allow/refuse to set limit on the number of processes in a context
    PRIVATE - allow/refuse a process join this context
    init pid - pid of a parent process that created context.
    CapBset - capability allowed in VPS (represented in a standard linux capability format).
    Process Limit - maximum number of processes allowed to run by a VPS/context;
    Process Count - number of processes running by a VPS/context. When Process Count becomes equal to Process Limit, no new processes will start on a VPS/context;
    tasks - list of process IDs running on a VPS/context;
    Memory Limit - maximum virtual memory size a VPS/context can allocate;
    Used memory - virtual memory size used by a running VPS/context;
    Max total memory - maximum virtual memory usage by VPS/context;
    Context RSS limit - maximum resident memory size a VPS/context can allocate. If limit is exceeded, VPS starts to use the host's SWAP;
    Context RSS - resident memory size used by a running VPS/context;
    Max RSS memory - maximum resident memory usage by VPS/context;
    Disk Limit - maximum disk space that can be used by VPS (calculated for the entire VPS file tree); Used disk memory - disk space used by a VPS file tree;
    Files limit - maximum number of files that can be switched to a VPS/context;
    Used files - number of files used in a VPS/context;
    TCP sockets limit - limit on the number of established connections in a virtual server
    Established sockets - number of established connections in a virtual server
    Here goes ip addresses assigned to VPS/context in format:
    vdev(hdev): speed: IP1/mask1;IP2/mask2; ...
    where:
    vdev - virtual network interface name (at VPS/context);
    hdev - real network interface name at VPS box/machine;
    speed - virtual network interface speed in b/sec;
    Incoming traffic - summary incoming traffic for a VPS/context;
    Outgoing traffic - summary outgoing traffic for a VPS/context.

    Read hints on operating with memory, context RSS and disk limits.

  3. /proc/vservers/trafstat - network traffic statistics.

    Format:

    CONTXT_NUMBER INCOMING OUTGOING
    CONTXT_NUMBER INCOMING OUTGOING
    ...

    Here, CONTXT_NUMBER is a context number, INCOMING is incoming traffic in bytes for this context, OUTGOING is the context's outgoing traffic in bytes.

    Network traffic per VPS/context is calculated by the system kernel and temporarily stored in /proc/vservers/trafstat file. After reading information from /proc/vservers/trafstat file, network traffic statistics is being reset and restarted. It is also recommended to load (reset) statistics every hour to avoid incoming/outcoming values overflow.

  4. /proc/vservers/routes_ipv4 - IPv4 per context information.

    Displays per context information about IP addresses assigned and virtual network interfaces created at virtual context.

    Format:

    address name context
    IP VDEV ID
    where:
    IP - IP address assigned to VDEV at virtual context ID;
    VDEV - virtual network interface name created at virtual context number ID;
    ID - virtual context number.



Home   Downloads   Docs   FAQ   News  Partners   Contact
© Copyright 1998-2006. Positive Software Corporation.
All rights reserved.