Best practices to create a master device/slave cluster?

I am building a set of book servers out of Raspberry Pi zeros (4 of them). The “Master Folder” device is a Synology NAS set to “send only” There are two shared folders; ‘ebooks’ has 12,356 files and is 8.83GB, and ‘audiobooks’ has 826 files and is 64.9GB. The media is all flash drives and the Pi processors are slow, so scanning takes many hours and initial sync takes days. Each device in the cluster sees all the other devices as ‘Remote Devices’. All good so far. The slave devices should really be “receive only” but that feature isn’t available yet. Until that is released, how best should I configure my cluster? I am fighting with sync conflicts, and “override changes” from the master seems to cause a days long process that ends up with more sync conflicts.

My questions are:

  1. In this scenario, should each device only see the master or should they all see each other as I have them now? Should I set each device to only see the master and not the others? Would this be the safest way until “receive only” is available.

  2. is there a way to trigger “override changes” from a slave device so that only that device has to start over, rather than the whole cluster?

  3. does any one know if there is an ETA on “receive only”

  1. If you have the bandwidth to send the files to all “slaves” from the NAS, then adding only the NAS to the “slaves” could reduce your conflict problem (I think).
  2. If you changed the files in the past (adding them to Syncthing) removing the folder on that node and adding it again should be like a override changes just for that node, as the local version will be 1 but the version from the NAS will be > 1. But as I stated in you other thread, override changes does not result in everything being transferred again.

What file system do you use on the flash drives? If it’s not native Linux format, it causes massive performance hits on low power devices.

ExFAT. One requirement is that some of the family prefer to just pull the flash drive from the pi and put it in a computer for file transfer. However, one testbed uses a MicroSD card for everything, the pi boots from it so it’s EXT4, and it’s the slowest of the bunch (that may just be microsd speed)

If you have the bandwidth to send the files to all “slaves” from the NAS, then adding only the NAS to the “slaves” could reduce your conflict problem (I think).

Is there a way to remove th other devices from the slaves (they were added my the “introducer”. I only see the option to remove them from the introducer.

That’s expected when using introducer. You can’t remove the devices unless you either disable introducer or remove them on the introducer device.

In the past you could remove the devices, but then they would just appear again, as they would be reintroduced by the introducer. That’s (more or less) what you want from an introducer.

If they see each other and there is a change in one it will sync to the others… Only the master will ignore it.

You should reduce the chance of unwanted changes by making the folders read only to all users except the syncthing user.

You should reduce the chance of unwanted changes by making the folders read only to all users except the syncthing user

The only other process that interacts with the synced folders is Lighthttpd serving out the files for download, and only on two out of three. On doesn’t even have that yet. The cluster is set up on a LAN for testing, no one but me has access. There is nothing/no one else that could modify the files.

I will set the sync folders to 755 to see if that changes anything.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.