Bacula-users

Re: [Bacula-users] multi-homed SD & single-homed FDs

2013-05-03 15:24:50
Subject: Re: [Bacula-users] multi-homed SD & single-homed FDs
From: "Adam Thompson" <ad.thompson AT uwinnipeg DOT ca>
To: "Radosław Korzeniewski" <radoslaw AT korzeniewski DOT net>
Date: Fri, 03 May 2013 14:19:32 -0500

I didn't want to paste ~600 lines if the answer was a simple "no, you can't do that in Bacula yet".

http://pastebin.com/y3Ti0xFi - bacula-dir.conf on libback

http://pastebin.com/0kc23QLR - bacula-sd.conf on libback

http://pastebin.com/xbCa9mNM - bacula-fd.conf on libback

http://pastebin.com/jChHgVzn - bacula-fd.conf on berkeley

http://pastebin.com/M462KgMu - network config for both hosts


I'm not actually using the tape drives yet.  This configuration (with clients having static routes to private IP bound to SD's loopback) allows me to back up hosts from either VLAN.


I tried exactly what you describe below, by declaring two Storage{..} stanzas in bacula-dir.conf, each with a different Address= line, referencing them both from the Pool{..} stanza (which gets pulled in from the JobDef), and then overriding using Storage=<whichever-one-was-appropriate> in each Job{..} stanza.  

I left the SD on libback bound to 0.0.0.0, I didn't use the SDAddresses= directive.  Netstat confirmed it was listening on *:9103.


What happened when I tried that was the berkeley FD kept attempting to connect to the SD on the other VLAN, which doesn't work in my environment.


I'm not happy about using static routes to solve my problem (badly violates the Principle of Least Surprise for the next sysadmin who has to look at this stuff), so I'll go back to what I was trying earlier and see if I can get it to fail in the same way again.


At least now I know it should be possible to make this work.


-Adam



>>>

From:

Radosław Korzeniewski<radoslaw AT korzeniewski DOT net>

To:

Adam Thompson <ad.thompson AT uwinnipeg DOT ca>

CC:

bacula-users <bacula-users AT lists.sourceforge DOT net>

Date:

2013-50-03 09:50

Subject:

Re: [Bacula-users] multi-homed SD & single-homed FDs

Hello,


I don't fully understand where your problem exist because you do not show us your configuration.


2013/5/2 Adam Thompson <ad.thompson AT uwinnipeg DOT ca>

I'm trying to setup a multi-homed DIR + SD to service two different VLANs that are firewalled from each other.


OK, no problem.



I've tried configuring multiple Storage per Pool in bacula-dir.conf, each one with a different IP address (no hostnames; I don't manage DNS here), but the FD on the client for VLAN #2 still keeps trying to contact the SD on VLAN #1 and timing out.


Show us your configuration. I don't understand why do you need to configure something in a Pool.



The old DNS-based routing hacks aren't feasible in my environment: I can only get one IP per hostname, and I do NOT want to manually edit /etc/hosts files (that's a maintenance nightmare).


???


Bacula fully support IP only server address names in any component configuration, no /etc/hosts nightmares anymore.


<advocacy>

At this point I would like to greet all Networker administrators for 20+ years of /etc/hosts nightmares. Not to mention the RPC protocol. Switch to Bacula and all your nightmares gone.

</advocacy>



Is anyone else managing to do this successfully in Bacula (Community Edition 5.2.13), or do I have to do some routing magic on each host and a loopback IP on the SD?


I do this all the time... :) Depend if customer wants to use DNS or IP addresses only. No magic routing or loopback IP on the SD(?).


First you need to setup Bacula SD (in bacula-sd.conf) to listen on two interfaces (IP addresses) or any available interface, i.e.


Storage {

SDAddresses = {

ip = { addr = 10.10.10.10 } # vlan1

ip = { addr = 10.20.10.10 } # vlan2

}

(...)

}


Check your configuration with netstat.


Next you have to define two Storage Resources in your Bacula DIR config (in bacula-dir.conf). Both Storages need to have the same parameters except Address=<IP> which should point to your vlans, i.e.


Storage {

Name = Storage-VLAN1

Address = 10.10.10.10

(...)

}


Storage {

Name = Storage-VLAN2

Address = 10.20.10.10

(...)

}


Then you need to define a valid storage (with example above: Storage-VLAN1 or Storage-VLAN2) in your every Job resource (or JobDefs resources) corresponding to what client is connected to what vlan.


Piece a cake... :)


best regards

--
Radosław Korzeniewski
radoslaw AT korzeniewski DOT net



------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite
It's a free troubleshooting tool designed for production
Get down to code-level detail for bottlenecks, with <2% overhead.
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap2
_______________________________________________
Bacula-users mailing list
Bacula-users AT lists.sourceforge DOT net
https://lists.sourceforge.net/lists/listinfo/bacula-users
<Prev in Thread] Current Thread [Next in Thread>