-
Notifications
You must be signed in to change notification settings - Fork 3
/
ReleaseNotes
284 lines (222 loc) · 12.8 KB
/
ReleaseNotes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
Release Notes for vchanger 1.0.3 2020-05-07
Release 1.0.3
This is mostly a bug fix release, correcting the number of slots
reported by SIZE/LIST commands, a compilation error on FreeBSD,
and failure of the launch scripts invoked by udev on some platforms.
The locking mechanism to allow multiple instances and automatically
issuing 'update slots' and other commands to bconsole has been
redesigned to use POSIX semaphores.
Bugs Fixed:
17 SIZE/LIST commands return wrong number of slots
18 Compilation fails on FreeBSD 13 (head)
==================================================================
Release 1.0.2
This is a bug fix release, fixing three issues found in version 1.0.1
and improving volume label formatting for CREATEVOLS command and logging
of udev/UUID mountpoint discovery.
Bugs Fixed:
13 LOAD command allows loading slot into multiple drives
14 Hang when bconsole called to update slots
15 Race condition in bconsole call may hang vchanger
==================================================================
Release 1.0.1
This is a bug fix release, fixing four issues found in version 1.0.0.
Additionally, the Windows installer was fixed to correctly install on
64-bit Windows and create Start Menu items.
Bugs Fixed:
9 Vchanger may hang when issuing commands to Bacula
10 uuidlookup.c compilation failure on FreeBSD 9.3
11 Missing libwinpthread-1.dll error in Windows version
12 Mounted magazines specified by UUID not always detected
==================================================================
Release 1.0.0
This is a major release adding several features and a change in the
structure of magazines and the way volume files are "loaded" into
virtual drives. These changes allow for an unlimited and variable
number of volume files on each magazine, and allow adding and deleting
volumes to/from magazines, as well as moving volume files from one
magazine to another. Virtual drives are now symlinks dynamically
created by the LOAD command. An unlimited number of virtual drives per
autochanger is supported without requiring a vchanger configuration
change. The number of virtual drives used is determined solely by the
Device resources defined in bacula-sd.conf.
Also, vchanger will now automatically issue 'update slots' and
'label barcodes' commands to Bacula via bconsole when it detects a
change in the availability of any of its defined magazines or when
volume files are created with the CREATEVOLS command. Together with
an automounting mechanism, this makes the attachment and detachment
of removable drives a plug-n-play operation.
To aid in using removable drives on systems having udev, vchanger now
includes a udev rules generator and helper scripts to enable the
automatic mounting of magazine filesystems triggered by udev hotplug
events. The advantage to using this automounting method, as opposed to
autofs or window manager automounters using dbus, etc., is that these
scripts will invoke vchanger with a new REFRESH command that will issue
an 'update slots' command via bconsole whenever removable drives
are attached or detached.
Change Summary:
The concept of a 'magazine' has changed. A magazine remains a
directory, usually the mountpoint of a filesystem, however no metadata
files are now stored on the magazines and volume files are not renamed
when loading and unloading virtual drives. There is now no requirement
that all magazines have the same number of volumes, and volume files
may have any filename. New volume files can be created on a magazine
at any time. A new extended interface command, CREATEVOLS, has been
implemented for this purpose. A magazine is now simply a filesystem
(or directory) containing some variable number of volume files. Any
directory containing volume files can be used as a magazine in
vchanger, including for example volumes created using Bacula's
built-in disk storage handling. Volume files may be deleted from
magazines or moved between magazines. The only caveat is that the
volume's Media Type must match that of the autochanger's Storage
resource.
Virtual drives are now simply a symlink in the autochanger's work
directory. The drive number is the name of the symlink. For example,
if the autochanger's work directory is /var/spool/vchanger/changer1,
then virtual drive 0 is a symlink at the path
/var/spool/vchanger/changer1/0. The symlink's path is then specified as
the Archive Device in the Device resource defined in bacula-sd.conf for
the autochanger's drive 0. Vchanger implements the LOAD command by
creating this symlink pointing at the volume file mapped to the slot
requested to be loaded. A subsequent UNLOAD command deletes the
symlink. In previous versions, a LOAD created a symlink pointing to the
mountpoint of the magazine and then renamed the volume file on the
magazine to 'drive0', 'drive1', etc. This was because the original
design criteria, (dating to before the release of Bacula 2.0.0),
required that vchanger run on Windows Server 2003, which did not have
the capability of file-level symlinks. However, file-level symlinks is
a much more robust method, handling any "out of space" conditions in a
clean, expected way. For that reason, use of vchanger on versions of
Windows without file-level symlinks is no longer supported.
An autochanger's magazines are assigned in its vchanger configuration
file. An unlimited number of magazines is supported and the storage space used
by an autochanger can be scaled at any time by simply adding additional
magazines and creating volume files on them. Expansion of the storage
space does not require any change to Bacula's configuration. Any
combination of one or more of the assigned magazines can be attached
(mounted) at any time.
When a magazine is attached or detached there is of course a change in
which volumes are available for reading and writing. Bacula must be
instructed to update its database to reflect the change. This is
analogous to swapping tapes in a tape autochanger library. Bacula has a
bconsole command used for this purpose, the 'update slots' command. In
general, one would insert or remove tapes and then issue an 'update slots'
command in bconsole to inform Bacula of the change. With vchanger,
attaching or detaching a magazine also requires that the 'update slots'
command be issued, however vchanger now detects changes to the currently
available volume files and automatically issues the 'update slots'
command when needed. This allows swapping magazines to be a true
plug-n-play operation.
The scripts directory in the vchanger source tree contains a script to
generate the udev rules needed to automatically mount the magazines
filesystems defined in the vchanger configuration file. These rules will
cause udev to launch scripts, also included in the scripts directory, to
handle a "hot add" event by mounting the magazine filesystem and invoking
vchanger with the REFRESH command to issue an 'update slots' command to
Bacula. Likewise, a "hot delete" event will launch a script to unmount
the filesystem and again invoke vchanger with the REFRESH command.
If vchanger is compiled on a system supporting udev, then libudev will be
used to determine the device node of magazine partitions specified by
UUID. If compiled on a system without udev, the older method of using
libblkid and libuuid will be used if available. For Windows builds,
win32 API functions are used to map filesystem UUID to device node. If
the getmntent() function is not available on the target system for
determining a filesystem's mountpoint, then vchanger will use the
getfsstat() function, allowing magazines to be specified by UUID on many
BSD and OSX systems. A build for a minimal system having neither libudev
nor libblkid will succeed, however specifying magazines by UUID will not
function and result in an error, meaning that such minimal systems must
only specify magazines by directory path. These changes should alleviate
many of the problems people have had in the past building vchanger for
non-Linux systems.
Bugs Fixed:
5 Compile errors on Debian or Ubuntu
6 Broken libblkid returns wrong device for UUID
7 Limitation on number of virtual drives
8 Compile errors under Solaris 10
==================================================================
Release 0.8.6
When using the automount_dir directive, opendir() is now used rather
than stat(), to trigger automounts. For some combinations of Linux
kernel and older versions of autofs, stat() is not sufficient to
trigger an automount.
Extensive logging was added to this version, along with a new
configuration directive to set the logging level. This should greatly
help problem diagnosis.
State information for the magazine bays is now kept in the work
directory along with virtual drive state. In a multi-magazine changer,
when a magazine was unloaded from a bay, magazines in higher numbered
bays were being shifted down to appear loaded into a different bay
than they were before the magazine was unloaded. With this version,
magazines will remain loaded in the same bay until they are unloaded.
Bugs Fixed:
==================================================================
Release 0.8.5
Minor bug fix release. Fixes link errors for older versions of
e2fsprogs on some distros (bug 4). Also applies the "safe strncat"
patch to prevent a buffer overrun present in strncat in some standard
C libraries.
Bugs Fixed:
4 Compile errors related to e2fsprogs libraries
==================================================================
Release 0.8.4
This release is a bug fix release. All users of version 0.8.3 should
upgrade to 0.8.4 to prevent a bug causing Bacula to mark volumes in
error.
Change Summary:
The slot number passed in parameter 3 is now ignored for the LOADED
command. This should fix a bug causing Bacula to mark a volume
loaded into a drive in error when a job starts after the magazine
has been removed.
Bugs Fixed:
3 LOADED command fails when param 3 (slot) is zero
2 Compile fail on FreeBSD 7.2
==================================================================
Release 0.8.3
This release adds the ability to specify magazine partitions by UUID,
making it much easier to use multiple simultaneous magazines.
Change Summary:
Specifying magazine partitions by UUID is a paradigm shift in the way
magazines may be assigned to a particular autochanger. Previously,
magazines were assigned to an autochanger by giving the magazine a
filesystem label matching the autochanger's name. Standard udev
rules on many distributions create a device symlink in
/dev/disk/by-label that allow easily configuring autofs to mount the
magazine at a known mountpoint. This works well for a single magazine
autochanger, but for a multi-magazine autochanger special udev rules
are needed to create unique device symlinks when all of the
magazines have the same filesystem label. Since the standard udev
rules on most systems create device symlinks by filesystem UUID
under /dev/disk/by-uuid, assigning magazines to an autochanger by UUID
makes it much easier to configure automounting that will work for an
autochanger with any number of simultaneously mounted magazines.
Note that magazines may still be specified as a directory path, so the
previous methods still work, however it is recommended to assign
magazines by UUID if possible.
As an aid to working with multi-magazine autochangers, a new extended
API command, LISTMAGS, was added to list the magazines currently
"inserted" into each of the autochanger's magazine bays. Like the
INITMAG command, it is an extension to the Bacula Autochanger API and so
is never invoked by Bacula.
Bugs Fixed:
1 Unable to detect when drives inserted using the vchanger
2 Compile fail on FreeBSD 7.2
==================================================================
Release 0.8.2
This release fixes some documentation errors. No changes were
made to the vchanger source.
Change Summary:
2009-04-14
- Fixed ambiguities in the Howto kindly pointed out by Sean Brannon.
2009-01-27
- Added command line flags to set uid and gid when run as root
- Force LOADED command to return zero when no slot is loaded
- Changed 99-by-label-fix.rules to work with centos5/el5
- Added stateN files to track the loaded state of each virtual
drive when last invoked
- Removed debug line inadvertently left in by_label_fix.sh
2008-10-03
- This initial release has been running on a test server with
Bacula 2.4.2 on Linux for over a week, so is considered beta.
Bugs Fixed:
=================================================================