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