vzdump
puede utilizarse para realizar salvas tanto de contenedores de OpenVZ como máquinas virtuales de QEMU/KVM. La diferencia es que para restaurar, deben utilizarse los comandos vzrestore
o qmrestore
, respectivamente.Proxmox es una plataforma de virtualización muy útil. Aunque tiene una interfaz de gestión vía web, puede que en alguna ocasión sea necesario trabajar por consola, bien desde el propio Proxmox o desde otro equipo vía SSH. Este mini-tutorial muestra cómo hacerlo.
En este tutorial se asumen ciertas cosas:
Primeramente, descargaremos la plantilla del contenedor de Debian:
wget http://download.proxmox.com/appliances/system/debian-7.0-standard_7.0-1_i386.tar.gz
Una vez descargada la plantilla, vamos a copiarla hacia Proxmox:
scp debian-7.0-standard_7.0-1_i386.tar.gz root@192.168.100.1:/var/lib/vz/templates/cache/
Para crear el contenedor, accederemos a Proxmox vía SSH:
ssh root@192.168.100.1
Una vez en la consola de proxmox, primeramente prepararemos el contenedor:
vzctl set 101 --name "sv1" --description "Mi primer servidor" --cpus 1 --cpulimit 100% \ --diskspace 1G:4G --ram 512M --swap 768M --diskinodes 90000:200000 --quotatime 600 \ --ipadd 192.168.100.101 --hostname "sv1" --searchdomain midominio.cu \ --nameserver 127.0.0.1 --nameserver 200.55.128.3 --nameserver 200.55.128.4 \ --nameserver 169.158.128.136 --nameserver 169.158.128.88 \ --netif_add eth0 --save
En este caso, hemos establecido los parámetros de creación para un contenedor, asignando una IP de la subred de administración, y adicionalmente habilitando la interfaz eth0
mediante un puente, con el objetivo de configurarla luego para la salida hacia otra subred o el exterior.
Procedemos entonces a crear propiamente el contenedor, utilizando la plantilla de Debian 7 descargada, adicionalmente estableciendo la contraseña “secreto” para el usuario root
, y habilitando módulos de iptables.
vzctl create 101 --ostemplate debian-7.0-standard_7.0-1_i386 vzctl set 101 --userpasswd root:secreto --onboot yes --save vzctl set 101 --iptables ipt_TCPMSS --iptables ipt_LOG --iptables ipt_TOS \ --iptables iptable_nat --iptables ipt_multiport --iptables ipt_state \ --iptables ipt_limit --iptables ipt_recent --iptables ipt_owner \ --iptables ipt_REDIRECT --iptables ipt_length --iptables ipt_tcpmss \ --iptables iptable_mangle --iptables ipt_tos --iptables iptable_filter \ --iptables ipt_ttl --iptables ipt_REJECT --setmode restart --save
Una vez creado el contenedor, nos cercioramos de hacerlo funcionar, y entramos en el:
vzctl start 101 vzctl enter 101
Esta vez debería aparecernos la consola del equipo sv1
. Podríamos entonces realizar otras tareas, como por ejemplo establecer ciertos parámetros de red:
ip address add 192.168.0.101/24 dev eth0 ifconfig eth0 up route add default gw 192.168.0.1 exit
Supongamos que deseamos realizar una salva en cierto directorio del contenedor que acabamos de crear, para restaurarlo o clonarlo cuando sea necesario: 1)
mkdir -p /var/salvas vzdump 101 --compress gzip --dumpdir /var/salvas --mode stop --tmpdir /var/tmp
Esto debería producir en /var/salvas/
un archivo con un nombre como vzdump-openvz-101-2013_06_22-14_54_56.tar.gz
que contendrá la salva de nuestro contenedor.
Podríamos entonces, por ejemplo, utilizar esta salva para hacer un clon del contenedor a fin de instalar en el otros servicios:
vzrestore /var/salvas/vzdump-openvz-101-2013_06_22-14_54_56.tar.gz 102 -force
Naturalmente, puede que este comando produzca ciertos errores porque ahora habría una duplicación de datos, como las mismas direcciones y nombres de equipos, etc. Pero esto podemos modificarlo:
vzctl stop 102 vzctl set 102 --name "sv2" --description "Mi segundo servidor" \ --hostname "sv2" --save vzctl set 101 --ipdel all --save vzctl set 101 --ipadd 192.168.100.102 --onboot yes --save
De todas maneras, si deseamos confirmar si todo ha quedado como pretendemos, podemos revisar el contenido del archivo de configuración /etc/vz/conf/102.conf
y del directorio /var/lib/vz/private/102/
(con el contenedor detenido para mayor seguridad).
Desde la consola pueden hacerse muchas cosas, sin necesidad de entrar en la interfaz web de Proxmox.
Por ejemplo, si deseamos listar los contenedores que tenemos (detenidos o en ejecución), podemos utilizar el siguiente comando:
vzlist -a
También podemos ejecutar comandos directamente en un contenedor, sin necesidad de entrar en el. Por ejemplo:
vzctl exec 101 df -h
Para eliminar con seguridad un contenedor, podemos ejecutar los siguientes comandos:
vzctl stop 102 vzctl umount 102 vzctl destroy 102
vzdump
puede utilizarse para realizar salvas tanto de contenedores de OpenVZ como máquinas virtuales de QEMU/KVM. La diferencia es que para restaurar, deben utilizarse los comandos vzrestore
o qmrestore
, respectivamente.