1 <? require_once("inc/header.php"); ?>
4 <td class="contentTopic">
11 <b>Bacula</b> is a set of computer programs that permit you (or the
12 system administrator) to manage backup, recovery, and verification of
13 computer data across a network of computers of different kinds. In
14 technical terms, it is a network Client/Server based backup program.
15 Bacula is relatively easy to use and efficient, while offering many
16 advanced storage management features that make it easy to find and
17 recover lost or damaged files. Due to its modular design, Bacula is
18 scalable from small single computer systems to systems consisting of
19 hundreds of computers located over a large network.
20 <h3>Who Needs Bacula?</h3>
21 If you are currently using a program such as <b>tar</b>, <b>dump</b>, or
22 <b>bru</b> to backup your computer data, and you would like a network
23 solution, more flexibility, or catalog services, Bacula will most
24 likely provide the additional features you want. However, if you are
25 new to Unix systems or do not have offsetting experience with a sophisticated
26 backup package, we do not recommend using Bacula as it is
27 much more difficult to setup and use than <b>tar</b> or <b>dump</b>.
28 <p>If you are running <b>Amanda</b> and would like a backup program that
29 can write to multiple volumes (i.e. is not limited by your tape drive
30 capacity), Bacula can most likely fill your needs. In addition,
31 quite a number of our users report that Bacula is simpler to
32 setup and use than other equivalent programs.
34 currently using a sophisticated commercial package such as Legato
35 Networker. ARCserveIT, Arkeia, or PerfectBackup+, you may be interested
36 in Bacula, which provides many of the same features, and is free
37 software available under the GNU Affero General Public License (AGPL) version 3.
38 (see LICENSE File in bacula source project for more details)
40 <h3>Bacula Components or Services</h3>
41 Bacula is made up of the following five major components or services:
42 <p style="text-align: center; font-size: small">
43 <img src="images/manual/bacula-applications.png" alt="" width="576" height="734"><br>
44 thanks to Aristedes Maniatis for this graphic and the one below
48 <li><a name="DirDef"></a>
49 <b>Bacula Director</b> service consists of the program that
50 supervises all the backup, restore, verify and archive operations.
51 The system administrator uses the Bacula Director to schedule
52 backups and to recover files. For more details see the <a
53 href="rel-manual/director.html">Director Services Daemon Design Document</a>.
54 The Director runs as a daemon or a service (i.e. in the background).
56 <li><a name="UADef"></a>
57 <b>Bacula Console</b> services is the program that allows the
58 administrator or user to communicate with the <b>Bacula Director</b>
59 (see above). Currently, the Bacula Console is available in three
60 versions. The first and simplest is to run the Console program in a
61 shell window (i.e. TTY interface). Most system administrators will
62 find this completely adequate. The second version is a GNOME GUI
63 interface that for the moment (23 November 2003) is far from complete,
64 but quite functional as it has most the capabilities of the shell
65 Console. The third version is a wxWidgets GUI with an interactive file
66 restore. It also has most the capabilities of the shell console,
67 allows command completion with tabulation, and gives you instant
68 help about the command you are typing. For more details see the
69 <a href="rel-manual/console.html">Bacula Console Design Document</a>.
71 <li><a name="FDDef"></a>
72 <b>Bacula File</b> services (or Client program) is the software
73 program that is installed on the machine to be backed up. It is
74 specific to the operating system on which it runs and is responsible
75 for providing the file attributes and data when requested by the
76 Director. The File services are also responsible for the file
77 system dependent part of restoring the file attributes and data
78 during a recovery operation. For more details see the <a
79 href="rel-manual/file.html">File Services Daemon Design Document</a>. This
80 program runs as a daemon on the machine to be backed up, and in some
81 of the documentation, the File daemon is referred to as the Client
82 (for example in Bacula's configuration file). In addition to
83 Unix/Linux File daemons, there is a Windows File daemon (normally
84 distributed in binary format). The Windows File daemon runs on
85 all currently known Windows versions (95, 98, Me, NT, 2000, XP).
87 <li><a name="SDDef"></a>
88 <b>Bacula Storage</b> services consist of the software programs that
89 perform the storage and recovery of the file attributes and data to
90 the physical backup media or volumes. In other words, the Storage daemon
91 is responsible for reading and writing your tapes (or other
92 storage media, e.g. files). For more details see the <a
93 href="rel-manual/storage.html">Storage Services Daemon Design Document</a>.
94 The Storage services runs as a daemon on the machine that has the
95 backup device (usually a tape drive).
97 <li><a name="DBDefinition"></a>
98 <b>Catalog</b> services are comprised of the software programs
99 responsible for maintaining the file indexes and volume databases for
100 all files backed up. The Catalog services permit the System
101 Administrator or user to quickly locate and restore any desired
102 file. The Catalog services sets Bacula apart from simple backup
103 programs like tar and bru, because the catalog maintains a record
104 of all Volumes used, all Jobs run, and all Files saved, permitting
105 efficicient restoration and Volume management.
106 Bacula currently supports three different databases, MySQL,
107 PostgreSQL, and SQLite, one of which must be chosen when building
108 <b>Bacula</b>. There also exists an Internal database, but it is no
111 The three SQL databases currently supported (MySQL, PostgreSQL or SQLite)
112 provide quite a number of features,
113 including rapid indexing, arbitrary queries, and security. Although
114 we plan to support other major SQL databases, the current
115 Bacula implementation interfaces only to MySQL, PostgreSQL and SQLite.
116 For more details see the <a href="rel-manual/catalog.html">Catalog Services
118 <p>The RPMs for MySQL and PostgreSQL ship as part of the Linux RedHat release,
119 or building it from the source is quite easy, see the
120 <a href="rel-manual/mysql.html"> Installing and Configuring MySQL</a> chapter
121 of this document for the details. For more information on MySQL,
122 please see: <a href="http://www.mysql.com">www.mysql.com</a>.
123 Or see the <a href="rel-manual/postgresql.html"> Installing and Configuring
124 PostgreSQL</a> chapter of this document for the details. For more
125 information on PostgreSQL, please see: <a
126 href="http://www.postgresql.org">www.postgresql.org</a>.
127 <p>Configuring and building SQLite is even easier. For the details
128 of configuring SQLite, please see the <a href="rel-manual/sqlite.html">
129 Installing and Configuring SQLite</a> chapter of this document.
131 <li><a name="MonDef"></a>
132 <b>Bacula Monitor</b> services is the program that allows the
133 administrator or user to watch current status of <b>Bacula Directors</b>,
134 <b>Bacula File Daemons</b> and <b>Bacula Storage Daemons</b>
135 (see above). Currently, only a GTK+ version is available, which
136 works with Gnome and KDE (or any window manager that supports the
137 FreeDesktop.org system tray standard).
140 To perform a successful save or restore, the following four daemons
141 must be configured and running: the Director daemon, the File daemon,
142 the Storage daemon, and MySQL, PostgreSQL or SQLite.
144 <h3>Bacula Configuration</h3>
145 In order for Bacula to understand your system, what clients you
146 want backed up, and how, you must create a number of configuration
147 files containing resources (or objects). The following presents an
148 overall picture of this:
149 <p style="text-align: center">
150 <img src="images/manual/bacula-objects.png" alt="" width="576" height="734">
153 <h3>Conventions Used in this Document</h3>
154 <b>Bacula</b> is in a state of evolution, and as a consequence,
155 this manual will not always agree with the code. If an
156 item in this manual is preceded by an asterisk (*), it indicates
157 that the particular feature is not implemented. If it is preceded
158 by a plus sign (+), it indicates that the feature may be partially
160 <p>If you are reading this manual as supplied in a released version
161 of the software, the above paragraph holds true. If you are reading
162 the online version of the manual, <a href="/dev-manual/en/main/index.html">
163 http://www.bacula.org/rel-manual/en/main/index.html</a>,
164 please bear in mind that this version
165 describes the current version in development (in the SVN) that may
166 contain features not in the released version. Just the same,
167 it generally lags behind the code a bit.
169 To get Bacula up and running quickly, we recommend that you first
170 scan the Terminology section below, then quickly review the next chapter
171 entitled <a href="rel-manual/state.html">The Current State of Bacula</a>, then the
172 <a href="rel-manual/quickstart.html">Quick Start Guide to Bacula</a>, which will
173 give you a quick overview of getting Bacula running. After
174 which, you should proceed to the
175 chapter on <a href="rel-manual/install.html"> Installing Bacula</a>, then <a
176 href="rel-manual/configure.html">How to Configure Bacula</a>,
177 and finally the chapter on <a href="rel-manual/running.html">
181 To facilitate communication about this project, we provide here
182 the definitions of the terminology that we use.
184 <dt>Administrator</dt>
185 <dd>The person or persons responsible for administrating the Bacula system.</dd>
188 <dd>We use the term <b>Backup</b> to refer to a Bacula Job that saves files. </dd>
190 <dt>Bootstrap File</dt>
191 <dd>The bootstrap file is an ASCII file
192 containing a compact form of commands that allow Bacula or
193 the stand-alone file extraction utility (<b>bextract</b>) to
194 restore the contents of one or more Volumes, for example, the
195 current state of a system just backed up. With a bootstrap file,
196 Bacula can restore your system without a Catalog. You can
197 create a bootstrap file from a Catalog to extract any file or
201 <dd>The Catalog is used to store summary information
202 about the Jobs, Clients, and Files that were backed up and on
203 what Volume or Volumes. The information saved in the Catalog
204 permits the administrator or user to determine what jobs were
205 run, their status as well as the important characteristics
206 of each file that was backed up. The Catalog is an online resource,
207 but does not contain the data for the files backed up. Most of
208 the information stored in the catalog is also stored on the
209 backup volumes (i.e. tapes). Of course, the tapes will also have
210 a copy of the file in addition to the File Attributes (see below).
211 <p>The catalog feature is one part of Bacula that distinguishes
212 it from simple backup and archive programs such as <b>dump</b>
217 <dd>In Bacula's terminology, the word Client
218 refers to the machine being backed up, and it is synonymous
219 with the File services or File daemon, and quite often, we
220 refer to it as the FD. A Client is defined in a configuration
224 <dd>The program that interfaces to the Director allowing
225 the user or system administrator to control Bacula.</dd>
228 <dd>Unix terminology for a program that is always present in
229 the background to carry out a designated task. On Windows systems, as
230 well as some Linux systems, daemons are called <b>Services</b>.</dd>
233 <dd>The term directive is used to refer to a statement
234 or a record within a Resource in a configuration file that
235 defines one specific thing. For example, the <b>Name</b> directive
236 defines the name of the Resource.</dd>
239 <dd>The main Bacula server daemon that schedules and directs all
240 Bacula operations. Occassionally, we refer to the Director as DIR.</dd>
242 <dt>Differential</dt>
243 <dd>A backup that includes all files changed since the last
244 Full save started. Note, other backup programs may define this differently.</dd>
246 <dt>File Attributes</dt>
247 <dd>The File Attributes are all the information
248 necessary about a file to identify it and all its properties such as
249 size, creation date, modification date, permissions, etc. Normally, the
250 attributes are handled entirely by Bacula so that the user never
251 needs to be concerned about them. The attributes do not include the
255 <dd>The daemon running on the client
256 computer to be backed up. This is also referred to as the File
257 services, and sometimes as the Client services or the FD.
259 <dt><a name="FileSetDef"></a> FileSet</dt>
260 <dd>A FileSet is a Resource contained in a configuration
261 file that defines the files to be backed up. It consists
262 of a list of included files or directories, a list of excluded files, and
263 how the file is to be stored (compression, encryption, signatures).
264 For more details, see the
265 <a href="rel-manual/director.html#FileSetResource">FileSet Resource definition</a>
266 in the Director chapter of this document.</dd>
269 <dd>A backup that includes all files changed since the
270 last Full, Differential, or Incremental backup started. It is normally
271 specified on the <b>Level</b> directive within the Job resource
272 definition, or in a Schedule resourc. </dd>
274 <dt><a name="JobDef"></a>Job</dt>
275 <dd>A Bacula Job is a configuration resource that defines
276 the work that Bacula must perform to backup or restore a particular
277 Client. It consists of the <b>Type</b> (backup, restore, verify,
278 etc), the <b>Level</b> (full, incremental,...), the <b>FileSet</b>,
279 and <b>Storage</b> the files are to be backed up (Storage device,
280 Media Pool). For more details, see the
281 <a href="rel-manual/director.html#JobResource">Job Resource definition</a>
282 in the Director chapter of this document. </dd>
285 <dd>The program that interfaces to the all the daemons
286 allowing the user or system administrator to monitor Bacula status.</dd>
289 <dd>A resource is a part of a configuration file that
290 defines a specific unit of information that is available to Bacula.
291 For example, the <b>Job</b> resource defines all the properties of
292 a specific Job: name, schedule, Volume pool, backup type, backup
296 <dd>A restore is a configuration resource that
297 describes the operation of recovering a file (lost or damaged) from
298 backup media. It is the inverse of a save, except that in most
299 cases, a restore will normally have a small set of files to restore,
300 while normally a Save backs up all the files on the system. Of
301 course, after a disk crash, Bacula can be called upon to do
302 a full Restore of all files that were on the system. </dd>
305 <dd>A Schedule is a configuration resource that
306 defines when the Bacula Job will be scheduled for
307 execution. To use the Schedule, the Job resource will refer to
308 the name of the Schedule. For more details, see the <a
309 href="rel-manual/director.html#ScheduleResource">Schedule Resource
310 definition</a> in the Director chapter of this document. </dd>
313 <dd>This is Windows terminology for a <b>daemon</b> -- see
314 above. It is now frequently used in Unix environments as well.</dd>
316 <dt>Storage Coordinates</dt>
317 <dd>The information returned from the
318 Storage Services that uniquely locates a file on a backup medium. It
319 consists of two parts: one part pertains to each file saved, and the
320 other part pertains to the whole Job. Normally, this information is
321 saved in the Catalog so that the user doesn't need specific knowledge
322 of the Storage Coordinates. The Storage Coordinates include the
323 File Attributes (see above) plus the unique location of the information on
324 the backup Volume. </dd>
326 <dt>Storage Daemon</dt>
327 <dd>The Storage daemon, sometimes referred to as
328 the SD, is the code that writes the attributes and data to a storage
329 Volume (usually a tape or disk).</dd>
332 <dd>Normally refers to the internal conversation between
333 the File daemon and the Storage daemon. The File daemon opens a
334 <b>session</b> with the Storage daemon to save a FileSet, or to restore
335 it. A session has a one to one correspondence to a Bacula Job (see
339 <dd>A verify is a job that compares the current file
340 attributes to the attributes that have previously been stored in the
341 Bacula Catalog. This feature can be used for detecting changes to
342 critical system files similar to what <b>Tripwire</b> does. One
343 of the major advantages of using Bacula to do this is that
344 on the machine you want protected such as a server, you can run
345 just the File daemon, and the Director, Storage daemon, and Catalog
346 reside on a different machine. As a consequence, if your server is
347 ever compromised, it is unlikely that your verification database
348 will be tampered with.
349 <p>Verify can also be used to check that the most recent Job
350 data written to a Volume agrees with what is stored in the Catalog
351 (i.e. it compares the file attributes), *or it can check the
352 Volume contents against the original files on disk. </dd>
355 <dd>An Archive operation is done after a Save, and it
356 consists of removing the Volumes on which data is saved from active
357 use. These Volumes are marked as Archived, and many no longer be
358 used to save files. All the files contained on an Archived Volume
359 are removed from the Catalog. NOT YET IMPLEMENTED. </dd>
362 <dd>An Update operation causes the files on the remote
363 system to be updated to be the same as the host system. This is
364 equivalent to an <b>rdist</b> capability. NOT YET IMPLEMENTED.
367 <dt>Retention Period</dt>
368 <dd>There are various kinds of retention
369 periods that Bacula recognizes. The most important are the
370 <b>File</b> Retention Period, <b>Job</b> Retention Period, and the
371 <b>Volume</b> Retention Period. Each of these retention periods
372 applies to the time that specific records will be kept in the
373 Catalog database. This should not be confused with the time that
374 the data saved to a Volume is valid. <p>The File Retention Period
375 determines the time that File records are kept in the catalog
376 database. This period is important because the volume of the
377 database File records by far use the most storage space in the
378 database. As a consequence, you must ensure that regular
379 "pruning" of the database file records is done. (See
380 the Console <b>retention</b> command for more details on this
381 subject). <p>The Job Retention Period is the length of time that
382 Job records will be kept in the database. Note, all the File
383 records are tied to the Job that saved those files. The File
384 records can be purged leaving the Job records. In this case,
385 information will be available about the jobs that ran, but not the
386 details of the files that were backed up. Normally, when a Job
387 record is purged, all its File records will also be purged. <p>The
388 Volume Retention Period is the minimum of time that a Volume will be
389 kept before it is reused. Bacula will normally never
390 overwrite a Volume that contains the only backup copy of a file.
391 Under ideal conditions, the Catalog would retain entries for all
392 files backed up for all current Volumes. Once a Volume is
393 overwritten, the files that were backed up on that Volume are
394 automatically removed from the Catalog. However, if there is a very
395 large pool of Volumes or a Volume is never overwritten, the Catalog
396 database may become enormous. To keep the Catalog to a manageable
397 size, the backup information should removed from the Catalog after
398 the defined File Retention Period. Bacula provides the
399 mechanisms for the catalog to be automatically pruned according to
400 the retention periods defined. </dd>
403 <dd>A Scan operation causes the contents of a Volume or a
404 series of Volumes to be scanned. These Volumes with the information
405 on which files they contain are restored to the Bacula Catalog.
406 Once the information is restored to the Catalog, the files contained
407 on those Volumes may be easily restored. This function is
408 particularly useful if certain Volumes or Jobs have exceeded
409 their retention period and have been pruned or purged from the
410 Catalog. Scanning data from Volumes into the Catalog is done
411 by using the <b>bscan</b> program. See the <a href="rel-manual/progs.html#bscan">
412 bscan section</a> of the Bacula Utilities Chapter of this manual
413 for more details.</dd>
416 <dd>A Volume is an archive unit, normally a tape or
417 a named disk file where Bacula stores the data from one or more
418 backup jobs. All Bacula Volumes have a software label written to
419 the Volume by Bacula so that it identify what Volume it is really
420 reading. (Normally there should be no confusion with disk files,
421 but with tapes, it is easy to mount the wrong one).</dd>
424 <h3>What Bacula is Not</h3>
425 <b>Bacula</b> is a backup, restore and verification program and is not a
426 complete disaster recovery system in itself, but it can be a key part
427 of one if you plan carefully and follow the instructions included in the <a
428 href="rel-manual/rescue.html"> Disaster Recovery</a> Chapter of this manual.
430 With proper planning, as mentioned in the Disaster Recovery chapter
431 <b>Bacula</b> can be a central component of your disaster recovery
432 system. For example, if you have created an emergency boot disk, a
433 Bacula Rescue disk to save the current partitioning information of your
434 hard disk, and maintain a complete Bacula backup, it is possible to
435 completely recover your system from "bare metal".
437 If you have used the <b>WriteBootstrap</b> record in your job or some
438 other means to save a valid bootstrap file, you will be able to use it
439 to extract the necessary files (without using the catalog or manually
440 searching for the files to restore).
442 <h3>Interactions Between the Bacula Services</h3>
443 The following block diagram shows the typical interactions
444 between the Bacula Services for a backup job. Each block
445 represents in general a separate process (normally a daemon).
446 In general, the Director oversees the flow of information. It also
447 maintains the Catalog.
448 <p style="text-align: center">
449 <img src="images/manual/flow.jpeg" border="0" alt="Interactions between Bacula Services" width="480" height="370">
455 <? require_once("inc/header.php"); ?>