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