Questions before starting to use - looking to replacing SyncBack 10 in Windows


I have spent a bit of time looking in to your FAQ and other documentation. Also browsed the forum a bit and searching, but I feel the need to ask about my specific scenario before jumping in to this “Syncthing”.

I am a Windows person, mostly worked in Windows my entire life as sysadmin and service manager and not very versed in CLI and such things. Changing my home office servers, replacing and moving around, setting up a TrueNAS Scale, to allow for a bit of greater versatility and also to learn more about this environment.

It seems to me that Syncthing, with UI, might be a better option for me than rsync, that gives me all kinds of headache and I do not think I will be able to achieve below scenario with it.

Allow me to explain what I have and how it is set up:

A windows server and a NAS on a local layer2 network that is not open to anything else.

The Windows server has a shared SMB folder. All data is stored there. Today about 11TB. The Master, if you will. No user management. No ACL. No NFS. Everyone uses the same creds and everyone has RWX rights. Done on purpose. Will not change. My NAS, an Asustor, also has a shared SMB folder, that can be accessed if needed, that is the Backup. Less access, of course.

SyncBack synchronises - mirrors - two mapped SMB shares where the Server is the Master and the NAS is the Backup. Every night SyncBack 10, that is installed on the Server, scans the file list and copies changed files to my NAS Backup, and delete files that are no longer present on the Master. Was a total no brainer to setup and I have used it for over a decade.

This is a screenshot from my SyncBack settings:

So the question is obviously if this is simple enough to be handled by Syncthing on TrueNAS Scale. I do not use, or need, any SSH, nor any compression, nor any encryption.

Syncthing can do the mirroring, but please keep in mind that by design it is supposed to be real-time synchronisation, not something run on demand at a specific time, etc. You can simulate sync-on-demand, e.g. by pausing and unpausing folders/devices at specific times but it’s not the same as running tools like rsync and such. Of course, you can also just leave Syncthing running all the time and let it sync in real time if that’s what you want.

Thanks. I am not sure about the implications in my scenario of having it running real time. Will have to think a bit about that.

When you say mirror, would syncthing delete and copy everything as rsync does, or would it actually hold a list of changed files and only do what copies and deletions that are necessary?

Syncthing will just keep the folders on the server identical to what you’ve got on the other devices, as long as you don’t modify anything on the server itself, of course. It operates on blocks, so only the actual modified file parts are transferred (which makes it very fast). I don’t think rsync deletes and copies everything from scratch though, i.e. it simply updates the existing copy, similarly to Syncthing. The difference is that Syncthing performs two-way sync and also can sync data between multiple (i.e. more than two) devices (while rsync is normally unidirectional).

1 Like

This part should be explained in the following doc-page: Understanding Synchronization — Syncthing documentation. So, in very short, only the required blocks are being synced.

Other than that - Ignore Patterns, Folder Types and the filesystem Watcher combined with the Full-scan interval may be of use in your case. Worth a read:)

1 Like

Considering 11Tb data and versioning on that, what might be a reasonable overhead?

I have 14.4TB on the Backup (NAS) and will have 20,9TB on the Master (TruNAS Scale). I guess the overall space limit will be the lower value. Is that a correct assumption?

Any examples on how versioning and restoring files will work in Windows? Previous versions?

Oh wait… filenames. Shit, that is gonna be a headache, for others. Windows file naming vs Unix file naming. He he HE …

Versioning with reasonable settings should probably be fine, unless you deal with giant files, as they would then be versioned as is, potentially taking a lot of space. Versioning itself is per device, so in your case I would enable it on the backup NAS (which will then version all changes happening elsewhere).

As for the filenames, yes, you do need to make sure they follow the Windows conventions.

1 Like

NAS do probably not have the juice to handle that. Its 9 years old and have only 3GB DDR3 RAM on an Intel Atom. It works perfectly as is, but I do not want to add anything to it fearing a performance hit.

I will keep writing about how I try to solve this in this thread. If you have any objections to that, please let me know. As I write questions may arise, and then I will wait for an answer, test the suggested answer, and continue.

Reviewing the installation parameters that TrueNAS Scale has for this, and not finding anything about how those should be interpreted or used, it would seem there is a lack of ducumentation on how to even begin to configure this, and then I am not even browsing your docs a lot yet.

Should you have any tips I am all ears, but I will not dabble in the dark. I realize this is kinda middle ground, but one would think that with so huge user bases, someone wrote something down. I know I do. Nevertheless I will try.

This seems to be something, but I do not frequent Reddit, nor trust it.

The thread remains unanswered, so basically no use.

Then there is this Let's sync your data from one server to another with Syncthing TrueNAS Scale - Part 8 - YouTube but I just do not understand a lot of what the guy says. Syncthing on Portainer on OMV on Truenas Scale? Wtf. Anyways it sems relatively clear up to the point where I define a share to use for sync. I have a predefined SMB share. That is what I want to backup.

I get an error selecting that share.

chart_release_create.extraAppVolumeMounts.0.hostPath: Invalid mount ‘/mnt/pool/share/MUSIC’ path. Following service(s) use this path: SMB Share

I understand the error, colliding services. How do I fix it?

TrueNAS Scale seems to lean on Docker to run services. So base knowledge of Docker would help in setting this up.

Syncthing does offer some base information regarding Docker setups; syncthing/ at main · syncthing/syncthing · GitHub. And that should help you in setting it up on TrueNAS Scale as well, you just have to ‘translate’ the parameters as shown in Syncthing’s GitHub to whatever TrueNAS requires.

And the last error seems to be more of a TrueNAS thing than one specific to Syncthing.