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