Análisis de aplicación: Bacula

Este documento ha sido elaborado por el Centro de excelencia de software libre de Castilla La Mancha (CESLCAM). Copyright © 2010, Junta de Comunidades de Castilla-La Mancha. Este documento se distribuye bajo los términos de la licencia Creative Commons by-sa. http://creativecommons.org/licenses/by-sa/2.5/es/ Estas acciones han sido financiadas por la Junta de Comunidades de Castilla-La Mancha, a través del Programa de Isabel Torres cofinanciados por Sepecam y el Fondo Social Europeo. En este análisis ha colaborado para su elaboración la empresa Area Project Solutions, experta en servicios de infraestructura e internet. http://www.areaproject.com/Descargar análisis de aplicación en formato PDF (ventana nueva) Descargar Anexo al análisis en formato PDF (ventana nueva)

DATOS TECNICOS

Nombre: Bacula Versión: 5.0.1 Licencia: GPL v2 y LGPL (ver apartado del análisis) Plataforma: Linux, Unix, Mac y Windows Idioma: Multilenguaje, incluye español Web oficial: http://www.bacula.org/ Manual: http://www.bacula.org/5.0.x-manuals/en/main/main/index.htmlDescripción básica: Bacula es una solución basada en software libre que gestiona la copia de seguridad centralizada en un servidor, de las diferentes máquinas de una red independientemente del sistema operativo.FUNCIONALIDAD
  • Copias de seguridad en red

    Bacula actúa como un director de copias, guardando un catálogo de todos los ficheros relevantes que deben ser copiados y realizando las copias de forma completa o bien solo de los cambios ocurridos desde una fecha concreta. Para depositar las copias, este producto puede utilizar diversos dispositivos los cuales pueden ser añadidos sin límite y pueden ser desde unidades de discos, volúmenes NAS/SAN, unidades de cinta, librerías y autocargadores, etc. Permite salvaguardar los datos clientes, transmitiéndolos a través de la red local o incluso Internet. La información circula y se almacena de forma totalmente segura gracias a la integración de algoritmos de cifrado y certificados digitales. Su objetivo es hacer copias de respaldo de cualquier sistema intentando abarcar casi todas las plataformas, y ser compatible con el mayor abanico de hardware y dispositivos de almacenamiento.

  • Director

    Bacula está formado principalmente por 5 módulos o servicios, el primero y más importante es el Director. El Director es un programa servidor que supervisa todas las funciones necesarias para las operaciones de copia y posterior restauración. Es el eje central de la solución y en él se declaran todos los parámetros necesarios, siendo el módulo más difícil de configurar. Es el programa que el administrador de sistemas usará para realizar copias, planificarlas y restaurarlas; también permite recuperar un archivo en cualquier punto del tiempo. Se ejecuta como un proceso demonio en el servidor.

  • Storage

    Este módulo es un programa que gestiona las unidades (discos, bandas magnéticas, etc) donde se almacenarán los datos. Bacula es compatible con múltiples volúmenes y múltiples configuraciones de copia en cada uno de ellos, además de ser escalable incluso para manejar 2.000 equipos. Storage es el responsable de escribir y leer en cada uno de los medios que se utilizarán para las copias de seguridad. Se ejecuta como un "demonio" en la máquina propietaria de los medios utilizados; en muchos casos será en el propio servidor.

  • File

    El módulo File es conocido comúnmente como el "cliente", instalado en cada máquina a salvaguardar y es específico al sistema operativo donde se ejecuta. Es el responsable para enviar el servicio Director los datos cuando éste los requiera. Este servicio se ejecuta como un demonio en las máquina donde se realizan respaldos.

  • Catalog

    Catalog es el software encargado de la base de datos, que almacena la información necesaria para localizar donde se encuentran los datos salvaguardados de cada archivo y en qué cliente. Permita a los administradores y usuarios localizar de manera rápida cualquier objeto y recuperarlo, además de conocer otros datos como cuándo y dónde fueron realizados los backups. Las bases de datos soportadas son MySQL, PostgreSQL y SQlite.

  • Console

    La Consola es el programa que permite la interacción entre el administrador del sistema y el módulo principal Director, de manera que se accede a todas las funcionalidades de Bacula. Originalmente era un programa en modo texto, que sigue siendo válido, aunque hay interfaces gráficas disponibles como BAT que hacen el manejo muy simple y otras interfaces web

