4 \chapter{El estado actual de Bacula}
6 \index[general]{Estado actual de Bacula }
8 En otras palabras, que está y que no está implementado y funcional..
10 \section{Que está implementado}?
11 \index[general]{Implemented!What}
12 \index[general]{Que está implementado?}
15 \item Control de trabajos (jobs)
18 \item Respaldos y restauraciones en red con un director centralizado.
19 \item Scheduler interno para ejecución automática de los
21 \item Scheduling de múltiples jobs al mismo tiempo.
22 \item Se puede correr uno o múltiples jobs en forma simultánea
23 (algunas veces, esto se denomina multiplexado (multiplexing)).
24 \item Uso de prioridades para la secuencialidad de los jobs.
25 \item \ilink{Interfaz de Consola}{UADef} con el director, permitiendo un control completo
26 de las operaciones. Diferentes versiones de programas de consola están disponibles,
27 tales como línea de comandos, Qt4 GUI, GNOME GUI y wxWidgets. Hay que destacar, que
28 el programa de Qt4 GUI, se denomina bacula administration tool o bat, y ofrece mas
29 funcionalidades adicionales al programa de shell.
34 \item Verificación de archivos, que han sido previamente catalogados, permitiendo con esto,
35 un conjunto de funcionalidadaes como las ofrecidas con Tripwire (sistema de detección
36 de vulnerabilidades)(\url{http://es.wikipedia.org/wiki/Tripwire} ).
37 \item Autenticación con password CRAM-MD5 entre cada uno de los componentes (demonios).
38 \item Encriptación configurable de comunicaciones
39 \ilink{TLS (SSL)}{CommEncryption} entre cada uno de los componentes.
40 \item Encriptación configurable de la
41 \ilink{Data (en un Volumen)}{DataEncryption}
42 definidas cliente por cliente.
43 \item Firmas de MD5 y SHA1 de la data de los archivos, de ser necesaria.
46 \item Funcionalidades para las restauraciones
48 \item Recuperación de uno o más archivos, seleccionados interativamente desde el backup
49 actual o previos a una hora y fecha indicada.
50 \item Restauración de un sistema completo, para un equipo nuevo (bare metal).
51 Este procedimiento está completamente automatizado para sistemas Linux y
52 parcialmente automatizado para Solaris. Vea el capítulo de
53 \ilink{Disaster Recovery utilizando Bacula}{RescueChapter}. También se ha reportado que
54 funciona en sistemas con Win2K/XP.
55 \item Listado y recuperación de archivos stand-alone, utilizando programas utilitarios como {\textbf bls} and
56 \textbf {bextract}. Entre otras cosas, estos permiten la extracción
57 de archivos cuando bacula y/o el catálogo no están disponibles. Hay que tener presente,
58 que la manera adecuada para recuperar archivos es utilizando el comando restore en
59 la consola. Estos programas están diseñados para ser usados como un último recurso.
60 \item Capacidad para restaurar la base de datos del catálogo de manera rápida con el uso
61 de archivos bootstrap (grabados previamente).
62 \item Capacidad para restaurar la base de datos del catalogo utilizando el programa
63 \textbf {bscan}, a traves del escaneo de los volúmenes de backup.
68 \item Base de datos de catálogo para almacenar información de: volúmenes, pools, jobs y
70 \item Soporte para el catálogo con bases de datos MySQL, PostgreSQL y SQLite.
71 \item Consultas de usuario extensibles a las bases de datos MySQL, PostgreSQL y SQLite.
74 \item Administración avanzada de pools y de volúmenes
76 \item Etiquetado de volúmenes, para prevenir la sobreescritura accidental de los mismos
77 (al menos por Bacula).
78 \item Cualquier número de jobs y de clientes pueden ser respaldados a un simple volumen.
79 Es decir, se puede hacer backup y recuperaciones de máquinas Linux, Unix, Sun y Windows
81 \item Backup multivolumen. Cuando un volumen está full, \textbf {Bacula} automáticamente
82 busca el siguiente volumen y continúa el respaldo.
83 \item La administración de la librería de
84 \ilink{pools y de volumenes}{PoolResource}
85 brinda una gran flexibilidad para el manejo de estos últimos, y permite manejar:
86 conjuntos de volúmenes diarios, semanales y clasificados por cliente, entre otros).
87 \item El formato de la data del volumen es independiente de la máquina. Los clientes Linux,
88 Solaris y Windows pueden ser respaldados en el mismo volumen, si se desea.
89 \item El formato de data del volumen es compatible hacia arriba, para que los volúmenes
90 viejos siempre puedan ser leidos.
91 \item Un manejador flexible de
92 \ilink{mensajes}{MessagesChapter}, que incluye
93 el enrutamiento de mensajes desde cualquier demonio hacia el director y correo de
94 reporte de notificación automático.
95 \item Spooling de la data en disco durante el backup, con la escritura subsiguiente de
96 los archivos grabados en el spool a la cinta. Esto previene el uso intensivo del
97 tape durante los respaldos incrementales y diferenciales.
100 \item Soporte avanzado para la mayoría de los dispositivos de almacenamiento
102 \item Soporte a Autochanger, utilizando una interfaz simple de comandos que interactúa
103 virtualmente con cualquier programa de autoloader. Un script para {\textbf mtx} se
104 copia durante la instalación.
105 \item Soporte para autochangers con códigos de barras, y etiquetado automático de cintas
106 desde los códigos de barras.
107 \item Soporte automático para múltiples librerías de recambio automático, utilizando código
108 de barras o por la lectura de los tapes.
109 \item Soporte para múltiples unidades de autochangers.
110 \item Backup y restauración de dispositivos crudos (raw devices). La recuperación debe
111 hacerse al mismo dispositivo.
112 \item Todos los bloques de los volúmenes (aproximadamente 64K bytes) contienen un checksum
114 \item Soporte a migración – movimiento de la data de un pool a otro o de un volumen a otro.
115 \item Soporte para escritura en DVD.
118 \item Soporte para múltiples sistemas operativos
120 \item Programado para el manejo arbitrario de nombre largos de archivos y mensajes.
121 \item Compresión tipo GZIP archivo por archivo, hecha por el programa cliente, si se ha
122 configurado, antes de la copia en red.
123 \item Grabado y recuperación de ACLs tipo POSIX en la mayoría de los sistemas operativos,
125 \item Listas de control de accesos para las consolas que permiten restringir a los usuarios
126 el acceso a su datos únicamente.
127 \item Soporte para guardar y recuperar archivos más grandes que 2GB.
128 \item Soporte para máquinas con 64 bits, tales como, amd64, Sparc.
129 \item Soporte para etiquetas de cintas ANSI e IBM.
130 \item Soporte para nombres de archivos Unicode (tales como chino) en equipos con Win32
131 a partir de la versión 1.37.28 y superiores.
132 \item Backup consistente de archivos abiertos en sistemas Win32 (WinXP, Win2003 y Vista),
133 pero no en Win200, utilizando el Volume Shadow Copy (VSS).
134 \item Soporte para longitudes de nombres de archivo y path hasta 64K en máquinas Win32
135 (esta capacidad es ilimitada equipos con Unix/Linux).
140 \item Implementación multi-threaded.
142 \ilink{archivo de configuración}{DirectorChapter} comprensible y extensible
143 para cada servicio o demonio.
147 \section{Ventajas sobre otros programas de backup}
148 \index[general]{Ventajas sobre otros programas de backup }
149 \index[general]{Programs!Advantages of Bacula Over Other Backup }
152 \item Debido que existe un cliente por cada máquina, se puede hacer backup y recuperaciones
153 de clientes de cualquier tipo, asegurando que todos los atributos de archivos, son
154 grabados y restaurados de manera adecuada.
155 \item Es posible respaldar clientes sin la instalación del software para el file daemon,
156 utilizando NFS o Samba. Sin embargo, se recomienda la instalación del mismo en cada
158 \item Bacula maneja respaldos multi-volúmenes.
159 \item Base de datos SQL estándar con un registro completo de todos los archivos grabados.
160 Esto permite una visualización en línea de los archivos para cualquier volumen particular.
161 \item Pruning automático de la base de datos (eliminación de registros viejos), simplificando
162 con esto la administración de la misma.
163 \item Cualquier engine de base de datos puede ser utilizado, logrando con esto que bacula
164 sea muy flexible. Aunque actualmente, existen drivers para MySQL, PostgreSQL y SQLite.
165 \item El diseño modular, pero integrado, hace de bacula una solución muy escalable.
166 \item Debido a que bacula utiliza archivos clientes para los servidores, cualquier base
167 de datos o aplicación pueden ser detenidas haciendo uso de las herramientas nativas
168 del sistema, luego hacer el backup y reiniciarlas, todo dentro un job de bacula.
169 \item Bacula cuenta con un scheduler interno para la planificación de los jobs.
170 \item El formato del volumen está documentado y existen programas sencillos en lenguaje
171 C que leen o escriben en ellos.
172 \item Bacula utiliza puertos TCPI/IP conocidos (registrados en IANA) -- no se utiliza rpc
173 ni memoria compartida.
174 \item La instalación y configuración de bacula es relativamente sencilla.
175 \item De acuerdo a un usuario de bacula, es tan rápido como las más grandes aplicaciones
176 comerciales de backup.
177 \item De acuerdo con otro usuario de bacula, es cuatro veces más rápido que otra aplicación
178 comercial, probablemente, esto se debe a que esta última almacena la información
179 del catálogo en un gran número de archivos individuales, en vez de una base de datos
180 SQL, como lo hace bacula.
181 \item Adicional a las interfaces administrativas en modo gráfico (GUI), bacula cuenta con
182 una interfaz de línea de comandos muy comprensible, que permite el uso de herramientas,
183 tales como ssh para gestionar cualquier componente de bacula desde cualquier sitio (incluso
185 \item Bacula cuenta con un CD de rescate para sistemas Linux, con las siguientes funcionalidades:
187 \item Permite construir el sistema original luego de un desastre con un simple comando:
188 make -- por supuesto, luego hay que hacer la copia.
189 \item Utiliza su propio kernel.
190 \item Captura los parámetros actuales del disco, y construye scripts que permiten el particionamiento
191 automático y formateo del mismo, y colocarlo en el estado original que se tenía.
192 \item Cuenta con un script que permite reiniciar los servicios de red (con la dirección
194 \item Cuenta con un script que monta automáticamente los discos configurados.
195 \item Cuenta con el software de bacula FD enlazado de manera estática.
196 \item Se puede adicionar cualquier programa o data al disco de manera fácil.
201 \section{Restricciones de la implementación actual}
202 \index[general]{Restricciones de la implementación actual }
203 \index[general]{Restrictions!Current Implementation }
206 \item Es muy inusual restaurar dos jobs diferentes en la misma operación de restauración,
207 si estos jobs corrieron en forma simultánea, a menos que se haya habilitado el spooling
208 de la data y esta mantenga el contenido completo de ambos jobs. En otras palabras,
209 bacula no puede restaurar dos jobs en el mismo restore, si los bloques de datos de
210 los jobs están entremezclados en el medio de backup. El problema se resuelve simplemente
211 ejecutando dos restauraciones, una para cada Job.
212 \item Bacula puede restaurar cualquier backup hecho desde un cliente a otro cliente. Sin
213 embargo, si la arquitectura es completamente diferente (tales como, arquitectura
214 de 32 bits a 64 bits, o de Win32 a Unix), algunas restricciones pueden aplicar (por
215 ejemplo, en Solaris existen archivos especiales que no existen en otros equipos Unix
216 o Linux; hay reportes que indican que la compresión de Zlib escrita con máquinas
217 de 64 bits no siempre es leida correctamente en una máquina de 32 bits).
220 \section{Restricciones y limitaciones de diseño}
221 \index[general]{Restrictions!Design Limitations or }
222 \index[general]{Restricciones y limitaciones de diseño }
225 \item Los nombres (recursos de nombres, nombres de volúmenes, entre otros) definidos en
226 los archivos de configuración de bacula están limitados a un número fijo de caracteres.
227 Actualmente, el límite está definido a 127 caracteres. Hay que tener en cuenta, que
228 esto no aplica a nombres de archivos, los cuales pueden ser arbitrariamente largos.
229 \item La entrada para la línea de comandos de algunas de las herramientas stand alone,
230 -- tales como btape, bconsole, está restringida a un máximo de varios cientos de caracteres.
233 \section{Items para tener en cuenta}
234 \index[general]{Items para tener en cuenta}
236 \item Los respaldos \textsl{normales} de Bacula incrementales y diferenciales, están basados en
237 modificaciones de tiempo. Por esto, si usted mueve archivos en un directorio existente
238 o mueve un directorio completo dentro del fileset de respaldo, después de la ejecución
239 de uno de tipo Full, probablemente no sean respaldados por los incrementales, puesto
240 que tienen fechas de modificación antiguas. Este problema se corrige utilizando el
241 modo Accurate en los backups o modificando de manera explícita la fecha y hora de
242 modificación de todos los archivos movidos.
243 \item En versiones previas de Bacula ($<=$ 3.0.x), si usted está cerca de las 4 billones
244 de entradas de archivos almacenadas en el catálogo, la base de datos FileId probablemente
245 pueda hacer overflow.
246 \item Cuando no se utiliza el modo \textsl{Accurate}, los archivos borrados después de un respaldo
247 Full no serán incluidos en la restauración. Esto es común en la mayoría de los programas