Sei sulla pagina 1di 4

066-069_BaculaLinux10

09.09.2005

16:18

Uhr

Pgina

66

ADMINISTRACIN Bacula

Mejores Copias de Seguridad con el Sistema de Backup Bacula

EL PODER DEL BACKUP


ay polticas de backup de todas las formas y colores. Las polticas baratas usan simplemente scripts y en el peor de los casos invocan a las herramientas nativas del sistema operativo (tar, dd, cpio). Estas soluciones estn bien para las copias de seguridad locales con poco volumen de datos o para entornos con pocos clientes. Las polticas de backup de precio medio usan tcnicas mucho ms sofisticadas. Herramientas como rsync y Amanda son efectivas en muchos entornos, pero estas herramientas a menudo requieren las habilidades de scripts avanzados y tienen algunas limitaciones ocultas concernientes al tiempo, volumen y soporte hardware. Las herramientas a nivel empresarial eliminan muchas de estas restricciones pero normalmente tienen un alto precio. La excep-

Cuando las tareas de backup llegan a ser demasiado complicadas para un script, la herramienta de backup gratuita Bacula puede ser la respuesta. POR JENS-CHRISTOPH BRENDEL y MARC SCHCHLIN

cin que confirma la regla es Bacula [1], una utilidad de copias de seguridad gratuita que ofrece una gran variedad de caractersticas que normalmente estn asociadas a productos comerciales de alto precio. Bacula no es una aplicacin monoltica sino que es un conjunto de varios servicios junto con una interfaz de usuario. Los servicios tienen responsabilidades establecidas y utilizan la red para comunicarse. Este diseo distribuye la carga de trabajo con el control centralizado en la estacin de trabajo del administrador, con las cuentas manipuladas por un servidor de base de datos y el trabajo duro -es decir, la lectura y escritura de datosmanejado por un equipo de servicios de ficheros del lado cliente y servicios de almacenamiento en los servidores de backup. Por supuesto, se puede usar una nica mquina para mltiples funciones, lo que representa una arquitectura fcilmente escalable y flexible (Figura 1).

Liderazgo Central
El jefe a cargo del equipo formado por los servicios recibe el

nombre de director. El director sabe dnde hay que almacenar y dnde puede localizar los ficheros requeridos, si un usuario necesitara recuperar los ficheros perdidos. El director tambin conoce la planificacin, los clientes, la localizacin de los almacenes y los detalles de los trabajos planificados, aunque la copia de seguridad real se lleve a cabo por los servicios subordinados. El servicio director de Bacula tambin tiene la distincin de ser el nico servicio del sistema Bacula que es capaz de comunicarse con un usuario humano. El director almacena los detalles de la configuracin en un fichero ASCII (bacula-dir.conf) con las descrip-

66

Nmero 10

WWW.LINUX-MAGAZINE.ES

066-069_BaculaLinux10

09.09.2005

16:19

Uhr

Pgina

67

Bacula ADMINISTRACIN

Figura 1: Divide y vencers: Bacula distribuye la funcionalidad de las copias de seguridad por toda la red, pero utiliza un almacenamiento centralizado.

ciones de los recursos estructuradas jerrquicamente. El nodo raz de la jerar-

qua es un recurso que contiene la configuracin para cada tarea especfica.

Estas configuraciones de las tareas incluyen el tipo de tarea (backup, restore, verificacin o administracin), el tiempo de ejecucin o el nivel (para una copia de seguridad: completo, incremental o diferencial). Para simplificar las cosas, la mayora de los detalles estn agrupados en subrecursos, denominados directivas. Las caractersticas comunes de trabajos parecidos tambin pueden agruparse como recursos JobDefs para formar una clase de tarea, que otras descripciones de tareas pueden referenciar. Esta solucin simplifica el fichero de configuracin y ahorra espacio. Por ejemplo, el tipo de recurso Schedule define la planificacin que ejecuta tareas a intervalos especficos y soportan casi cualquier clase de planificacin. El recurso FileSet lista los directorios y ficheros que se tiene planeados salvar. Los directorios se manipulan recursivamente, lo que quiere decir que la / nos permite especificar la forma ms simple y completa de backup, aunque

