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