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