]> git.sur5r.net Git - bacula/docs/blob - docs/manuals/en/concepts/newfeatures.tex
Update new features
[bacula/docs] / docs / manuals / en / concepts / newfeatures.tex
1 %%
2 %%
3
4 \chapter{New Features}
5 \label{NewFeaturesChapter}
6 \index[general]{New Features}
7
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.
10
11 \section{Virtual Backup (Vbackup)}
12 \index[general]{Virtual Backup}
13 \index[general]{Vbackup}
14
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.  
21
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
26 must be different.
27
28 The Vbackup is enabled on a Job by Job in the Job resource by specifying
29 a level of {\bf VirtualFull}.
30
31 A typical Job resource definition might look like the following:
32
33 \begin{verbatim}
34 Job {
35   Name = "MyBackup"
36   Type = Backup
37   Client=localhost-fd
38   FileSet = "Full Set"
39   Storage = File
40   Messages = Standard
41   Pool = Default
42   SpoolData = yes
43 }
44
45 # Default pool definition
46 Pool {
47   Name = Default
48   Pool Type = Backup
49   Recycle = yes                       # Bacula can automatically recycle Volumes
50   AutoPrune = yes                     # Prune expired volumes
51   Volume Retention = 365d             # one year
52   NextPool = Full
53   Storage = File
54 }
55
56 Pool {
57   Name = Full
58   Pool Type = Backup
59   Recycle = yes                       # Bacula can automatically recycle Volumes
60   AutoPrune = yes                     # Prune expired volumes
61   Volume Retention = 365d             # one year
62   Storage = DiskChanger
63 }
64
65 # Definition of file storage device
66 Storage {
67   Name = File
68   Address = localhost
69   Password = "xxx"
70   Device = FileStorage
71   Media Type = File
72   Maximum Concurrent Jobs = 5
73 }
74
75 # Definition of DDS Virtual tape disk storage device
76 Storage {
77   Name = DiskChanger
78   Address = localhost                # N.B. Use a fully qualified name here
79   Password = "yyy"
80   Device = DiskChanger
81   Media Type = DiskChangerMedia
82   Maximum Concurrent Jobs = 4
83   Autochanger = yes
84 }
85 \end{verbatim}
86
87 Then in bconsole or via a Run schedule, you would run the job as:
88
89 \begin{verbatim}
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
95 \end{verbatim}
96
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.
101
102 To consolidate those backups into a new Full backup, you would run the
103 following:
104
105 \begin{verbatim}
106 run job=MyBackup level=VirtualFull
107 \end{verbatim}
108
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.
111
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.
118
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
123 a new directive:
124
125 \begin{verbatim}
126 TLS Authenticate = yes
127 \end{verbatim}
128
129 in the main daemon configuration resource (Director for the Director,
130 Client for the File daemon, and Storage for the Storage daemon).
131
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.
135
136 If you want to encrypt communications data, do not turn on {\bf TLS
137 Authenticate}.
138
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.
145
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.
153
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 
161 tapes are available.
162
163 The four directives each take as an argument a yes or no value and
164 are specified in the Job resource.
165
166 They are:
167
168 \begin{description}
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).
174
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).
180
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.
184
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}.
188 \end{description}
189
190
191
192
193
194
195
196 \section{Accurate Backup}
197 \index[general]{Accurate Backup}
198
199
200
201 \section{Using bconsole to display autochanger content}
202 \index[general]{StatusSlots}
203
204 The {\bf status slots storage=xxx} command displays autochanger content.
205
206 \footnotesize
207 \begin{verbatim}
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    |
213     4 |                 |          |                   |                |    0    |
214 \end{verbatim}
215 \normalsize
216
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.