5 \label{NewFeaturesChapter}
6 \index[general]{New Features}
8 This chapter presents the new features added to the development 2.5.x
9 versions to be released as Bacula version 3.0.0 near the end of 2008.
11 \section{Virtual Backup (Vbackup)}
12 \index[general]{Virtual Backup}
13 \index[general]{Vbackup}
15 Bacula's virtual backup feature is often called Synthetic Backup or
16 Consolidation in other backup products. It permits you to consolidate
17 the previous Full backup plus the most recent Differential backup and any
18 subsequent Incremental backups into a new Full backup. This is accomplished
19 without contacting the client by reading the previous backup data and
20 writing it to a volume in a different pool.
22 In some respects the Vbackup feature works similar to a Migration job, in
23 that Bacula normally reads the data from the pool specified in the
24 Job resource, and writes it to the {\bf Next Pool} specified in the
25 Job resource. The input Storage resource and the Output Storage resource
28 The Vbackup is enabled on a Job by Job in the Job resource by specifying
29 a level of {\bf VirtualFull}.
31 A typical Job resource definition might look like the following:
45 # Default pool definition
49 Recycle = yes # Bacula can automatically recycle Volumes
50 AutoPrune = yes # Prune expired volumes
51 Volume Retention = 365d # one year
59 Recycle = yes # Bacula can automatically recycle Volumes
60 AutoPrune = yes # Prune expired volumes
61 Volume Retention = 365d # one year
65 # Definition of file storage device
72 Maximum Concurrent Jobs = 5
75 # Definition of DDS Virtual tape disk storage device
78 Address = localhost # N.B. Use a fully qualified name here
81 Media Type = DiskChangerMedia
82 Maximum Concurrent Jobs = 4
87 Then in bconsole or via a Run schedule, you would run the job as:
90 run job=MyBackup level=Full
91 run job=MyBackup level=Incremental
92 run job=MyBackup level=Differential
93 run job=MyBackup level=Incremental
94 run job=MyBackup level=Incremental
97 So providing there were changes between each of those jobs, you would end up
98 with a Full backup, a Differential, which includes the first Incremental
99 backup, then two Incremental backups. All the above jobs would be written to
100 the {\bf Default} pool.
102 To consolidate those backups into a new Full backup, you would run the
106 run job=MyBackup level=VirtualFull
109 And it would produce a new Full backup without using the client, and the output
110 would be written to the {\bf Full} Pool which uses the Diskchanger Storage.
112 \section{TLS Authentication}
113 \index[general]{TLS Authentication}
114 In Bacula version 2.5.x and later, in addition to the normal Bacula
115 CRAM-MD5 authentication that is used to authenticate each Bacula
116 connection, you can specify that you want TLS Authentication as well,
117 which will provide more secure authentication.
119 This new feature uses Bacula's existing TLS code (normally used for
120 communications encryption) to do authentication. To use it, you must
121 specify all the TLS directives normally used to enable communications
122 encryption (TLS Enable, TLS Verify Peer, TLS Certificate, ...) and
126 TLS Authenticate = yes
129 in the main daemon configuration resource (Director for the Director,
130 Client for the File daemon, and Storage for the Storage daemon).
132 When {\bf TLS Authenticate} is enabled, after doing the CRAM-MD5
133 authentication, Bacula will do the normal TLS authentication, then TLS
134 encryption will be turned off.
136 If you want to encrypt communications data, do not turn on {\bf TLS
139 \section{bextract non-portable Win32 data}
140 \index[general]{bextract handles Win32 non-portable data}
141 {\bf bextract} has been enhanced to be able to restore
142 non-portable Win32 data to any OS. Previous versions were
143 unable to restore non-portable Win32 data to machines that
144 did not have the Win32 BackupRead and BackupWrite API calls.
146 \section{State File updated at Job Termination}
147 \index[general]{State File}
148 In previous versions of Bacula, the state file, which provides a
149 summary of previous jobs run in the {\bf status} command output was
150 updated only when Bacula terminated, thus if the daemon crashed, the
151 state file might not contain all the run data. This version of
152 the Bacula daemons updates the state file on each job termination.
154 \section{Duplicate Job Control}
155 \index[general]{Duplicate Jobs}
156 The new version of Bacula provides four new directives that
157 give additional control over what Bacula does if duplicate jobs
158 are started. A duplicate job in the sense we use it here means
159 a second or subsequent job with the same name starts. This
160 happens most frequently when the first job runs longer than expected because no
163 The four directives each take as an argument a yes or no value and
164 are specified in the Job resource.
169 \item Allow Duplicate Jobs \\
170 If this directive is enabled duplicate jobs will be run. If
171 the directive is set to {\bf no} (default) then only one job of a given name
172 may run at one time, and the action that Bacula takes to ensure only
173 one job runs is determined by the other directives (see below).
175 \item Allow Higher Duplicates \\
176 If this directive is set to {\bf yes} (default) the job with a higher
177 priority (lower priority number) will be permitted to run. If the
178 priorities of the two jobs are the same, the outcome is determined by
179 other directives (see below).
181 \item Cancel Queued Duplicates \\
182 If this directive is set to {\bf yes} (default) any job that is
183 already queued to run but not yet running will be canceled.
185 \item Cancel Running Duplicates \\
186 If this directive is set to {\bf yes} any job that is already running
187 will be canceled. The default is {\bf no}.
196 \section{Accurate Backup}
197 \index[general]{Accurate Backup}
201 \section{Using bconsole to display autochanger content}
202 \index[general]{StatusSlots}
204 The {\bf status slots storage=xxx} command displays autochanger content.
208 Slot | Volume Name | Status | Media Type | Pool | Loaded |
209 ------+-----------------+----------+-------------------+----------------+---------|
210 1 | 00001 | Append | DiskChangerMedia | Default | 0 |
211 2 | 00002 | Append | DiskChangerMedia | Default | 0 |
212 3*| 00003 | Append | DiskChangerMedia | Scratch | 0 |
217 If you see a {\bf *} near the slot number, you have to run {\bf update slots}
218 command to synchronize autochanger content with your catalog.