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