El Futuro
Bacula es sin duda el sistema de backup de cdigo abierto que se puede usar en entornos a gran escala para cubrir las necesidades profesionales. La herramienta de backup es sin duda adecuada para usarse con sistemas en produccin, pero an existen algunos elementos que debern mejorarse en futuras versiones: * Seguridad: Actualmente, no hay soporte para los backups encriptados por parte de los servicios. Dicho de otro modo, un atacante podra fisgonear el trfico de la red local para acceder a los datos que se estn salvando. Esto es especialmente delicado en entornos donde se manejen datos confidenciales o cuando un proveedor externo desee ofrecer servicios de backup. Como medida de seguridad se puede establecer un tnel SSH para encriptar la comunicacin entre los servicios de ficheros y el director. En entornos Windows, al menos, sera interesante incluso instalar un antivirus. Las soluciones para este problema se estn teniendo en cuenta en este momento. * Grandes Bibliotecas: Aunque varias tareas de backup puedan ejecutarse simultneamente, todava hay necesidad de mejorar el procesamiento en paralelo. Por ejemplo, un servicio de ficheros no puede usar multiplexado para proporcionar datos a mltiples servicios de almacenamiento, aunque esta configuracin mejorara el rendimiento para grandes volmenes de datos. Los grupos de dispositivos que pueden asignar estticamente varios dispositivos para una tarea concreta y permitir que la tarea seleccione cualquier dispositivo del grupo, no est soportada actualmente. Tampoco hay soporte para asignar dinmicamente los dispositivos no ocupados para las tareas pendientes. Esto hace que sea difcil que una biblioteca con mltiples lectores de cintas se ponga a mximo rendimiento. * GUI: Actualmente no se dispone de ninguna interfaz grfica. Aunque se han intentado varias soluciones, no han pasado de ser simples mens en formato texto. Por ejemplo, un administrador de ficheros para la seleccin basada en una GUI o un calendario para ayudar a establecer la planificacin seran tiles. No hay ningn asistente de configuracin que ayude a los administradores. Los gurs Unix experimentados puede que no se preocupen por esto, pero hoy en da, la lnea de comandos es todo un reto para los usuarios, que optarn por productos que les proporcionen ayuda en lnea y la posibilidad de apuntar y hacer clic con el ratn. * Backups Online: No se dispone de mdulos para realizar backups online de bases de datos. Tampoco hay forma de hacer backups de aplicaciones que tengan ficheros abiertos y los bloquee para impedir que accedan otros. El director compensa esto, en parte, permitiendo que se puedan ejecutar scripts tanto en el lado cliente como en el servidor y tanto antes como despus de realizar una tarea, lo que permite que se puedan parar y reiniciar las aplicaciones en cuestin. Tanto las tareas de backup como de restauracin pueden usar FIFOs como fuentes o destino de datos, es posible manejar datos de aplicaciones en ejecucin sin tener que acceder a los ficheros. Esto es una alternativa interesante, aunque no puede reemplazar una solucin de backup online completa. * Extras: Los sistemas de backup comerciales proporcionan a los usuarios varios extras que Bacula no posee. Por ejemplo, los sistemas comerciales a menudo proporcionan el clonado de los soportes de grabacin para mitigar los efectos de los errores irrecuperables de lectura, as como de herramientas para gestionar la recuperacin de sesiones interrumpidas.

WWW.LINUX-MAGAZINE.ES

Nmero 10

67

066-069_BaculaLinux10

09.09.2005

16:19

Uhr

Pgina

68

ADMINISTRACIN Bacula

probablemente prefiera excluir algunos directorios como /tmp o ficheros ocultos como .journal o .fsck. El sistema de backup tan slo traspasar la frontera del sistema de ficheros cuando se le indique explcitamente. La configuracin por defecto lo mantiene en el sistema de ficheros actual para evitar el dao que pudiera ocasionar al entrar en bucles infinitos o salvar servidores de ficheros de forma inadvertida. Si se desea mantener esta medida de seguridad habr que enumerar cada sistema de fichero local que el cliente tenga montado para poder realizar un backup completo. Desde luego, Bacula tambin soporta tareas ms complejas. Por ejemplo, se puede referenciar a una lista externa de ficheros, a expresiones de la shell o scripts que produzcan listas de copias de seguridad en tiempo de ejecucin. Se entiende por comandos shell en lnea a los caracteres de escape no estndar y a los espacios en blanco, los scripts son la opcin ms sencilla. Imagnese que se quiere realizar una copia de seguridad de todos los ficheros de configuracin del directorio /etc y de todos los ficheros ocultos y directorios en el directorio home del usuario jcb. El siguiente mini-script se encargara de realizar la tarea de backup:
#!/bin/sh find /home/jcb U -maxdepth 1 -name ".*" find /etc -name "*.conf

Figura 2: GConsole no proporciona una GUI, pero al menos facilita una consola grfica con varios mens que hace que no necesite una ventana de terminal.

ellas. Bacula soporta varios robots de cintas, tambin llamados autocambiadores o autocargadores con dispositivos DAT, VXA2, DLT, LTO y AIT. La herramienta Mtx [2] que Bacula utiliza para controlar las bibliotecas de cintas soporta incluso etiquetas de cdigos de barras, que permiten al robot identificar una cinta sin tener que cargarla en el lector. En algunos casos (por ejemplo, cuando las cintas han sido colocadas a mano en la biblioteca) las cintas tienen que ser realineadas a sus posiciones previas. Si esto ocurre, el soporte de cdigo de barras, sin duda, valdr la pena.

