For a couple of months ago i was looking at a p2p sync service which works almost as seafile or ‘owncloud’ except with a p2p engine which has been improved/hardening according to their webpage. So i signed up for some more information, and a possibility to try or look on a demo. It took a while and i thought it was a no show, but last week i received a phone call with more information about the products and how it worked. But I also received a demo key to try it out for the company where i work.
So in this short post i will go through the product from the installation point to fully test the product and give some pro’s and con’s. But first i’ll go through how it works.
Peer to Peer is a rather interesting protocol, instead of the old classic client -> server thinking it’s more about decentralise the content. This by putting files or content into smaller chunks and distributing it to peers or more like nodes that also has the file/content or parts of the file/content. This also means that we don’t need a dedicated server constantly to serve the file or content, but the collected bunch of nodes need to have 100% of the content/file to sync up. P2P works great as long the content is distributed to one or more nodes, computers that are fully synced or has the whole content is often called seeders since they are able to serve the whole content while the peers has parts of the content and is probably still downloading the content. But the main point is decentralise, increase the speed of the peers and distribute the load over several nodes.
Free, Pro, & Workgroup
Resilio offers 3 different kinds of products, Resilio free / pro is a basic filesyncing program which resembles seafile except the engine. Free is rather limited but still a good product, if you spend some extra bucks you get a decent program that syncs your files across several devices and it also includes selective sync. I would go with Resilio free if it’s just syncing from device to device and if i don’t have several devices at home. But if i have several devices and across wan interface i would go with the pro edition, since i could limit the bandwidth usage and use selective sync to limit what i sync across the wan. More info about it here: https://www.resilio.com/individuals/
Workgroup is the second product that is rather good if you want to use it at work, for example projects. The difference between workgroup and resilio free/pro is the several user concept. Thus you are able to share files and folders with co-workers. And it’s very easy to manage which user have access to which file and easy to remove unacceptable users. Another thing they have done with workgroup that free/pro doesn’t offer is ease of access to the files, it’s very easy to share a qr code and give readonly access to specific user. This is also a good product compared to the other syncing tools because it offers unlimited data. More info here: https://www.resilio.com/workgroups/
Resilio Connect is a enterprise solution, unlike workgroup and pro/free solution its goal is to have a centralised management control over file syncing and command execution(almost like group policy in windows server) . It’s a rather good solution if you only want centralised control and not allowing the users to select what to sync and when to sync. It also has several good features that like scheduled syncing, wan optimisation, selective syncing and several other features. It’s a very good tool to sync data between servers and sending a distributed cmd, their management interface also allows the administrator the view if ‘jobs’ are done and executed. Connect allows almost no user control, this means the users / clients are not allowed to say when how where to sync the data, that is up to the administrator to direct and manage. More information can be found here: https://www.resilio.com/connect/
After a clean install of debian i decided to download and install Resilio, it seems very simple to install on windows since all the installation guides tend to deal with that. But from my perspective the linux install seems, odd. From what i can read it’s a basic download and un-tar in /opt. I would never do it this way. But since this is a test run with the product sure i’ll go with it. No boot script which means that you have either find one or write it on your own. Remember, NEVER RUN THIS AS ROOT!!!
Installing the management console:
# Install cd /tmp/ wget https://changethis/resilio-connect-server-linux-x64.tar.gz tar -xvf resilio-connect-server-linux-x64.tar.gz -C /opt useradd -M -r -s /bin/false resilioconnect chmod -R 755 /opt/resilio-connect-server chown -R resilioconnect:resilioconnect /opt/resilio-connect-server # No boot script published, please create your own. # To run it /opt/resilio-connect-server/srvctrl start
First test contained syncing a 3.8gb ISO file between 2 computers and 1 server. 2nd test was to try syncing cmd’s and forcing the computers to reboot on demand. 3rd and final test was to work on the same document at the same time in a synced folder.
The setup is a very basic network, one AC access point connected to a gbic switch. one macbook connected to the access point with the max theoretical speed of 300Mbit. one server with debian connected to the switch with a 1 gbic interface, this server also has the resilio connect management control installed. And one client pc connected with a 1 gbic interface to the switch. Both the macbook and the pc client has the resilio agent installed and connected to the server. A clear image of the setup is shown bellow.
1. Result from filesync
The files synced rather fast, first the server got the whole file but at the same time the client was also synchronising. Which meant once the server was done it also pushed out (seeded) the file that was stored in the shared folder, pushing the client to a peak of 700Mbit, which wasn’t bad. It took a bit longer with several small files to sync up but it also the same, pushing both the server and the clients to its limit.
2. Results from cmd’s
First i ran basic restart script to find out if the computers & server actually reboots, resulted in none of them restarted since none of the agents on the computers had the privilege to execute it. Though the Resilio manager returned ‘job done’. It was rather neat since i was able to set different reboot cmd’s depending on OS. The second cmd was basic fetch sys information from the systems into the shared sync folder, which was a success. All the systems returned the information that they had privilege to access. This could be a alternative way to shoot out scripts and files, perfect if you are managing several servers that requires a patch or application.
3. Several editing the same file
I did a basic text document editing, just to find out what happens when two or more users were working with the same file at the same moment. On one computer i wrote a couple of lines saved and kept it open, on the other computer i edited the same file and save upon exit. I waited for the sync to be completed. It wrote over the file on computer 1. Saved and exit on computer 1 again and the old version was back. Thus no version check or conflicting copies were done, which i dislike since i always have users editing projects at the same time. Maybe a feature they might implement but who knows.
Resilio seems to be in the early stage of development, it has a really good concept and possible a good engine. But lacks several features that could give the administrator and the users more right to manage content. But i will give a very strong warning to who ever uses this software, make sure to jail this software and ensure no one ever gets access to the management interface without permission or experience. If this software is installed by default settings, and is running with the wrong permission it could do more damage than good.
What i would love to see is mixing both resilio connect and resilio workgroup, specially if it’s a larger company that needs workgroup features but still some control over how everything is used over the network and when. thus be able to limit the bw usage different hours and so on. And making it easier for those users that needs to be forced into syncing different folders. And maybe expand the possibility to backup user data using this tech. The selective sync might be advanced for beginners and would be easier with a interface showing what to sync and not to sync in a project.
This is almost as good as the project in the tv show ‘Silicon Valley’ super good idé and engine, but lacks the bigger picture and direction on where to go. It will be a hit for advanced users and administrators, but doesn’t reach the less savvy users.
+ Fast syncing
+ Server downtime isn’t the end of the world
+ Nice looking interface
+ BG Sync works perfect
+ Large file transfers
– Users will not be able to select what to sync.
– Users will use their bw to sync.
– Linux lacks boot script and sketchy install
– Has few functions compared to the competition
– Lacks the features that Resilio Workgroup has.
– Lacks a bigger picture