Best cheap ARM board for Syncthing?

I actually had the same thought as you. I ran Syncthing on my ODROID-XU4 for about a year (eventually switching from btrfs to ZFS), which worked well enough, although it was a kind of slow (mostly because it couldn’t handle ZFS that well).

I wanted to try to get better performance, so I recently bought a Rock64 (the 4GB RAM version), but I haven’t had time to get Syncthing running on it yet. The main reasons I like the Rock64 are that it has the most RAM in its price range (important for ZFS), it’s 64 bit (ZFS technically only supports 64 bit systems) and it has hardware accelerated crypto. Not only does it accelerate AES for encryption, but it also does SHA256, which should make Syncthing faster.

Here are the results of cryptsetup benchmark:

# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       254015 iterations per second for 256-bit key
PBKDF2-sha256     474898 iterations per second for 256-bit key
PBKDF2-sha512     248713 iterations per second for 256-bit key
PBKDF2-ripemd160  151178 iterations per second for 256-bit key
PBKDF2-whirlpool   66737 iterations per second for 256-bit key
#     Algorithm | Key |  Encryption |  Decryption
        aes-cbc   128b   348.5 MiB/s   435.4 MiB/s
    serpent-cbc   128b           N/A           N/A
    twofish-cbc   128b    31.6 MiB/s    34.2 MiB/s
        aes-cbc   256b   302.2 MiB/s   397.4 MiB/s
    serpent-cbc   256b           N/A           N/A
    twofish-cbc   256b    32.1 MiB/s    34.2 MiB/s
        aes-xts   256b   384.4 MiB/s   389.0 MiB/s
    serpent-xts   256b           N/A           N/A
    twofish-xts   256b    33.7 MiB/s    34.5 MiB/s
        aes-xts   512b   356.5 MiB/s   357.4 MiB/s
    serpent-xts   512b           N/A           N/A
    twofish-xts   512b    34.0 MiB/s    34.5 MiB/s

If I have time later, I’ll try to run Syncthing’s benchmark.

The software support for the Rock64 is significantly worse than the ODROID-XU4. Only a few distributions explicitly support the Rock64. For others you will have to compile your own bootloader and kernel for all the hardware to work. The mainline Linux kernel boots fine, but USB does not work. For USB support you have to use the officially supported 4.4 kernel.

3 Likes

Hi all Does anyone ever tried UDOO X86 Ultra ? Surely it is expensive !! But it seems a good piece of hardware with 8gb of ram and an mmc memory! If anyone has experience in running Syncthing in this device, it would be helpful to report some results here Regards

Check out this massive thread on sub-$99 single board computers. Should be very helpful.

I got a chance to run Syncthing’s benchmark on the Rock64 today and I got a very impressive result:

INFO: Single thread SHA256 performance is 671 MB/s using minio/sha256-simd (17 MB/s using crypto/sha256).
INFO: Hashing performance with weak hash is 159.14 MB/s
INFO: Hashing performance without weak hash is 493.97 MB/s

I haven’t started using it for real workloads yet, but this result makes me think the Rock64 is going blow all of the older boards out of the water in terms of price/performance ratio for Syncthing.

For comparison, here are the results from a few other of my machines:

Xeon E5-1620 v2:

INFO: Single thread SHA256 performance is 315 MB/s using minio/sha256-simd (210 MB/s using crypto/sha256).
INFO: Hashing performance with weak hash is 265.52 MB/s
INFO: Hashing performance without weak hash is 296.59 MB/s

i7-6700HQ:

INFO: Single thread SHA256 performance is 379 MB/s using minio/sha256-simd (322 MB/s using crypto/sha256).
INFO: Hashing performance with weak hash is 308.00 MB/s
INFO: Hashing performance without weak hash is 363.33 MB/s
1 Like

Those crypto instructions definitely make a difference.

Hi, I’m new here. I also have both Rock64 4GB and Rock64 2GB. I noticed, that this incredible performance Single thread SHA256 performance is 672 MB/s using minio/sha256-simd (462 MB/s using crypto/sha256) only achieved when using syncthing binaries compiled for aarch64. The armhf variant on the other hand gives very poor results: Single thread SHA256 performance is 18 MB/s using crypto/sha256 (18 MB/s using minio/sha256-simd). I tested using debian stretch and 0.14.45 release binaries.

1 Like

Here is a dump of openssl speed benchmark. 2.4GBps!!! :

rock64@rock64:~$ openssl speed -multi 4 -evp aes-256-cbc

–omitted for brevity —

OpenSSL 1.1.0f 25 May 2017
built on: reproducible build, date unspecified
options:bn(64,64) rc4(char) des(int) aes(partial) blowfish(ptr)
compiler: gcc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DVPAES_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DOPENSSLDIR=""/usr/lib/ssl"" -DENGINESDIR=""/usr/lib/aarch64-linux-gnu/engines-1.1""
evp 322921.29k 921061.16k 1700285.70k 2192785.07k 2392233.30k 2400376.15k

The speedup is caused by the new cryptography extensions that are part of ARMv8 (aarch64). When Syncthing is compiled for ARMv7 (armhf), they are not used.

