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