1 \chapter{New Features in Bacula Enterprise 6.0}
2 This chapter presents the new features that will be added to the
3 current Enterprise version of Bacula that is under development. This version will be
4 released at some later date, probably near the end of June 2011. These
5 features are available only with a Bacula Systems subscription.
7 In addition to the features in this chapter, the Enterprise version
8 will include the Community features described in the Community new Features
11 \section{Restart Incomplete Job}
15 This project was funded by Bacula Systems and is available with Bacula
18 \section{Support for MSSQL Block Level Backup}
20 This project was funded by Bacula Systems and is available with the Bacula
24 \section{Job Bandwidth Limitation}
26 The new {\bf Job Bandwidth Limitation} directive may be added to the File
27 daemon's and/or Director's configuration to limit the bandwidth used by a Job
28 on a Client. It can be set in the File daemon's conf file for all Jobs run in
29 that File daemon, or it can be set for each Job in the Director's conf file.
35 Working Directory = /some/path
36 Pid Directory = /some/path
38 Maximum Bandwidth Per Job = 5Mb/s
42 The above example would cause any jobs running with the FileDaemon to not
43 exceed 5Mb/s of throughput when sending data to the Storage Daemon.
45 You can specify the speed parameter in k/s, Kb/s, m/s, Mb/s.
51 FileSet = FS_localhost
54 Maximum Bandwidth = 5Mb/s
59 The above example would cause Job \texttt{localhost-data} to not exceed 5MB/s
60 of throughput when sending data from the File daemon to the Storage daemon.
62 A new console command \texttt{setbandwidth} permits to set dynamically the
63 maximum throughput of a running Job or for future jobs of a Client.
66 * setbandwidth limit=1000000 jobid=10
69 The \texttt{limit} parameter is in Kb/s.
72 This project was funded by Bacula Systems and is available in
73 the Enterprise Edition.
75 \section{Incremental/Differential Block Level Difference Backup}
77 The new \texttt{delta} Plugin is able to compute and apply signature-based file
78 differences. It can be used to backup only changes in a big binary file like
79 Outlook PST, VirtualBox/VmWare images or database files.
81 It supports both Incremental and Differential backups and stores signatures
82 database in the File Daemon working directory. This plugin is available on all
83 platform including Windows 32 and 64bit.
85 Accurate option should be turned on in the Job resource.
98 Plugin = "delta:/home/eric/.VirtualBox/HardDisks/lenny-i386.vdi"
103 Name = DeltaFS-Include
111 # Use the Options{} filtering and options
112 File = /home/user/.VirtualBox
118 Please contact Bacula Systems support to get Delta Plugin specific
122 This project was funded by Bacula Systems and is available with the Bacula
125 \section{SAN Shared Storage Plugin}
127 The problem with backing up multiple servers at the same time to the
128 same tape library (or autoloader) is that if both servers access the
129 same tape drive same time, you will very likely get data corruption.
130 This is where the Bacula Systems shared storage plugin comes into play. The
131 plugin ensures that only one server at a time can connect to each device
132 (tape drive) by using the SPC-3 SCSI reservation protocol. Please contact
133 Bacula Systems support to get SAN Shared Storage Plugin specific documentation.
136 This project was funded by Bacula Systems and is available with Bacula
139 \section{Advanced Autochanger Usage}
141 The new \texttt{Shared Storage} Director's directive is a Bacula Enterprise
142 feature that allows you to share volumes between different Storage
143 resources. This directive should be used \textbf{only} if all \texttt{Media
144 Type} are correctly set across all Devices.
146 The \texttt{Shared Storage} directive should be used when using the SAN
147 Shared Storage plugin or when accessing from the Director Storage resources
148 directly to Devices of an Autochanger.
150 When sharing volumes between different Storage resources, you will
151 need also to use the \texttt{reset-storageid} script before using the
152 \texttt{update slots} command. This script can be scheduled once a day in
156 $ /opt/bacula/scripts/reset-storageid MediaType StorageName
158 * update slots storage=StorageName drive=0
161 Please contact Bacula Systems support to get help on this advanced
165 This project was funded by Bacula Systems and is available with Bacula
168 \section{Enhancement of the NDMP Plugin}
170 The previous NDMP Plugin 4.0 was fully supporting only the NetApp hardware, the
171 new NDMP Plugin should now be able to support all NAS vendors with the
172 \texttt{volume\_format} plugin command option.
174 On some NDMP devices such as Celera or Blueray, the administrator can use arbitrary
175 volume structure name, ex:
179 /rootvolume/volume_tmp
183 The NDMP plugin should be aware of the structure organization in order to
184 detect if the administrator wants to restore in a new volume
185 (\texttt{where=/dev/vol_tmp}) or inside a subdirectory of the targeted volume
186 (\texttt{where=/tmp}).
193 Plugin = "ndmp:host=nasbox user=root pass=root file=/dev/vol1 volume_format=/dev/"
198 Please contact Bacula Systems support to get NDMP Plugin specific
202 This project was funded by Bacula Systems and is available with the Bacula
205 \section{Always Backup a File}
207 When the Accurate mode is turned on, you can decide to always backup a file
208 by using the following option:
231 This project was funded by Bacula Systems based on an idea of James Harper and
232 is available with the Bacula Enterprise Edition.
234 \section{Setting Accurate Mode During at Runtime}
236 You are now able to specify the Accurate mode on the \texttt{run} command and
237 in the Schedule resource.
240 * run accurate=yes job=Test
246 Run = Full 1st sun at 23:05
247 Run = Differential accurate=yes 2nd-5th sun at 23:05
248 Run = Incremental accurate=no mon-sat at 23:05
252 It can allow you to save memory and and CPU resources on the catalog server in
256 These advanced tuning options are available with the Bacula Enterprise Edition.
258 % Common with community
259 \section{Additions to RunScript variables}
260 You can have access to JobBytes, JobFiles and Director name using \%b, \%F and \%D
261 in your runscript command. The Client address is now available through \%h.
264 RunAfterJob = "/bin/echo Job=%j JobBytes=%b JobFiles=%F ClientAddress=%h Dir=%D"
267 \section{LZO Compression}
269 LZO compression was added in the Unix File Daemon. From the user point of view,
270 it works like the GZIP compression (just replace {\bf compression=GZIP} with
271 {\bf compression=LZO}).
276 Options { compression=LZO }
282 LZO provides much faster compression and decompression speed but lower
283 compression ratio than GZIP. It is a good option when you backup to disk. For
284 tape, the built-in compression may be a better option.
286 LZO is a good altenative for GZIP1 when you don't want to slow down your
287 backup. On a modern CPU it should be able to run almost as fast as:
290 \item your client can read data from disk. Unless you have very fast disks like
291 SSD or large/fast RAID array.
292 \item the data transfers between the file daemon and the storage daemon even on
296 Note that bacula only use one compression level LZO1X-1.
299 The code for this feature was contributed by Laurent Papier.
301 \section{New Tray Monitor}
303 Since the old integrated Windows tray monitor doesn't work with
304 recent Windows versions, we have written a new Qt Tray Monitor that is available
305 for both Linux and Windows. In addition to all the previous features,
306 this new version allows you to run Backups from
307 the tray monitor menu.
311 \includegraphics[width=10cm]{\idir tray-monitor}
312 \label{fig:traymonitor}
313 \caption{New tray monitor}
318 \includegraphics[width=10cm]{\idir tray-monitor1}
319 \label{fig:traymonitor1}
320 \caption{Run a Job through the new tray monitor}
324 To be able to run a job from the tray monitor, you need to
325 allow specific commands in the Director monitor console:
330 CommandACL = status, .clients, .jobs, .pools, .storage, .filesets, .messages, run
331 ClientACL = *all* # you can restrict to a specific host
343 This project was funded by Bacula Systems and is available with Bacula
344 the Enterprise Edition and the Community Edition.
346 \section{Purge Migration Job}
348 The new {\bf Purge Migration Job} directive may be added to the Migration
349 Job definition in the Director's configuration file. When it is enabled
350 the Job that was migrated during a migration will be purged at
351 the end of the migration job.
359 Client = localhost-fd
362 Storage = DiskChanger
365 Selection Pattern = ".*Save"
367 Purge Migration Job = yes
373 This project was submited by Dunlap Blake; testing and documentation was funded
376 \section{Changes in the Pruning Algorithm}
378 We rewrote the job pruning algorithm in this version. Previously, in some users
379 reported that the pruning process at the end of jobs was very long. It should
380 not be longer the case. Now, Bacula won't prune automatically a Job if this
381 particular Job is needed to restore data. Example:
385 JobId: 2 Level: Incremental
386 JobId: 3 Level: Incremental
387 JobId: 4 Level: Differential
388 .. Other incrementals up to now
391 In this example, if the Job Retention defined in the Pool or in the Client
392 resource causes that Jobs with Jobid in 1,2,3,4 can be pruned, Bacula will
393 detect that JobId 1 and 4 are essential to restore data at the current state
394 and will prune only JobId 2 and 3.
396 \texttt{Important}, this change affect only the automatic pruning step after a
397 Job and the \texttt{prune jobs} Bconsole command. If a volume expires after the
398 \texttt{VolumeRetention} period, important jobs can be pruned.
400 \section{Ability to Verify any specified Job}
401 You now have the ability to tell Bacula which Job should verify instead of
402 automatically verify just the last one.
404 This feature can be used with VolumeToCatalog, DiskToCatalog and Catalog level.
406 To verify a given job, just specify the Job jobid in argument when starting the
409 *run job=VerifyVolume jobid=1 level=VolumeToCatalog
411 JobName: VerifyVolume
412 Level: VolumeToCatalog
415 Pool: Default (From Job resource)
416 Storage: File (From Job resource)
417 Verify Job: VerifyVol.2010-09-08_14.17.17_03
418 Verify List: /tmp/regress/working/VerifyVol.bsr
419 When: 2010-09-08 14:17:31
421 OK to run? (yes/mod/no):
425 This project was funded by Bacula Systems and is available with Bacula
426 Enterprise Edition and Community Edition.