Ytterligare äventyr med Unraid

15 Dec 2023

Min installation av Unraid har tuffat på i snart en månad utan större missöden. Det finns givetvis saker som kunde varit bättre, som exempelvis det faktum att om man vill ta bort en hårddisk ur systemet utan att ersätta den med en annan (rekommenderas inte om du saknar en paritetsdisk) så måste man blåsa hela konfigurationen och börja om från början igen med att mappa upp vilka diskar som gör vad. Lite bökigt men det går att leva med.

En sak som däremot har retat mig enormt är den oerhört usla skrivprestandan över SMB-protokollet från min Mac. Ja, det är sannolikt Apple och macOS som är skurken i detta lilla drama och inte Unraid, men jag satte mig ned och började pilla med det och efter en del testande (och sökande på interwebzen) så har jag en konfiguration som erbjuder betydligt bättre prestanda än tidigare.

Det första du ska göra är att stoppa din array. Därefter går du in i Settings -> SMB och i fältet för SMB EXTRASklistrar du in följande:

aio read size = 1
aio write size = 1
strict locking = No
use sendfile = No
server multi channel support = Yes
readdir_attr:aapl_rsize = no
readdir_attr:aapl_finder_info = no
readdir_attr:aapl_max_access = no
fruit:posix_rename = yes
fruit:metadata = stream

Gränssnittet kan lura dig i att tro att du endast kan lägga in en rad där men det går att pejsta in flera.

Därefter skapar du en fil på din Mac (jag kör macOS v14.1.2 “Sonoma” när detta skrivs) vid namn /etc/nsmb.conf (görs med exempelvis sudo nano /etc/nsmb.conf) och häller in följande:

# /etc/nsmb.conf - macOS 11.3+
#-----------------------------------------------------------------------------
# Additional information:
# -----------------------
# https://support.apple.com/de-de/HT211927
# https://support.apple.com/en-us/HT208209
# https://apple.stackexchange.com/questions/309016/smb-share-deadlocks-since-high-sierra
# https://photographylife.com/afp-vs-nfs-vs-smb-performance
# https://support.apple.com/de-de/HT212277
# https://www.synoforum.com/threads/mac-clients-smb-cache-issues.7009/page-3
# UnRaid SMB extra configurations:
# https://wiki.samba.org/index.php/Configure_Samba_to_Work_Better_with_Mac_OS_X
# https://www.samba.org/samba/docs/current/man-html/vfs_fruit.8.html
#
# To speed up SMB file browsing, you can prevent macOS from reading .DS_Store files on
# SMB shares. This makes the Finder use only basic information to immediately display
# each folder's contents in alphanumeric order.
# defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE
# log out of your macOS account and log back in to apply
#------------------------------------------------------------------------------
 
# Use NTFS streams if supported (Macs use two streams per file - ADS or "multi-fork")
streams=yes
 
# Set hard or soft mount of shares
# Hard mount: a request is issued repeatedly until the request is satisfied
# Soft mount: tried until completed, the retry limit is met or the timeout limit is met
# Soft mount by default
soft=yes
 
# Disable packet signing to improve performance as no security issue on secure (non-infiltrated) network.
# Note this is off by default from macOS 10.13.4 onwards although this is ambiguous (Apple HT205926)
signing_required=no
 
# Disable directory caching (ensures Finder folder contents display is up to date)
dir_cache_off=yes
 
# Disable local SMB caching
# Can be set and then unset to clear SMB cache
dir_cache_max_cnt=0
 
# Ensure desired SMB level and prevent SMB 1 (Apple HT211927)
# Lock negotiation to SMB2/3 only
# 7 == 0111  SMB 1/2/3 should be enabled
# 6 == 0110  SMB 2/3 should be enabled
# 4 == 0100  SMB 3 should be enabled
protocol_vers_map=6
 
# No SMB1 = no NetBIOS (WINS) and it should be disabled
port445=no_netbios
 
# Turn off change notifications (Finder maintains folder list integrity)
# notify_off=yes
 
# SMB Multichannel behaviour (Apple HT212277)
# Disable multichannel support because only one wired network connection
mc_on=yes
 
# Prefer wired networks over Wi-Fi networks that may advertise faster speeds than appropriate
mc_prefer_wired=yes

Du behöver logga ut från ditt konto på din Mac och logga in igen för att inställningarna ska aktiveras.

Det var väl det hela. Det har hjälpt för mig och hoppas det gör det för dig också!