]> git.sur5r.net Git - bacula/docs/blob - docs/manuals/es/concepts/state.tex
Tweak downloads report
[bacula/docs] / docs / manuals / es / concepts / state.tex
1 %%
2 %%
3
4
5 \chapter{El estado actual de Bacula} \label{StateChapter} \index{Estado actual de Bacula}
6
7 En otras palabras, que está y que no está implementado y funcional..
8
9
10 \section{Que está implementado?}
11 \index{Que está!implementado?} 
12 \index{Que está implementado?}
13
14 \begin{itemize}
15 \item Control de trabajos (jobs)
16 \begin{itemize}
17 \item Respaldos y restauraciones en red con un director centralizado. 
18 \item Scheduler interno para ejecución automática de los \ilink{Jobs}{JobDefs}jobs
19 .
20 \item Scheduling de múltiples jobs al mismo tiempo. 
21 \item Se puede correr uno o multiples jobs en forma simultánea (algunas veces, esto
22 se denomina multiplexado (multiplexing)). 
23 \item Uso de prioridades para la secuencialidad de los jobs. 
24 \item \ilink{Interfaz de Consola}{UADef} con el director, permitiendo un control
25 completo de las operaciones. Diferentes versiones de programas de consola estan
26 disponibles, tales como línea de comandos, Qt4 GUI, GNOME GUI y wxWidgets. Hay
27 que destacar, que el programa de Qt4 GUI, se denomina bacula administration
28 tool o bat, y ofrece mas funcionalidades adicionales al programa de shell. 
29 \end{itemize}
30
31 \item Seguridad 
32 \begin{itemize}
33 \item Verificación de archivos, que han sido previamente catalogados, permitiendo
34 con esto capacidades como las ofrecidas con Tripwire (\url{http://es.wikipedia.org/wiki/Tripwire}
35 ). 
36 \item Autenticación con password CRAM-MD5 entre cada uno de los componentes (demonios). 
37 \item Encriptación configurable de comunicaciones \ilink{TLS (SSL)}{CommEncryption}
38 entre cada uno de los componentes.
39 \item Encriptación configurable de la \ilink{Data (en un volumen)}{DataEncryption}
40 definidas cliente por cliente 
41 \item Firmas de MD5 y SHA1 de la data de los archivos, de ser necesaria. 
42 \end{itemize}
43
44 \item Funcionalidades para las restauraciones
45 \begin{itemize}
46 \item Recuperación de uno o mas archivos, seleccionados interativamente desde el backup
47 actual o antes de una hora y fecha indicada. 
48 \item Restauración de un sistema completo, para un equipo nuevo, configurado desde
49 \verb+"+cero\verb+"+ (también se le conoce como \verb+"+bare
50 metal\verb+"+). Este procedimiento está completamente automatizado para
51 equipos con Linux y parcialmente automatizado para Solaris. Vea el link \ilink{Disaster
52 Recovery utilizando Bacula}{Capítulo de Rescate}.También se ha reportado
53 que funciona en sistemas con Win2K/XP. 
54 \item Listado y recuperación de archivos utilizando programas utilitarios como \textbf{bls}
55 y \textbf{bextract}. Entre otras cosas, estas permiten la extracción de archivos
56 cuando bacula y/o el catálogo no están disponibles. Hay que tener presente,
57 que la manera adecuada para recuperar archivos es utilizando el comando restore
58 en la consola, estos programas están diseñados para ser usados como un último
59 recurso. 
60 \item Capacidad para restaurar la base de datos del catálogo de manera rápida con
61 el uso 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 volumenes de backup. 
64 \end{itemize}
65
66 \item Catálogo SQL
67 \begin{itemize}
68 \item Base de datos de catálogo para almacenar volúmenes, pools, jobs y archivos respaldados. 
69 \item Soporte para el catálogo con bases de datos MySQL, PostgreSQL y SQLite. 
70 \item Consultas de usuario extensibles a las bases de datos MySQL, PostgreSQL y SQLite. 
71 \end{itemize}
72
73 \item Administración avanzada de pools y de volúmenes
74 \begin{itemize}
75 \item Etiquetado de volúmenes, para prevenir la sobreescritura accidental de los mismos
76 (al menos por Bacula). 
77 \item Cualquier número de jobs y de clientes pueden ser respaldados a un simple volumen.
78 Es decir, se puede hacer backup y recuperaciones de maquinas Linux, Unix, Sun
79 y Windows a un mismo volumen. 
80 \item Backup multivolumen. Cuando un volumen esta full, \textbf{Bacula} automáticamente
81 busca el siguiente volumen y continúa el respaldo.
82 \item La administración de la librería de\ilink{pools y de volúmenes}{Recurso
83 de Pool} brinda una gran flexibilidad para el manejo de estos últimos, tales
84 como, conjuntos de volúmenes diarios, semanales y volúmenes, clasificados por
85 cliente, entre otros).
86 \item El formato de la data del volumen es independiente de la máquina. Los clientes
87 Linux, Solaris y Windows pueden ser respaldados en el mismo volumen, si se desea.
88 \item El formato de data del volumen es compatible hacia arriba, para que los volumenes
89 viejos siempre puedan ser leidos.
90 \item Un manejador flexible de \ilink{mensajes}{Capítulo de Mensajes} , que incluye
91 el enrutamiento de mensajes desde cualquier demonio hacia el director y correo
92 de reporte de notificación automático 
93 \item Spooling de la data en disco durante el backup, con la escritura subsiguiente
94 de los archivos grabados en el spool a la cinta. Esto previene el uso intensivo
95 del tape durante los respaldos incrementales y diferenciales. 
96 \end{itemize}
97
98 \item Soporte avanzado para la mayoría de los dispositivos de almacenamiento.
99 \begin{itemize}
100 \item Soporte a Autochanger, que utiliza una interfaz simple de comandos que interactúa
101 virtualmente con cualquier programa de autoloader. Un script para \textbf{mtx}
102 se copia durante la instalación.
103 \item Soporte para autochangers con códigos de barras, y etiquetado automático de
104 cintas desde los códigos de barras. 
105 \item Soporte automático para múltiples librerías de recambio automático utilizando
106 código de barras o por la lectura de los tapes. 
107 \item Soporte para múltiples unidades de autochangers.
108 \item Backup y restauración de dispositivos crudos (raw devices). La recuperación
109 debe hacerse al mismo dispositivo. 
110 \item Todos los bloques de los volúmenes (aproximadamente 64K bytes) contienen un
111 checksum de la data. 
112 \item Soporte a migración \textendash{} movimiento de la data de un pool a otro o
113 de un volumen a otro. 
114 \item Soporte para escritura en DVD.
115 \end{itemize}
116
117 \item Soporte para múltiples sistemas operativos
118 \begin{itemize}
119 \item Programado para el manejo arbitrario de nombre largos de archivos y mensajes.
120 \item Compresión tipo GZIP archivo por archivo, hecha por el programa cliente, si
121 se ha configurado, antes de la copia en red. 
122 \item Grabado y recuperación de ACLs tipo POSIX en la mayoría de los sistemas operativos,
123 si está activadas. 
124 \item Listas de control de accesos para las consolas que permiten restringir a los
125 usuarios el acceso a su datos únicamente. 
126 \item Soporte para guardar y recuperar archivos mas grandes que 2GB.
127 \item Soporte para máquinas con 64 btis, tales como, amd64, Sparc.
128 \item Soporte para etiquetas de cintas ANSI e IBM.
129 \item Soporte para nombres de archivos Unicode (tales como chino) en equipos con Win32
130 en la versión 1.37.28 y superiores. 
131 \item Backup consistente de archivos abiertos en sistemas Win32 (WinXP, Win2003 y
132 Vista) pero no en Win200, utilizando el Volume Shadow Copy (VSS).
133 \item Soporte para longitudes de nombres de archivo y path hasta 64K en máquinas Win32
134 (esta capacidad es ilimitada equipos con Unix/Linux). 
135 \end{itemize}
136
137 \item Misceláneos 
138 \begin{itemize}
139 \item Implementación multi-threaded.
140 \item Un \ilink{archivo de configuración}{Capítulo de Director} comprensible
141 y extensible para cada servicio o demonio.
142 \end{itemize}
143 \end{itemize}
144
145 \section{Ventajas sobre otros programas de backup}
146 \index{Advantages of Bacula Over Other Backup Programs} 
147 \index{Programs!Advantages of Bacula Over Other Backup}
148
149 \begin{itemize}
150 \item Debido que existe un cliente por cada máquina, se puede hacer backup y recuperaciones
151 de clientes de cualquier tipo, asegurando que todos los atributos de archivos
152 son grabados y restaurados de manera adecuada. 
153 \item Es posible respaldar clientes sin la instalación del software para el file daemon,
154 utilizando NFS o Samba. Sin embargo, se recomienda la instalación del mismo
155 en cada equipo a respaldar. 
156 \item Bacula maneja respaldos multi-volumenes.
157 \item Base de datos SQL estándar con un registro completo de todos los archivos grabados.
158 Esto permite una visualización en línea de los archivos para cualquier volumen
159 particular.
160 \item Pruning automático de la base de datos (eliminación de registros viejos), simplificando
161 con esto la administración de la misma. 
162 \item Cualquier engine de base de datos puede ser utilizado, logrando con esto que
163 bacula sea muy flexible. Aunque actualmente, existen drivers para MySQL, PostgreSQL
164 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
167 base de datos o aplicación pueden ser detenidas haciendo uso de las herramientas
168 nativas del sistema, hacer el backup y reiniciarlas, todo en 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 bien conocidos (registrados en IANA) \textendash{}
173 no se utiliza rpc 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 mas 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 almacena la información del
179 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
182 con una interfaz de línea de comandos muy comprensible, que permite el uso de
183 herramientas, tales como ssh para gestionar cualquier parte de bacula desde
184 cualquier sitio (incluso desde la casa). 
185 \item Bacula cuenta con un CD de rescate para sistemas Linux, con las siguientes funcionalidades:
186
187 \begin{itemize}
188 \item Permite construir el sistema original luego de un desastre con un simple comando:
189 make \textendash{} por supuesto, luego hay que hacer la copia.
190 \item Utiliza su propio kernel.
191 \item Captura los parámetros actuales del disco, y construye scripts que permiten
192 el particionamiento automático y formateo del mismo, y colocarlo en el estado
193 original que se tenía.. 
194 \item Cuenta con un script que permite reiniciar los servicios de red (con la dirección
195 IP correcta).
196 \item Cuenta con un script que monta automáticamente los discos configurados.
197 \item Cuenta con el software de bacula FD enlazado de manera estática.
198 \item Se puede adicionar cualquier programa o data al disco de manera fácil. 
199 \end{itemize}
200 \end{itemize}
201
202 \section{Restricciones de la implementación actual}
203 \index{Current Implementation Restrictions} 
204 \index{Restrictions!Current Implementation}
205
206 \begin{itemize}
207 \item Si se cuenta con mas de 4 billones de entradas de archivos almacenados en la
208 base de datos, los campos de FileId probablemente presenten un overflow. Aunque
209 esto representa una base gigantesca, es posible su ocurrencia. Los campos FileId
210 han sido modificados para que se les pueda hacer upgrade de 32 a 64 bits en
211 la versión 1.39 o superior, pero esta tarea debe realizarse de manera manual. 
212 \item Los archivos eliminados luego de un backup full serán incluidos en la restauración.
213 Esto es común en la mayoría de los programas similares de respaldo (aunque existe
214 un proyecto en bacula para corregir esto). 
215 \item Los backups diferenciales e incrementales están basados en modificaciones de
216 tiempo. Como consecuencia de esto, si se mueven archivos dentro de un directorio
217 existente o se mueve un directorio completo dentro del fileset de backup después
218 de un backup full, probablemente estos archivos no sean incluidos en el incremental
219 porque tienen fechas viejas. Para esto, se debe modificar de manera explícita
220 el registro de fecha y hora para todos los archivos movidos (existe un proyecto
221 para corregir esto).
222 \item Los módulos para file system (rutinas configurables para salvar y restaurar
223 archivos especiales) aún no están implementadas. Sin embargo, esta funcionalidad
224 se puede implementar fácilmente utilizando run scripts. 
225 \item Bacula permite realizar backups y restauraciones a múltiples dispositivos de
226 diferentes tipos de media y múltiples demonios de almacenamiento (storage daemons).
227 Sin embargo, si un job ha hecho el backup a múltiples dispositivos, se puede
228 realizar el restore desde un único dispositivo. Esto significa, que se necesita
229 editar en forma manual el archivo bootstrap y dividirlo en dos restauraciones
230 si se desea dividir el backup entre los dispositivos de almacenamiento. Esta
231 restricción ha sido removida en la versión 2.2.0 y superiores, y no ha sido
232 probada por completo. 
233 \item Bacula no puede restaurar dos jobs diferentes en la misma operación de restauración,
234 si estos jobs corrieron en forma simultánea, a menos que se haya habilitado
235 el spooling de la data y esta mantenga el contenido completo de ambos jobs.
236 En otras palabras, bacula no puede restaurar dos jobs en el mismo restore, si
237 los bloques de datos de los jobs están entremezclados en el medio de backup.
238 Esto no plantea restricciones para los jobs normales de backup, incluso si ellos
239 se ejecutan simultáneamente.
240 \item Bacula puede restaurar cualquier backup hecho desde un cliente a otro cliente.
241 Sin embargo, si la arquitectura es completamente diferente (tales como, arquitectura
242 de 32 bits a 64 bits, o de Win32 a Unix), algunas restricciones pueden aplicar
243 (por ejemplo, en Solaris existen archivos especiales que no existen en otros
244 equipos Unix o Linux; hay reportes que indican que la compresión de Zlib escrita
245 con máquinas de 64 bits no siempre es leida correctamente en una máquina de
246 32 bits). 
247 \end{itemize}
248
249 \section{Restricciones y limitaciones de diseño}
250 \index{Restrictions!Design Limitations or} 
251 \index{Design Limitations or Restrictions}
252
253 \begin{itemize}
254 \item Los nombres (recursos de nombres, nombres de volúmenes, entre otros) definidos
255 en los archivos de configuración de bacula están limitados a un número fijo
256 de caracteres. Actualmente, el límite está definido a 127 caracteres. Hay que
257 tener en cuenta, que esto no aplica a nombres de archivos, los cuales pueden
258 ser arbitrariamente largos.
259 \item La entrada para la línea de comandos para algunas de las herramientas stand
260 alone, tales como btape, bconsole, está restringida a un máximo de varios cientos
261 de caracteres.
262 \end{itemize}