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