Yeah, use the one actually compiled for your CPU. The openssl benchmark looks the same as ours, judging by ours being single thread (as mentioned) and openssl getting -multi 4.

@bizarre87 Do you have any actual performance numbers for the RK3328 when transferring files? I keep wondering how fast it is with a USB3 disk…

I have tried plugging in both SSD via USB, WD RED 3TB drive and also WD My Book DUO RAID1. Using through Plugable USB 3.0 Hard Drive Dock. The maximum speed I have seen during transfer hovers around 15-28MBps with spinning drives and 40+ MBps with SSD. iMAC is a peer device, both running the latest versions of syncthing.

In comparison, AFP transfer between iMAC and rock64 reaches 920Mbps.

If there is a more scientific way to run transfer speed benchmarks, let me know.

Thanks a lot for sharing! That sounds pretty good. Just to not misunderstand anything, by MBps you mean MB/s, not Mbps, right?

Hi…If a disk dies or a sector is fried you have can have holes in your files. Better create a snapshot, mount it, rsync it to another disk or physical location. Also RAID is not a backup, because when the controller dies or it is eating your data you may not notice. A RAID array is still vulnerable to power-surges.

I’m having good results with a NanoPi Neo2, with the “NAS Kit” Accessory board, allowing me to attach a 2.5" SATA SSD drive.

While this board might not be the absolute cheapest ARM board out there (I say it’s still darn cheap), the Armbian builds for it are “Supported” by Armbian, and fully stable-feeling. (BTW: I recommend spending the extra $10 and get the 1GB of RAM, not the default of 512MB RAM.)

If you are a conservative person, wanting a very stable board, with a single very stable SATA-attached SSD, then I recommend this arrangement. Almost all other SBC’s out there with some SATA connectors do not have the status of being officially “Supported” by Armbian (at least, not yet). Sure, the Helios 4 is fully “Supported” by Armbian, but is much more expensive than the NanoPi Neo2.

After some substantial testing, I was able to get sustained sync speeds of ~15-25MB/sec with syncthing, and this is almost exactly same speed as what you’d get if you ran a Samba server on this NanoPi.

Note: I had disk I/O troubles attaching larger-capacity 3.5" SATA drives in USB enclosures, mind you. See here for more on that. I only recommend one 2.5" SATA drive attached to the NAS-kit board. If you attach disks to the USB ports, you were warned. (Hint: watch /var/log/syslog for Disk I/O error messages). Having said this, perhaps it was the poor quality of my disk enclosures themselves which were to blame. I wasn’t able to nail down what was to blame. But I do totally trust the one SATA connector on the NAS kit board.

Call me paranoid, but I’ve lost all trust in USB-attaching any storage for use in a file server. I’ll only use at least SATA-attached storage now (or better, like M.2), and it had better be known to be a very stably-performing SATA, in the way of kernel support (as in, Armbian calls it “Supported”, and “Stable”).

1 Like

Just reviving the old topic, the Raspberry Pi 4 has been announced with a maximum of 4GB LPDDR4-2400 SDRAM, native Gigabit Ethernet and USB3 (2ports). Would be nice to see someone building a NAS with Syncthing on it, and should run smooth and lowpower.

https://www.raspberrypi.org/products/raspberry-pi-4-model-b/

3 Likes

Hi…i use a Raspberry Pi 3 with an external drive. You can easily manipulate this setup into storing /home on the hard drive. In my setup I use BTRFS for the root filesystem and have added the hard drive as another device to the filesystem. I don’t intend on removing the hard drive from the system so it works for my uses. I store over 600GB this way.

My sense is that one had better use an SSD attached to a Raspberry Pi 4, because it will use much less power than a spinning-rust disk, for bulk storage.

There has been grumbling and warnings recently over properly supplying enough power to the RPi 4: you’ll want a damn good USB-C power supply, and damn good USB-C power cable (as in, the official ones from Raspberry Pi themselves).

And I still say, USB-attaching any mass storage is still asking for trouble for anyone setting one of these up in any business (i.e. non-home-usage, non-hobbyist) scenario.

My recommendation after a lot of testing on the NextcloudPi project, is for the Odroid HC1 (2.5" sata) and HC2 (3.5" sata) as both have 2gb ram and solid gigabit lan. They run around $55 each and are the best choice amongst arm boards for file sync solutions. Load up Armbian and you should be good to go. The case doubles as a heatsink and easily stack.

I run a file server on an odroid-xu3 for years and when I had trouble (and I had) then it was always the sata-usb3 bridge. I would go for an odroid-hc1 (or anything with a direct SATA connection). My rPi4 is nice, but some sata-usb3 bridges work (and some not, depends on controller chip).

I know, the discussion is about ARM. I also don’t know all Odroid or board computers, but I think to get the best combination of performance, compatibility and price, you can hardly avoid an ODROID-H2+. I don’t know of any board computer that has the same performance. Okay, have an Intel processor. If you build a NAS out of it or normal computer, you have some quiet for a while and that makes this alternative cheap for me again.