Archivo etiqueta Desastre
Uso del Mondo Rescue para una recuperación tras desastre
Por Ángel Carrasco - GNU/Linux - 26/08/2011
Tal como comentaba en la anterior entrada, Mondo Rescue es una herramienta fantástica para realizar una copia de cara a una recuperación tras desastre o simplemente para clonar la máquina. El problema de esto es como todo, su automatización y de eso voy a hablar en esta entrada.
Antes de hacerlo, quisiera dar un par de pinceladas sobre la implementación de Mondo Rescue. Debo afirmar que su instalación es verdaderamente sencilla. De hecho sólo hay que entrar en su página principal y bajarse los paquetes para nuestra distribución o el Tarball si nuestro interés es compilarlo.
Que sea sencilla la instalación, no significa que no esté exento de problemas el uso de la herramienta. En el caso de Debian, no hay mantenedor oficial dentro de la distribución y no es la primera vez que el paquete de Mondo Rescue no cumple o no tiene recogidos los últimos cambios aparecidos. Menos mal que tienen unas buenas listas de distribución en su página de soporte y que nos puede ayudar a salvar las dificultades que nos pasen.
Ahora vamos al lio. Por motivos laborales, yo tengo automatizadas las copias de seguridad de Mondo Rescue. Dichas copias quedan almacenadas en un sistema de ficheros del cual realizo copia de seguridad con otro producto (un servicio centralizado y global de copias de seguridad). Cuando debo restaurar una máquina, lo único que hago es recuperar la imagen en cuestión en otro servidor GNU/Linux, subir esa imagen a mi datastore y en 15 a 20 minutos tengo otra vez el servidor en producción. Además, ese es el motivo que justifica que cree imágenes DVD y no un fichero con toda la información del sistema a copiar. En ese caso, mi software de virtualización chirria bastante y le cuesta reconocerlo como DVD válido.
Lo primero que hago en cada servidor que voy a poner en producción es crear los siguientes directorios:
/etc/mondo que estará destinado a albergar automondo.conf, el fichero de configuración de Mondo Rescue.
/opt/mondo/images donde se almacenarán las copias de seguridad.
/opt/mondo/temp que será empleada en la creación de los ficheros temporales de los cuales Mondo Rescue generará las imágenes del sistema.
Una pequeña nota informativa, el nombre y ubicación de estos directorios los he decidido yo, podéis cambiarlos sin mayor problema para ajustarlo a vuestras necesidades o gustos.
Quiero advertiros que tengáis en cuenta el espacio a la hora de determinar las unidades donde almacenaréis las copias de seguridad y donde se generarán los temporales. La copia de seguridad se hace de la información que tenga los sistemas de ficheros en vivo. Dicho de otra forma, podéis tener 100 Gb de disco duro pero si tenéis 5 Gb de información, vuestra copia de seguridad será de 5 Gb. Ahora bien, si vuestra partición tiene en uso 5 Gb y su tamaño global es de 8 Gb, no tendréis espacio suficiente para realizar la copia de seguridad y lo más probable es que colapséis el sistema por ocupar todo el sistema de ficheros. No es exacta pero la regla que empleo es la siguiente, la partición donde almaceno los temporales y las imágenes debe ser un 120% el tamaño de la totalidad de la información a realizar la copia de seguridad. Os puedo asegurar que no es para nada trivial y que os libraréis de más de un susto.
El fichero de configuración es /etc/mondo/automondo.conf. Este es su contenido:
# Destino para las imagenes # IMG_DESTINATION="/opt/mondo/images" # Prefijo en el nombre de las imagenes # IMG_PREFIX=`hostname` # Tamaño de los iso # IMG_SIZE=4350m # Directorios a excluir (proc y tal lo excluye mondo automáticamente) # BCK_EXCLUDE="/opt/mondo/images|/opt/mondo/temp|/tmp|/var/tmp|/lost+found" # Directorio temporal # TMP_DIR="/opt/mondo/temp"
Como podéis observar, el fichero contiene diferentes variables que emplearemos para invocar el ejecutable de Mondo Rescue, mondoarchive. Las dos únicas variables que quiero comentar, son las siguientes: IMG_PREFIX y BCK_EXCLUDE. La primera determina cómo habrán de llamarse los ficheros que genere Mondo Rescue. Personalmente prefiero que se llamen como el nombre de la máquina. Hay gente que aparte de eso, le añade la fecha de cuando realiza la copia de seguridad. Todas las opciones son válidas pero lo que sí recomiendo y aunque parezca una peregrullada, no es lo habitual, que quede perfectamente distinguida la máquina en cuestión. La segunda variable indica los directorios que serán excluidos de la copia de seguridad. Personalmente excluyo los directorios temporales tanto del sistema operativo como de Mondo Rescue así como también donde almacena sus imágenes. A esos directorios, siempre añado aquellos directorios de logs proveniente de aplicaciones que por su naturaleza sean voluminosos y no aporten nada. Tened en cuenta que es espacio que deberéis almacenar y tiempo empleado para copiar y restaurar una copia que no os servirá de nada.
En vez de usar el ejecutable mondoarchive, creo el script automondo. Este es su contenido:
#!/bin/bash
# Cargamos la configuracion (si existe)
#
CONFIG_FILE=/etc/mondo/automondo.conf
if [ -e $CONFIG_FILE ]
then
. $CONFIG_FILE
fi
# Cargamos valores por defecto (en caso de que no exista CFG o falten parametros)
if [ -z "$IMG_DESTINATION" ]
then
IMG_DESTINATION=/opt/mondo/images
fi
if [ -z "$IMG_PREFIX" ]
then
IMG_PREFIX=`hostname`
fi
if [ -z "$IMG_SIZE" ]
then
IMG_SIZE=4350m
fi
if [ -z "$BCK_EXCLUDE" ]
then
BCK_EXCLUDE="/opt/mondo/images|/opt/mondo/temp/|/tmp|/var/tmp|/lost+found""
fi
if [ -z "$TMP_DIR" ]
then
TMP_DIR="/tmp"
fi
# Creamos el destino si no existe
if [ ! -d $IMG_DESTINATION ]
then
mkdir $IMG_DESTINATION
fi
# Creamos el temporal si no existe
if [ ! -d $TMP_DIR ]
then
mkdir $TMP_DIR
fi
# Eliminamos viejas imagenes
rm $IMG_DESTINATION/*.iso
# Invocamos el asunto...
echo -e \n | /usr/sbin/mondoarchive -O -d $IMG_DESTINATION -p $IMG_PREFIX -i -E "$BCK_EXCLUDE" -N -s $IMG_SIZE -9 -T "TMP_DIR" -S "$TMP_DIR" -I "/"
El script es muy sencillo, en realidad lanzamos el ejecutable mondoarchive con los parámetros designados en el fichero de configuración automondo.conf, como dije antes. Sin embargo, si por lo que sea, no lo encontrarse, este script cargaría una configuración básica para realizar la copia de seguridad. La versión original del script fue localizada en una de las listas de correo de Mondo Rescue, obviamente se le han cambiado cosas, entre ellas que cada vez que se ejecuta, elimina las imágenes anteriores para evitar sobrecargar el servidor.
Por último, creo una entrada en el crontab de mi sistema para que se ejecute una vez al mes. Por ejemplo como esta:
05 25 * * /usr/sbin/automondo
En otras palabras, se ejecutará a las cinco de la mañana todos los 25 de cada mes. Esta es la configuración idónea para mí. Otra cosa es que vosotros deberéis ajustarla a vuestras ventanas de backup y jornadas de trabajo.
En resumen, así es cómo realizo las copias de seguridad automáticas. De hecho estos scripts me sirven para cuando debo parchear el servidor y hay cambios importantes o cuando quiero clonar una máquina, lo lanzo cuando quiero y obtengo una imagen muy cercana al original.
Espero que os sea tan útil como a mí me ha sido.
P.d.:
Los scripts han sido bajados de páginas de foros de Mondo Rescue y debidamente modificados para ser usados en mi plataforma. No puedo citar exactamente sus urls, pero quiero agradecer a todos aquellos usuarios de Mondo Rescue que han contribuido en que todos podamos usar esta magnífica herramienta.
Recuperación tras desastre en GNU/Linux
Por Ángel Carrasco - GNU/Linux - 18/08/2011
Hay herramientas que te salvan la vida, al menos la profesional. Son gratuitas, funcionales y especialmente útiles por su versatilidad. Mondo Rescue pertenece a ese grupo. Con ella, he recuperado servidores en producción que bien por una actualización indebidamente instalada, bien por un fallo físico en el disco duro, bien porque las meigas haberlas haylas… murieron prematuramente. Y como más de un sufridor administrador de sistemas, parece que basta con que se caiga un servidor para que todos los usuarios necesiten de él, por lo que es importante tener un procedimiento de recuperación fiable, garantizable y en especial, rápido. Antes he dicho que se trata de una herramienta muy versátil y os explicaré por qué. La he utilizado para clonar servidores de producción y crear maquetas donde probar actualizaciones radicales o instalarle servicios de los que no me encontraba seguro de cómo quedarían.
Hay más de uno que dirá, ¿por qué no usar un software privativo del tipo Networker? La verdad sea dicha, un sistema no excluye a otro. Al contrario, cuantas más alternativas haya, mejor. Sin embargo mi experiencia con este tipo de software es muy particular. Para datos de usuario y base de datos, los recomiendo y utilizo a diario. Para preparar un sistema de recuperación tras desastre, muchos de ellos se han mostrado muy lentos. De hecho, casi se podría decir que la única ventaja que veo, consiste en que hay una gran empresa cuyo soporte garantiza la recuperación de la copia de seguridad siempre que se haya seguido sus procedimientos y se realicen sobre productos certificados. Lo que en otras palabras significa mucho dinero. Así que Mondo Rescue me permite realizar copias de seguridad destinadas a recuperar un servidor en caso de desastre gratuitamente.
He de admitir que siempre me preocupan los tiempos de recuperación pero en la mayoría de los software que he utilizado, siempre he debido realizar los siguientes pasos:
- Preparación del nuevo servidor.
- Formateo del disco duro donde irá ubicado el sistema operativo.
- Instalación del sistema operativo del servidor caído.
- Elevar el nivel de actualización hasta donde se encontraba el servidor caído. Lo que exige una buena política de actualizaciones y de inventario de software.
- Instalación del agente del software de backup donde tengamos una copia del servidor con la correspondiente política.
- Restaurar el sistema operativo. Esta operación puede ser muy lenta dependiendo del medio que se emplee en la copia de seguridad.
El punto 1, en la mayoría de las ocasiones, no está en nuestras manos. El punto 2, dependiendo del tamaño, del tipo de sistema de ficheros y del tipo de formateo, puede resultar eterno. Eterno puede parecer una exageración, pero Einstein tenía razón y el tiempo es relativo, sobre todo lo que se alarga cuando la presión de jefes y compañeros actúa. El resto de puntos, dependerá del sistema operativo, las actualizaciones, los anchos de banda, la velocidad del hardware y cierta dosis de suerte para que no falle nada de los servicios y sistemas implicados. Os contaré un secreto, los Reyes Magos no existen, pero Murphy es íntimo de todo CPD que se precie.
Mondo Rescue facilita, simplifica y garantiza la recuperación en una ventana más corta. Mucho más corta ya que substituye los puntos 3 al 6, por uno: La restauración del sistema operativo tal como se encontraba en el momento de la copia. Y a pruebas me remito, un servidor GNU/Debian 6.0 con servicio proxy web Squid 3 y de DNS Bind 9 que ocupaba en el disco duro cerca de 12 Gb, utilizando un software privativo he tardado ocho horas, con Mondo Rescue una hora.
Mondo Rescue emplea un método de sistema de copia de seguridad simple pero eficaz. Crea unos ficheros ISO (dependiendo de la información a copiar) que contendrá lo siguiente:
- Un sistema operativo GNU/Linux con la configuración del servidor en cuestión. Se puede adaptar perfectamente a nuestro hardware y configuración, no obstante, en la mayoría de los servidores, la configuración por defecto es más que válida.
- Una copia de la geometría de los discos duros. Es verdaderamente importante porque si recuperamos en los mismos discos duros, la restauración es automática y no debemos preocuparnos más que de cambiar los CD o DVD cuando nos lo pida. En caso de un leve cambio, caso muy normal si substituimos un disco duro dañado por otro, nos obligará a adaptar los tamaños de las diferentes particiones.
- Una copia de los datos de los discos duros de nuestro servidor. Emplea diferentes herramientas para crear unos ficheros contenedores con las aplicaciones y datos de una forma optimizada y comprimida (opcionalmente).
Estos archivos ISO puede ser grabados en CD, en DVD, almacenados vía NFS o en el disco duro. Personalmente, yo lo que hago es generar estos ficheros ISO sobre el disco duro y llevarlos a un repositorio. Si tienes servidores físicos, lo grabarás en CD o DVD cuando sea preciso y si usas un software de virtualización como VMware, lo subirás al correspondiente datastore.
Estas copias, además de poder ser utilizadas para recuperar un servidor en producción, como decia antes, podia ser utilizados para crear maquetas para probar software o planificar migraciones.
En esta entrada, he pretendido realizar una presentación de la herramienta, los usos que le doy, sus ventajas con respecto a software de copia de seguridad más centralizados y globales y por último, cómo procede a realizar las copias de seguridad. En futuras entradas, os mostraré cómo realizar copias de seguridad e incluso automatizarlas.

