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