Am 04.05.2012 01:43, schrieb Tilman Schmidt:
Am 04.05.2012 00:25, schrieb Volker Böhm:
The director is version 5.0.1 on an Ubuntu 10.04 LTS Server. The version
which was shipped/updated by the distribution.
One SD is also version 5.0.1 on the same machine.
The other (main) SD was 5.?.? on my Workstation, a Linux Mint 12 (Ubuntu
11.10 clone). This was also the one, which was shipped with this
distribution.
Some days ago I updated/reinstalled this Workstation to an Ubuntu 12.04
(bacula version 5.2.6) and now every attempt to store anything via the
SD on this machine does not work:
03-May 23:23 vbserver-dir JobId 1486: Start Backup JobId 1486, Job=lpasgg207.2012-05-03_23.23.57_15
03-May 23:27 vbserver-dir JobId 1486: Fatal error: Storage daemon rejected Job command: 3915 Bad Job command. stat=-1 CMD: JobId=1486 job=lpasgg207.2012-05-03_23.23.57_15 job_name=lpasgg207 client_name=lpasgg207-fd type=66 level=70 FileSet=lpasgg207 NoAttr=0 SpoolAttr=0 FileSetMD5=J6/Lb3tny3IJIz+BFnM0GC SpoolData=0 WritePartAfterJob=1 PreferMountedVols=1 SpoolSize=0 Resched=144058568
Does anyone know the reason for this behavior?
All (3-4) hits I had in googling this error are very old and point to
version mismatchen between director and SD.
And that is indeed the reason. The director and SD should have the same
version. It's no problem if the FDs are older. (Except for the unfixed
bugs and missing features in that old versions, of course.)
But I think it's impossible
to use the same version, if you have more than 5 or 10 Computers with
several operating systems.
No, it's not impossible.
First of all, it's quite unusual to have 5 or 10 SDs. Most installations
have one or two, and in the majority of cases one of them will be on the
same machine as the director. So you only have to make sure that those
two or three machines run the same version.
Yes, you're right: I usually don't have that many
SDs in an
installation. But from what should I know that only the interface
between the director and the
SDs is version dependent. If
also the FDs should have similar/equal versions, then it would be
(nearly) impossible in a real network.
And if I make a
full backup of one of my notebooks, I prefer
to connect the target disk directly to this notebook to have 50 - 80
MB/s storage rate and not only 25 MB/s (1000 Mbit network) resp. 12
MB/s (100 Mbit). And so every notebook has an SD installed.
Second, you don't have to run the version that comes with the
distribution. I'd even say in most cases you shouldn't, as that version
is usually outdated. There are packages of the latest stable version
available for most common distributions, and you would be well advised
to run those instead of the older ones packaged with the distribution,
at least on your director and SDs.
And finally, if everything else fails, you can always compile exactly
the version you need from source.
Hi,
if Tilman is right I'm very sad, that the guys who made bacula seem
to have no clue of the basics of software design :-(
- An interface should never be changed without a severe
reason.
- If you need to change an interface, you should change it
upward compatible.
- If you can't be upward compatible for any reason, the two
programs using the interface should be able to negotiate about
using the old or the new version, to make sure that everything
is working.
Every other approach ist bullshit! Especially when you have such
an heterogeneous environment as a computer network.
But if this mistake has happened: What might be the solution?
1. Install the new packets (5.2.5) from Ubuntu 12.04 on the
server (Ubuntu 10.4 LTS)? I think that will not work (libc6 >=
2.14 vs. 2.11, libpython2.7 >= 2.7 vs. no libpython2.7, ...) at
all.
2. Install the old packets from ubuntu 10.04 on the Workstation
to have an old (an compatible) SD? I think that won't work either
without installing half of the internet :-) (that means 50+
packets) and to screw up the entire installation.
3. Compile bacula from the sources? The file INSTALL from the
bacula 5.0.1 tarball says:
Note, in configuring Bacula, you cannot
get by with a simple ./configure,
it is much more complicated than that (unfortunately).
and one example for the configure call is:
CFLAGS="-g -O2 -Wall" \
./configure \
--sbindir=$HOME/bacula/bin \
--sysconfdir=$HOME/bacula/bin \
--with-pid-dir=$HOME/bacula/bin/working \
--with-subsys-dir=$HOME/bacula/bin/working \
--enable-smartalloc \
--with-mysql \
--with-working-dir=$HOME/bacula/bin/working \
--with-dump-email=your AT address DOT com \
--with-job-email=your AT address DOT com \
--with-smtp-host=localhost
Is there an example how to compile bacula 5.0.1 (I only need the
SD and the FD) to work on Ubuntu?
And which Version to compile?
3a. Version 5.2.5 on the server to have an completely (nearly) up
to date installation?
3b. Version 5.0.1 on the Workstation(s) to have a minimal effort?
Any suggestions?
Volker
------------------------------------------------------------------------------