1 \chapter{New Features in Bacula Enterprise 6.0.x}
2 This chapter presents the new features that have been added to the
3 current Enterprise version of Bacula.
4 These features are available only with a Bacula Systems subscription.
6 In addition to the features in this chapter, the Enterprise version
7 will include the Community features described in the Community new Features
10 \chapter{New Features in Bacula Enterprise 6.0.5}
12 \section{FD Storage Address}
14 When the Director is behind a NAT, in a WAN area, to connect to
16 the StorageDaemon, the Director uses an "external" ip address,
17 and the FileDaemon should use an "internal" ip address to contact the
20 The normal way to handle this situation is to use a canonical name such as
21 "storage-server" that will be resolved on the Director side as the WAN address
22 and on the Client side as the LAN address. This is now possible to configure
23 this parameter using the new \texttt{FDStorageAddress} Storage
29 \includegraphics[width=10cm]{\idir BackupOverWan1}
30 \label{fig:fdstorageaddress}
31 \caption{Backup over WAN}
38 FD Storage Address = 10.0.0.1
44 % # or in the Client resouce
49 % FD Storage Address = 10.0.0.1
55 % Note that using the Client \texttt{FDStorageAddress} directive will not allow
56 % to use multiple Storage Daemon, all Backup or Restore requests will be sent to
57 % the specified \texttt{FDStorageAddress}.
59 \chapter{New Features in Bacula Enterprise 6.0.0}
61 \section{Incomplete Jobs}
62 During a backup, if the Storage daemon experiences disconnection
63 with the File daemon during backup (normally a comm line problem
64 or possibly an FD failure), under conditions that the SD determines
65 to be safe it will make the failed job as Incomplete rather than
66 failed. This is done only if there is sufficient valid backup
67 data that was written to the Volume. The advantage of an Incomplete
68 job is that it can be restarted by the new bconsole {\bf restart}
69 command from the point where it left off rather than from the
70 beginning of the jobs as is the case with a cancel.
72 \section{The Stop Command}
73 Bacula has been enhanced to provide a {\bf stop} command,
74 very similar to the {\bf cancel} command with the main difference
75 that the Job that is stopped is marked as Incomplete so that
76 it can be restarted later by the {\bf restart} command where
77 it left off (see below). The {\bf stop} command with no
78 arguments, will like the cancel command, prompt you with the
79 list of running jobs allowing you to select one, which might
80 look like the following:
85 1: JobId=3 Job=Incremental.2012-03-26_12.04.26_07
86 2: JobId=4 Job=Incremental.2012-03-26_12.04.30_08
87 3: JobId=5 Job=Incremental.2012-03-26_12.04.36_09
88 Choose Job to stop (1-3): 2
89 2001 Job "Incremental.2012-03-26_12.04.30_08" marked to be stopped.
90 3000 JobId=4 Job="Incremental.2012-03-26_12.04.30_08" marked to be stopped.
93 \section{The Restart Command}
94 The new {\bf Restart command} allows console users to restart
95 a canceled, failed, or incomplete Job. For canceled and failed
96 Jobs, the Job will restart from the beginning. For incomplete
97 Jobs the Job will restart at the point that it was stopped either
98 by a stop command or by some recoverable failure.
101 If you enter the {\bf restart} command in bconsole, you will get the
106 You have the following choices:
111 Select termination code: (1-4):
114 If you select the {\bf All} option, you may see something like:
117 Select termination code: (1-4): 4
118 +-------+-------------+---------------------+------+-------+----------+-----------+-----------+
119 | jobid | name | starttime | type | level | jobfiles |
120 jobbytes | jobstatus |
121 +-------+-------------+---------------------+------+-------+----------+-----------+-----------+
122 | 1 | Incremental | 2012-03-26 12:15:21 | B | F | 0 |
124 | 2 | Incremental | 2012-03-26 12:18:14 | B | F | 350 |
126 | 3 | Incremental | 2012-03-26 12:18:30 | B | F | 0 |
128 | 4 | Incremental | 2012-03-26 12:18:38 | B | F | 331 |
130 +-------+-------------+---------------------+------+-------+----------+-----------+-----------+
131 Enter the JobId list to select:
134 Then you may enter one or more JobIds to be restarted, which may
135 take the form of a list of JobIds separated by commas, and/or JobId
136 ranges such as {\bf 1-4}, which indicates you want to restart JobIds
137 1 through 4, inclusive.
139 \section{Support for Exchange Incremental Backups}
140 The Bacula Enterprise version 6.0 VSS plugin now supports
141 Full and Incremental backups for Exchange. We strongly
142 recommend that you do not attempt to run Differential jobs with
143 Exchange as it is likely to produce a situation where restores
144 will no longer select the correct jobs, and thus the
145 Windows Exchange VSS writer will fail when applying log files.
146 There is a Bacula Systems Enterprise white paper that provides
147 the details of backup and restore of Exchange 2010 with the
151 Restores can be done while Exchange is running, but you
152 must first unmount (dismount in Microsoft terms) any database
153 you wish to restore and explicitly mark them to permit a
154 restore operation (see the white paper for details).
157 This project was funded by Bacula Systems and is available with the Bacula
160 \section{Support for MSSQL Block Level Backups}
161 With the addition of block level backup support to the
162 Bacula Enterprise VSS MSSQL component, you can now do
163 Differential backups in addition to Full backups.
164 Differential backups use Microsoft's partial block backup
165 (a block differencing or deduplication that we call Delta).
166 This partial block backup permits backing up only those
167 blocks that have changed. Database restores can be made while
168 the MSSQL server is running, but any databases selected for
169 restore will be automatically taken offline by the MSSQL
170 server during the restore process.
172 Incremental backups for MSSQL are not support by
173 Microsoft. We strongly recommend that you not perform Incremental
174 backups with MSSQL as they will probably produce a situation
175 where restore will no longer work correctly.
178 We are currently working on producing a white paper that will give more
179 details of backup and restore with MSSQL. One point to note is that during
180 a restore, you will normally not want to restore the {\bf master} database.
181 You must exclude it from the backup selections that you have made or the
185 It is possible to restore the {\bf master} database, but you must
186 first shutdown the MSSQL server, then you must perform special
187 recovery commands. Please see Microsoft documentation on how
188 to restore the master database.
191 This project was funded by Bacula Systems and is available with the Bacula
195 \section{Job Bandwidth Limitation}
197 The new {\bf Job Bandwidth Limitation} directive may be added to the File
198 daemon's and/or Director's configuration to limit the bandwidth used by a Job
199 on a Client. It can be set in the File daemon's conf file for all Jobs run in
200 that File daemon, or it can be set for each Job in the Director's conf file.
206 Working Directory = /some/path
207 Pid Directory = /some/path
209 Maximum Bandwidth Per Job = 5Mb/s
213 The above example would cause any jobs running with the FileDaemon to not
214 exceed 5Mb/s of throughput when sending data to the Storage Daemon.
216 You can specify the speed parameter in k/s, Kb/s, m/s, Mb/s.
222 FileSet = FS_localhost
225 Maximum Bandwidth = 5Mb/s
230 The above example would cause Job \texttt{localhost-data} to not exceed 5MB/s
231 of throughput when sending data from the File daemon to the Storage daemon.
233 A new console command \texttt{setbandwidth} permits to set dynamically the
234 maximum throughput of a running Job or for future jobs of a Client.
237 * setbandwidth limit=1000000 jobid=10
240 The \texttt{limit} parameter is in Kb/s.
243 This project was funded by Bacula Systems and is available in
244 the Enterprise Edition.
246 \section{Incremental/Differential Block Level Difference Backup}
248 The new \texttt{delta} Plugin is able to compute and apply signature-based file
249 differences. It can be used to backup only changes in a big binary file like
250 Outlook PST, VirtualBox/VMware images or database files.
252 It supports both Incremental and Differential backups and stores signatures
253 database in the File Daemon working directory. This plugin is available on all
254 platform including Windows 32 and 64bit.
256 Accurate option should be turned on in the Job resource.
269 Plugin = "delta:/home/eric/.VirtualBox/HardDisks/lenny-i386.vdi"
274 Name = DeltaFS-Include
282 # Use the Options{} filtering and options
283 File = /home/user/.VirtualBox
289 Please contact Bacula Systems support to get Delta Plugin specific
293 This project was funded by Bacula Systems and is available with the Bacula
296 \section{SAN Shared Tape Storage Plugin}
298 The problem with backing up multiple servers at the same time to the
299 same tape library (or autoloader) is that if both servers access the
300 same tape drive same time, you will very likely get data corruption.
301 This is where the Bacula Systems shared tape storage plugin comes into play. The
302 plugin ensures that only one server at a time can connect to each device
303 (tape drive) by using the SPC-3 SCSI reservation protocol. Please contact
304 Bacula Systems support to get SAN Shared Storage Plugin specific
308 This project was funded by Bacula Systems and is available with Bacula
311 \section{Advanced Autochanger Usage}
313 The new \texttt{Shared Storage} Director's directive is a Bacula Enterprise
314 feature that allows you to share volumes between different Storage
315 resources. This directive should be used \textbf{only} if all \texttt{Media
316 Type} are correctly set across all Devices.
318 The \texttt{Shared Storage} directive should be used when using the SAN
319 Shared Storage plugin or when accessing from the Director Storage resources
320 directly to Devices of an Autochanger.
322 When sharing volumes between different Storage resources, you will
323 need also to use the \texttt{reset-storageid} script before using the
324 \texttt{update slots} command. This script can be scheduled once a day in
328 $ /opt/bacula/scripts/reset-storageid MediaType StorageName
330 * update slots storage=StorageName drive=0
333 Please contact Bacula Systems support to get help on this advanced
337 This project was funded by Bacula Systems and is available with Bacula
340 \section{Enhancement of the NDMP Plugin}
342 The previous NDMP Plugin 4.0 was fully supporting only the NetApp hardware, the
343 new NDMP Plugin should now be able to support all NAS vendors with the
344 \texttt{volume\_format} plugin command option.
346 On some NDMP devices such as Celera or Blueray, the administrator can use arbitrary
347 volume structure name, ex:
351 /rootvolume/volume_tmp
355 The NDMP plugin should be aware of the structure organization in order to
356 detect if the administrator wants to restore in a new volume
357 (\texttt{where=/dev/vol\_tmp}) or inside a subdirectory of the targeted volume
358 (\texttt{where=/tmp}).
365 Plugin = "ndmp:host=nasbox user=root pass=root file=/dev/vol1 volume_format=/dev/"
370 Please contact Bacula Systems support to get NDMP Plugin specific
374 This project was funded by Bacula Systems and is available with the Bacula
377 \section{Always Backup a File}
379 When the Accurate mode is turned on, you can decide to always backup a file
380 by using then new {\bf A} Accurate option in your FileSet. For example:
403 This project was funded by Bacula Systems based on an idea of James Harper and
404 is available with the Bacula Enterprise Edition.
406 \section{Setting Accurate Mode During at Runtime}
408 You are now able to specify the Accurate mode on the \texttt{run} command and
409 in the Schedule resource.
412 * run accurate=yes job=Test
418 Run = Full 1st sun at 23:05
419 Run = Differential accurate=yes 2nd-5th sun at 23:05
420 Run = Incremental accurate=no mon-sat at 23:05
424 It can allow you to save memory and and CPU resources on the catalog server in
428 These advanced tuning options are available with the Bacula Enterprise Edition.
430 % Common with community
431 \section{Additions to RunScript variables}
432 You can have access to JobBytes, JobFiles and Director name using \%b, \%F and \%D
433 in your runscript command. The Client address is now available through \%h.
436 RunAfterJob = "/bin/echo Job=%j JobBytes=%b JobFiles=%F ClientAddress=%h Dir=%D"
439 \section{LZO Compression}
441 LZO compression was added in the Unix File Daemon. From the user point of view,
442 it works like the GZIP compression (just replace {\bf compression=GZIP} with
443 {\bf compression=LZO}).
448 Options { compression=LZO }
454 LZO provides much faster compression and decompression speed but lower
455 compression ratio than GZIP. It is a good option when you backup to disk. For
456 tape, the built-in compression may be a better option.
458 LZO is a good alternative for GZIP1 when you don't want to slow down your
459 backup. On a modern CPU it should be able to run almost as fast as:
462 \item your client can read data from disk. Unless you have very fast disks like
463 SSD or large/fast RAID array.
464 \item the data transfers between the file daemon and the storage daemon even on
468 Note that bacula only use one compression level LZO1X-1.
471 The code for this feature was contributed by Laurent Papier.
473 \section{New Tray Monitor}
475 Since the old integrated Windows tray monitor doesn't work with
476 recent Windows versions, we have written a new Qt Tray Monitor that is available
477 for both Linux and Windows. In addition to all the previous features,
478 this new version allows you to run Backups from
479 the tray monitor menu.
483 \includegraphics[width=10cm]{\idir tray-monitor}
484 \label{fig:traymonitor}
485 \caption{New tray monitor}
490 \includegraphics[width=10cm]{\idir tray-monitor1}
491 \label{fig:traymonitor1}
492 \caption{Run a Job through the new tray monitor}
496 To be able to run a job from the tray monitor, you need to
497 allow specific commands in the Director monitor console:
502 CommandACL = status, .clients, .jobs, .pools, .storage, .filesets, .messages, run
503 ClientACL = *all* # you can restrict to a specific host
515 This project was funded by Bacula Systems and is available with Bacula
516 the Enterprise Edition and the Community Edition.
518 \section{Purge Migration Job}
520 The new {\bf Purge Migration Job} directive may be added to the Migration
521 Job definition in the Director's configuration file. When it is enabled
522 the Job that was migrated during a migration will be purged at
523 the end of the migration job.
531 Client = localhost-fd
534 Storage = DiskChanger
537 Selection Pattern = ".*Save"
539 Purge Migration Job = yes
545 This project was submitted by Dunlap Blake; testing and documentation was funded
548 \section{Changes in the Pruning Algorithm}
550 We rewrote the job pruning algorithm in this version. Previously, in some users
551 reported that the pruning process at the end of jobs was very long. It should
552 not be longer the case. Now, Bacula won't prune automatically a Job if this
553 particular Job is needed to restore data. Example:
557 JobId: 2 Level: Incremental
558 JobId: 3 Level: Incremental
559 JobId: 4 Level: Differential
560 .. Other incrementals up to now
563 In this example, if the Job Retention defined in the Pool or in the Client
564 resource causes that Jobs with Jobid in 1,2,3,4 can be pruned, Bacula will
565 detect that JobId 1 and 4 are essential to restore data at the current state
566 and will prune only JobId 2 and 3.
568 \texttt{Important}, this change affect only the automatic pruning step after a
569 Job and the \texttt{prune jobs} Bconsole command. If a volume expires after the
570 \texttt{VolumeRetention} period, important jobs can be pruned.
572 \section{Ability to Verify any specified Job}
573 You now have the ability to tell Bacula which Job should verify instead of
574 automatically verify just the last one.
576 This feature can be used with VolumeToCatalog, DiskToCatalog and Catalog level.
578 To verify a given job, just specify the Job jobid in argument when starting the
581 *run job=VerifyVolume jobid=1 level=VolumeToCatalog
583 JobName: VerifyVolume
584 Level: VolumeToCatalog
587 Pool: Default (From Job resource)
588 Storage: File (From Job resource)
589 Verify Job: VerifyVol.2010-09-08_14.17.17_03
590 Verify List: /tmp/regress/working/VerifyVol.bsr
591 When: 2010-09-08 14:17:31
593 OK to run? (yes/mod/no):
597 This project was funded by Bacula Systems and is available with Bacula
598 Enterprise Edition and Community Edition.