Catlogos
Cuando Bacula graba un fichero en una cinta, adems, guarda detalles como su tamao, sus atributos, su firma, la fecha de la ltima modificacin o la fecha y la localizacin de la copia en una base de datos denominada catlogo. Este directorio es el tercer punto que hace que Bacula sea diferente de los scripts, permitiendo la restauracin de ficheros individuales sin la necesidad de leer el archivo completo. Los ficheros que se desean restaurar pueden ser simplemente seleccionados referenciando los metadatos, que incluyen la posicin de los ficheros requeridos en las cintas. No hay necesidad de leer la cinta secuencialmente de cabo a rabo; por el contrario, Bacula puede posicionar la cinta (al menos al principio de la tarea). Adems, el catlogo almacena un historial de todas las tareas de backup. Bacula puede usar cualquier base de datos SQL para las tareas de gestin. El paquete incluye scripts de configuracin para PostgreSQL, MySQL y SQLite. El soporte de estas bases de datos SQL populares permite a los administradores hacer copias de las bases de datos y acceder a ellas manualmente si las cosas empeoraran. Una prdida o un catlogo inconsistente son algunos de los problemas ms crticos que pueden afectar a un sistema de backup. Para mitigar el efecto de la prdida del catlogo, el paquete Bacula incluye scripts que almacenan el catlogo en un fichero ASCII cuando una tarea se est realizando. Si algo fuera mal, por lo menos, la versin previa se recuperar fcilmente. Casualmente, se puede usar el directorio de Bacula para almacenar ficheros que realicen una deteccin sencilla de

enlazan una aplicacin activa con el backup. Este nivel inusual de flexibilidad tiene un precio: la seleccin de fuentes es mucho menos intuitivo que dejar a un administrador que seleccione los ficheros desde una interfaz basada en GUI. Una combinacin basada en ambas soluciones sera ideal.

Inclusin de Grupos
Otra directiva de configuracin define grupos de volmenes y adems se establecen independientemente. Un grupo est formado por varias cintas de forma lgica, permitiendo de esta forma que puedan exceder la capacidad de una simple cinta fsica. Cuando el backup llega al final de una cinta, Bacula contina con la tarea en la siguiente cinta disponible del mismo grupo. Esta solucin permite reciclar cintas antiguas en el grupo despus de un perodo configurable de tiempo. Los recursos de grupo estn controlados por varias configuraciones. Por ejemplo, el perodo de espera para la reutilizacin del soporte o el nmero mximo de ciclos de vida. Estas configuraciones se aplican a todas las cintas del grupo, los administradores no tienen que establecer las preferencias para cada soporte del grupo, aunque esta opcin est disponible. La asignacin de las cintas a diferentes grupos tambin ayuda a organizar las cintas por tipo de uso, evitndose la mezcla o incluso la sobreescritura de cintas usadas en copias completas o en copias incrementales. Se puede incluso definir grupos para clientes individuales, das de la semana, etc. El cambio automtico de cintas supone que se dispone de una biblioteca de

En el siguiente ejemplo, el FileSet se definira como sigue:


FileSet { name = "ConfigSet" include { Options { signature = MD5 } File = U "|/etc/bacula/confbackup.sh" } }

Adems de usar ficheros, listas o scripts, los administradores pueden especificar dispositivos como entrada de datos (aunque estos dispositivos tan slo pueden ser montados en formato de slo lectura). Y finalmente, el backup puede incluso leer datos desde fuentes FIFOs, que

68

Nmero 10

WWW.LINUX-MAGAZINE.ES

066-069_BaculaLinux10

09.09.2005

16:19

Uhr

Pgina

69

Bacula ADMINISTRACIN

intrusiones con Tripwire o Aide. Dos funciones integradas, que pueden ser ejecutadas independientemente de las caractersticas de backup o recuperacin, estn diseadas para recuperar metadatos para compararlos con los sistemas de ficheros. Se pueden detectar modificaciones no autorizadas.

El Equipo
Por supuesto, un director no es nadie sin su plantilla. En Bacula, el director manda sobre dos grupos de subordinados: uno o varios servicios de almacenamiento y varios servicios de ficheros. Estos ltimos se ejecutan en el lado cliente y utilizan la red para suministrar los datos a los servidores de almacenamiento. Es aqu donde los servicios de almacenamiento se ejecutan, soportando cintas o bibliotecas. Si fuera necesario, el servicio de almacenamiento tambin puede hacer backups sobre discos y esto puede ser til para las soluciones intermedias de almacenamiento de las ltimas copias en discos duros. Los servicios de ficheros estn disponibles para Linux, para la mayora de los sistemas operativos basados en Unix (por ejemplo, Solaris, AIX, HPUX, FreeBSD e incluso MacOS X) y todas las versiones de Windows. Esto ms o menos elimina la necesidad del uso de Samba o NFS, aunque ambos estn soportados.

