FreeNAS is special edition of tuned-up FreeBSD, with GUI available over WWW to enable easy setup and maintenance.
i had to migrate recently my old Synology 1815+ thanks to well known Intel SNAFU with Atom CPUs. interestingly enough, even Synology own service department declined to RMA the NAS, without even discussing the situation.
so i managed to setup quickly 12x 3.5" bay server. i had five 3.5" 8TB HDDs from Synology that i wanted to rescue data from. the server itself is kind of old one - but solid. it’s a dual Intel L5100 series chassis (with sadly one CPU only), 64GB of RAM, LSI/Avago RAID card and Intel twin 10GE NIC. for ‘fast & dirty’ hack it was more than enough.
while copying data from the failed array (thankfully, Synology RAID is Linux mdadm) in disguise) i noticed however that it’s veeeeeery slow. while i was connected to 10GE network, using 10GE interfaces, the throughput i was getting was round 5-8MBps, not the 40-50MBps i was looking for.
to my dismay, quick troubleshooting shown that the problem happens only with my Macs - my older son Windows connected just for testing enabled faster transfers. i also did iozone
test on the FreeNAS ZFS pool itself, just to test if everything is all right with the server. with 1.8GBps (yeah!) it clearly was. so… it was a problem between Macs and new gear.
so after digging in, it became apparent that Apple around MacOS 10.11 (and for sure starting from 10.12) enabled by default file transfer crypto signing. to disable that if you hit compatibility problems, you need to create (on affected, client station) /etc/nsmb.conf
with following content:
[default]
signing_required=no
transfers immediately jumped up!
by the way - if you’re buidling your own NAS, you can benchmark them using iozone
- that should give you at least baseline performance.
here are my two test runs on different hardware.
NAS Supermicro X7DWN+ with 1x Intel L5410, 64GB RAM, and 6TB SAS-NL disks:
[nas-sm] /mnt/NAS1# iozone -r 4k -r 8k -r 16k -r 32k -r 64k -r 128k -s 6g -i 0 -i 1 -i 2
Iozone: Performance Test of File I/O
Version $Revision: 3.420 $
Compiled for 64 bit mode.
Build: freebsd
[...]
random random bkwd record stride
KB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
6291456 4 261909 255345 549038 401339 452786 48915
6291456 8 396697 433427 931759 487612 205072 97257
6291456 16 547734 636609 916650 1194955 1044234 192036
6291456 32 745164 777867 1434388 1528539 1393854 368684
6291456 64 808533 970761 1451103 1628199 1683541 710410
6291456 128 1145286 1086414 1839831 1792634 1803086 1118462
NAS UCS 220M3, 2x 2620v0 CPUs, 128GB RAM, and 1TB SATA HDDs:
[nas-ucs] /mnt/mynas/Archiwum# iozone -r 4k -r 8k -r 16k -r 32k -r 64k -r 128k -s 6g -i 0 -i 1 -i 2
Iozone: Performance Test of File I/O
Version $Revision: 3.420 $
Compiled for 64 bit mode.
Build: freebsd
[...]
random random bkwd record stride
KB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
6291456 4 394139 404769 1005233 1007813 739097 196150
6291456 8 750613 745270 1443495 1444492 1137908 370932
6291456 16 1118422 1277549 2449371 2470986 2137159 731327
6291456 32 1664840 1830702 3156016 3169518 2886760 1236156
6291456 64 1991792 2542784 3543324 3713447 2652984 1989392
6291456 128 3226104 2954095 3928567 3950061 3923658 2983169