Problem: FreeNAS verliert sporadisch die Netzwerkanbindung.
Wenn unter FreeBSD / FreeNAS Probleme mit einer RealTek Netzwerkkarte auftreten und der Einbau einer zweifelsfrei deutlich besseren Intel Netzwerkkarte keine Option darstellt, kann man das Problem gegebenenfalls damit umgehen, dass man die fehlerhafte Treiberimplementierung der Netzwerkkarte umgeht und die Hardwarechecksummenberechnung deaktiviert. Der Kernel hat damit etwas mehr Arbeit, aber der fehlerhafte Teil der Treiber wird damit möglicherweise umgangen.
Logauszug des Problems:
Jan 4 10:02:22 storage1 re0: watchdog timeout Jan 4 10:02:22 storage1 kernel: re0: link state changed to DOWN Jan 4 10:02:22 storage1 kernel: re0: link state changed to DOWN Jan 4 10:02:23 storage1 ntpd[2232]: sendto(xxx.xxx.xxx.xxx) (fd=22): No route to host Jan 4 10:02:24 storage1 nmbd[2562]: [2016/01/04 10:02:24.573652, 0] ../source3/libsmb/nmblib.c:873(send_udp) Jan 4 10:02:24 storage1 nmbd[2562]: Packet send failed to xxx.xxx.xxx.xxx(138) ERRNO=No route to host
FreeBSD: Kerneleinstellungen via /etc/sysctl.conf:
hw.pci.enable_msi 0 # Segmentation Offload to network card. # Disable to isolate re: watchdog timeout problem hw.pci.enable_msix 0 # Segmentation Offload to network card. # Disable to isolate re: watchdog timeout problem net.inet.tcp.recvbuf_inc 524288 # TCP-Tuning - http://fasterdata.es.net/TCP-tuning/FreeBSD.html net.inet.tcp.recvbuf_max 16777216 # TCP-Tuning - http://fasterdata.es.net/TCP-tuning/FreeBSD.html net.inet.tcp.sendbuf_max 16777216 # Default: 4194304 net.inet.tcp.tso 0 # Segmentation Offload to network card. # Disable to isolate re: watchdog timeout problem
Unter FreeNas werden die Einstellungen über das Webfrontend konfiguriert. Dazu in System->Tunables die entsprechenden Einträge für den Typ „rc.conf“ (bildet /etc/rc.conf ab), bzw. sysctl (bildet /etc/sysctl.conf ab) erstellen.
FreeBSD: Netzwerkinterface Einstellungen via /etc/rc.conf:
ifconfig_re0="-rxcsum -txcsum -vlanhwtag up"
Unter FreeNas werden die Einstellungen statt in /etc/rc.conf über das Webfrontend konfiguriert. Dazu in Network->Interfaces->(Interfacename) unter „Options“ den Wert „-rxcsum -txcsum -vlanhwtag“ eintragen.
Nachtrag, 03.11.2017: Auf FreeNAS11 sorgen die Einstellungen beim Booten für eine Fehlermeldung.
Überprüfung
Vorher:
[root@storage1] ~# ifconfig re0 re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=82088<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
Nachher:
[root@storage1] ~# ifconfig re0 re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=82088<VLAN_MTU,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
Verifiziert unter FreeNAS 9.3
Im aktuellen Fall wird das System auf einem Mini-ITX Mainboard mit Onboard Netzwerkkarte betrieben. Der Einbau einer anderen Netzwerkkarte ist nicht möglich, da die Kartenslots bereits durch SATA-Controller belegt sind, und das System auf niedrigen Energieverbrauch getrimmt ist. Der Datendurchsatz des NAS erreicht mühelos 117MB/s, und liegt damit am Maximalwert für Gigabit Netzwerkkarten. Der Einsatz einer höherwertigeren Netzwerkkarte macht daher hier wirtschaftlich keinen Sinn.