]> git.sur5r.net Git - bacula/docs/blob - docs/manuals/en/main/newbsfeatures.tex
Add plugin documentation
[bacula/docs] / docs / manuals / en / main / newbsfeatures.tex
1 \chapter{New Features in Bacula Enterprise 6.0.x}
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 \chapter{New Features in Bacula Enterprise 6.0.6}
11
12 \section{Incremental Accelerator Plugin for NetApp}
13
14 The Incremental Accelerator for NetApp Plugin is designed to simplify the
15 backup and restore procedure of your NetApp NAS hosting a huge number of files.
16
17 \smallskip{} When using the NetApp HFC Plugin, Bacula Enterprise will query the
18 NetApp device to get the list of all files modified since the last backup
19 instead of having to walk through the entire filesystem. Once Bacula have the
20 list of all files to back's up, it will use a standard network share (such as
21 NFS or CIFS) to access files.
22
23 \smallskip
24 This project was funded by Bacula Systems and is available with the Bacula
25 Enterprise Edition.
26
27 \section{PostgreSQL Plugin}
28
29 The PostgreSQL plugin is designed to simplify the backup and restore procedure
30 of your PostgreSQL cluster, the backup administrator doesn't need to learn about
31 internals of Postgres backup techniques or write complex scripts. The plugin
32 will automatically take care for you to backup essential information such as
33 configuration, users definition or tablespaces. The PostgreSQL plugin supports
34 both dump and Point In Time Recovery (PITR) backup techniques.
35
36 \smallskip
37 This project was funded by Bacula Systems and is available with the Bacula
38 Enterprise Edition.
39
40 \chapter{New Features in Bacula Enterprise 6.0.5}
41
42 \section{Maximum Reload Requests}
43
44 The new Director directive \texttt{Maximum Reload Requests} permits to
45 configure the number of reload requests that can be done while jobs are
46 running.
47
48 \begin{verbatim}
49 Director {
50   Name = localhost-dir
51   Maximum Reload Requests = 64
52   ...
53
54 }
55 \end{verbatim}
56
57 \section{FD Storage Address}
58
59 When the Director is behind a NAT, in a WAN area, to connect to 
60 % the FileDaemon or 
61 the StorageDaemon, the Director uses an "external" ip address,
62 and the FileDaemon should use an "internal" ip address to contact the
63 StorageDaemon.
64
65 The normal way to handle this situation is to use a canonical name such as
66 "storage-server" that will be resolved on the Director side as the WAN address
67 and on the Client side as the LAN address. This is now possible to configure
68 this parameter using the new \texttt{FDStorageAddress} Storage 
69 % or Client
70 directive.
71
72 \begin{figure}[htbp]
73   \centering
74   \includegraphics[width=10cm]{\idir BackupOverWan1}
75   \label{fig:fdstorageaddress}
76   \caption{Backup over WAN}
77 \end{figure}
78
79 \begin{verbatim}
80 Storage {
81      Name = storage1
82      Address = 65.1.1.1
83      FD Storage Address = 10.0.0.1
84      SD Port 9103
85      ...
86 }
87 \end{verbatim}
88
89 % # or in the Client resouce
90
91 % Client {
92 %      Name = client1
93 %      Address = 65.1.1.2
94 %      FD Storage Address = 10.0.0.1
95 %      FD Port 9103
96 %      ...
97 % }
98 % \end{verbatim}
99
100 % Note that using the Client \texttt{FDStorageAddress} directive will not allow
101 % to use multiple Storage Daemon, all Backup or Restore requests will be sent to
102 % the specified \texttt{FDStorageAddress}.
103
104 \chapter{New Features in Bacula Enterprise 6.0.4}
105
106 \section{VMWare vSphere VADP Plugin}
107
108 The \bsee{} vSphere plugin provides virtual
109 machine bare metal recovery, while the backup at the guest level simplify data
110 protection of critical applications.
111
112 The plugin integrates the VMware's Changed Block Tracking (CBT) technology to
113 ensure only blocks that have changed since the initial Full, and/or the last
114 Incremental or Differential Backup are sent to the current Incremental or
115 Differential backup stream to give you more efficient backups and reduced
116 network load.
117
118 \section{Oracle RMAN Plugin}
119
120 The Bacula Enterprise Oracle Plugin is designed to simplify the backup and
121 restore procedure of your Oracle Database instance, the backup administrator
122 don't need to learn about internals of Oracle backup techniques or write
123 complex scripts.  The Bacula Enterprise Oracle plugin supports both dump and
124 Point In Time Recovery (PITR) with RMAN backup techniques.
125
126 \chapter{New Features in Bacula Enterprise 6.0.0}
127
128 \section{Incomplete Jobs}
129 During a backup, if the Storage daemon experiences disconnection
130 with the File daemon during backup (normally a comm line problem
131 or possibly an FD failure), under conditions that the SD determines
132 to be safe it will make the failed job as Incomplete rather than
133 failed.  This is done only if there is sufficient valid backup
134 data that was written to the Volume. The advantage of an Incomplete
135 job is that it can be restarted by the new bconsole {\bf restart}
136 command from the point where it left off rather than from the
137 beginning of the jobs as is the case with a cancel.
138
139 \section{The Stop Command}
140 Bacula has been enhanced to provide a {\bf stop} command,
141 very similar to the {\bf cancel} command with the main difference
142 that the Job that is stopped is marked as Incomplete so that
143 it can be restarted later by the {\bf restart} command where
144 it left off (see below).  The {\bf stop} command with no
145 arguments, will like the cancel command, prompt you with the
146 list of running jobs allowing you to select one, which might
147 look like the following:
148
149 \begin{verbatim}
150 *stop
151 Select Job:
152      1: JobId=3 Job=Incremental.2012-03-26_12.04.26_07
153      2: JobId=4 Job=Incremental.2012-03-26_12.04.30_08
154      3: JobId=5 Job=Incremental.2012-03-26_12.04.36_09
155 Choose Job to stop (1-3): 2
156 2001 Job "Incremental.2012-03-26_12.04.30_08" marked to be stopped.
157 3000 JobId=4 Job="Incremental.2012-03-26_12.04.30_08" marked to be stopped.
158 \end{verbatim}
159
160 \section{The Restart Command}
161 The new {\bf Restart command} allows console users to restart
162 a canceled, failed, or incomplete Job.  For canceled and failed
163 Jobs, the Job will restart from the beginning.  For incomplete 
164 Jobs the Job will restart at the point that it was stopped either
165 by a stop command or by some recoverable failure.
166
167 \smallskip
168 If you enter the {\bf restart} command in bconsole, you will get the
169 following prompts:
170
171 \begin{verbatim}
172 *restart
173 You have the following choices:
174      1: Incomplete
175      2: Canceled
176      3: Failed
177      4: All
178 Select termination code:  (1-4): 
179 \end{verbatim}
180
181 If you select the {\bf All} option, you may see something like:
182
183 \begin{verbatim}
184 Select termination code:  (1-4): 4
185 +-------+-------------+---------------------+------+-------+----------+-----------+-----------+
186 | jobid | name        | starttime           | type | level | jobfiles |
187 jobbytes  | jobstatus |
188 +-------+-------------+---------------------+------+-------+----------+-----------+-----------+
189 |     1 | Incremental | 2012-03-26 12:15:21 | B    | F     |        0 |
190     0 | A         |
191 |     2 | Incremental | 2012-03-26 12:18:14 | B    | F     |      350 |
192 4,013,397 | I         |
193 |     3 | Incremental | 2012-03-26 12:18:30 | B    | F     |        0 |
194     0 | A         |
195 |     4 | Incremental | 2012-03-26 12:18:38 | B    | F     |      331 |
196 3,548,058 | I         |
197 +-------+-------------+---------------------+------+-------+----------+-----------+-----------+
198 Enter the JobId list to select: 
199 \end{verbatim}
200
201 Then you may enter one or more JobIds to be restarted, which may 
202 take the form of a list of JobIds separated by commas, and/or JobId
203 ranges such as {\bf 1-4}, which indicates you want to restart JobIds
204 1 through 4, inclusive.
205
206 \section{Support for Exchange Incremental Backups}
207 The Bacula Enterprise version 6.0 VSS plugin now supports
208 Full and Incremental backups for Exchange.  We strongly
209 recommend that you do not attempt to run Differential jobs with
210 Exchange as it is likely to produce a situation where restores
211 will no longer select the correct jobs, and thus the
212 Windows Exchange VSS writer will fail when applying log files.
213 There is a Bacula Systems Enterprise white paper that provides
214 the details of backup and restore of Exchange 2010 with the
215 Bacula VSS plugin.
216
217 \smallskip
218 Restores can be done while Exchange is running, but you
219 must first unmount (dismount in Microsoft terms) any database
220 you wish to restore and explicitly mark them to permit a
221 restore operation (see the white paper for details).
222
223 \smallskip
224 This project was funded by Bacula Systems and is available with the Bacula
225 Enterprise Edition.
226
227 \section{Support for MSSQL Block Level Backups}
228 With the addition of block level backup support to the 
229 Bacula Enterprise VSS MSSQL component, you can now do
230 Differential backups in addition to Full backups.
231 Differential backups use Microsoft's partial block backup
232 (a block differencing or deduplication that we call Delta).
233 This partial block backup permits backing up only those
234 blocks that have changed.  Database restores can be made while
235 the MSSQL server is running, but any databases selected for
236 restore will be automatically taken offline by the MSSQL 
237 server during the restore process.
238
239 Incremental backups for MSSQL are not support by
240 Microsoft. We strongly recommend that you not perform Incremental
241 backups with MSSQL as they will probably produce a situation
242 where restore will no longer work correctly. 
243
244 \smallskip
245  We are currently working on producing a white paper that will give more
246 details of backup and restore with MSSQL. One point to note is that during
247 a restore, you will normally not want to restore the {\bf master} database.
248 You must exclude it from the backup selections that you have made or the
249 restore will fail.
250
251 \smallskip
252 It is possible to restore the {\bf master} database, but you must
253 first shutdown the MSSQL server, then you must perform special 
254 recovery commands.  Please see Microsoft documentation on how
255 to restore the master database.
256
257 \smallskip
258 This project was funded by Bacula Systems and is available with the Bacula
259 Enterprise Edition.
260
261
262 \section{Job Bandwidth Limitation}
263
264 The new {\bf Job Bandwidth Limitation} directive may be added to the File
265 daemon's and/or Director's configuration to limit the bandwidth used by a Job
266 on a Client.  It can be set in the File daemon's conf file for all Jobs run in
267 that File daemon, or it can be set for each Job in the Director's conf file.
268
269 For example:
270 \begin{verbatim}
271 FileDaemon {
272   Name = localhost-fd
273   Working Directory = /some/path
274   Pid Directory = /some/path
275   ...
276   Maximum Bandwidth Per Job = 5Mb/s
277 }
278 \end{verbatim}
279
280 The above example would cause any jobs running with the FileDaemon to not
281 exceed 5Mb/s of throughput when sending data to the Storage Daemon.
282
283 You can specify the speed parameter in k/s, Kb/s, m/s, Mb/s.
284
285 For example:
286 \begin{verbatim}
287 Job {
288   Name = locahost-data
289   FileSet = FS_localhost
290   Accurate = yes
291   ...
292   Maximum Bandwidth = 5Mb/s
293   ...
294 }
295 \end{verbatim}
296
297 The above example would cause Job \texttt{localhost-data} to not exceed 5MB/s
298 of throughput when sending data from the File daemon to the Storage daemon.
299
300 A new console command \texttt{setbandwidth} permits to set dynamically the
301 maximum throughput of a running Job or for future jobs of a Client.
302
303 \begin{verbatim}
304 * setbandwidth limit=1000000 jobid=10
305 \end{verbatim}
306
307 The \texttt{limit} parameter is in Kb/s.
308
309 \medskip
310 This project was funded by Bacula Systems and is available in
311 the Enterprise Edition.
312
313 \section{Incremental/Differential Block Level Difference Backup}
314
315 The new \texttt{delta} Plugin is able to compute and apply signature-based file
316 differences. It can be used to backup only changes in a big binary file like
317 Outlook PST, VirtualBox/VMware images or database files.
318
319 It supports both Incremental and Differential backups and stores signatures
320 database in the File Daemon working directory. This plugin is available on all
321 platform including Windows 32 and 64bit.
322
323 Accurate option should be turned on in the Job resource.
324 \begin{verbatim}
325 Job {
326  Accurate = yes
327  FileSet = DeltaFS
328  ...
329 }
330
331 FileSet {
332  Name = DeltaFS
333  ...
334  Include {
335    # Specify one file
336    Plugin = "delta:/home/eric/.VirtualBox/HardDisks/lenny-i386.vdi"
337  }
338 }
339
340 FileSet {
341  Name = DeltaFS-Include
342  ...
343  Include {
344    Options {
345       Compression = GZIP1
346       Signature = MD5
347       Plugin = delta
348    }
349    # Use the Options{} filtering and options
350    File = /home/user/.VirtualBox
351  }
352 }
353
354 \end{verbatim}
355
356 Please contact Bacula Systems support to get Delta Plugin specific
357 documentation.
358
359 \medskip
360 This project was funded by Bacula Systems and is available with the Bacula
361 Enterprise Edition.
362
363 \section{SAN Shared Tape Storage Plugin}
364
365 The problem with backing up multiple servers at the same time to the
366 same tape library (or autoloader) is that if both servers access the
367 same tape drive same time, you will very likely get data corruption.
368 This is where the Bacula Systems shared tape storage plugin comes into play.  The
369 plugin ensures that only one server at a time can connect to each device
370 (tape drive) by using the SPC-3 SCSI reservation protocol.  Please contact
371 Bacula Systems support to get SAN Shared Storage Plugin specific
372 documentation.
373
374 \medskip
375 This project was funded by Bacula Systems and is available with Bacula
376 Enterprise Edition.
377
378 \section{Advanced Autochanger Usage}
379
380 The new \texttt{Shared Storage} Director's directive is a Bacula Enterprise
381 feature that allows you to share volumes between different Storage
382 resources. This directive should be used \textbf{only} if all \texttt{Media
383   Type} are correctly set across all Devices.
384
385 The \texttt{Shared Storage} directive should be used when using the SAN
386 Shared Storage plugin or when accessing from the Director Storage resources
387 directly to Devices of an Autochanger.
388
389 When sharing volumes between different Storage resources, you will
390 need also to use the \texttt{reset-storageid} script before using the
391 \texttt{update slots} command. This script can be scheduled once a day in
392 an Admin job.
393
394 \begin{verbatim}
395  $ /opt/bacula/scripts/reset-storageid MediaType StorageName
396  $ bconsole
397  * update slots storage=StorageName drive=0
398 \end{verbatim}
399
400 Please contact Bacula Systems support to get help on this advanced
401 configuration.
402
403 \medskip
404 This project was funded by Bacula Systems and is available with Bacula
405 Enterprise Edition.
406
407 \section{Enhancement of the NDMP Plugin}
408
409 The previous NDMP Plugin 4.0 was fully supporting only the NetApp hardware, the
410 new NDMP Plugin should now be able to support all NAS vendors with the
411 \texttt{volume\_format} plugin command option.
412
413 On some NDMP devices such as Celera or Blueray, the administrator can use arbitrary
414 volume structure name, ex:
415
416 \begin{verbatim}
417  /dev/volume_home
418  /rootvolume/volume_tmp
419  /VG/volume_var
420 \end{verbatim}
421
422 The NDMP plugin should be aware of the structure organization in order to
423 detect if the administrator wants to restore in a new volume
424 (\texttt{where=/dev/vol\_tmp}) or inside a subdirectory of the targeted volume
425 (\texttt{where=/tmp}).
426
427 \begin{verbatim}
428 FileSet {
429  Name = NDMPFS
430  ...
431  Include {
432    Plugin = "ndmp:host=nasbox user=root pass=root file=/dev/vol1 volume_format=/dev/"
433  }
434 }
435 \end{verbatim}
436
437 Please contact Bacula Systems support to get NDMP Plugin specific
438 documentation.
439
440 \medskip
441 This project was funded by Bacula Systems and is available with the Bacula
442 Enterprise Edition.
443
444 \section{Always Backup a File}
445
446 When the Accurate mode is turned on, you can decide to always backup a file
447 by using then new {\bf A} Accurate option in your FileSet. For example:
448
449 \begin{verbatim}
450 Job {
451    Name = ...
452    FileSet = FS_Example
453    Accurate = yes
454    ...
455 }
456
457 FileSet {
458  Name = FS_Example
459  Include {
460    Options {
461      Accurate = A
462    }
463    File = /file
464    File = /file2
465  }
466  ...
467 }
468 \end{verbatim}
469
470 This project was funded by Bacula Systems based on an idea of James Harper and
471 is available with the Bacula Enterprise Edition.
472
473 \section{Setting Accurate Mode During at Runtime}
474
475 You are now able to specify the Accurate mode on the \texttt{run} command and
476 in the Schedule resource.
477
478 \begin{verbatim}
479 * run accurate=yes job=Test
480 \end{verbatim}
481
482 \begin{verbatim}
483 Schedule {
484   Name = WeeklyCycle
485   Run = Full 1st sun at 23:05
486   Run = Differential accurate=yes 2nd-5th sun at 23:05
487   Run = Incremental  accurate=no  mon-sat at 23:05
488 }
489 \end{verbatim}
490
491 It can allow you to save memory and and CPU resources on the catalog server in
492 some cases.
493
494 \medskip
495 These advanced tuning options are available with the Bacula Enterprise Edition.
496
497 % Common with community
498 \section{Additions to RunScript variables}
499 You can have access to JobBytes, JobFiles and Director name using \%b, \%F and \%D
500 in your runscript command. The Client address is now available through \%h.
501
502 \begin{verbatim}
503 RunAfterJob = "/bin/echo Job=%j JobBytes=%b JobFiles=%F ClientAddress=%h Dir=%D"
504 \end{verbatim}
505
506 \section{LZO Compression}
507
508 LZO compression was added in the Unix File Daemon. From the user point of view,
509 it works like the GZIP compression (just replace {\bf compression=GZIP} with
510 {\bf compression=LZO}).
511
512 For example:
513 \begin{verbatim}
514 Include {
515    Options { compression=LZO }
516    File = /home
517    File = /data
518 }
519 \end{verbatim}
520
521 LZO provides much faster compression and decompression speed but lower
522 compression ratio than GZIP. It is a good option when you backup to disk. For
523 tape, the built-in compression may be a better option.
524
525 LZO is a good alternative for GZIP1 when you don't want to slow down your
526 backup. On a modern CPU it should be able to run almost as fast as:
527
528 \begin{itemize}
529 \item your client can read data from disk. Unless you have very fast disks like
530   SSD or large/fast RAID array.
531 \item the data transfers between the file daemon and the storage daemon even on
532   a 1Gb/s link.
533 \end{itemize}
534
535 Note that bacula only use one compression level LZO1X-1.
536
537 \medskip
538 The code for this feature was contributed by Laurent Papier.
539
540 \section{New Tray Monitor}
541
542 Since the old integrated Windows tray monitor doesn't work with
543 recent Windows versions, we have written a new Qt Tray Monitor that is available
544 for both Linux and Windows.  In addition to all the previous features,
545 this new version allows you to run Backups from 
546 the tray monitor menu.
547
548 \begin{figure}[htbp]
549   \centering
550   \includegraphics[width=10cm]{\idir tray-monitor}
551   \label{fig:traymonitor}
552   \caption{New tray monitor}
553 \end{figure}
554
555 \begin{figure}[htbp]
556   \centering
557   \includegraphics[width=10cm]{\idir tray-monitor1}
558   \label{fig:traymonitor1}
559   \caption{Run a Job through the new tray monitor}
560 \end{figure}
561
562
563 To be able to run a job from the tray monitor, you need to
564 allow specific commands in the Director monitor console:
565 \begin{verbatim}
566 Console {
567     Name = win2003-mon
568     Password = "xxx"
569     CommandACL = status, .clients, .jobs, .pools, .storage, .filesets, .messages, run
570     ClientACL = *all*               # you can restrict to a specific host
571     CatalogACL = *all*
572     JobACL = *all*
573     StorageACL = *all*
574     ScheduleACL = *all*
575     PoolACL = *all*
576     FileSetACL = *all*
577     WhereACL = *all*
578 }
579 \end{verbatim}
580
581 \medskip
582 This project was funded by Bacula Systems and is available with Bacula
583 the Enterprise Edition and the Community Edition.
584
585 \section{Purge Migration Job}
586
587 The new {\bf Purge Migration Job} directive may be added to the Migration
588 Job definition in the Director's configuration file. When it is enabled 
589 the Job that was migrated during a migration will be purged at
590 the end of the migration job.
591
592 For example:
593 \begin{verbatim}
594 Job {
595   Name = "migrate-job"
596   Type = Migrate
597   Level = Full
598   Client = localhost-fd
599   FileSet = "Full Set"
600   Messages = Standard
601   Storage = DiskChanger
602   Pool = Default
603   Selection Type = Job
604   Selection Pattern = ".*Save"
605 ...
606   Purge Migration Job = yes
607 }
608 \end{verbatim}
609
610 \medskip
611
612 This project was submitted by Dunlap Blake; testing and documentation was funded
613 by Bacula Systems.
614
615 \section{Changes in the Pruning Algorithm}
616
617 We rewrote the job pruning algorithm in this version. Previously, in some users
618 reported that the pruning process at the end of jobs was very long. It should
619 not be longer the case. Now, Bacula won't prune automatically a Job if this
620 particular Job is needed to restore data. Example:
621
622 \begin{verbatim}
623 JobId: 1  Level: Full
624 JobId: 2  Level: Incremental
625 JobId: 3  Level: Incremental
626 JobId: 4  Level: Differential
627 .. Other incrementals up to now
628 \end{verbatim}
629
630 In this example, if the Job Retention defined in the Pool or in the Client
631 resource causes that Jobs with Jobid in 1,2,3,4 can be pruned, Bacula will
632 detect that JobId 1 and 4 are essential to restore data at the current state
633 and will prune only JobId 2 and 3.
634
635 \texttt{Important}, this change affect only the automatic pruning step after a
636 Job and the \texttt{prune jobs} Bconsole command. If a volume expires after the
637 \texttt{VolumeRetention} period, important jobs can be pruned.
638
639 \section{Ability to Verify any specified Job}
640 You now have the ability to tell Bacula which Job should verify instead of
641 automatically verify just the last one.
642
643 This feature can be used with VolumeToCatalog, DiskToCatalog and Catalog level.
644
645 To verify a given job, just specify the Job jobid in argument when starting the
646 job.
647 \begin{verbatim}
648 *run job=VerifyVolume jobid=1 level=VolumeToCatalog
649 Run Verify job
650 JobName:     VerifyVolume
651 Level:       VolumeToCatalog
652 Client:      127.0.0.1-fd
653 FileSet:     Full Set
654 Pool:        Default (From Job resource)
655 Storage:     File (From Job resource)
656 Verify Job:  VerifyVol.2010-09-08_14.17.17_03
657 Verify List: /tmp/regress/working/VerifyVol.bsr
658 When:        2010-09-08 14:17:31
659 Priority:    10
660 OK to run? (yes/mod/no):
661 \end{verbatim}
662
663 \medskip
664 This project was funded by Bacula Systems and is available with Bacula
665 Enterprise Edition and Community Edition.