]> git.sur5r.net Git - bacula/docs/blob - docs/manuals/en/main/newbsfeatures.tex
Add note for Autochanger handling in 6.0.2
[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_bconfig_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 definition in the
291 Director configuration, you must adapt your {\bf bacula-dir.conf} {\bf Storage}
292 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 no {\bf Autochanger = yes}
303 directive is needed in the Director's {\bf Autochanger} resource.
304
305 \smallskip
306 In addition to the above change ({\bf Storage} to {\bf Autochanger}),
307 you must modify any additional {\bf Storage} resources that correspond
308 to devices that are part of the {\bf Autochanger} device.
309 Instead of the previous {\bf Autochanger = yes} directive they
310 should be modified to be {\bf Autochanger = xxx} where you
311 replace the {\bf xxx} with the name of the Autochanger.
312
313 \smallskip
314 For example, in the bacula-dir.conf file:
315
316 \begin{verbatim}
317 Autochanger {             # New resource
318   Name = Changer-1
319   Address = cibou.company.com
320   SDPort = 9103
321   Password = "xxxxxxxxxx"
322   Device = LTO-Changer-1
323   Media Type = LTO-4
324   Maximum Concurrent Jobs = 50
325 }
326
327 Storage {
328   Name = Changer-1-Drive0
329   Address = cibou.company.com
330   SDPort = 9103
331   Password = "xxxxxxxxxx"
332   Device = LTO4_1_Drive0
333   Media Type = LTO-4
334   Autochanger = Changer-1  # New directive
335   Maximum Concurrent Jobs = 5
336 }
337
338 Storage {
339   Name = Changer-1-Drive1
340   Address = cibou.company.com
341   SDPort = 9103
342   Password = "xxxxxxxxxx"
343   Device = LTO4_1_Drive1
344   Media Type = LTO-4
345   Autochanger = Changer-1  # New directive
346   Maximum Concurrent Jobs = 5
347 }
348
349 ...
350 \end{verbatim}
351
352 Note that Storage resources {\bf Changer-1-Drive0} and 
353 {\bf Changer-1-Drive1} are not required since they make
354 up part of an autochanger. However, by referring to those
355 Storage definitions in a job, you will be sure to use only
356 the indicated drive.  This is probably most used for
357 reserving a drive for restores.  See the Storage daemon
358 example .conf below and the use of {\bf AutoSelect = no}.
359
360 So, in summary, the changes are:
361 \begin{itemize}
362 \item Remove the {\bf Shared Storage = yes} from the {\bf Director}
363 resource.
364 \item Change {\bf Storage} to {\bf Autochanger} in the LTO4 resource.
365 \item Remove the {\bf Autochanger = yes} from the {\bf Autochanger}
366 LTO4 resource.
367 \item Change the {\bf Autochanger = yes} in each of the {\bf Storage}
368 device that belong to the {\bf Autochanger} to point to the
369 {\bf Autochanger} resource with for the example above the
370 directive {\bf Autochanger = LTO4}.
371 \end{itemize}
372
373 \section{Bacula Enterprise 6.0.0}
374
375 \subsection{Incomplete Jobs}
376 During a backup, if the Storage daemon experiences disconnection
377 with the File daemon during backup (normally a comm line problem
378 or possibly an FD failure), under conditions that the SD determines
379 to be safe it will make the failed job as Incomplete rather than
380 failed.  This is done only if there is sufficient valid backup
381 data that was written to the Volume. The advantage of an Incomplete
382 job is that it can be restarted by the new bconsole {\bf restart}
383 command from the point where it left off rather than from the
384 beginning of the jobs as is the case with a cancel.
385
386 \subsection{The Stop Command}
387 Bacula has been enhanced to provide a {\bf stop} command,
388 very similar to the {\bf cancel} command with the main difference
389 that the Job that is stopped is marked as Incomplete so that
390 it can be restarted later by the {\bf restart} command where
391 it left off (see below).  The {\bf stop} command with no
392 arguments, will like the cancel command, prompt you with the
393 list of running jobs allowing you to select one, which might
394 look like the following:
395
396 \begin{lstlisting}
397 *stop
398 Select Job:
399      1: JobId=3 Job=Incremental.2012-03-26_12.04.26_07
400      2: JobId=4 Job=Incremental.2012-03-26_12.04.30_08
401      3: JobId=5 Job=Incremental.2012-03-26_12.04.36_09
402 Choose Job to stop (1-3): 2
403 2001 Job "Incremental.2012-03-26_12.04.30_08" marked to be stopped.
404 3000 JobId=4 Job="Incremental.2012-03-26_12.04.30_08" marked to be stopped.
405 \end{lstlisting}
406
407 \subsection{The Restart Command}
408 The new {\bf Restart command} allows console users to restart
409 a canceled, failed, or incomplete Job.  For canceled and failed
410 Jobs, the Job will restart from the beginning.  For incomplete
411 Jobs the Job will restart at the point that it was stopped either
412 by a stop command or by some recoverable failure.
413
414 \smallskip
415 If you enter the {\bf restart} command in bconsole, you will get the
416 following prompts:
417
418 \begin{lstlisting}
419 *restart
420 You have the following choices:
421      1: Incomplete
422      2: Canceled
423      3: Failed
424      4: All
425 Select termination code:  (1-4):
426 \end{lstlisting}
427
428 If you select the {\bf All} option, you may see something like:
429
430 \begin{lstlisting}
431 Select termination code:  (1-4): 4
432 +-------+-------------+---------------------+------+-------+----------+-----------+-----------+
433 | jobid | name        | starttime           | type | level | jobfiles |
434 jobbytes  | jobstatus |
435 +-------+-------------+---------------------+------+-------+----------+-----------+-----------+
436 |     1 | Incremental | 2012-03-26 12:15:21 | B    | F     |        0 |
437     0 | A         |
438 |     2 | Incremental | 2012-03-26 12:18:14 | B    | F     |      350 |
439 4,013,397 | I         |
440 |     3 | Incremental | 2012-03-26 12:18:30 | B    | F     |        0 |
441     0 | A         |
442 |     4 | Incremental | 2012-03-26 12:18:38 | B    | F     |      331 |
443 3,548,058 | I         |
444 +-------+-------------+---------------------+------+-------+----------+-----------+-----------+
445 Enter the JobId list to select:
446 \end{lstlisting}
447
448 Then you may enter one or more JobIds to be restarted, which may
449 take the form of a list of JobIds separated by commas, and/or JobId
450 ranges such as {\bf 1-4}, which indicates you want to restart JobIds
451 1 through 4, inclusive.
452
453 \subsection{Support for Exchange Incremental Backups}
454 The Bacula Enterprise version 6.0 VSS plugin now supports
455 Full and Incremental backups for Exchange.  We strongly
456 recommend that you do not attempt to run Differential jobs with
457 Exchange as it is likely to produce a situation where restores
458 will no longer select the correct jobs, and thus the
459 Windows Exchange VSS writer will fail when applying log files.
460 There is a Bacula Systems Enterprise white paper that provides
461 the details of backup and restore of Exchange 2010 with the
462 Bacula VSS plugin.
463
464 \smallskip
465 Restores can be done while Exchange is running, but you
466 must first unmount (dismount in Microsoft terms) any database
467 you wish to restore and explicitly mark them to permit a
468 restore operation (see the white paper for details).
469
470 \smallskip
471 This project was funded by Bacula Systems and is available with the Bacula
472 Enterprise Edition.
473
474 \subsection{Support for MSSQL Block Level Backups}
475 With the addition of block level backup support to the
476 Bacula Enterprise VSS MSSQL component, you can now do
477 Differential backups in addition to Full backups.
478 Differential backups use Microsoft's partial block backup
479 (a block differencing or deduplication that we call Delta).
480 This partial block backup permits backing up only those
481 blocks that have changed.  Database restores can be made while
482 the MSSQL server is running, but any databases selected for
483 restore will be automatically taken offline by the MSSQL
484 server during the restore process.
485
486 Incremental backups for MSSQL are not support by
487 Microsoft. We strongly recommend that you not perform Incremental
488 backups with MSSQL as they will probably produce a situation
489 where restore will no longer work correctly.
490
491 \smallskip
492  We are currently working on producing a white paper that will give more
493 details of backup and restore with MSSQL. One point to note is that during
494 a restore, you will normally not want to restore the {\bf master} database.
495 You must exclude it from the backup selections that you have made or the
496 restore will fail.
497
498 \smallskip
499 It is possible to restore the {\bf master} database, but you must
500 first shutdown the MSSQL server, then you must perform special
501 recovery commands.  Please see Microsoft documentation on how
502 to restore the master database.
503
504 \smallskip
505 This project was funded by Bacula Systems and is available with the Bacula
506 Enterprise Edition.
507
508
509 \subsection{Job Bandwidth Limitation}
510
511 The new {\bf Job Bandwidth Limitation} directive may be added to the File
512 daemon's and/or Director's configuration to limit the bandwidth used by a Job
513 on a Client.  It can be set in the File daemon's conf file for all Jobs run in
514 that File daemon, or it can be set for each Job in the Director's conf file.
515
516 For example:
517 \begin{lstlisting}
518 FileDaemon {
519   Name = localhost-fd
520   Working Directory = /some/path
521   Pid Directory = /some/path
522   ...
523   Maximum Bandwidth Per Job = 5Mb/s
524 }
525 \end{lstlisting}
526
527 The above example would cause any jobs running with the FileDaemon to not
528 exceed 5Mb/s of throughput when sending data to the Storage Daemon.
529
530 You can specify the speed parameter in k/s, Kb/s, m/s, Mb/s.
531
532 For example:
533 \begin{lstlisting}
534 Job {
535   Name = locahost-data
536   FileSet = FS_localhost
537   Accurate = yes
538   ...
539   Maximum Bandwidth = 5Mb/s
540   ...
541 }
542 \end{lstlisting}
543
544 The above example would cause Job \texttt{localhost-data} to not exceed 5MB/s
545 of throughput when sending data from the File daemon to the Storage daemon.
546
547 A new console command \texttt{setbandwidth} permits to set dynamically the
548 maximum throughput of a running Job or for future jobs of a Client.
549
550 \begin{lstlisting}
551 * setbandwidth limit=1000000 jobid=10
552 \end{lstlisting}
553
554 The \texttt{limit} parameter is in Kb/s.
555
556 \medskip
557 This project was funded by Bacula Systems and is available in
558 the Enterprise Edition.
559
560 \subsection{Incremental/Differential Block Level Difference Backup}
561
562 The new \texttt{delta} Plugin is able to compute and apply signature-based file
563 differences. It can be used to backup only changes in a big binary file like
564 Outlook PST, VirtualBox/VMware images or database files.
565
566 It supports both Incremental and Differential backups and stores signatures
567 database in the File Daemon working directory. This plugin is available on all
568 platform including Windows 32 and 64bit.
569
570 Accurate option should be turned on in the Job resource.
571 \begin{lstlisting}
572 Job {
573  Accurate = yes
574  FileSet = DeltaFS
575  ...
576 }
577
578 FileSet {
579  Name = DeltaFS
580  ...
581  Include {
582    # Specify one file
583    Plugin = "delta:/home/eric/.VirtualBox/HardDisks/lenny-i386.vdi"
584  }
585 }
586
587 FileSet {
588  Name = DeltaFS-Include
589  ...
590  Include {
591    Options {
592       Compression = GZIP1
593       Signature = MD5
594       Plugin = delta
595    }
596    # Use the Options{} filtering and options
597    File = /home/user/.VirtualBox
598  }
599 }
600
601 \end{lstlisting}
602
603 Please contact Bacula Systems support to get Delta Plugin specific
604 documentation.
605
606 \medskip
607 This project was funded by Bacula Systems and is available with the Bacula
608 Enterprise Edition.
609
610 \subsection{SAN Shared Tape Storage Plugin}
611
612 The problem with backing up multiple servers at the same time to the
613 same tape library (or autoloader) is that if both servers access the
614 same tape drive same time, you will very likely get data corruption.
615 This is where the Bacula Systems shared tape storage plugin comes into play.  The
616 plugin ensures that only one server at a time can connect to each device
617 (tape drive) by using the SPC-3 SCSI reservation protocol.  Please contact
618 Bacula Systems support to get SAN Shared Storage Plugin specific
619 documentation.
620
621 \medskip
622 This project was funded by Bacula Systems and is available with Bacula
623 Enterprise Edition.
624
625 \subsection{Advanced Autochanger Usage}
626
627 The new \texttt{Shared Storage} Director's directive is a Bacula Enterprise
628 feature that allows you to share volumes between different Storage
629 resources. This directive should be used \textbf{only} if all \texttt{Media
630   Type} are correctly set across all Devices.
631
632 The \texttt{Shared Storage} directive should be used when using the SAN
633 Shared Storage plugin or when accessing from the Director Storage resources
634 directly to Devices of an Autochanger.
635
636 When sharing volumes between different Storage resources, you will
637 need also to use the \texttt{reset-storageid} script before using the
638 \texttt{update slots} command. This script can be scheduled once a day in
639 an Admin job.
640
641 \begin{lstlisting}
642  $ /opt/bacula/scripts/reset-storageid MediaType StorageName
643  $ bconsole
644  * update slots storage=StorageName drive=0
645 \end{lstlisting}
646
647 Please contact Bacula Systems support to get help on this advanced
648 configuration.
649
650 \medskip
651 This project was funded by Bacula Systems and is available with Bacula
652 Enterprise Edition.
653
654 \subsection{Enhancement of the NDMP Plugin}
655
656 The previous NDMP Plugin 4.0 was fully supporting only the NetApp hardware, the
657 new NDMP Plugin should now be able to support all NAS vendors with the
658 \texttt{volume\_format} plugin command option.
659
660 On some NDMP devices such as Celera or Blueray, the administrator can use arbitrary
661 volume structure name, ex:
662
663 \begin{lstlisting}
664  /dev/volume_home
665  /rootvolume/volume_tmp
666  /VG/volume_var
667 \end{lstlisting}
668
669 The NDMP plugin should be aware of the structure organization in order to
670 detect if the administrator wants to restore in a new volume
671 (\texttt{where=/dev/vol\_tmp}) or inside a subdirectory of the targeted volume
672 (\texttt{where=/tmp}).
673
674 \begin{lstlisting}
675 FileSet {
676  Name = NDMPFS
677  ...
678  Include {
679    Plugin = "ndmp:host=nasbox user=root pass=root file=/dev/vol1 volume_format=/dev/"
680  }
681 }
682 \end{lstlisting}
683
684 Please contact Bacula Systems support to get NDMP Plugin specific
685 documentation.
686
687 \medskip
688 This project was funded by Bacula Systems and is available with the Bacula
689 Enterprise Edition.
690
691 \subsection{Always Backup a File}
692
693 When the Accurate mode is turned on, you can decide to always backup a file
694 by using then new {\bf A} Accurate option in your FileSet. For example:
695
696 \begin{lstlisting}
697 Job {
698    Name = ...
699    FileSet = FS_Example
700    Accurate = yes
701    ...
702 }
703
704 FileSet {
705  Name = FS_Example
706  Include {
707    Options {
708      Accurate = A
709    }
710    File = /file
711    File = /file2
712  }
713  ...
714 }
715 \end{lstlisting}
716
717 This project was funded by Bacula Systems based on an idea of James Harper and
718 is available with the Bacula Enterprise Edition.
719
720 \subsection{Setting Accurate Mode During at Runtime}
721
722 You are now able to specify the Accurate mode on the \texttt{run} command and
723 in the Schedule resource.
724
725 \begin{lstlisting}
726 * run accurate=yes job=Test
727 \end{lstlisting}
728
729 \begin{lstlisting}
730 Schedule {
731   Name = WeeklyCycle
732   Run = Full 1st sun at 23:05
733   Run = Differential accurate=yes 2nd-5th sun at 23:05
734   Run = Incremental  accurate=no  mon-sat at 23:05
735 }
736 \end{lstlisting}
737
738 It can allow you to save memory and and CPU resources on the catalog server in
739 some cases.
740
741 \medskip
742 These advanced tuning options are available with the Bacula Enterprise Edition.
743
744 % Common with community
745 \subsection{Additions to RunScript variables}
746 You can have access to JobBytes, JobFiles and Director name using \%b, \%F and \%D
747 in your runscript command. The Client address is now available through \%h.
748
749 \begin{lstlisting}
750 RunAfterJob = "/bin/echo Job=%j JobBytes=%b JobFiles=%F ClientAddress=%h Dir=%D"
751 \end{lstlisting}
752
753 \subsection{LZO Compression}
754
755 LZO compression was added in the Unix File Daemon. From the user point of view,
756 it works like the GZIP compression (just replace {\bf compression=GZIP} with
757 {\bf compression=LZO}).
758
759 For example:
760 \begin{lstlisting}
761 Include {
762    Options { compression=LZO }
763    File = /home
764    File = /data
765 }
766 \end{lstlisting}
767
768 LZO provides much faster compression and decompression speed but lower
769 compression ratio than GZIP. It is a good option when you backup to disk. For
770 tape, the built-in compression may be a better option.
771
772 LZO is a good alternative for GZIP1 when you don't want to slow down your
773 backup. On a modern CPU it should be able to run almost as fast as:
774
775 \begin{bsysitemize}
776 \item your client can read data from disk. Unless you have very fast disks like
777   SSD or large/fast RAID array.
778 \item the data transfers between the file daemon and the storage daemon even on
779   a 1Gb/s link.
780 \end{bsysitemize}
781
782 Note that bacula only use one compression level LZO1X-1.
783
784 \medskip
785 The code for this feature was contributed by Laurent Papier.
786
787 \subsection{New Tray Monitor}
788
789 Since the old integrated Windows tray monitor doesn't work with
790 recent Windows versions, we have written a new Qt Tray Monitor that is available
791 for both Linux and Windows.  In addition to all the previous features,
792 this new version allows you to run Backups from
793 the tray monitor menu.
794
795 \bsysimageH{tray-monitor}{New tray monitor}{figbs6:traymonitor}
796
797 \bsysimageH{tray-monitor1}{Run a Job through the new tray monitor}{figbs6:traymonitor1}
798
799
800
801 To be able to run a job from the tray monitor, you need to
802 allow specific commands in the Director monitor console:
803 \begin{lstlisting}
804 Console {
805     Name = win2003-mon
806     Password = "xxx"
807     CommandACL = status, .clients, .jobs, .pools, .storage, .filesets, .messages, run
808     ClientACL = *all*               # you can restrict to a specific host
809     CatalogACL = *all*
810     JobACL = *all*
811     StorageACL = *all*
812     ScheduleACL = *all*
813     PoolACL = *all*
814     FileSetACL = *all*
815     WhereACL = *all*
816 }
817 \end{lstlisting}
818
819 \medskip
820 This project was funded by Bacula Systems and is available with Bacula
821 the Enterprise Edition and the Community Edition.
822
823 \subsection{Purge Migration Job}
824
825 The new {\bf Purge Migration Job} directive may be added to the Migration
826 Job definition in the Director's configuration file. When it is enabled
827 the Job that was migrated during a migration will be purged at
828 the end of the migration job.
829
830 For example:
831 \begin{lstlisting}
832 Job {
833   Name = "migrate-job"
834   Type = Migrate
835   Level = Full
836   Client = localhost-fd
837   FileSet = "Full Set"
838   Messages = Standard
839   Storage = DiskChanger
840   Pool = Default
841   Selection Type = Job
842   Selection Pattern = ".*Save"
843 ...
844   Purge Migration Job = yes
845 }
846 \end{lstlisting}
847
848 \medskip
849
850 This project was submitted by Dunlap Blake; testing and documentation was funded
851 by Bacula Systems.
852
853 \subsection{Changes in the Pruning Algorithm}
854
855 We rewrote the job pruning algorithm in this version. Previously, in some users
856 reported that the pruning process at the end of jobs was very long. It should
857 not be longer the case. Now, Bacula won't prune automatically a Job if this
858 particular Job is needed to restore data. Example:
859
860 \begin{lstlisting}
861 JobId: 1  Level: Full
862 JobId: 2  Level: Incremental
863 JobId: 3  Level: Incremental
864 JobId: 4  Level: Differential
865 .. Other incrementals up to now
866 \end{lstlisting}
867
868 In this example, if the Job Retention defined in the Pool or in the Client
869 resource causes that Jobs with Jobid in 1,2,3,4 can be pruned, Bacula will
870 detect that JobId 1 and 4 are essential to restore data at the current state
871 and will prune only JobId 2 and 3.
872
873 \texttt{Important}, this change affect only the automatic pruning step after a
874 Job and the \texttt{prune jobs} Bconsole command. If a volume expires after the
875 \texttt{VolumeRetention} period, important jobs can be pruned.
876
877 \subsection{Ability to Verify any specified Job}
878 You now have the ability to tell Bacula which Job should verify instead of
879 automatically verify just the last one.
880
881 This feature can be used with VolumeToCatalog, DiskToCatalog and Catalog level.
882
883 To verify a given job, just specify the Job jobid in argument when starting the
884 job.
885 \begin{lstlisting}
886 *run job=VerifyVolume jobid=1 level=VolumeToCatalog
887 Run Verify job
888 JobName:     VerifyVolume
889 Level:       VolumeToCatalog
890 Client:      127.0.0.1-fd
891 FileSet:     Full Set
892 Pool:        Default (From Job resource)
893 Storage:     File (From Job resource)
894 Verify Job:  VerifyVol.2010-09-08_14.17.17_03
895 Verify List: /tmp/regress/working/VerifyVol.bsr
896 When:        2010-09-08 14:17:31
897 Priority:    10
898 OK to run? (yes/mod/no):
899 \end{lstlisting}
900
901 \medskip
902 This project was funded by Bacula Systems and is available with Bacula
903 Enterprise Edition and Community Edition.