OpenVZ Installation · 7 min read · Oct 04, 2025
Instalando y Usando OpenVZ en Debian Wheezy (AMD64)
Instalando y Usando OpenVZ en Debian Wheezy (AMD64)
Versión 1.0
Autor: Falko Timme
Sígueme en Twitter
En este HowTo describiré cómo preparar un servidor Debian Wheezy para OpenVZ. Con OpenVZ puedes crear múltiples Servidores Privados Virtuales (VPS) en el mismo hardware, similar a Xen y al proyecto Linux Vserver. OpenVZ es la rama de código abierto de Virtuozzo, una solución de virtualización comercial utilizada por muchos proveedores que ofrecen servidores virtuales. El parche del núcleo de OpenVZ está licenciado bajo la licencia GPL, y las herramientas de nivel de usuario están bajo la licencia QPL.
Este howto está destinado como una guía práctica; no cubre los antecedentes teóricos. Estos se tratan en muchos otros documentos en la web.
¡Este documento se proporciona sin garantía de ningún tipo! Quiero decir que esta no es la única forma de configurar un sistema así. Hay muchas maneras de lograr este objetivo, pero este es el camino que tomo. ¡No emito ninguna garantía de que esto funcione para ti!
1 Nota Preliminar
Estoy usando un sistema x86_64 (amd64) aquí. Si estás en un sistema i386, algunos comandos serán ligeramente diferentes.
2 Instalando OpenVZ
Para Debian Wheezy, no hay un núcleo de OpenVZ en los repositorios oficiales. Por lo tanto, tenemos tres opciones:
- Instalar desde los paquetes RPM oficiales del proyecto OpenVZ (ver Instalar núcleo desde RPM en Debian 6.0) - ¡con soporte para ploop! (recomendado)
- Instalar el núcleo de Debian Wheezy del proyecto OpenVZ y los otros paquetes de los repositorios oficiales de Debian Wheezy (ver Instalación en Debian) - núcleo con soporte para ploop, pero el paquete vzctl de Debian no lo soporta.
- Instalar desde los paquetes de Proxmox (ver Instalar Proxmox VE en Debian Wheezy) - sin soporte para ploop en el núcleo.
2.1 Instalando Desde Los Paquetes RPM Oficiales Del Proyecto OpenVZ
Descarga los últimos paquetes RPM de vzkernel, vzctl, ploop y vzquota de http://wiki.openvz.org/Download/kernel/rhel6 y http://wiki.openvz.org/Download/utils, por ejemplo, de la siguiente manera:
cd /tmp
wget http://download.openvz.org/kernel/branches/rhel6-2.6.32/042stab076.8/vzkernel-2.6.32-042stab076.8.x86_64.rpm
wget http://download.openvz.org/kernel/branches/rhel6-2.6.32/042stab076.8/vzkernel-devel-2.6.32-042stab076.8.x86_64.rpm
wget http://download.openvz.org/utils/vzctl/4.3.1/vzctl-4.3.1-1.x86_64.rpm
wget http://download.openvz.org/utils/vzctl/4.3.1/vzctl-core-4.3.1-1.x86_64.rpm
wget http://download.openvz.org/utils/ploop/1.7/ploop-1.7-1.x86_64.rpm
wget http://download.openvz.org/utils/ploop/1.7/ploop-lib-1.7-1.x86_64.rpm
wget http://download.openvz.org/utils/vzquota/3.1/vzquota-3.1-1.x86_64.rpmInstala los siguientes paquetes…
apt-get install fakeroot alien libcgroup1… y convierte los paquetes RPM a paquetes DEB:
fakeroot alien --to-deb --scripts --keep-version vz*.rpm ploop*.rpmInstala los paquetes DEB de la siguiente manera:
dpkg -i vz*.deb ploop*.deb A continuación, debemos asegurarnos de que el núcleo correcto (el núcleo de OpenVZ) se inicie cuando reinicies el sistema. En la salida del último comando, deberías ver algo como esto:
Configurando vzkernel (2.6.32-042stab076.8) …
update-initramfs: Generando /boot/initrd.img-2.6.32-042stab076.8
ADVERTENCIA: no se pudo abrir /lib/modules/2.6.32-042stab076.8/modules.builtin: No existe tal archivo o directorio
ADVERTENCIA: no se pudo abrir /var/tmp/mkinitramfs_baPCFp/lib/modules/2.6.32-042stab076.8/modules.builtin: No existe tal archivo o directorio
Generando grub.cfg …
Encontrada imagen de linux: /boot/vmlinuz-3.2.0-4-amd64
Encontrada imagen initrd: /boot/initrd.img-3.2.0-4-amd64
Encontrada imagen de linux: /boot/vmlinuz-2.6.32-042stab076.8
Encontrada imagen initrd: /boot/initrd.img-2.6.32-042stab076.8
hecho
Esto significa que también hay otro núcleo en el sistema (3.2.0), y el núcleo de openVZ (2.6.32) no es el primero en la lista. Así que para hacer que el núcleo de OpenVZ sea el núcleo predeterminado, tenemos dos opciones: ajustar el núcleo predeterminado en GRUB (recomendado) o eliminar el/los núcleo(s) no VZ.
Para ajustar el núcleo predeterminado en GRUB, abre /etc/default/grub…
vi /etc/default/grub… y modifica la línea GRUB_DEFAULT (la numeración comienza en 0; dado que cada núcleo también viene con un modo de recuperación, nuestro núcleo de OpenVZ es el tercer núcleo, así que necesitamos poner 2 aquí):
| [...] GRUB_DEFAULT=2 [...] |
Actualiza GRUB después:
update-grubPara eliminar el núcleo predeterminado, ejecuta…
apt-get remove linux-image-amd64 linux-image-3.2.0-4-amd64… y actualiza GRUB:
update-grubAhora que nos hemos asegurado de que el núcleo correcto se inicie, podemos continuar.
A continuación, debemos verificar que estamos usando UUIDs en lugar de nombres de dispositivos en /etc/fstab porque de lo contrario el sistema podría no arrancar con el núcleo openVZ. Ejecuta…
blkid… para averiguar los UUIDs de tus dispositivos/particiones:
root@server1:/tmp# blkid
/dev/mapper/server1-swap_1: UUID=”c465cb44-1bf9-4fbe-bb31-17139fd43004” TYPE=”swap”
/dev/sda5: UUID=”WRK6Xm-fg52-T836-sp4k-6uxm-trHH-FiRdBx” TYPE=”LVM2_member”
/dev/sda1: UUID=”46d1bd79-d761-4b23-80b8-ad20cb18e049” TYPE=”ext2”
/dev/mapper/server1-root: UUID=”d5ac6d76-0b69-46da-b0c1-a4376f2f0e4e” TYPE=”ext4”
root@server1:/tmp#
Abre /etc/fstab:
vi /etc/fstabMi /etc/fstab original se ve así (como puedes ver, el UUID de la partición /boot ya se está utilizando, pero para / y swap, se están utilizando los nombres de los dispositivos):
| # /etc/fstab: información estática del sistema de archivos. # # Usa 'blkid' para imprimir el identificador único universal para un # dispositivo; esto puede ser usado con UUID= como una forma más robusta de nombrar dispositivos # que funciona incluso si se añaden y eliminan discos. Ver fstab(5). # # |
Modifícalo para que se utilicen UUIDs para todas las particiones:
| # /etc/fstab: información estática del sistema de archivos. # # Usa 'blkid' para imprimir el identificador único universal para un # dispositivo; esto puede ser usado con UUID= como una forma más robusta de nombrar dispositivos # que funciona incluso si se añaden y eliminan discos. Ver fstab(5). # # |
Asegúrate de que OpenVZ se inicie automáticamente al arrancar:
update-rc.d vz defaults
update-rc.d vzeventd defaultsA continuación, necesitamos vincular algunas bibliotecas:
ln -s /usr/lib64/libvzctl-4.3.1.so /usr/lib
ln -s /usr/lib64/libploop.so /usr/libSi deseas usar contenedores ploop, haz esto:
apt-get install partedAdemás, abre /etc/init.d/vz…
vi /etc/init.d/vz… y agrega la línea mkdir $VARLOCK/ploop para asegurarte de que el directorio /var/lock/ploop se recree después de un reinicio:
| #!/bin/sh # Copyright (C) 2000-2009, Parallels, Inc. 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 tal como fue publicada por # la Fundación de 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. Ver 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 de Software # Libre, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # Script de inicio de OpenVZ, utilizado para distribuciones relacionadas con redhat y debian. ### # chkconfig: 2345 96 20 # descripción: Script de inicio de OpenVZ. ### ### BEGIN INIT INFO # Proporciona: vz # Requerido-iniciar: $network $remote_fs $syslog # Requerido-detener: $network $remote_fs $syslog # Debería-Iniciar: sshd vzeventd # Debería-Detener: sshd vzeventd # Inicio-Predeterminado: 2 3 4 5 # Detener-Predeterminado: 0 1 6 # Descripción-Corta: Script de inicio de OpenVZ # Descripción: Script de inicio de OpenVZ. ### END INIT INFO # Esta línea es necesaria para engañar a /etc/init.d/rc que espera una palabra de acción . /usr/libexec/vzctl/scripts/initd-functions mkdir $VARLOCK/ploop [...] |
Crea un enlace simbólico de /vz a /var/lib/vz para proporcionar compatibilidad hacia atrás:
ln -s /vz /var/lib/vzAbre /etc/sysctl.conf y asegúrate de que tienes las siguientes configuraciones en él:
vi /etc/sysctl.conf| [...] net.ipv4.conf.all.rp_filter=1 net.ipv4.icmp_echo_ignore_broadcasts=1 net.ipv4.conf.default.forwarding=1 net.ipv4.conf.default.proxy_arp = 0 net.ipv4.ip_forward=1 kernel.sysrq = 1 net.ipv4.conf.default.send_redirects = 1 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.eth0.proxy_arp=1 [...] |
Si necesitas modificar /etc/sysctl.conf, ejecuta
sysctl -p despues.
El siguiente paso es importante si las direcciones IP de tus máquinas virtuales son de una subred diferente a la dirección IP del sistema host. ¡Si no haces esto, la red no funcionará en las máquinas virtuales!
Abre /etc/vz/vz.conf y establece NEIGHBOUR_DEVS en all:
vi /etc/vz/vz.conf| [...] # Controla qué interfaces enviar solicitudes ARP y modificar tablas APR en. NEIGHBOUR_DEVS=all [...] |
Instala vzdump:
apt-get install vzdumpFinalmente, reinicia el sistema:
rebootSi tu sistema se reinicia sin problemas, ¡entonces todo está bien!
Ejecuta
uname -ry tu nuevo núcleo de OpenVZ debería aparecer:
root@server1:~# uname -r
2.6.32-042stab076.8
root@server1:~#
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.