- 1. Introducción
- 2. Backup Manager
- 2.1 Instalación
- 2.2 Configuración
- 2.2.1 Configuración Global
- 2.2.2 Configuración backup Subversion (backup-manager-subversion.conf)
- 2.2.3 Configuración con el método svn
- 2.2.4 Configuración con el método tarball-incremental
- 2.2.5 Configuración backup: servidor web, servidor aplicaciones y base de datos.(backup-manager-servidores.conf)
- 2.3 Configuración del demonio cron
- 3 Conclusiones
1. Introducción
Hoy día, la utilización de herramientas de backup es imprescindible en cualquier empresa medianamente decente. En momentos puntuales nos pueden salvar de quebraderos de cabeza en infinitas situaciones. Un ejemplo de la importancia de estas herramientas se pudo ver el 15 de febrero del año 2005. El edificio Windsor de Madrid sufrió un enorme incendio que produjo grandes e irreparables daños. Todas las empresas que trabajaban en este edificio perdieron todos sus datos, pero sólo aquellas que utilizaron buenas políticas de backup pudieron recuperarse de esta catástrofe en un periodo corto.
Las políticas de backup son muy importantes en cualquier organización o institución y son una de las piezas que debe tener en consideración cualquier administrador de red. Una buena política de backup tiene que dar respuesta a las siguiente preguntas: ¿Qué datos son importantes para la institución?, ¿Cuál es la periodicidad de cambio de dichos datos?, ¿En qué medios de almacenamiento vamos a guardarlos? y ¿Dónde debe estar situada la copia de seguridad?.
Por tanto, cada institución tiene que analizar e identificar que información se considera primordial para ser asegurada (base de datos, repositorios de código fuente, etc..), conocer la frecuencia de modificación que permita al administrador de la red designar la periodicidad con las que se realizaran las copias: diaria, semanal o mensual y el tipo de ella: incremental, diferencial o completa. Unido al tipo y periodicidad se debe elegir el dispositivo de almacenamiento externo más adecuado para cada copia: disco duro, cd-rom, cinta, etc.. y seleccionar la situación donde se depositarán dichas copias.
Muchas de las organizaciones obvian la última pregunta, y esto supone un gran riesgo. Vamos a poner varios ejemplos:
- Imaginaos una empresa que guarde sus copias de seguridad en la misma máquina donde se encuentra la información que acaba de asegurar. Si la máquina sufriera cualquier problema la copia de seguridad también la perderíamos.
- Otro ejemplo de una mala política es mantener la copia de seguridad en las mismas instalaciones donde se encuentra la información asegurada. Aunque es mejor que la anterior, puede ocurrir cualquier desastre en esas instalaciones que haga que perdamos nuestras copias de seguridad.
Lo más adecuado, es mantener como mínimo dos copias de seguridad, situadas por ejemplo en la propia instalación de la organización y otra a una distancia mínima de unos 50 Km. Con esta medida, lo que conseguimos es reducir la probabilidad de que nuestra organización pierda por completo la información, ya que si ocurre alguna catástrofe en uno de las dos instalaciones siempre tenemos la información replicada en otro lugar de donde se produjo el incidente.
En el mercado, existe un gran número de herramientas de backup, hoy veremos una de ellas, se llama backup-manager. Es una herramienta con licencia GNU, que nos proporciona un gran número de posibilidades en la elaboración de estrategias de copias de seguridad
2. Backup Manager
Backup-manager, es una herramienta bastante completa y fácil de configurar, nos permite realizar copias de seguridad de sistema de ficheros locales y remotos (ssh), base de datos Mysql y repositorios Subversion pudiendo elegir entre diferentes algoritmos de compresión, incluso nos da la posibilidad de poder realizar otro tipo de copias que no cubran las anteriores lo que han llamando Generic Methods.
Esta herramienta, nos ofrece la posibilidad de realizar copias incrementales y completas, estás últimas realizadas diaria, semanal o mensualmente. También se le puede indicar que las copias tengan un tiempo de vida (TTL), a partir del cual dicha copia será eliminada del sistema. Una vez realizada el backup del sistema, backup-manager ofrece diferentes métodos de replicación de la copia que va desde ssh, rsync o ftp, pasando por la grabación en dvd-cdrom hasta poder subirlo a S3 (Simple Storage Service) de Amazon.
Además, backup-manager es capaz de ejecutar un script pre y post backup, utilizado por ejemplo para montaje y desmontaje de sistema de ficheros. De cualquier forma, todas las operaciones que se realicen con backup-manager podrán ser almacenadas a través del syslog.
Por último indicar que backup-manager permite ejecutar paralelamente varios procesos backup con diferentes ficheros de configuración.
Para ver todas las posibilidades que nos ofrece esta herramienta, pondremos un ejemplo de arquitectura en el que se utilicen la gran mayoría de las opciones que nos ofrece.
2.1 Instalación
Una vez que nos hayamos descargado la versión 0.7.5 desde la Web de Backup Manager (www.backup-manager.org), procedemos a instalarlo en nuestro sistema.
Descomprimimos el archivo:
[user@adictos user] tar -xvf backup-manager-0.7.5.tar.gz
Accedemos a la carpeta backup-manager-0.7.5 creada con la descompresión:
[user@adictos user] cd backup-manager-0.7.5
Para poder instalar backup-manager necesitamos realizar la instalación con el usuario root:
[user@adictos backup-manager-0.7.5] su root
A continuación procedemos a instalar backup-manager:
[root@adictos backup-manager-0.7.5] make install
Copiamos el directorio BackupManager en el directorio donde tengamos instalado perl, en nuestro caso /usr/share/perl5/ (necesario para ejecutar los scripts de backup-manager).
[root@adictos backup-manager-0.7.5] cp BackupManager /usr/share/perl5/
Y por último, copiamos el archivo backup-manager.conf.tpl al directorio /etc, donde se sitúan los fichero de configuración del sistema:
[root@adictos backup-manager-0.7.5] cp /usr/share/backup-manager/backup-manager.conf.tpl /etc/backup-manager.conf
Por fin tendremos nuestra herramienta de backup instalada en nuestro sistema, ahora debemos configurarla.
2.2 Configuración
Como hemos comentado anteriormente, vamos a proponer un arquitectura de ejemplo en la que podamos utilizar la mayoría de las características que nos proporciona esta herramienta de backup. Como se puede ver en el gráfico, nuestra organización ficticia dispone de un conjunto de máquinas de diferentes tipos (Servidor de base de datos, Servidor Web, repositorio SVN…) del que desea realizar copias de seguridad.
Entre esas máquinas, se encuentra el repositorio de control de versiones Subversion utilizado por nuestro departamento de desarrollo. La frecuencia de cambios en este servidor es continua por lo que se desea realizar una copia completa todas los meses, unido con copias incrementales cada uno de los días del mes, excepto los fines de semana ya que el equipo de desarrollo no trabaja. También se desea asegurar el entorno de producción de dicha organización, para ello se deben realizar backup del Servidor Web, Servidor de Aplicaciones y los esquemas almacenados en el Servidor de base de datos. La política que se ha decido con estas máquinas es realizar copias completas semanales del Servidor Web y de Aplicaciones (el equipo de desarrollo sólo realiza pases los miércoles) y la base de datos.
Finalmente, las copias elaboradas además de almacenarse en nuestro sistema de backup lo harán también en un sistema espejo situado en otra localización y en el servicio de almacenamiento proporcionado por Amazon (Amazon S3).
En este tipo de estructura son necesarios varios ficheros de configuración debido a la existencia de diferentes tipos y frecuencia de lanzamiento para realizar las copias. La herramienta que podemos utilizar para ejecutar cada unos de las copias con su correspondiente fichero de configuración es cron.
Conocido el entorno y que es lo que se quiere hacer, se necesitan definir dos ficheros de configuración, el primero encargado de realizar copia del repositorio Subversión, el segundo sobre el Servidor Web y de Aplicaciones y el servidor de base de datos.
2.2.1 Configuración Global
En este apartado veremos la configuración que se debe establecer en todos los ficheros que se creen debido a que son acciones realizadas por todos. En concreto debemos configurar cierto parámetros (almacenamiento de la copia en el sistema de archivo local, …) y la subida del backup en el sistema espejo y en Amazon S3.
2.2.2 Configuración backup Subversion (backup-manager-subversion.conf)
Ahora veremos las opciones que debemos configurar para poder realizar backup`s de nuestro repositorio Subversion. Sabemos que el método de backup es del tipo incremental que vamos a lanzar todos los días de la semana excepto los sábados y domingos. Además el periodo que vamos a establecer para que backup-manager limpie de copias antiguas será de unos 31 días, debido a que la copia completa es mensual. El lanzamiento de esta tarea se hará como veremos más adelante con la herramienta cron.
Al establecer para el repositorio de subversion una política incremental no podemos utilizar el método específico que backup-manager dispone para este tipo de repositorio de código fuente. La razón reside en que el método de backup “svn “ utiliza la opción “dump“ del comando “svnadmin“ impidiendo que podamos realizar copias incrementales. De cualquier modo, os enseñaremos ha utilizar los dos modos:
2.2.3 Configuración con el método svn
El script que lanza backup-manager antes de realizar el backup sería:
El script que lanza backup-manager despues de realizar el backup sería:
2.2.4 Configuración con el método tarball-incremental
2.2.5 Configuración backup: servidor web, servidor aplicaciones y base de datos. (backup-manager-servidores.conf)
Como podéis ver, se ha utilizado un único fichero para realizar el backup de estos tres servidores. En él se ha indicado que se deben lanzar scripts de montaje y desmontaje de los directorios donde se encuentran el servidor web y de aplicaciones y que las copias son completas con una frecuencia semanal y un TTL de 7 días. Una alternativa a esta configuración, consistiría en realizar la copia del servidor web y aplicación a través de ssh. El problema es que esta solución es más complicada y nos obliga a crear varios ficheros de configuración
El script que lanza backup-manager antes de realizar el backup sería:
El script que lanza backup-manager despues de realizar el backup sería:
2.3 Configuración Cron
Finalizados los ficheros de configuración procedemos a configurar cron. Para el fichero que hace el backup del repositorio subversion debemos lanzar todos los días de la semana excepto los fines de semana el comando “backup-manager -c /etc/backup-manager-subversion.conf” con el usuario “root”. Mientras que para la copia de los servidores web, aplicación y base de datos se debe lanzar los lunes de cada semana el comando “backup-manager -c /etc/backup-manager-servidores.conf” con el usuario “root”.
Ejecutamos el comando “crontab -e”, añadimos las siguientes líneas y guardamos el fichero:
3 Conclusiones
En la vida que nos ha tocado vivir, la información es un elemento importante en el día de día de cualquier empresa. Desde Autentia (www.autentia.com), recomendamos realizar copias de seguridad que reduzcan en la medida de lo posible la perdida de información por cualquier tipo de fenómeno. Las herramientas de backup y en concreto backup-manager nos proporciona los medios para elaborar copias que pueden en un momento dado ayudar a recuperarnos de cualquier problema de perdida de datos.