Virtualización · 5 min read · Jan 18, 2026
OpenVZ En Debian Etch Para Servidores Web
OpenVZ En Debian Etch Para Servidores Web
Introducción
¡La virtualización es genial! Una buena práctica para servidores, ya que hace las cosas más seguras, escalables, reemplazables y replicables. Todo esto a costa de una complejidad añadida mínima.
Esta guía se escribió durante la instalación de una máquina Supermicro con 2 opterones de doble núcleo (64 bits), 2 discos idénticos (para RAID) y una gran cantidad de memoria. ¿Por qué OpenVZ y no XEN o el reciente módulo del núcleo KVM? Bueno, XEN no es muy estable para arquitecturas de 64 bits (aún), y viene con bastante sobrecarga (cada VM ejecuta su propio núcleo) debido a su complejidad. KVM es muy simple pero te restringe a ejecutar un núcleo como un proceso, por lo que la VM no puede beneficiarse de sistemas de múltiples núcleos.
Con OpenVZ, solo se ejecuta un núcleo para el entorno host y todas las VMs, esto hace que la configuración sea ágil y un buen candidato para servidores web.
Instalar el sistema de hosting
Primero instala Etch (asegúrate de configurar RAID con el instalador).
Es posible que desees deshacerte de algunos directorios y enlaces que estorben en tu raíz (y, como el resto de la guía, como root):
cd /
rm cdrom
unlink vmlinuz.old
unlink vmlinuz
rmdir selinux/
rmdir initrd
unlink initrd.img.old
rmdir opt
rmdir srv/Ahora queremos compilar un núcleo personalizado habilitado para OpenVZ, seguimos más o menos esta guía en el sitio de OpenVZ. Un breve resumen de lo que hicimos:
apt-get update
apt-get install linux-source-2.6.18 kernel-patch-openvz vzctl vzquota # este comando puede requerir que lo reconozcas
cd /usr/src
tar xjvf linux-source-2.6.18.tar.bz2
cd linux-source-2.6.18
cp /boot/config-2.6.18-3-amd64 .config
aptitude install kernel-package # lo necesitas en la siguiente línea
make-kpkg --append_to_version=-1-openvz --added_patches=openvz --revision=1 kernel_image
cd ..
dpkg -i linux-image-2.6.18-1-openvz_1_amd64.deb
update-initramfs -c -k 2.6.18-1-openvz
update-grubLuego (después de que quizás hayas modificado un poco el /boot/grub/menu.lst para que predetermine el núcleo correcto) puedes reiniciar.
Después del reinicio, usando el núcleo habilitado para OpenVZ, verifica si todo funciona:
ifconfig # debería listar tus interfaces y una interfaz "venet" adicional
cat /proc/vz/* # debería mostrar algo (no es muy importante aún lo que muestra)
cat /proc/cpuinfo # verifica que tus CPUs estén activos
cat /proc/mdstat # RAIDs funcionando
lsmod # debería mostrar algunos módulos que comienzan con las letras "vz"Crear Servidores Privados Virtuales (VPSs)
Ahora configuramos, iniciamos un VPS desde la plantilla mínima predeterminada (puedes encontrarla en /var/lib/vz/template/cache):
vzctl create 101 --ostemplate debian-3.1-amd64-minimal --config vps.basic
vzctl set 101 --onboot yes --save
vzctl set 101 --hostname test101.mytest.org --save
vzctl set 101 --ipadd 10.0.0.101 --save
vzctl set 101 --numothersock 120 --save
vzctl set 101 --nameserver 10.0.0.2 --save
vzctl set 101 --privvmpages 500000:750000 --save # dale algo de memoria CHECKME
vzctl start 101
vzctl exec 101 passwdLuego puedes conectarte con el VPS mediante
ssh 10.0.0.101, y nota el aviso colorido…
Esta plantilla es una plantilla de Sarge (3.1), y quiero que sea Etch (4.0), así que cuando inicies sesión en el VPS como root haz:
nano /etc/apt/sources.list # edítalo para que coincida con el sources.list en tu instalación host (Etch)
aptitude update
aptitude dist-upgradeAhora prueba tu nuevo VPS, y hazlo funcional, instala los paquetes que te gustaría tener alrededor ya que estos sistemas servirán más tarde como base para más VPSs.
A continuación, creamos una plantilla del VPS recién personalizado, esto es algo fácil:
vzctl stop 101 # deténlo
rm -f /var/lib/vz/private/101/etc/ssh/ssh_host_* # elimina las claves (se generarán nuevas en el primer arranque)
cd /var/lib/vz/private/101/
tar czf /var/lib/vz/template/cache/debian-etch-20061218-amd64.tar.gz .Como diría Borat: “¡Genial! ¡Me gusta!”
Ahora podemos configurar y ejecutar algunos VPS adicionales, como antes pero ahora ligeramente modificados:
vzctl create 102 --ostemplate debian-etch-20061218-amd64 --config vps.basic
vzctl set 102 --onboot yes --save
vzctl set 102 --hostname test102.mytest.org --save
vzctl set 102 --ipadd 10.0.0.102 --save
vzctl set 102 --numothersock 120 --save
vzctl set 102 --nameserver 10.0.0.2 --save
vzctl set 102 --privvmpages 500000:750000 --save # dale algo de memoria CHECKME
vzctl start 102
vzctl exec 102 passwdy (sí, veo que no hay muchos cambios interesantes)…
vzctl create 103 --ostemplate debian-etch-20061218-amd64 --config vps.basic
vzctl set 103 --onboot yes --save
vzctl set 103 --hostname test103.mytest.org --save
vzctl set 103 --ipadd 10.0.0.103 --save
vzctl set 103 --numothersock 120 --save
vzctl set 103 --nameserver 10.0.0.2 --save
vzctl set 103 --privvmpages 500000:750000 --save # dale algo de memoria CHECKME
vzctl start 103
vzctl exec 103 passwdy arranca el primer VPS (vzctl start 101) ya que lo tomamos fuera de línea para usarlo como base de nuestra plantilla, ¿recuerdas?
Ahora tenemos 3 VPSs en funcionamiento. Prueba con vzlist, salida:
VEID NPROC STATUS IP_ADDR HOSTNAME
101 5 running 10.0.0.101 test101.mytest.org
102 5 running 10.0.0.102 test102.mytest.org
103 5 running 10.0.0.103 test103.mytest.orgLos VPSs necesitan algo de memoria, por defecto se les da muy poco, así que por favor establece vmguarpages, oomguarpages, privvmpages, etc., etc., etc., en tus archivos de configuración de VPS (/etc/vz/conf/*.conf) a algunos valores sensatos: una página equivale a 4Kb. Los errores que ocurren porque restringiste demasiado tu VPS se pueden leer ejecutando:
vzctl exec 101 cat /proc/user_beancountersLa última columna de la UBC (user_beancounter) debería contener solo ceros, si no es así, intenta aumentar algunas barreras y límites. Consulta la documentación de OpenVZ para obtener más información sobre las opciones individuales.
Ahora podemos continuar configurando nuestros apaches, postfixes, etcétera en los VPSs… ¡Buena suerte!
Ohh y a continuación mi archivo /etc/vz/conf/101.conf, apesta, solo aumenté algunos valores a la bruta porque tuvimos un error en el user_beancounter.
cat /etc/vz/conf/101.conf# Copyright (C) 2000-2006 SWsoft. Todos los derechos reservados.
#
# Este programa es software libre; puedes redistribuirlo y/o modificarlo
# bajo los términos de la Licencia Pública General de GNU según lo publicado por
# la Fundación para el Software Libre; ya sea la versión 2 de la Licencia, o
# (a tu elección) cualquier versión posterior.
#
# Este programa se distribuye con la esperanza de que sea útil,
# pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de
# COMERCIABILIDAD o ADECUACIÓN A UN PROPÓSITO PARTICULAR. Consulta la
# Licencia Pública General de GNU para más detalles.
#
# Deberías haber recibido una copia de la Licencia Pública General de GNU
# junto con este programa; si no, escribe a la Fundación para el
# Software Libre, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 EE. UU.
#
VERSION="2"
ONBOOT="yes"
# Parámetros UBC (en forma de barrera:límite)
# Parámetros primarios
AVNUMPROC="40:40"
NUMPROC="255:255"
NUMTCPSOCK="80:80"
NUMOTHERSOCK="255:255"
VMGUARPAGES="500000:9223372036854775807"
# Parámetros secundarios
KMEMSIZE="33554432:36909875"
TCPSNDBUF="319488:524288"
TCPRCVBUF="524288:524288"
OTHERSOCKBUF="439296:439296"
DGRAMRCVBUF="132096:132096"
OOMGUARPAGES="500000:9223372036854775807"
# Parámetros auxiliares
LOCKEDPAGES="32:32"
SHMPAGES="8192:8192"
PRIVVMPAGES="500000:750000"
NUMFILE="10240:10240"
NUMFLOCK="100:110"
NUMPTY="16:16"
NUMSIGINFO="256:256"
DCACHESIZE="1048576:1097728"
PHYSPAGES="0:9223372036854775807"
NUMIPTENT="128:128"
# Parámetros de cuota de disco (en forma de límite suave:límite duro)
DISKSPACE="1048576:1153434"
DISKINODES="200000:220000"
QUOTATIME="0"
# Parámetro del programador justo de CPU
CPUUNITS="1000"
OFFLINE_MANAGEMENT="yes"
VE_ROOT="/var/lib/vz/root/$VEID"
VE_PRIVATE="/var/lib/vz/private/$VEID"
OSTEMPLATE="debian-3.1-amd64-minimal"
ORIGIN_SAMPLE="vps.basic"
HOSTNAME="101.mytest.org"
IP_ADDRESS="10.0.0.101"
NAMESERVER="10.0.0.2"Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.