Syncthing cluster between friends

Hi Syncthing forum, I’ve been using ST for quite a while, but up until now only for some small folder syncs. I wanted to expand this now with several friends. I know ST isn’t meant as a backup solution but I do want to use it for offsite backups. I just want multiple offsite backups for worst case scenarios like fire or lighting. Accidental file deletions is already covered by local versioning.

Anyway, the idea is to have 4 ST servers. One at each friends house. Every server will have a local folder that needs to be synced to an encrypted folder on the other 3 devices.

I see several options for this and picked 2 of them in a small drawing. Option A: Data from master storage is synced and received encrypted by 3 other nodes. All nodes are configured to share the folder between them. Possibly a lot of overhead, double transfers etc. Or is ST deviding the data over the servers so there’s no double upload for the master storage?

Option B: Data from master storage is received encrypted at node 2. This node sends it to node 3, node 3 sends it to node 4. Delay until the data is at node 4.

What do you think is the best option?

1 Like

I’d assume you’re well aware of this already, but with the option B, one of the machines being down will mean that everything else on the lower level will also be non-functional. This isn’t the case when every device is connected with every device.

Syncthing doesn’t do any “double” transfers though, at least as far as I understand the internal workings (unless you’ve got nested folders, which is normally not recommended).

1 Like

Yes, that’s true in option B. Worst case would be storage 1 being down, then there’s no backup at all. There will be no nested folders. Maybe multiple but that shouldn’t change anything. Let’s say for simplicity, that each node will hold 1 master folder that needs to be synced to the 3 others.

I’d connect everything together personally, although if by “master folder” you mean “Send Only”, then this isn’t really going to work, because with all four devices set to “Send Only”, none of them will actually be able to accept any changes.

The master node is set to ‘Send Only’. All others are set to ‘receive encrypted’. That seems to work. If I pause 2 devices at the master node they’re still being synced thru the others. With a delay of course.

1 Like

Yeah, that should work no problem :slightly_smiling_face: .

I can’t seem to find where the sync is explained. How does ST decide which part of the files should go to node1, which to node2 and which to node3 to maximize the sync speed?

Queue of requests per device, new requests gets sent to device with shortest queue.

Does that also count for an initial upload? When a new folder is added and synced with all 3 others. Is it uploaded 3 times or 3 times 1/3 of the data?

It applies always, but when a file is only available on one place it can only be requested from there. If the file is large it can be partially synced and then made available to other peers. Files are fetched in random order, so if there are many files it’s likely one file has been made available by another peer when the third peer wants it, etc.

OK, sounds perfect! Thanks for the replies :wink: