Taller Bacula / The Open Source Network Backup Solution
Taller sobre Bacula (www.bacula.org), herramienta de backup open source impartido por Francisco Javier Funes Nieto (@canonigos) en la ETSIIT - UGR dentro de las Jornadas "Los Lunes al OSL" de la Oficina de Software Libre de Granada.
your computers. Bacula: The Network Backup Solution Proyecto de Software Libre Bacula es una solución de backup en red centralizado diseñado para funcionar en distintos sistemas operativos (*BSD, Linux, Mac OSX, Unix y Windows). Tiene funciones de tipo empresarial y se distribuye bajo licencia AGPL v3. El proyecto está liderado por su creador Kern Sibbald y actualmente cuenta con una amplia comunidad de desarrolladores y colaboradores, así como de usuarios.
your computers. Bacula: The Network Backup Solution Backup Dracula Bacula Historia 01/2000 Nace el Proyecto 04/2002 Primera release en Source Forge (1.16) 06/2006 Versión 1.38.11 01/2007 Versión 2.0.0 08/2007 Versión 2.2.8 04/2009 Versión 3.0.0 01/2010 Versión 5.0.0 02/2013 Versión 5.2.13
your computers. Bacula: The Network Backup Solution Backup No hago o no me acuerdo, o no me importa De vez en cuando, en CD o DVD Una vez al mes en tar.gz Algunas veces utilizo rsync Tengo mis propios scripts que hacen el trabajo sucio Sistema de Backup
your computers. Bacula: The Network Backup Solution Problemas Backup ¿ Cómo sabes que ficheros recuperar ? ¿ Cómo vuelves a un punto en el tiempo ? ¿ Dónde están los ficheros y en qué medio físico ? ¿Y si tuvieses 2000 equipos ? ¿ Cuánto tiempo pierdes en recuperar datos ?
your computers. Bacula: The Network Backup Solution Solución: Bacula Gestión Centralizada Software Libre (AGPLv3) Backup y Restauración en Red Múltiples Plataformas (*BSD, Linux, Mac OSX, Unix y Windows) Distintos tipos de medios (Cinta, Disco, USB, CD/ DVD) Confiable, seguro y estable Sabe Qué, Dónde, y Cuándo fue guardado nuestro backup Te permite restaurar sólo los ficheros que tú quieres Restauración en un punto del tiempo Fácilmente escalable Sistema de alertas e informes vía correo electrónico
your computers. Bacula: The Network Backup Solution Componentes File Daemon (FD) Console Director (DIR) Storage Daemon (SD) Catalog Database Comandos de Usuario Autorización Atributos de Fichero Localización Almacenamiento Atributos de Fichero Localización Almacenamiento Comandos Atributos de Fichero + Datos PostgreSQL MySQL SQLite Medios físicos
your computers. Bacula: The Network Backup Solution Director (DIR) Controla y gestiona todo el proceso de Backup La entidad básica es el Job (Un cliente, un conjunto de ficheros, una agenda, un destino…) Programa, inicia y supervisa todos los Jobs Mantiene el Catalog (Base de datos) Normalmente solo existe uno, pero puede haber más según envergadura de la instalación
your computers. Bacula: The Network Backup Solution File Daemon ó Cliente (FD) Ejecuta el backup, la restauración y la verificación ordenadas por el Director Instalado en cada máquina cliente como servicio (daemon) Se comunica a través de red con el Director y Storage Daemon Necesita acceso a todos los ficheros que vayan a ser copiados (root, SYSTEM) Normalmente un FD por máquina, múltiples FD’s por Director
your computers. Bacula: The Network Backup Solution Storage Daemon (SD) Lee y escribe datos en el medio físico (Disco, Cinta,USB, etc) Acepta órdenes y autorizaciones del Director Acepta y devuelve datos desde/hacia los File Daemons (FD) Envía información de dónde está guardada la información al Director -> Catalog Normalmente uno por Director pero con distintos Devices (Dispositivos)
your computers. Bacula: The Network Backup Solution Console Permite a los usuarios y al administrador gestionar Bacula Se comunica con el Director mediante la red Permite iniciar Jobs, revisar la salida de un Job, y mandar consultas y modificar el Catalog Disponibles: • bconsole • bat • bacula-web • bweb Consolas con restricciones de acceso permiten a los usuarios restaurar sus propios archivos
your computers. Bacula: The Network Backup Solution Catalog Es el único componente no escrito por el equipo de Bacula Base de datos SQL (MySQL, PostgreSQL, SQLite) Guarda el resultado de la ejecución de los Jobs, el uso de los volúmenes, la localización de los ficheros, etc… Permite una rápida restauración de datos Permite la ejecución de consultas para saber dónde y cuándo fueron guardados nuestros datos Los datos que caducan son borrrados automáticamente por el Director Soporta varias bases de datos para poder escalar
your computers. Bacula: The Network Backup Solution Características Servidor centralizado con base de datos y backup distribuído Todos los componentes se comunican vía red Agenda interna para automatizar la ejecución del backup y su prioridad Restauración Interactiva • Copia Actual • Copia de la fecha DD/ MM/AAAA Restauración Interactiva (cont). • Lista de ficheros y directorios • Restaurar un JobId
your computers. Bacula: The Network Backup Solution Características (cont.) Administración simplificada mediante distintas consolas Volúmenes con nombre para prevenir sobreescritura de backup Soporte de etiquetas ANSI/IBM Volúmenes con formato independiente de la máquina/sistema operativo, extensibles. Soporte Unicode en Win32 / UTF-8 en Unix/ Linux
your computers. Bacula: The Network Backup Solution Características Hardware Los Backups pueden ocupar varios Volúmenes Múltiples backups por volumen (Distintos Jobs, Clients y Sistemas Operativos) Soporte de gran cantidad de dispositivos de cinta Soporte de gran cantidad de Librerías de Cinta Soporte de lectura de código de de barras Amplia gestión de Pools y Volúmenes Rápida restauración en comparación con otros métodos (tiempos << tar)
your computers. Bacula: The Network Backup Solution Características de Seguridad Autorización entre servicios (daemons) mediante CRAM-MD5 Tanto Director como Storage Daemon pueden funcionar con usuarios no- privilegiados (non-root) Firmas MD5 o SHA1 por cada fichero en el sistema Suma de control CRC para cada Volumen Consolas y monitores del sistema de acceso restringido. Comunicaciones encriptadas mediante TLS Datos encriptados mediante PKI Verificación de la integridad de los datos
your computers. Bacula: The Network Backup Solution Bacula: Qué es un Job Un Job o trabajo de copia es la unidad básica de trabajo dentro de Bacula y consta de los siguientes elementos: Name (único) • Es el nombre del trabajo, nos sirve para definir el trabajo de copia. (p.ej.: htdocs_www) Type • Tipo de Trabajo: Backup, Migrate, Admin, Restore, Copy Level • Nivel del tipo de copia: Full, Differential, Incremental, VirtualFull FileSet • Qué ficheros guardaremos Storage • Dónde guardaremos los ficheros Pool • Qué conjunto de volúmenes usaremos (Disk, Tape) Schedule • Cuándo haremos la copia
your computers. Bacula: The Network Backup Solution Configuración de Bacula: bacula-dir.conf Director { Name = bacula-‐dir Query File = “/usr/local/etc/query.sql” Working Directory = “/var/bacula” PID Directory = “/var/run” Maximum Concurrent Jobs = 20 Password = “secret” Messages = Standard } Job { Name = ”htdocs_www” Type = Backup Client = www-‐fd FileSet = “htdocs_var” Storage = File Schedule = “CicloSemanal” Pool = Standard Messages = Standard Write Bootstrap = “/var/bacula/www.bsr” } Definición del Director, contraseña y otras características del mismo. Definición del Job: - Nombre = “htdocs_www” - Tipo = Backup - Cliente = Equipo www - Storage = File - Cuando = “CicloSemanal” - Conjunto de Volúmenes = Standard - Mensajes = Standard - Log = Fichero www.bsr
Client { Name = www-‐fd Address = www.canonigos.es Catalog = MyCatalog Password = “mipassword” File RetenRon = 30 days Job RetenRon = 6 months AutoPrune = yes Maximum Concurrent Jobs = 20 } Definición del Cliente, dirección, contraseña, Catalog que usará, tiempos de retención en Catalog de los datos acerca de los ficheros y trabajos de copia, auto borrado de datos cuando cumplan requisitos y número máximo de trabajos concurrentes que acepta el FD It comes by night and sucks the vital essence from your computers.
It comes by night and sucks the vital essence from your computers. FileSet { Name = ”htdocs_var” Include { Options { signature = SHA1 } File = /var/www } } Definición del FileSet, nombre, incluye el directorio /var/www y crearemos una firma SHA1 por cada fichero. FileSet { Name = ”Documentos_Usuario” Enable VSS = yes Include { Options { signature = SHA1 } File = “C:/Users/usuario/Documentos” } } Definición del FileSet, nombre, incluye el directorio C:/Users/usuario/ Documents y crearemos una firma SHA1 por cada fichero. También habilitamos el soporte para VolumeShadowCopyService de sistemas Win9x/WinXP * http://en.wikipedia.org/wiki/Shadow_Copy
It comes by night and sucks the vital essence from your computers. Schedule { Name = ”CicloSemanal” Run = Level=Full 1st sun at 2:05 Run = Level=Differential 2nd-5th sun at 2:05 Run = Level=Incremental mon-sat at 2:05 } Nuestro Job con el Schedule “CicloSemanal” se ejecutara: - Con un nivel de copia completa: El primer domingo de cada mes a las 2:05 - Con un nivel diferencial: Desde el segundo al quinto domingo de cada mes a las 2:05 - Con un nivel incremental: De lunes a sábado a las 2:05
Device { Name = File Archive Device = /var/backup Device Type = File Media Type = File Label Media = yes Label Format = “Backup-‐” Random Access = yes } Definición de un dispositivo (Device) con nombre File que guardará las copias en /var/backup, con acceso aleatorio y capaz de auto nombrar sus volúmenes mediante la etiqueta “Backup-” (Backup-001, Backup-002) It comes by night and sucks the vital essence from your computers. Device { Name = HP_STORAGEWORKS_920 Device Type = /dev/nst0 Media Type = LTO3 Label Media = yes Random Access = no AutomaRcMount = yes RemovableMedia = yes AlwaysOpen = no } Definición de un dispositivo (Device) con nombre HP_STORAGEWORKS_920 que guardará las copias en el dispositivo /dev/nst0 (Unidad de Cinta) sin acceso aleatorio (secuencial) y capaz de nombrar sus volúmenes, es un dispositivo que permite extraer sus medios físicos y que no siempre está abierto (necesita montaje aunque puede ser automático).
sucks the vital essence from your computers. Configuración de Bacula (cont.): bacula-fd.conf Director { Name = bacula-‐dir Password = “secret” } Definición del Director al que voy a dejar interactuar con el FD. FileDaemon { Name = www-‐fd FDPort = 9102 WorkingDirectory = /var/lib/bacula Pid Directory = /var/run Maximum Concurrent Jobs = 20 } Definición del FD, nombre, puerto de trabajo y número máximo de trabajos concurrentes.
sucks the vital essence from your computers. Desarrollo del Proyecto SiRo Web • h]p://www.bacula.org EsRlo de desarrollo • Proyecto en SourceForge • Guía para desarrolladores con pautas de esRlo • Acceso a código para desarrolladores mediante SVN/GIT • Parches y Commits revisados por Kern Sibbald • Código testeado por una suite de regresión • Lista de correo para desarrolladores (bacula-‐devel) Licencia • AGPLv3 (h]p://www.gnu.org/licenses/agpl.html) • The Freedom Task Force ( h]p://www.fsfe.org/projects/ef/ef.es.html)
sucks the vital essence from your computers. Recursos Para usuarios y administradores de sistemas • Manual: h]p://www.bacula.org/en/rel-‐manual/index.html • Reporte de errores: h]p://bugs.bacula.org/ • Lista de soporte: bacula-‐[email protected] • Wiki: h]p://wiki.bacula.org Para desarrolladores • Documentación: h]p://www.bacula.org/en/developers/index.html • Lista de correo para desarrolladores bacula-‐ [email protected] , bacula-‐[email protected] • SVN/GIT en SourceForge
sucks the vital essence from your computers. Créditos Gracias a: Dan Langlille que creó la presentación original Karl Cunningham que la actualizó Oficina de Soeware Libre de la Universidad de Granada Kern Sibbald creador del proyecto Bacula Una copia de ésta presentación puede encontrarse en el sitio de Bacula (bacula.org) en la sección de Presentaciones (Presentations)