]> git.sur5r.net Git - bacula/docs/blob - docs/manuals/en/main/newbsfeatures.tex
Add more to the new features chapter
[bacula/docs] / docs / manuals / en / main / newbsfeatures.tex
1 \chapter{New Features in Bacula Enterprise}
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.
5
6 In addition to the features in this chapter, the Enterprise version
7 will include the Community features described in the Community new Features
8 chapter.
9
10 \section{Bacula Enterprise 6.4.0}
11 \subsection{Deduplication Optimized Volumes}
12 This version of Bacula includes a new alternative (or additional)
13 Volume format that optimized the placement of files such
14 that an underlying deduplicating filesystem such as ZFS
15 can optimally deduplicate the backup data that is written
16 by Bacula. These are called Deduplication Optimized Volumes
17 or Aligned Volumes for short. The details of how to use this
18 feature and its considerations are in the Bacula Systems
19 Deduplication Optimized Volumes white paper.
20
21 \subsection{Migration/Copy/VirtualFull Performance Enhancements}
22 The new feature that permits the Bacula Storage daemon
23 to read the same disk Volume gives substantial performance 
24 enhancements when running Migration, Copy, or VirtualFull jobs
25 that read disk Volumes. Our testing shows that when running
26 multiple simultaneous jobs, the jobs can finish up to ten
27 times as fast with this version of Bacula. This is built-in
28 to the Storage daemon, so it happens automatically and 
29 transparently.
30
31 \subsection{VirtualFull Backup Consolidation Enhancements}
32 By default Bacula selects jobs automatically for a VirtualFull,
33 however, you may want to choose any point in time to create the
34 Virtual backup.
35
36 For example, if you have the following backup Jobs in your catalog:
37 \begin{lstlisting}
38 +-------+---------+-------+----------+----------+-----------+
39 | JobId | Name    | Level | JobFiles | JobBytes | JobStatus |
40 +-------+---------+-------+----------+----------+-----------+
41 | 1     | Vbackup | F     | 1754     | 50118554 | T         |
42 | 2     | Vbackup | I     | 1        | 4        | T         |
43 | 3     | Vbackup | I     | 1        | 4        | T         |
44 | 4     | Vbackup | D     | 2        | 8        | T         |
45 | 5     | Vbackup | I     | 1        | 6        | T         |
46 | 6     | Vbackup | I     | 10       | 60       | T         |
47 | 7     | Vbackup | I     | 11       | 65       | T         |
48 | 8     | Save    | F     | 1758     | 50118564 | T         |
49 +-------+---------+-------+----------+----------+-----------+
50 \end{lstlisting}
51
52 If you want to consolidate only the first 3 jobs and create a virtual backup
53 equivalent to Job 1 + Job 2 + Job 3, you will use \texttt{jobid=3} in the
54 \texttt{run} command, then Bacula will select the previous Full backup, the
55 previous Differential (if any) and all subsequent Incremental jobs.
56
57 \begin{lstlisting}
58 run job=Vbackup jobid=3 level=VirtualFull
59 \end{lstlisting}
60
61 If you want to consolidate a specific job list, you must specify the exact
62 list of jobs to merge in the run command line.  For example, to consolidate
63 the last Differential and all subsequent Incremental, you will use
64 \texttt{jobid=4,5,6,7} or \texttt{jobid=4-7} on the run command line. As one
65 of the Job in the list is a Differential backup, Bacula will set the new job
66 level to Differential. If the list is composed only with Incremental jobs,
67 the new job will have a level set to Incremental.
68
69 \begin{lstlisting}
70 run job=Vbackup jobid=4-7 level=VirtualFull
71 \end{lstlisting}
72
73 When using this feature, Bacula will automatically discard jobs that are not
74 related to the current Job. For example, specifying \texttt{jobid=7,8},
75 Bacula will discard the jobid 8.
76
77 If you know what you are doing and still want to consolidate jobs that have
78 different names (so probably different clients, filesets, etc...), you must
79 use \texttt{alljobid=} keyword instead of \texttt{jobid=}.
80
81 \begin{lstlisting}
82 run job=Vbackup alljobid=1-3,6-8 level=VirtualFull
83 \end{lstlisting}
84
85 \subsection{New Prune ``Expired'' Volume Command}
86
87 In Bacula Enterprise 6.4, it is now possible to prune all volumes
88 (from a pool, or globally) that are ``expired''.  This option can be
89 scheduled after or before the backup of the Catalog and can be
90 combined with the Truncate On Purge option.  This option can be used
91 instead of the \texttt{manual\_prune.pl} script.
92
93 \begin{lstlisting}
94 * prune expired volumes
95
96 * prune expired volumes pool=FullPool
97 \end{lstlisting}
98
99 To schedule this option automatically, it can be added to the BackupCatalog job
100 definition.
101
102 \begin{lstlisting}
103  Job {
104    Name = CatalogBackup
105    ...
106    RunScript {
107      Console = ``prune expired volume yes''
108      RunsWhen = Before
109    }
110  }
111 \end{lstlisting}
112
113 \section{Bacula Enterprise 6.2.3}
114
115 \subsection{New Job Edit Code \%P \%C}
116
117 In various places such as RunScript, you have now access to \%P to get the
118 current PID and the \%C to know if the current job is a cloned job.
119
120 \section{Bacula Enterprise 6.2.0}
121
122 \subsection{BWeb Bacula Configuration GUI}
123
124 In Bacula Enterprise version 6.2, the BWeb Management Suite integrates a
125 Bacula configuration GUI module which is designed to help you create and
126 modify the Bacula configuration files such as bacula-dir.conf,
127 bacula-sd.conf, bacula-fd.conf and bconsole.conf.
128
129 The BWeb Management Suite offers a number of Wizards which support the
130 Administrator in his daily work. The wizards provide a step by step set of
131 required actions that graphically guide the Administrator to perform quick
132 and easy creation and modification of configuration files.
133
134 BWeb also provides diagnostic tools that enable the Administrator to check
135 that the Catalog Database is well configured, and that BWeb is installed
136 properly.
137
138 The new Online help mode displays automatic help text suggestions when the
139 user searches data types.
140
141 \bsysimageH{bweb_config_screen}{Configuration with BWeb Management Suite}{fig:BwebBconfigScreen}
142
143 \smallskip
144 This project was funded by Bacula Systems and is available with the Bacula
145 Enterprise Edition.
146
147 \subsection{Performance Improvements}
148 Bacula Enterprise 6.2 has a number of new performance improvements:
149
150 \begin{itemize}
151 \item An improved way of storing Bacula Resources (as defined in
152 the .conf files). This new handling permits much faster loading or
153 reloading of the conf files, and permits larger numbers of resources.
154
155 \item Improved performance when inserting large numbers of files in
156 the DB catalog by breaking the insertion into smaller chunks, thus
157 allowing better sharing when running multiple simultaneous jobs.
158
159 \item Performance enhancements in BVFS concerning eliminating 
160 duplicate path records.
161
162 \item Performance improvement when getting Pool records.
163
164 \item Pruning performance enhancements.
165 \end{itemize}
166
167 \subsection{Enhanced Status and Error Messages}
168 We have enhanced the Storage daemon status output to be more
169 readable. This is important when there are a large number of
170 devices. In addition to formatting changes, it also includes more
171 details on which devices are reading and writing.
172
173 A number of error messages have been enhanced to have more specific
174 data on what went wrong.
175
176 If a file changes size while being backed up the old and new size
177 are reported.
178
179 \subsection{Miscellaneous New Features}
180 \begin{itemize}
181 \item Allow unlimited line lengths in .conf files (previously limited
182 to 2000 characters).
183
184 \item Allow /dev/null in ChangerCommand to indicated a Virtual Autochanger.
185
186 \item Add a --fileprune option to the manual\_prune.pl script.
187
188 \item Add a -m option to make\_catalog\_backup.pl to do maintenance
189 on the catalog.
190
191 \item Safer code that cleans up the working directory when starting
192 the daemons. It limits what files can be deleted, hence enhances 
193 security.
194
195 \item Added a new .ls command in bconsole to permit browsing a client's
196 filesystem.
197
198 \item Fixed a number of bugs, includes some obscure seg faults, and a
199 race condition that occurred infrequently when running Copy, Migration,
200 or Virtual Full backups.
201
202 \item Included a new vSphere library version, which will hopefully
203 fix some of the more obscure bugs.
204
205 \item Upgraded to a newer version of Qt4 for bat. All indications
206 are that this will improve bat's stability on Windows machines.
207
208 \item The Windows installers now detect and refuse to install on
209 an OS that does not match the 32/64 bit value of the installer.
210 \end{itemize}
211
212
213 \section{Bacula Enterprise 6.0.6}
214
215 \subsection{Incremental Accelerator Plugin for NetApp}
216
217 The Incremental Accelerator for NetApp Plugin is designed to simplify the
218 backup and restore procedure of your NetApp NAS hosting a huge number of files.
219
220 \smallskip{} When using the NetApp HFC Plugin, Bacula Enterprise will query the
221 NetApp device to get the list of all files modified since the last backup
222 instead of having to walk through the entire filesystem. Once Bacula have the
223 list of all files to back's up, it will use a standard network share (such as
224 NFS or CIFS) to access files.
225
226 \smallskip
227 This project was funded by Bacula Systems and is available with the Bacula
228 Enterprise Edition.
229
230 \subsection{PostgreSQL Plugin}
231
232 The PostgreSQL plugin is designed to simplify the backup and restore procedure
233 of your PostgreSQL cluster, the backup administrator doesn't need to learn about
234 internals of Postgres backup techniques or write complex scripts. The plugin
235 will automatically take care for you to backup essential information such as
236 configuration, users definition or tablespaces. The PostgreSQL plugin supports
237 both dump and Point In Time Recovery (PITR) backup techniques.
238
239 \smallskip
240 This project was funded by Bacula Systems and is available with the Bacula
241 Enterprise Edition.
242
243 \subsection{Maximum Reload Requests}
244
245 The new Director directive \texttt{Maximum Reload Requests} permits to
246 configure the number of reload requests that can be done while jobs are
247 running.
248
249 \begin{lstlisting}
250 Director {
251   Name = localhost-dir
252   Maximum Reload Requests = 64
253   ...
254
255 }
256 \end{lstlisting}
257
258 \subsection{FD Storage Address}
259
260 When the Director is behind a NAT, in a WAN area, to connect to
261 % the FileDaemon or
262 the StorageDaemon, the Director uses an ``external'' ip address,
263 and the FileDaemon should use an ``internal'' IP address to contact the
264 StorageDaemon.
265
266 The normal way to handle this situation is to use a canonical name such as
267 ``storage-server'' that will be resolved on the Director side as the WAN
268 address and on the Client side as the LAN address. This is now possible to
269 configure this parameter using the new directive \texttt{FDStorageAddress} in
270 the Storage or Client resource.
271
272
273 \bsysimageH{BackupOverWan1}{Backup Over WAN}{figbs6:fdstorageaddress}
274 %  \label{fig:fdstorageaddress}
275
276 \begin{lstlisting}
277 Storage {
278      Name = storage1
279      Address = 65.1.1.1
280      FD Storage Address = 10.0.0.1
281      SD Port = 9103
282      ...
283 }
284 \end{lstlisting}
285
286 % # or in the Client resouce
287 %
288
289 \begin{lstlisting}
290  Client {
291       Name = client1
292       Address = 65.1.1.2
293       FD Storage Address = 10.0.0.1
294       FD Port = 9102
295       ...
296  }
297 \end{lstlisting}
298
299 Note that using the Client \texttt{FDStorageAddress} directive will not allow
300 to use multiple Storage Daemon, all Backup or Restore requests will be sent to
301 the specified \texttt{FDStorageAddress}.
302
303 \subsection{Maximum Concurrent Read Jobs}
304 This is a new directive that can be used in the {\bf bacula-dir.conf} file
305 in the Storage resource.  The main purpose is to limit the number
306 of concurrent Copy, Migration, and VirtualFull jobs so that
307 they don't monopolize all the Storage drives causing a deadlock situation
308 where all the drives are allocated for reading but none remain for
309 writing.  This deadlock situation can occur when running multiple
310 simultaneous Copy, Migration, and VirtualFull jobs.
311
312 \smallskip
313 The default value is set to 0 (zero), which means there is no
314 limit on the number of read jobs.  Note, limiting the read jobs
315 does not apply to Restore jobs, which are normally started by
316 hand.  A reasonable value for this directive is one half the number
317 of drives that the Storage resource has rounded down.  Doing so,
318 will leave the same number of drives for writing and will generally
319 avoid over committing drives and a deadlock.
320
321
322 \section{Bacula Enterprise 6.0.4}
323
324 \subsection{VMWare vSphere VADP Plugin}
325
326 The Bacula Enterprise vSphere plugin provides virtual
327 machine bare metal recovery, while the backup at the guest level simplify data
328 protection of critical applications.
329
330 The plugin integrates the VMware's Changed Block Tracking (CBT) technology to
331 ensure only blocks that have changed since the initial Full, and/or the last
332 Incremental or Differential Backup are sent to the current Incremental or
333 Differential backup stream to give you more efficient backups and reduced
334 network load.
335
336 \subsection{Oracle RMAN Plugin}
337
338 The Bacula Enterprise Oracle Plugin is designed to simplify the backup and
339 restore procedure of your Oracle Database instance, the backup administrator
340 don't need to learn about internals of Oracle backup techniques or write
341 complex scripts.  The Bacula Enterprise Oracle plugin supports both dump and
342 Point In Time Recovery (PITR) with RMAN backup techniques.
343
344
345 \section{Bacula Enterprise 6.0.2}
346
347 To make Bacula function properly with multiple Autochanger definitions, in
348 the Director's configuration, you must adapt your {\bf bacula-dir.conf}
349 {\bf Storage} directives.
350
351 \smallskip
352 Each autochanger that you have defined in an {\bf Autochanger} 
353 resource in the Storage daemon's {\bf bacula-sd.conf} file,
354 must have a corresponding {\bf Autochanger} resource defined
355 in the Director's {\bf bacula-dir.conf} file.  Normally you will
356 already have a {\bf Storage} resource that points to the
357 Storage daemon's {\bf Autochanger} resource.  Thus you need
358 only to change the name of the {\bf Storage} resource to
359 {\bf Autochanger}.  In addition the {\bf Autochanger = yes}
360 directive is not needed in the Director's {\bf Autochanger}
361 resource, since the resource name is {\bf Autochanger}, the
362 Director already knows that it represents an autochanger.
363
364 \smallskip
365 In addition to the above change ({\bf Storage} to {\bf Autochanger}),
366 you must modify any additional {\bf Storage} resources that correspond
367 to devices that are part of the {\bf Autochanger} device.
368 Instead of the previous {\bf Autochanger = yes} directive they
369 should be modified to be {\bf Autochanger = xxx} where you
370 replace the {\bf xxx} with the name of the Autochanger.
371
372 \smallskip
373 For example, in the bacula-dir.conf file:
374
375 \begin{verbatim}
376 Autochanger {             # New resource
377   Name = Changer-1
378   Address = cibou.company.com
379   SDPort = 9103
380   Password = "xxxxxxxxxx"
381   Device = LTO-Changer-1
382   Media Type = LTO-4
383   Maximum Concurrent Jobs = 50
384 }
385
386 Storage {
387   Name = Changer-1-Drive0
388   Address = cibou.company.com
389   SDPort = 9103
390   Password = "xxxxxxxxxx"
391   Device = LTO4_1_Drive0
392   Media Type = LTO-4
393   Maximum Concurrent Jobs = 5
394   Autochanger = Changer-1  # New directive
395 }
396
397 Storage {
398   Name = Changer-1-Drive1
399   Address = cibou.company.com
400   SDPort = 9103
401   Password = "xxxxxxxxxx"
402   Device = LTO4_1_Drive1
403   Media Type = LTO-4
404   Maximum Concurrent Jobs = 5
405   Autochanger = Changer-1  # New directive
406 }
407
408 ...
409 \end{verbatim}
410
411 Note that Storage resources {\bf Changer-1-Drive0} and 
412 {\bf Changer-1-Drive1} are not required since they make
413 up part of an autochanger, and normally, Jobs refer only
414 to the Autochanger resource.
415 However, by referring to those
416 Storage definitions in a Job, you will use only
417 the indicated drive.  This is not normally what
418 you want to do, but it is very useful and often used
419 for reserving a drive for restores.  See the Storage daemon
420 example .conf below and the use of {\bf AutoSelect = no}.
421
422 So, in summary, the changes are:
423 \begin{itemize}
424 \item Change {\bf Storage} to {\bf Autochanger} in the LTO4 resource.
425 \item Remove the {\bf Autochanger = yes} from the {\bf Autochanger}
426 LTO4 resource.
427 \item Change the {\bf Autochanger = yes} in each of the {\bf Storage}
428 device that belong to the {\bf Autochanger} to point to the
429 {\bf Autochanger} resource with for the example above the
430 directive {\bf Autochanger = LTO4}.
431 \end{itemize}
432
433 \section{Bacula Enterprise 6.0.0}
434
435 \subsection{Incomplete Jobs}
436 During a backup, if the Storage daemon experiences disconnection
437 with the File daemon during backup (normally a comm line problem
438 or possibly an FD failure), under conditions that the SD determines
439 to be safe it will make the failed job as Incomplete rather than
440 failed.  This is done only if there is sufficient valid backup
441 data that was written to the Volume. The advantage of an Incomplete
442 job is that it can be restarted by the new bconsole {\bf restart}
443 command from the point where it left off rather than from the
444 beginning of the jobs as is the case with a cancel.
445
446 \subsection{The Stop Command}
447 Bacula has been enhanced to provide a {\bf stop} command,
448 very similar to the {\bf cancel} command with the main difference
449 that the Job that is stopped is marked as Incomplete so that
450 it can be restarted later by the {\bf restart} command where
451 it left off (see below).  The {\bf stop} command with no
452 arguments, will like the cancel command, prompt you with the
453 list of running jobs allowing you to select one, which might
454 look like the following:
455
456 \begin{lstlisting}
457 *stop
458 Select Job:
459      1: JobId=3 Job=Incremental.2012-03-26_12.04.26_07
460      2: JobId=4 Job=Incremental.2012-03-26_12.04.30_08
461      3: JobId=5 Job=Incremental.2012-03-26_12.04.36_09
462 Choose Job to stop (1-3): 2
463 2001 Job "Incremental.2012-03-26_12.04.30_08" marked to be stopped.
464 3000 JobId=4 Job="Incremental.2012-03-26_12.04.30_08" marked to be stopped.
465 \end{lstlisting}
466
467 \subsection{The Restart Command}
468 The new {\bf Restart command} allows console users to restart
469 a canceled, failed, or incomplete Job.  For canceled and failed
470 Jobs, the Job will restart from the beginning.  For incomplete
471 Jobs the Job will restart at the point that it was stopped either
472 by a stop command or by some recoverable failure.
473
474 \smallskip
475 If you enter the {\bf restart} command in bconsole, you will get the
476 following prompts:
477
478 \begin{lstlisting}
479 *restart
480 You have the following choices:
481      1: Incomplete
482      2: Canceled
483      3: Failed
484      4: All
485 Select termination code:  (1-4):
486 \end{lstlisting}
487
488 If you select the {\bf All} option, you may see something like:
489
490 \begin{lstlisting}
491 Select termination code:  (1-4): 4
492 +-------+-------------+---------------------+------+-------+----------+-----------+-----------+
493 | jobid | name        | starttime           | type | level | jobfiles |
494 jobbytes  | jobstatus |
495 +-------+-------------+---------------------+------+-------+----------+-----------+-----------+
496 |     1 | Incremental | 2012-03-26 12:15:21 | B    | F     |        0 |
497     0 | A         |
498 |     2 | Incremental | 2012-03-26 12:18:14 | B    | F     |      350 |
499 4,013,397 | I         |
500 |     3 | Incremental | 2012-03-26 12:18:30 | B    | F     |        0 |
501     0 | A         |
502 |     4 | Incremental | 2012-03-26 12:18:38 | B    | F     |      331 |
503 3,548,058 | I         |
504 +-------+-------------+---------------------+------+-------+----------+-----------+-----------+
505 Enter the JobId list to select:
506 \end{lstlisting}
507
508 Then you may enter one or more JobIds to be restarted, which may
509 take the form of a list of JobIds separated by commas, and/or JobId
510 ranges such as {\bf 1-4}, which indicates you want to restart JobIds
511 1 through 4, inclusive.
512
513 \subsection{Support for Exchange Incremental Backups}
514 The Bacula Enterprise version 6.0 VSS plugin now supports
515 Full and Incremental backups for Exchange.  We strongly
516 recommend that you do not attempt to run Differential jobs with
517 Exchange as it is likely to produce a situation where restores
518 will no longer select the correct jobs, and thus the
519 Windows Exchange VSS writer will fail when applying log files.
520 There is a Bacula Systems Enterprise white paper that provides
521 the details of backup and restore of Exchange 2010 with the
522 Bacula VSS plugin.
523
524 \smallskip
525 Restores can be done while Exchange is running, but you
526 must first unmount (dismount in Microsoft terms) any database
527 you wish to restore and explicitly mark them to permit a
528 restore operation (see the white paper for details).
529
530 \smallskip
531 This project was funded by Bacula Systems and is available with the Bacula
532 Enterprise Edition.
533
534 \subsection{Support for MSSQL Block Level Backups}
535 With the addition of block level backup support to the
536 Bacula Enterprise VSS MSSQL component, you can now do
537 Differential backups in addition to Full backups.
538 Differential backups use Microsoft's partial block backup
539 (a block differencing or deduplication that we call Delta).
540 This partial block backup permits backing up only those
541 blocks that have changed.  Database restores can be made while
542 the MSSQL server is running, but any databases selected for
543 restore will be automatically taken offline by the MSSQL
544 server during the restore process.
545
546 Incremental backups for MSSQL are not support by
547 Microsoft. We strongly recommend that you not perform Incremental
548 backups with MSSQL as they will probably produce a situation
549 where restore will no longer work correctly.
550
551 \smallskip
552  We are currently working on producing a white paper that will give more
553 details of backup and restore with MSSQL. One point to note is that during
554 a restore, you will normally not want to restore the {\bf master} database.
555 You must exclude it from the backup selections that you have made or the
556 restore will fail.
557
558 \smallskip
559 It is possible to restore the {\bf master} database, but you must
560 first shutdown the MSSQL server, then you must perform special
561 recovery commands.  Please see Microsoft documentation on how
562 to restore the master database.
563
564 \smallskip
565 This project was funded by Bacula Systems and is available with the Bacula
566 Enterprise Edition.
567
568
569 \subsection{Job Bandwidth Limitation}
570
571 The new {\bf Job Bandwidth Limitation} directive may be added to the File
572 daemon's and/or Director's configuration to limit the bandwidth used by a Job
573 on a Client.  It can be set in the File daemon's conf file for all Jobs run in
574 that File daemon, or it can be set for each Job in the Director's conf file.
575
576 For example:
577 \begin{lstlisting}
578 FileDaemon {
579   Name = localhost-fd
580   Working Directory = /some/path
581   Pid Directory = /some/path
582   ...
583   Maximum Bandwidth Per Job = 5Mb/s
584 }
585 \end{lstlisting}
586
587 The above example would cause any jobs running with the FileDaemon to not
588 exceed 5Mb/s of throughput when sending data to the Storage Daemon.
589
590 You can specify the speed parameter in k/s, Kb/s, m/s, Mb/s.
591
592 For example:
593 \begin{lstlisting}
594 Job {
595   Name = locahost-data
596   FileSet = FS_localhost
597   Accurate = yes
598   ...
599   Maximum Bandwidth = 5Mb/s
600   ...
601 }
602 \end{lstlisting}
603
604 The above example would cause Job \texttt{localhost-data} to not exceed 5MB/s
605 of throughput when sending data from the File daemon to the Storage daemon.
606
607 A new console command \texttt{setbandwidth} permits to set dynamically the
608 maximum throughput of a running Job or for future jobs of a Client.
609
610 \begin{lstlisting}
611 * setbandwidth limit=1000000 jobid=10
612 \end{lstlisting}
613
614 The \texttt{limit} parameter is in Kb/s.
615
616 \medskip
617 This project was funded by Bacula Systems and is available in
618 the Enterprise Edition.
619
620 \subsection{Incremental/Differential Block Level Difference Backup}
621
622 The new \texttt{delta} Plugin is able to compute and apply signature-based file
623 differences. It can be used to backup only changes in a big binary file like
624 Outlook PST, VirtualBox/VMware images or database files.
625
626 It supports both Incremental and Differential backups and stores signatures
627 database in the File Daemon working directory. This plugin is available on all
628 platform including Windows 32 and 64bit.
629
630 Accurate option should be turned on in the Job resource.
631 \begin{lstlisting}
632 Job {
633  Accurate = yes
634  FileSet = DeltaFS
635  ...
636 }
637
638 FileSet {
639  Name = DeltaFS
640  ...
641  Include {
642    # Specify one file
643    Plugin = "delta:/home/eric/.VirtualBox/HardDisks/lenny-i386.vdi"
644  }
645 }
646
647 FileSet {
648  Name = DeltaFS-Include
649  ...
650  Include {
651    Options {
652       Compression = GZIP1
653       Signature = MD5
654       Plugin = delta
655    }
656    # Use the Options{} filtering and options
657    File = /home/user/.VirtualBox
658  }
659 }
660
661 \end{lstlisting}
662
663 Please contact Bacula Systems support to get Delta Plugin specific
664 documentation.
665
666 \medskip
667 This project was funded by Bacula Systems and is available with the Bacula
668 Enterprise Edition.
669
670 \subsection{SAN Shared Tape Storage Plugin}
671
672 The problem with backing up multiple servers at the same time to the
673 same tape library (or autoloader) is that if both servers access the
674 same tape drive same time, you will very likely get data corruption.
675 This is where the Bacula Systems shared tape storage plugin comes into play.  The
676 plugin ensures that only one server at a time can connect to each device
677 (tape drive) by using the SPC-3 SCSI reservation protocol.  Please contact
678 Bacula Systems support to get SAN Shared Storage Plugin specific
679 documentation.
680
681 \medskip
682 This project was funded by Bacula Systems and is available with Bacula
683 Enterprise Edition.
684
685 \subsection{Advanced Autochanger Usage}
686
687 The new \texttt{Shared Storage} Director's directive is a Bacula Enterprise
688 feature that allows you to share volumes between different Storage
689 resources. This directive should be used \textbf{only} if all \texttt{Media
690   Type} are correctly set across all Devices.
691
692 The \texttt{Shared Storage} directive should be used when using the SAN
693 Shared Storage plugin or when accessing from the Director Storage resources
694 directly to Devices of an Autochanger.
695
696 When sharing volumes between different Storage resources, you will
697 need also to use the \texttt{reset-storageid} script before using the
698 \texttt{update slots} command. This script can be scheduled once a day in
699 an Admin job.
700
701 \begin{lstlisting}
702  $ /opt/bacula/scripts/reset-storageid MediaType StorageName
703  $ bconsole
704  * update slots storage=StorageName drive=0
705 \end{lstlisting}
706
707 Please contact Bacula Systems support to get help on this advanced
708 configuration.
709
710 \medskip
711 This project was funded by Bacula Systems and is available with Bacula
712 Enterprise Edition.
713
714 \subsection{Enhancement of the NDMP Plugin}
715
716 The previous NDMP Plugin 4.0 was fully supporting only the NetApp hardware, the
717 new NDMP Plugin should now be able to support all NAS vendors with the
718 \texttt{volume\_format} plugin command option.
719
720 On some NDMP devices such as Celera or Blueray, the administrator can use arbitrary
721 volume structure name, ex:
722
723 \begin{lstlisting}
724  /dev/volume_home
725  /rootvolume/volume_tmp
726  /VG/volume_var
727 \end{lstlisting}
728
729 The NDMP plugin should be aware of the structure organization in order to
730 detect if the administrator wants to restore in a new volume
731 (\texttt{where=/dev/vol\_tmp}) or inside a subdirectory of the targeted volume
732 (\texttt{where=/tmp}).
733
734 \begin{lstlisting}
735 FileSet {
736  Name = NDMPFS
737  ...
738  Include {
739    Plugin = "ndmp:host=nasbox user=root pass=root file=/dev/vol1 volume_format=/dev/"
740  }
741 }
742 \end{lstlisting}
743
744 Please contact Bacula Systems support to get NDMP Plugin specific
745 documentation.
746
747 \medskip
748 This project was funded by Bacula Systems and is available with the Bacula
749 Enterprise Edition.
750
751 \subsection{Always Backup a File}
752
753 When the Accurate mode is turned on, you can decide to always backup a file
754 by using then new {\bf A} Accurate option in your FileSet. For example:
755
756 \begin{lstlisting}
757 Job {
758    Name = ...
759    FileSet = FS_Example
760    Accurate = yes
761    ...
762 }
763
764 FileSet {
765  Name = FS_Example
766  Include {
767    Options {
768      Accurate = A
769    }
770    File = /file
771    File = /file2
772  }
773  ...
774 }
775 \end{lstlisting}
776
777 This project was funded by Bacula Systems based on an idea of James Harper and
778 is available with the Bacula Enterprise Edition.
779
780 \subsection{Setting Accurate Mode During at Runtime}
781
782 You are now able to specify the Accurate mode on the \texttt{run} command and
783 in the Schedule resource.
784
785 \begin{lstlisting}
786 * run accurate=yes job=Test
787 \end{lstlisting}
788
789 \begin{lstlisting}
790 Schedule {
791   Name = WeeklyCycle
792   Run = Full 1st sun at 23:05
793   Run = Differential accurate=yes 2nd-5th sun at 23:05
794   Run = Incremental  accurate=no  mon-sat at 23:05
795 }
796 \end{lstlisting}
797
798 It can allow you to save memory and and CPU resources on the catalog server in
799 some cases.
800
801 \medskip
802 These advanced tuning options are available with the Bacula Enterprise Edition.
803
804 % Common with community
805 \subsection{Additions to RunScript variables}
806 You can have access to JobBytes, JobFiles and Director name using \%b, \%F and \%D
807 in your runscript command. The Client address is now available through \%h.
808
809 \begin{lstlisting}
810 RunAfterJob = "/bin/echo Job=%j JobBytes=%b JobFiles=%F ClientAddress=%h Dir=%D"
811 \end{lstlisting}
812
813 \subsection{LZO Compression}
814
815 LZO compression was added in the Unix File Daemon. From the user point of view,
816 it works like the GZIP compression (just replace {\bf compression=GZIP} with
817 {\bf compression=LZO}).
818
819 For example:
820 \begin{lstlisting}
821 Include {
822    Options { compression=LZO }
823    File = /home
824    File = /data
825 }
826 \end{lstlisting}
827
828 LZO provides much faster compression and decompression speed but lower
829 compression ratio than GZIP. It is a good option when you backup to disk. For
830 tape, the built-in compression may be a better option.
831
832 LZO is a good alternative for GZIP1 when you don't want to slow down your
833 backup. On a modern CPU it should be able to run almost as fast as:
834
835 \begin{bsysitemize}
836 \item your client can read data from disk. Unless you have very fast disks like
837   SSD or large/fast RAID array.
838 \item the data transfers between the file daemon and the storage daemon even on
839   a 1Gb/s link.
840 \end{bsysitemize}
841
842 Note that bacula only use one compression level LZO1X-1.
843
844 \medskip
845 The code for this feature was contributed by Laurent Papier.
846
847 \subsection{New Tray Monitor}
848
849 Since the old integrated Windows tray monitor doesn't work with
850 recent Windows versions, we have written a new Qt Tray Monitor that is available
851 for both Linux and Windows.  In addition to all the previous features,
852 this new version allows you to run Backups from
853 the tray monitor menu.
854
855 \bsysimageH{tray-monitor}{New tray monitor}{figbs6:traymonitor}
856
857 \bsysimageH{tray-monitor1}{Run a Job through the new tray monitor}{figbs6:traymonitor1}
858
859
860
861 To be able to run a job from the tray monitor, you need to
862 allow specific commands in the Director monitor console:
863 \begin{lstlisting}
864 Console {
865     Name = win2003-mon
866     Password = "xxx"
867     CommandACL = status, .clients, .jobs, .pools, .storage, .filesets, .messages, run
868     ClientACL = *all*               # you can restrict to a specific host
869     CatalogACL = *all*
870     JobACL = *all*
871     StorageACL = *all*
872     ScheduleACL = *all*
873     PoolACL = *all*
874     FileSetACL = *all*
875     WhereACL = *all*
876 }
877 \end{lstlisting}
878
879 \medskip
880 This project was funded by Bacula Systems and is available with Bacula
881 the Enterprise Edition and the Community Edition.
882
883 \subsection{Purge Migration Job}
884
885 The new {\bf Purge Migration Job} directive may be added to the Migration
886 Job definition in the Director's configuration file. When it is enabled
887 the Job that was migrated during a migration will be purged at
888 the end of the migration job.
889
890 For example:
891 \begin{lstlisting}
892 Job {
893   Name = "migrate-job"
894   Type = Migrate
895   Level = Full
896   Client = localhost-fd
897   FileSet = "Full Set"
898   Messages = Standard
899   Storage = DiskChanger
900   Pool = Default
901   Selection Type = Job
902   Selection Pattern = ".*Save"
903 ...
904   Purge Migration Job = yes
905 }
906 \end{lstlisting}
907
908 \medskip
909
910 This project was submitted by Dunlap Blake; testing and documentation was funded
911 by Bacula Systems.
912
913 \subsection{Changes in the Pruning Algorithm}
914
915 We rewrote the job pruning algorithm in this version. Previously, in some users
916 reported that the pruning process at the end of jobs was very long. It should
917 not be longer the case. Now, Bacula won't prune automatically a Job if this
918 particular Job is needed to restore data. Example:
919
920 \begin{lstlisting}
921 JobId: 1  Level: Full
922 JobId: 2  Level: Incremental
923 JobId: 3  Level: Incremental
924 JobId: 4  Level: Differential
925 .. Other incrementals up to now
926 \end{lstlisting}
927
928 In this example, if the Job Retention defined in the Pool or in the Client
929 resource causes that Jobs with Jobid in 1,2,3,4 can be pruned, Bacula will
930 detect that JobId 1 and 4 are essential to restore data at the current state
931 and will prune only JobId 2 and 3.
932
933 \texttt{Important}, this change affect only the automatic pruning step after a
934 Job and the \texttt{prune jobs} Bconsole command. If a volume expires after the
935 \texttt{VolumeRetention} period, important jobs can be pruned.
936
937 \subsection{Ability to Verify any specified Job}
938 You now have the ability to tell Bacula which Job should verify instead of
939 automatically verify just the last one.
940
941 This feature can be used with VolumeToCatalog, DiskToCatalog and Catalog level.
942
943 To verify a given job, just specify the Job jobid in argument when starting the
944 job.
945 \begin{lstlisting}
946 *run job=VerifyVolume jobid=1 level=VolumeToCatalog
947 Run Verify job
948 JobName:     VerifyVolume
949 Level:       VolumeToCatalog
950 Client:      127.0.0.1-fd
951 FileSet:     Full Set
952 Pool:        Default (From Job resource)
953 Storage:     File (From Job resource)
954 Verify Job:  VerifyVol.2010-09-08_14.17.17_03
955 Verify List: /tmp/regress/working/VerifyVol.bsr
956 When:        2010-09-08 14:17:31
957 Priority:    10
958 OK to run? (yes/mod/no):
959 \end{lstlisting}
960
961 \medskip
962 This project was funded by Bacula Systems and is available with Bacula
963 Enterprise Edition and Community Edition.