Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 387115

Summary: app-backup/bacula init script kills all bacula-fd clients instead only one
Product: Gentoo Linux Reporter: Marcin Mirosław <bug>
Component: Current packagesAssignee: Thomas Beierlein <tomjbe>
Severity: normal    
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Package list:
Runtime testing required: ---

Description Marcin Mirosław 2011-10-14 09:54:06 UTC
/etc/init.d/bacula-fd contains line:
start-stop-daemon --stop --quiet --pidfile /var/run/bacula-fd.*.pid
if we have mutli bacula-fd instances it do problem. When we stop one bacula-fd init script kills or other instances of bacula-fd. Unfortunatelly we can't define pid file in bacula-fd (only run dir:/), maybe proper pid file for init schould be defined in conf.d file? Or init scrpit should parse config file for bacula-fd...?

Reproducible: Always
Comment 1 Thomas Beierlein gentoo-dev 2011-10-18 06:20:59 UTC
Can you please give me some more information about your use of more than one bacula-fd clients per machine?

As bacula is designed to have one fd-client per machine i want to understand your intention here.
Comment 2 Marcin Mirosław 2011-10-18 08:10:41 UTC
We are using bacula-fd on clustered servers. We've got hearbeat+drbd on them. Example of configuration: two hosts (hostA & hostB) has launched heartbeat and has two drbd resources beetwen each other. One drbd resource contains www files, other one contains database. First resource is usually mounted at hostA second one is usually mounted on hostB. Let's go to bacula-fd, one daemon is launched on hostA to do backup of OS (without drbd resources, because we don't lnow where they are when backup is going on, maybe hostA is down and heartbeat take all services on hostB?). And analogously on hostB there is launched bacula-fd to backup OS on hostB. Ok, what about drbd resources? We don't on which host are mounted but we know they are available by shared address ip (when heartbeat takes resources from one host to other then takes shared adress ip, mount filesystem form drbd device locally and starts all apache stuff). So we need another bacula-fd which will be run on the same host where drbd resource is mounted.
Finally we can have situation three bacula-fd daemons will be running on same host (if one hist from cluster is down):
- bacula-fd for OS
- bacula-fd for drbd0 resource
- bacula-fd for drbd1 resource

I hope i clarified a little why more than one bacula-fd is needed in my case.
Comment 3 Thomas Beierlein gentoo-dev 2011-10-18 09:10:14 UTC
Ok, I see your problem. But I think your solution is wrong.

A bacula-fd is able to backup 'all' that is mounted on that machine, but will only backup what is commanded by bacula-dir.

So why not have two or three backup jobs in each of your director config file - one for OS and the other two for both drbd ressources? I am sure you can write a 'Run Before Job' command to test if that volume is mounted on the actual machine.
Comment 4 Marcin Mirosław 2011-10-18 10:52:06 UTC
I'm affraid such solution has disadvantage: used space. What happens when will be only one host (e.g. hostA) available? Bacula do backup OS + 2xdrbd(each one ~300-500GB). Next day hostA is in maintainance mode, hostB has all on self. bacula will compress all drbd resources again and put it to job associated to hostB. Files from drbd are stored twice. I don't know how bacula choose between incremental/differential, what happens when:
- hostA has drdb resoursce - backup is created
- hostA don't have drbd mounted - backup is created
- hostA has drdb resoursce - backup is created , bacula do diff or incr? If incr then drbd files will be stored another time at backup machine.

Meseems there is less problems when there are diffrent jobs for hosts and heartbeated resources.
Comment 5 Marcin Mirosław 2013-01-30 18:13:20 UTC
Comment 6 Marcin Mirosław 2013-07-19 08:27:11 UTC
Comment 7 Thomas Beierlein gentoo-dev 2016-11-10 16:15:56 UTC
Sorry I am much too late. But is it fixed in 7.4.4-r1 version.

>    app-backup/bacula: Update init.d service scripts bug #595044
>    and fix slot operator for dev-db/postgresql bug #597666

Just copy and rename the bacula-fd config, the init.d/bacula-fd and maybe the conf.d/bacula-fd file to corresponding names. Set the FDport to a different number and adapt the pid file name in init.d/bacula-fd accordingly.