]> git.sur5r.net Git - bacula/docs/blob - docs/manual/state.tex
Update
[bacula/docs] / docs / manual / state.tex
1 %%
2 %%
3
4 \chapter{The Current State of Bacula}
5 \label{_ChapterStart2}
6 \index[general]{Current State of Bacula }
7
8 In other words, what is and what is not currently implemented and functional. 
9
10 \section{What is Implemented}
11 \index[general]{Implemented!What}
12 \index[general]{What is Implemented}
13
14 \begin{itemize}
15 \item Job Control
16    \begin{itemize}
17    \item Network backup/restore with centralized Director.  
18    \item Internal scheduler for automatic 
19       \ilink{Job}{JobDef} execution.  
20    \item Scheduling of multiple Jobs at the same time.  
21    \item You may run one Job at a time or multiple simultaneous Jobs.  
22    \item Job sequencing using priorities.  
23    \item \ilink{Console}{UADef} interface to the Director  allowing complete
24       control. A shell, GNOME GUI and wxWidgets GUI versions of  the Console program
25       are available. Note, the GNOME GUI program currently  offers very few
26       additional features over the shell program. 
27    \end{itemize}
28
29 \item Security
30    \begin{itemize}
31    \item Verification of files previously cataloged, permitting a Tripwire like 
32       capability (system break-in detection).  
33    \item CRAM-MD5 password authentication between each component (daemon).
34    \item Configurable 
35       \ilink{TLS (SSL) communications encryption}{CommEncryption} between each component.
36    \item Configurable
37    \ilink{Data (on Volume) encryption}{DataEncryption}
38       on a Client by Client basis.
39    \item Computation of MD5 or SHA1 signatures of the file data if requested.  
40    \end{itemize}
41
42
43 \item Restore Features
44    \begin{itemize}
45    \item Restore of one or more files selected interactively either for the
46       current backup or a backup prior to a specified time and date.  
47    \item Restore of a complete system starting from bare  metal. This is mostly
48       automated for Linux systems and  partially automated for Solaris. See 
49       \ilink{Disaster Recovery Using Bacula}{_ChapterRescue}. This is also
50       reported to work on Win2K/XP systems.  
51    \item Listing and Restoration of files using stand-alone {\bf bls} and  {\bf
52       bextract} tool programs. Among other things, this permits  extraction of files
53       when Bacula and/or the catalog are not  available. Note, the recommended way
54       to restore files is using  the restore command in the Console. These programs
55       are designed  for use as a last resort. 
56    \item Ability to restore the catalog database rapidly by using bootstrap
57       files (previously saved).
58    \item Ability to recreate the catalog database by scanning backup Volumes 
59       using the {\bf bscan} program.  
60    \end{itemize}
61
62 \item SQL Catalog
63    \begin{itemize}
64    \item Catalog database facility for remembering Volumes, Pools, Jobs,  and
65       Files backed up.  
66    \item Support for MySQL, PostgreSQL, and SQLite Catalog databases.  
67    \item User extensible queries to the MySQL, PostgreSQL and SQLite databases.  
68    \end{itemize}
69
70 \item Advanced Volume and Pool Management
71    \begin{itemize}
72    \item Labeled Volumes, preventing accidental overwriting  (at least by
73       Bacula).  
74    \item Any number of Jobs and Clients can be backed up to a single  Volume.
75       That is, you can backup and restore Linux, Unix, Sun, and  Windows machines to
76       the same Volume.  
77    \item Multi-volume saves. When a Volume is full, {\bf Bacula}  automatically
78       requests the next Volume and continues the backup.  
79    \item 
80       \ilink{Pool and Volume}{PoolResource} library management 
81       providing Volume flexibility (e.g. monthly, weekly, daily Volume sets,  Volume
82       sets segregated by Client, ...). 
83    \item Machine independent Volume data format. Linux, Solaris, and Windows 
84       clients can all be backed up to the same Volume if desired. 
85    \item The Volume data format is upwards compatible so that old Volumes
86       can always be read.
87    \item A flexible 
88       \ilink{ message}{MessageResource}  handler including routing
89       of messages from any daemon back to the  Director and automatic email
90       reporting.  
91    \item Data spooling to disk during backup with subsequent write to tape from
92       the spooled disk files. This prevents tape "shoe shine"  during
93       Incremental/Differential backups.  
94    \end{itemize}
95
96 \item Advanced Support for most Storage Devices
97     \begin{itemize}
98    \item Autochanger support using a simple shell interface that can interface 
99       to virtually any autoloader program. A script for {\bf mtx} is  provided.  
100    \item Support for autochanger barcodes -- automatic tape labeling from 
101       barcodes.  
102    \item Automatic support for multiple autochanger magazines either using
103       barcodes or by reading the tapes.  
104    \item Support for multiple drive autochangers.
105    \item Raw device backup/restore. Restore must be to the same device. 
106    \item All Volume blocks (approximately 64K bytes) contain a data checksum.  
107    \item Migration support -- move data from one Pool to another or
108          one Volume to another.
109    \item Supports writing to DVD (beta code).
110    \end{itemize}
111
112 \item Multi-Operating System Support
113    \begin{itemize} 
114    \item Programmed to handle arbitrarily long filenames and messages.  
115    \item GZIP compression on a file by file basis done by the Client program  if
116       requested before network transit.  
117    \item Saves and restores POSIX ACLs on most OSes if enabled.  
118    \item Access control lists for Consoles that permit restricting user access
119       to only their data.  
120    \item Support for save/restore of files larger than 2GB.  
121    \item Support for 64 bit machines, e.g. amd64, Sparc.
122    \item Support ANSI and IBM tape labels.
123    \item Support for Unicode filenames (e.g. Chinese) on Win32 machines on
124          version 1.37.28 and greater.
125    \item Consistent backup of open files on Win32 systems (WinXP, Win2003),
126          but not Win2000, using Volume Shadow Copy (VSS).
127    \item Support for path/filename lengths of up to 64K on Win32 machines
128          (unlimited on Unix/Linux machines).
129    \end{itemize}
130
131 \item Miscellaneous
132    \begin{itemize}
133    \item Multi-threaded implementation.  
134    \item A comprehensive and extensible 
135       \ilink{configuration file}{_ChapterStart40} for each daemon.  
136    \end{itemize}
137 \end{itemize}
138
139 \section{Advantages Over Other Backup Programs}
140 \index[general]{Advantages of Bacula Over Other Backup Programs }
141 \index[general]{Programs!Advantages of Bacula Over Other Backup }
142
143 \begin{itemize}
144 \item Since there is a client for each machine, you can backup
145    and restore clients of any type ensuring that all attributes
146    of files are properly saved and restored.
147 \item It is also possible to backup clients without any client
148    software by using NFS or Samba.  However, if possible, we
149    recommend running a Client File daemon on each machine to be
150    backed up.
151 \item Bacula handles multi-volume backups.  
152 \item A full comprehensive SQL standard database of all files backed up.  This
153    permits online viewing of files saved on any particular  Volume.  
154 \item Automatic pruning of the database (removal of old records) thus 
155    simplifying database administration.  
156 \item Any SQL database engine can be used making Bacula very flexible.  
157       Drivers currently exist for MySQL, PostgreSQL, and SQLite.
158 \item The modular but integrated design makes Bacula very scalable.  
159 \item Since Bacula uses client file servers, any database or
160    other application can be properly shutdown by Bacula using the
161    native tools of the system, backed up, then restarted (all
162    within a Bacula Job).
163 \item Bacula has a built-in Job scheduler.  
164 \item The Volume format is documented and there are simple C programs to 
165    read/write it.  
166 \item Bacula uses well defined (IANA registered) TCP/IP ports -- no rpcs,  no
167    shared memory.  
168 \item Bacula installation and configuration is relatively simple compared  to
169    other comparable products.  
170 \item According to one user Bacula is as fast as the big major commercial 
171    applications.  
172 \item According to another user Bacula is four times as fast as another
173    commercial application, probably because that application  stores its catalog
174    information in a large number of individual  files rather than an SQL database
175    as Bacula does.  
176 \item Aside from a GUI administrative interface, Bacula has a
177    comprehensive shell administrative interface, which allows the
178    administrator to use tools such as ssh to administrate any part of
179    Bacula from anywhere (even from home).
180 \item Bacula has a Rescue CD for Linux systems with the following features:  
181    \begin{itemize}
182    \item You build it on your own system from scratch with one simple  command:
183       make -- well, then make burn. 
184    \item It uses your kernel  
185    \item It captures your current disk parameters and builds scripts that  allow
186       you to automatically repartition a disk and format it to  put it back to what
187       you had before. 
188    \item It has a script that will restart your networking (with the right  IP
189       address)  
190    \item It has a script to automatically mount your hard disks.  
191    \item It has a full Bacula FD statically linked  
192    \item You can easily add additional data/programs, ... to the disk.  
193    \end{itemize}
194
195 \end{itemize}
196
197 \section{Current Implementation Restrictions}
198 \index[general]{Current Implementation Restrictions }
199 \index[general]{Restrictions!Current Implementation }
200
201 \begin{itemize}
202 \item If you have over 4 billion file entries stored in your database,  the
203    database FileId is likely to overflow. This is a monster database,  but still
204    possible. Bacula's FileId fields have been modified so that they can be
205    upgraded from 32 to 64 bits in version 1.39 or later, but you must
206    manually do so. 
207 \item Files deleted after a Full save will be included in a restoration. This  
208    is typical for most similar backup programs (we have a project to 
209    correct this).
210 \item Bacula's Differential and Incremental backups are based on
211    time stamps.  Consequently, if you move files into an existing directory or
212    move a whole directory into the backup fileset after a Full backup, those
213    files will probably not be backed up by an Incremental save because they
214    will have old dates.  You must explicitly update the date/time stamp on all
215    moved files (we have a project to correct this).
216 \item File System Modules (configurable routines for saving/restoring special
217    files) are not yet implemented.  
218 \end{itemize}
219
220 \section{Design Limitations or Restrictions}
221 \index[general]{Restrictions!Design Limitations or }
222 \index[general]{Design Limitations or Restrictions }
223
224 \begin{itemize}
225 \item Names (resource names, Volume names, and such) defined in Bacula 
226    configuration files are limited to a fixed number of
227    characters.  Currently the limit is defined as 127 characters.  Note,
228    this does not apply to filenames, which may be arbitrarily long.
229 \end{itemize}