FreeNAS to specjalna edycja mocno stuningowanego FreeBSD (niekoniecznie najnowszego), z dodatkowym interfejsem WWW do świadczenia usług typowych dla NAS.

musiałem ostatnio w pośpiechu migrować swojego NASa Synology 1815+, który po prostu pewnego dnia powiedział ’nie’. na nic zdały się resety, magiczne zabiegi oraz fora w internecie. ku mojemu zdziwieniu, na nic również zdał się kontakt z serwisem - ponieważ sprzęt został kupiony trzy lata temu, serwis w zasadzie wysłał mnie na drzewo.

udało mi się zatem na szybko (dzięki pomocy kolegi z firmy) poskładać serwer z dwunastoma zatokami 3.5" (na razie ceny i dostępność dużych dysków 2.5" nie są specjalnie zachęcające, a ja miałem 5 dysków 3.5" 8TB z których chciałem w najgorszym przypadku zgrać dane). sam serwer oparty jest o leciwą już dwuprocesorową płytę główną oraz Intela z serii L5100. z 64GB RAMu, kartą LSI/Avago, jednym procesorem (do drugiego należałoby zdobyć gdzieś radiator) oraz kartą 2x10GE Intela wydawał się doskonałą platformą ’na szybko'.

przy kopiowaniu danych (na szczeście RAID Synology to po prostu linuksowy mdadm), okazało się jednak, że wydajności, które osiągam nijak nie pasują nawet do interfejsu 1GE - w porywach udawało mi się uzyskać 5-8MB/s. spodziewałem się minimum 40-50MB/s.

okazało się (co gorsza!), że problem występuje tylko z moimi Macami - na szybko podpięty Windows syna pokazał transfer dużo szybszy. test iozone na samym zpoolu pokazał wydajność dochodzącą w szczycie do 1.8GB/s zapisu (!), więc wąskim gardłem nie był sprzęt ani sieciówka.

po krótkim szukaniu okazało się, że gdzieś w okolicach 10.11 a na pewno w 10.12, Apple włączyło domyślne podpisywanie transferów plików. po stronie MacOSa pomogło zatem utworzenie pliku /etc/nsmb.conf z następującą zawartością:

[default]
signing_required=no

zgodnie z przewidywaniami, transfery skoczyły do przodu.

przy okazji, testując własny zpool zanim cokolwiek na niego skopiujemy, polecam test za pomocą iozone - poniżej moje dwa zrzuty testowe:

NAS Supermicro X7DWN+ z 1x Intel L5410, 64GB RAM oraz dyskami 6TB SAS-NL:

[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 i dyski 1TB SATA:

[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