Marcha Atrs!
La recuperacin de datos reinvierte el proceso de backup. Cuando se le dice al director que lo haga, el servicio de almacenamiento enva los ficheros solicitados al servicio de ficheros, que se encarga de almacenarlos en el cliente. Los ficheros no se restauran a sus posiciones originales; sino que se crea un nuevo rbol de ficheros en un directorio especial. La configuracin de la tarea de recuperacin puede especificar cual va a ser este directorio; por supuesto, el sistema de ficheros tiene que tener el espacio suficiente para almacenar dichos ficheros. Por defecto es /tmp/bacula-restores. Se puede modificar este comportamiento especificando el directorio raz como el destino de la recuperacin. Esto hace que los ficheros se restauren a sus localizaciones originales. Una aclaracin en este punto: Bacula no tiene una poltica de resolucin de conflictos. Si un

fichero que se est restaurando ya existe en el directorio de destino, dicho fichero ni se protege ni se renombra, simplemente se reemplaza y esto puede ser que no se desee. Hay varias formas de seleccionar los ficheros que se desean restaurar. Todas ellas pasan por recorrer un rbol de directorios virtual que contienen todos los Figura 3: JBacula, un proyecto desarrollado independienteficheros almacenados en la mente, ayuda a configurar el servicio de directorios. cinta. Se puede navegar por este rbol usando los comandos UNIX tpiEsta tcnica no es lo suficientemente cos (cd, ls, pwd, ). Y habr que utilizar granular como para permitir a cada algunos comandos para marcar los ficheros usuario que pueda restaurar sus propios y directorios que se desean recuperar (de ficheros sin tener que pedrselo al adminuevo, una interfaz basada en GUI sera nistrador, pero permite delegar dentro de una buena alternativa). un grupo administrativo. Como un servicio especial, Bacula perEn muchos casos, el pedirle a un mite combinar el ltimo backup compleusuario que restaure datos es mucho to para un cliente y todos los backups ms que un reto, ya que Bacula no disincrementales subsecuentes en esta pone de una interfaz en la que se pueda vista. Incluso se puede restringir la selecapuntar y hacer clic. Herramientas cin a todos los ficheros que se hayan como Wxconsole y Gconsole proporciosalvado antes o despus de una determinan unos cuantos mens que eliminan nada fecha. la necesidad de memorizar y teclear los Las versiones actuales de Knoppix [3] comandos, pero an as disponen de incluyen un servicio de ficheros de Bacula una lnea de comandos para poder ejey una consola, lo que hace que Bacula sea cutar comandos que no son posibles muy til como una solucin simple para la llevarlos a cabo de otra forma. La recuperacin tras un desastre, suponiendo herramienta basada en Java JBacula que se sepa cmo se tiene particionado [4], que es un proyecto separado, procada disco que se haya salvado y tambin porciona plantillas y utilidades que se tengan, en una localizacin diferente, facilitan la configuracin del servicio los ficheros de control de Bacula. Un CD de directorios. de recuperacin de Bacula, para intentar Conclusiones recuperar un sistema despus de un fallo completo, no funcionar con los ltimos Los administradores que no le tengan kernels de Linux (2.6.x), aunque se est miedo a la lnea de comandos encontratrabajando en ello. rn que Bacula es una herramienta muy til, extremadamente flexible y con Designacin de caractersticas profesionales. Bacula conResponsabilidades tiene una buena documentacin y se El acceso a la consola de Bacula est integra fcilmente en entornos con sisteI gobernado por los permisos de ejecucin mas heterogneos. del usuario: la aplicacin no solicita a los usuarios que se autentiquen y no soporta RECURSOS diferentes niveles de privilegios para los [1] Sitio web de Bacula: http://www. usuarios. Sin embargo, se pueden confibacula.org gurar variantes de la aplicacin de la [2] Mtx para el control de Bibliotecas: consola tan slo soporten tareas especfihttp://mtx.badtux.net cas o subconjuntos de comandos, [3] Knoppix con Bacula: http://www. FileSets, grupos de soportes o dispositiknopper.net/knoppix/index-en.html vos. Esto permite a los administradores [4] JBacula: http://jbacula.sourceforge. tener un margen para poder disponer de net una gestin de usuarios.

WWW.LINUX-MAGAZINE.ES

Nmero 10

69

Potrebbero piacerti anche