I am looking to use my nextcloud server as a distributed file system and wanted to get some ideas on the best configuration for my situation. I currently have 7 offices with programmers and engineers at each office. All offices have IPsec tunnels established therefore are essentially all on one big VLAN. I have a Windows box (file server) at each office with identical folder structures. The engineers map the shares from their office server to their laptops. When they work on their AutoCAD, programming, or graphics, they are working directly from the mapped drives. Sometimes an engineer at one office will work on a project that was passed to him / her from an engineer who is located at a different office. Due to the cross office work loads, I have to maintain a two way synchronization between all of the servers so the engineers at each office will always have the latest revision of the files. My current plan is to keep the current Windows machines in place, and add a nextcloud server then load the sync client app on each machine at each office to synchronize the file set to each of the 7 office file servers. My boss demands that all of the engineers work off of their local server in case the network goes down.
If I set things up this way, the engineers will not have to change any of their current drive mapping. Hopefully my thinking is correct in that when an engineer at one office makes a change to a file, that change will be propagated to the nextcloud server and the nextcloud server will then propagate those changes down to the file servers at the other 6 offices. Because any file can be changed from any office, this has to be a two way sync. Usually there are 200 to 300 files changed per day. Currently we have about 1.7 TB of data consisting of 3.6 million files.
Is there a better way to configure this? Any help, ideas, or suggestions would be greatly appreciated!
Bump… Buller… Buller… Anyone???
The file sync of the client that it re synchronizes once the connection is back is a very nice feature and it works quite good for a single user. I am on the train working on a document and it gets synced afterwards. Now the problem is, when a shared file has been changed in the meantime. In this case, I get an error in the client and a conflict file is created (the client downloads the new version, and my edited version is the conflict version). Then it is up to me to resolve the conflicts. Sometimes it works not perfectly especially when you do a lot of changes (or work with git).
In your case, this conflict will be created on a server level (because you sync the file servers), so the individual user does not see the conflict created. Any time there is a problem, it falls probably back to you to solve it with the help of your colleagues.
A more Nextlcoud-solution would be, that you have a Nextcloud server at each office and use the federated sharing to work between offices. The problem now with federated sharing is that the files remain on the main server, there is no caching. So the only way would be that you have the sync client on each machine (each sync client keeps a local copy you can work on). But then the user has to choose what he wants to sync since you probably don’t want everybody to sync 1.7 TB permanently. Advantage would be you could use more Nextcloud features to manage the whole workflow in Nextcloud, deck, sharing with customers, …
However it would be great to have a server-based cache for federated sharing so that the individual clients can just connect through web drives.
A different idea would be a central network storage and database which is available from all sites at all time, then you could do a setup like this: https://docs.nextcloud.com/server/10/admin_manual/installation/deployment_recommendations.html#mid-sized-enterprises
providing a web-server for entry at each site.
In your case, I’d ask the official Nextcloud support, if they have a solution for you. They have most experience regarding large scale multi-site setups.
There are not many people here that do this or at least they didn’t share a lot of details.