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