Multiple Internet Backup Servers


#1

The goal is to have two or more internet servers (not local)
The client will have to have the possibility of having configured two or more servers so that if all the servers are connected it will make copies for all the servers. If any is offline it will be ignored.
This is intended to guarantee fault tolerance by the backup server.
If any server fails, we will always have another one working and able to receive the requests of the clients.
I have read the manual and many treads of this forum but I did not find anything that would help me in this direction.
Thank you


2 backup storage patch
#2

Hey vmsantos,

In order to accomplish your goal please do the following -

  1. Make sure that you configure internet settings in both servers.
  2. Copy files from your URBackupServer\urbackup folder in one server to the other so they will be identical:
  • server_ident.key.
  • server_ident.priv.
  • server_ident.pub.
  • server_ident_ecdsa.priv.
  • server_ident_ecdsa.pub.
  1. Restart server service.
  2. Add your clients, you can use the preconfigured installer after adding them in your server (in status page you can add clients & after doing so you can download preconfigured installer).
  3. Change your clients “Internet auth key” to be the same in both server.

Cheers.


#3

Hi Eran,

Many thanks for the prompt replay!
But where will i out the second server address?
in the client settings i can only put one…

Thanks,
Regards Vitor


#4

Hoo interesting question, I’ll follow this topic also :slight_smile: .
Sorry for my false response.


#5

You can have several internet server names (separated by ;) and it tries to connect to them all, but I have never tested if that works.


#6

Hi uroni,
It woks but the client only connect to the first available internet server.
On the first available server the client status is online but in the second is offline even after the backup is done
The only way the client connect to the second server is to shutdown the first.
The goal is the client connect to both servers and backup to both also.
Anyway many thanks


#7

Hello,

found this thread because I need to setup connection to my server (the same) using a DNS (somewhere in the internet) and internal IP (using client2site vpn) to use internet mode internal and external.

Entering both DNS name (backup.example.com) and the IP 192.168.1.10 using ; as a deliminator does not work on the webinterface I tried

all with the same result “The internet server needs to be a hostname or an IP address”

thanks


#8

What I have been considering is this.

Backup clients to local SERVER-A
Replicate the Urbackup contents of SERVER-A to an offsite SERVER-B using something like rsync/duplicati; so the backup folder and the Program folder.
Or simply backup the local UrBackup server to a remote UrBackup server.

Another option was using something like duplicati to synchronize the UrBackup data to an S3 Glacier bucket. So only the backup folder and the UrBackup program folder and database.


#9

Confirmed dual srver separated by ; not working.
the client is considered online only for one server
Would be please if that was working, only work around, is to enable discovery for the client and keep the discovery enabled
Workaround confirmed in a recent post.


#10

seems like the settings.cfg files only stores the first server
I wonder if it s because once it s conenct to one server, it reads the conf from that server.
then usually on server , you specify a single internet server , itself , with it s public ip


#11

Just for quick fix:

You can try the other way 'round: trick your client to get local IP for same servername, e.g. in /etc/hosts (or windows\system32\drivers\etc\hosts ) have

192.168.1.10 backup.example.com

whenever you are “in house”. If this works - and you have your on local dns server - make a local zone with all entries from example.com, but local IP for backup.example.com. It’s not nice, but should work.


#12

This sounds like an easy and more suitable fix for me, especially within my environment.
going to test this and report back as soon as I had the time for it.


#13

I tested this for a few month now, I also did a urback server migration in the meantime and still working.

thanks


#14

Would using nginx load balancing be a viable option for alternating between internet servers? … https://nginx.org/en/docs/http/load_balancing.html


#15

ngix wont do it properly
a bug has been fixed ; so now you can use 2 servers.

But the client will allways backup to a single internet server, unless at a point it can t contact it , then it ll switch to another internet server.

That behavior is different than local server, where a cleitn can backup to two servers at the same time


#16

So technically, if you alternate the times port 55415 is open between servers, they would essentially alternate between them… but that’s definitely not ideal. Is there a command/automated way to set the internet servers? There could be a client post script that switches it after backup completes on one server, but that sounds like it could get messy.

Server side would be best though. As of now, I just don’t see a good option to back up to multiple internet servers.


#17

You could cron a firewall rule , i guess that would work

There’s one, i can t remember , i think it s in the doc, it must be around using : urbackupclientctl set-settings --key

Agreed, i have maybe 2-5% clients which must use internet mode.

Remember you can use multiple local servers and one internet server and that works fine. So, what works well is to put a client on one internet and on one local server at the same time. So maybe there something to try with a vpn to pass a server as local, but i didn’t tried.


#18

That command is: urbackupclientctl set-settings -k internet_mode_enabled -v true -k internet_server -v “server2;server1” -k internet_server_port -v 55415 … i will test a post script that just alternates the order of server1 and server2


#19

Actually, I found the best solution for this at the moment is to alternate the times port 55415 is open between servers and have “server1;server2” set as the internet server on both. Its simple and works.