Fallos y/o carencias importantes Bacula es una herramienta de copia y restauración de datos, pero no una solución mágica infalible en caso de desastre en un sistema o un servidor. Si hay una pérdida de datos masiva, Bacula puede ser una pieza importante dentro de un plan donde se hayan previsto posibles problemas y se hayan seguido adecuadamente las instrucciones de la aplicación. Otros aspectos a comentar es que los nombres de los dispositivos que maneja Bacula (volúmenes, equipos, discos, etc) tienen un límite de 127 caracteres -no así los nombres de ficheros-, o que puede haber restricciones en la gestión de copias realizadas desde clientes de otras arquitecturas, ya que aunque en general se aceptan de todo tipo, hay ficheros específicos de arquitecturas como pueden ser los ficheros "door" de Solaris, o sistemas de ficheros incompatibles entre arquitecturas diferentes. USABILIDADDiseño de la interfaz Bacula originalmente fue pensada como una aplicación en modo texto por línea de comandos, por lo que carece propiamente de cualquier tipo de interfaz gráfico de usuario. A pesar de ello, han ido aparecido con los años diversas interfaces gráficas para manejar la aplicación también con ratón y hacer más accesible la visibilidad de la información. La principal de las interfaces es BAT (Bacula Admin Tool) [1], aunque existen otras tanto para Gnome como para Windows e incluso interfaces web [2]. Facilidad de uso Bacula es una herramienta en principio solo para expertos o usuarios avanzados en la propia aplicación, o para administradores de sistemas con conocimientos de redes, servidores y clientes, sobre todo en el proceso de instalación que puede ser algo complicado. Además el modo terminal por órdenes de comando es poco accesible en general y solo para conocedores en profundidad de la aplicación. Las interfaces gráficas de usuario disponibles en cambio facilitan mucho las tareas de monitorización, visualización de estadísticas, planificación de copias, gestión de dispositivos, restauración de archivos, etc. Por lo que una vez instalada la aplicación podría ser manejada con relativa facilidad por un administrador de sistemas. Accesibilidad Bacula no está dotado especialmente con funciones de fácil acceso para personas con problemas de accesibilidad de cualquier tipo, menos aún en su versión de solo texto. Las interfaces gráficas de usuario facilitan las tareas de administración siendo más simples y visuales, pudiendo éstas integrarse perfectamente con cualquier tecnología de asistencia del sistema operativo. La interfaz web puede integrarse con cualquier opción relacionada con el navegador de internet.  PORTABILIDAD / ADAPTABILIDADPlataformas disponibles Bacula es una aplicación multiplataforma que funciona en GNU/Linux y sus principales distribuciones, así como en la mayoría de versiones de Windows y en Mac OS X. Para más información hay una tabla con los sistemas operativos soportados y algunas aclaraciones [3]. Los requisitos mínimos pueden consultarse también [4]. Bacula actualmente soporta tres tipos de bases de datos: MySQL, SQLite y PostgreSQL. Han sido elegidas por un conjunto de funcionalidades que engloban indexado rápido, consultas arbitrarias y seguridad. Plugins Bacula tiene disponibles dos plugins principales, además de documentación acerca de la creación y configuración de nuevos plugins y API's. El primer plugin que es incluido dentro de la instalación de Bacula es bpipe, es un plugin genérico que permite a una aplicación externa tomar el control de la funcionalidad de Bacula para realizar copias y restauración de un archivo. El propósito del plugin es servir de interfaz a otros programas para realizar backups. Otro plugin de los más útiles en cuanto a funcionalidad es el de Microsoft Exchange, también incluido en el código fuente de Bacula. Este plugin permite realizar unas copias de Exchange más adaptadas a la propia estructura y organización de la aplicación. La información sobre los plugins y su funcionamiento técnico está disponible en el sitio web oficial [5].  LICENCIA / DISTRIBUCIONLicencia La mayor parte del código de Bacula está licenciado bajo la licencia GPL v2 (GNU General Public License, version 2), cuyos términos se pueden consultar [6]. Resumidamente define a la aplicación como software libre, con libertad de uso, modificación y distribución. También hay partes del código de Bacula bajo la licencia LGPL, esto quiere decir que otras aplicaciones, libres o no, pueden enlazar dinámicamente con ese código de Bacula para utilizar ciertas funcionalidades. Forma de distribución La aplicación está disponible para descargar de forma gratuita y en código fuente (bajo las licencias antes comentadas) a través del portal oficial en la zona de descargas [7]. Con el código fuente y la base de datos necesaria, puede compilarse e instalarse en cualquier sistema, aunque puede resultar algo engorrosa la configuración de todos los módulos. Se adjunta junto al análisis para descargar un anexo sobre la instalación de Bacula con ejemplos e instalación en Windows y Linux a través del código fuente. Además, hay paquetes especiales de fácil instalación para Windows o paquetes .rpm para linux. Aunque no están listados, la aplicación también dispone de paquetes .deb en diversos módulos que pueden descargarse en los repositorios de Debian. La organización empresarial detrás de la comunidad de Bacula, Bacula Systems, es la encargada de ofrecer el soporte oficial, formación y servicios [8]. Cuentan con partners alrededor de todo el mundo. Licencia de módulos/extensiones Los plugins de Bacula comentados comparten la misma licencia que la aplicación ya que se incluyen en el propio código de fuente principal de la herramienta. RENDIMIENTOEquipo de pruebas Sistema operativo: Molinux 5.2 Montesinos Procesador: Dual-Core AMD Opteron 1218 Memoria: 2 GB de RAM Tarjeta Gráfica: nVidia Quadro FX 1500 Consumo de memoria El rendimiento de una aplicación cliente-servidor como Bacula depende de varios factores que hacen difícil el hacer un análisis de consumo. Hay diversos factores a tener en cuenta como el tipo de servidor del Director, la carga de trabajo, el volumen de las copias y el tráfico, y el tipo de clientes así como sus dispositivos. Velocidad de ejecución En cuanto a velocidad hay que ceñirse a unas condiciones similares a las anteriores, ya que dependerá de la carga del servidor y del tráfico y volumen de datos.  DOCUMENTACION La comunidad de Bacula mantiene un gran manual de la aplicación con toda la documentación posible sobre Bacula [9]. Se explica detalladamente qué es la herramienta y cómo funciona, sus diferentes módulos y funcionalidades, etc. También se encuentra documentación técnica para desarrolladores (por ejemplo funcionamiento de API's o cómo crear plugins), así como distintos tutoriales de uso. El punto negativo es que visualizando el manual en "español", apenas un 5% está traducido, como la descripción de la aplicación o los requisitos que necesita. El anexo que se adjunta para descargar en el análisis contiene información sobre la herramienta en castellano así como un tutorial de instalación. También se encuentran otra documentación [10] por versiones de la aplicación, como son especiales de instalación, uso por comandos o guía de desarrollo. La documentación también se encuentra disponible en una wiki [11] estructurada de otra manera, aunque no totalmente. COMUNIDADNúmero de usuarios Bacula es posiblemente la mejor solución empresarial software libre para copias de seguridad y restauración de equipos en red. Ello lo acreditan por ejemplo algunas de las grandes entidades que utilizan Bacula y que aparecen como testimonio en la web [12]. En apenas un mes la última versión 5.0.2 lleva acumuladas unas 30.000 descargas solo en código fuente, y por ejemplo el paquete para Windows unas 13.000. Habría que sumar también descargas desde otros repositorios como los de Debian. Foros y portales de ayuda Aparte de la opción del soporte comercial ya comentada, la comunidad Bacula pone a disposición de los usuarios listas de correo específicas [13] según los intereses de cada uno, habiendo listas de bugs, anuncios, desarrolladores e incluso para franceses o españoles. También existe un canal #bacula en el irc en el servidor Freenode. Contribuciones Las dos formas más directas para ayudar al proyecto de Bacula son reportar bugs [14] y hacer donaciones [15] mediante PayPal. Frecuencia de versiones Bacula es una aplicación que se actualiza con regularidad para corregir errores o añadir nuevas funcionalidades o compatibilidades. Desde la salida de la versión estable 5.0 en Enero de 2010, han aparecido en Febrero una versión 5.0.1 y en Abril una 5.0.2, por lo que está en constante desarrollo. REFERENCIAS [1] - http://wiki.bacula.org/doku.php?id=bat [2] - http://wiki.bacula.org/doku.php?id=3rd_party_addons [3] - http://www.bacula.org/en/dev-manual/main/main/Supported_Operating_Systems.html [4] - http://www.bacula.org/en/dev-manual/main/main/System_Requirements.html [5]-http://www.bacula.org/manuals/en/concepts/concepts/New_Features_in_3_0_0.html#SECTION005180000000000000000 [6] - http://www.gnu.org/licenses/gpl-2.0.html [7] - http://www.bacula.org/en/?page=downloads [8] - http://www.baculasystems.com/ [9] - http://www.bacula.org/manuals/es/concepts/concepts/Bacula_Concep_Overvi_Guide.html [10] - http://www.bacula.org/es/?page=documentation [11] - http://wiki.bacula.org/doku.php [12] - http://www.bacula.org/en/?page=testimonial [13] - http://www.bacula.org/en/?page=maillists [14] - http://www.bacula.org/en/?page=bugs [15] - http://www.bacula.org/en/?page=makedonation