Cambiar el directorio base para los vservers

Por defecto, al instalar util-vserver, el directorio base para los vservers es /var/lib/vservers. Quizás no haya mucho espacio en /var o por comodidad se quiera cambiar. Para ello, hay que hacer lo siguiente:

mkdir /home/vservers
rm /etc/vservers/.defaults/vdirbase
ln -s /home/vservers /etc/vservers/.defaults/vdirbase
setattr --barrier /home/vservers

El  setattr --barrier /home/vservers es para cambiar los permisos de ese directorio y que los vservers no se puedan «escapar» de ese directorio.

Fuente: http://riseuplabs.org/grimoire/vserver/preparing/

Instalar y configurar Linux-VServer en Debian Lenny

16-10-2010: He encontrado algo similar a Linux-VServer. Es LXC y está integrado en el Kernel. Parece que todo va a tender hacia LXC. si quieres empezar con estas cosas, recomiendo LXC antes que Linux-VServer.

Con Linux-VServer podemos crear jaulas para aislar servicios potencialmente peligrosos de nuestro sistema (i.e., apache, mysql, IRC, …). En comparación con otras alternativas de virtualización (KVM, VMWare, Xen), Linux-VServer no virtualiza todo y esto repercute en un menor consumo de recursos.

Existen dos alternativas para instalar Linux-VServer: con Kernel precompilado desde apt-get y Kernel compilado por nosotros.

Si lo queremos bajar desde los repositorios de Debian:

aptitude install linux-modules-2.6.26-2-vserver-686 util-vserver vserver-debiantools linux-image-2.6.26-2-vserver-686 linux-headers-2.6-vserver-686

Nótese que el paquete linux-headers-2.6-vserver-686 sólo es necesario si queremos compilar algo sobre el Kernel. Si no sabes de lo que hablo, puedes omitir este paquete.

Si lo queremos compilar sobre un Kernel nuestro, debemos comprobar primero que Kernels están soportados en http://vserver.13thfloor.at/Experimental/ Si no existe la versión del Kernel que usamos, podemos bajar uno nuevo desde http://www.kernel.org/pub/linux/kernel/v2.6/

Para compilar e instalar un Kernel nosotros mismos podéis echar un vistazo a https://dajul.com/2009/05/17/compilar-un-nuevo-kernel/. Una vez descomprimido el Kernel, debemos ejecutar (para un Kernel 2.6.27.25):

wget http://vserver.13thfloor.at/Experimental/patch-2.6.27.25-vs2.3.0.36.6.diff
cd linux
cat ../patch-2.6.27.25-vs2.3.0.36.6.diff | patch -p1

Si esta información no es suficiente, hay un caso completo en http://linux-vserver.org/Installation_on_Linux_2.6

Después de parchear el Kernel, continuamos la compilación e instalación del mismo como indico en mi otro post. En este método, deberemos instalar el paquete util-vserver: aptitude install util-vserver vserver-debiantools

Para crear una jaula:

newvserver --vsroot /var/lib/vservers/ --context 10004 --hostname mijaula --domain dajul.com --ip 192.168.1.4/24 --dist lenny --mirror http://ftp.fr.debian.org/debian/ --interface br0

Ciertos parámetros se pueden configurar por defecto en /etc/vservers/newvserver-vars
Para ver las posibilidades: man newvserver

Tras finalizar la instalación de la jaula, debemos hacer lo siguiente para que se inicie automáticamente:

echo "default" > /etc/vservers/mijaula/apps/init/mark

Ahora ya se pueden controlar las jaulas con /etc/init.d/util-vserver {start|stop|forcestop|reload|restart|status}
Para entrar en una jaula: vserver mijaula enter