Hace algún tiempo publiqué en este mismo blog un articulo en el que explicaba como instalar un servidor OpenVZ. En él mencionaba cómo instalar el programa vzdump, que permite realizar backups de los contenedores y restaurarlas posteriormente.
Sin embargo, a raíz del comentario de un lector, me he dado cuenta de que el proceso ya no es tan fácil y es necesario realizar unos cuantos pasos adicionales. Dado que la documentación online al respecto es escasa y, casi siempre, errónea, he decido hacer este pequeño post explicando el proceso. Espero que os sea útil.
Instalación de vzdump
Lo primero que hay que hacer es satisfacer las dependencias del programa. Para empezar, hay que instalar cstream. Puedes descargarlo de aquí: http://pkgs.repoforge.org/cstream/
Busca la última versión correspondiente a tu arquitectura y descargarla a tu equipo. Si eres como yo y reniegas de usar la interfaz gráfica, usa:
wget (url del paquete)
Una vez descargado, toca instalarlo. Lo podemos instalar con:
yum install (nombre_paquete)
Despues hay que instalar la libreria Simple Locking file I/O para perl. Estos son los comandos:
wget http://dag.wieers.com/rpm/packages/perl-LockFile-Simple/perl-LockFile-Simple-0.206-1.el5.rf.noarch.rpm
rpm -ivh perl-LockFile-Simple-0.206-1.el5.rf.noarch.rpm
Si vas a la página de descarga (http://dag.wieers.com/rpm/packages/perl-LockFile-Simple) verás que hay versiones más recientes. Yo no las he probado, pero si quieres intentarlo, deberían funcionar igualmente.
Ahora toca añadir la ruta para que OpenVZ sepa dónde buscar la librería. Esto varía dependiendo de la versión. Al final, lo mejor es buscar la librería por todo el sistema y obtener la ruta a mano. Para ello ejecutamos:
find /usr -name Simple.pm
Devolverá varios archivos, el que importa es el primero. En mi caso es «/usr/lib/perl5/vendor_perl/5.8.8/LockFile/Simple.pm».
Cogemos la ruta, ovidándonos de la parte de «LockFile/Simple.pm» y editamos nuestro fichero .bashrc.
vim ~/.bashrc
Añadimos:
export PERL5LIB=(ruta)
En mi caso:
export PERL5LIB=/usr/lib/perl5/vendor_perl/5.8.8/
Guardamos y cargamos la nueva variable:
source ~/.bashrc
Ahora ya podemos instalar vzdump. Primero lo descargamos:
wget http://download.openvz.org/contrib/utils/vzdump/vzdump-1.2-4.noarch.rpm
Y después lo instalamos usando yum (así también comprobamos las dependencias):
yum install http://download.openvz.org/contrib/utils/vzdump/vzdump-1.2-4.noarch.rpm
No debería dar ningún problema. En el caso de que los diese, comprueba que tienes instalado procmail (o cualquier otro MDA). Deberías tenerlo por defecto, pero es posible que lo hayas desinstalado. Una vez terminada la instalación, ya deberías poder ejecutar vzdump y vzrestore. Si al hacerlo te muestra algún error extraño, asegúrate de que la variable está exportada:
echo $PERL5LIB
Y de que la ruta es correcta.
Eso es todo. Larga vida y prosperidad.
Excelente artículo 😉
Gracias! 🙂
Pues yo para estos menesteres recomiendo Proxmox, basado en Debian, soporta KVM y Openvz, y tiene una interfaz web y un API que se pueden hacer maravillas, me va como una seda. Backups programados, iscsi, nfs, etc..
http://www.proxmox.com/es/proxmox-ve
Proxmox VE es una solución completa de virtualización de servidores basada en sistemas de código abierto. Permite la virtualización tanto sobre KVM como contenedores y gestiona máquinas virtuales, almacenamiento, redes virtualizadas y clústeres HA.
La verdad es que proxmox tiene muy buena pinta. De hecho, creo que son ellos los que desarrollan (o desarrollaban) vzdump. Pero, en mi opinión, simpre es útil conocer el funcionamiento de las tecnologías subyacente. En mi experiencia, las interfaces gráficas tarde o temprano se quedan cortas. Y en ese momento eres tú contra la terminal.
Larga vida y prosperidad.
Te secundo, pero proxmox te da pleno acceso al vzdump y vzctl y todo, además un api REST que es un sueño, actualmente tengo planes para hacer algo como un status center con la interfaz python [1] y Flask.
https://github.com/swayf/proxmoxer
No hace falta que digas más. Con lo de la api REST ya me has convencido XD.
Yo soy el lector que realizó el comentario, y la verdad que agradezco enormemente este post.
Acabo de seguir los pasos, y pude levantar los backups de los contenedores sin ningun tipo de problemas. Gracias por no dejarme morir en el intento 😀
Ahora vamos con otra consulta, imagino que esta herramienta no viene instalada, porque actualmente se deben usar otro tipos de backups en OpenVZ y se debe usar otra herramienta para levantarlos. ¿Estoy en lo correcto? Creo que ese es un buen tema para un próximo post 😉
Saludos
Vuelvo a aclarar que termine utilizando lo que comentas en este post, pero ya que esta les paso el enlace que me dio la misma gente de OpenVZ por Twitter, no lo use 😛
https://openvz.org/Migration_from_one_HN_to_another
Me comentaban de usar vzmigrate
Pues se ve que no te entendieron, porque vzmigrate a ti no te servía de mucho. Tu problema era que tú los contenedores los tenías en backups hechas con vzdump. Lo que hace vzmigrate es ocuparse de migrar un contenedor activo (en frio o en caliente) de una maquina a otra. Si tú hubieras hecho eso desde el principio, pues sí. Pero una vez que querias sacar el contenedor de la backup, vzmigrate no te servía de nada. Había que sacarlos del backup y para eso se necesitaba vzrestore. Pero bueno, para la próxima vez usa esto que te quitarás de problemas y sufrimientos.
Pues…………No. Lo sé, a mi también me parece raro, pero así es la vida. También te digo que realmente lo que hace vzdump (en modo offline) simplemente es comprimir el directorio donde reside la raiz del contenedor y sus archivos de configuración en un solo archivo. Y luego descomprimirlo y colocarlo todo en su sitio. Esto lo podrías hacer tú a mano. Pero tecnicamente, aunque no este en repositorios oficiales (y sea un lío de narices instalarlo), vzdump sí es la herramienta oficial para hacer backup, al menos en frio.
¿Qué por qué no está en los repositorios entonces?. Eso me gustaría saber a mí. Por lo que veo en blog de los desarrolladores, en los últimos tiempos andan liados con ploop, que es lo que les mola ahora. Pero bueno, así están las cosas.
En cualquier caso, lo de las backup (en frío, en caliente y hasta en su punto si hace falta) lo tengo pensado para un futuro articulo. Aunque primero tengo pensado hablar de networking, que la gente se lía con los tipos de adaptadores virtuales y es la cosa más fácil del mundo. Cuando te lo explican en condiciones, claro. A ver si saco algo de tiempo esta semana.
Larga vida y prosperidad
Ahora que me hice un rato para leer sobre vzmigrate, veo que tienes toda la razón, no me entendieron 😛 Me parece interesante también lo de networking.
Gracias nuevamente 😉
Se que ya es post viejo pero para la gente que lo desee, le dejo el repositorio para instalarlo con un simple yum install vzdump.
Recuerden: esto va en el directorio /etc/yum.repos.d/solusvm.repo
[soluslabs]
name=Soluslab Repo
#baseurl=http://repo.soluslabs.com/centos/$releasever/os/$basearch
mirrorlist=http://repo.soluslabs.com/centos/mirrors-soluslabs
gpgcheck=0
enabled=1
Ya una vez creado solo hagan
yum update
y después instalan:
yum install vzdump