Inhaltsverzeichnis
Seit ich mit meinem primären Desktop auf ein MacBook Air M1 umgestiegen bin (MacBook Air M1 & macOS als Linux-User), musste ich natürlich auch den Netzwerkzugriff auf meinen Linux-Server wiederherstellen. Hier liegen alle meine Fotos, Videos und Dokumente zentral ab. Lokal auf dem MacBook oder auf meinem Linux-Desktop liegen nur die Daten, die ich z.B. zur Bearbeitung benötige, diese Daten liegen auch als Kopie auf dem Server und werden in regelmäßigen Abständen abgeglichen. Ein schneller Netzwerkzugriff per SMB und/oder NFS sind für mich also essentiell.
Die Freigaben hatte ich auf dem Server bereits seit Jahren eingerichtet, unter Linux nutze ich ausschließlich NFS. Mit meinem GBit-Netzwerk habe ich immer volle Geschwindigkeiten beim Lesen und Schreiben erreicht, insofern wusste ich bereits, dass der Server die volle Bandbreite des Netzwerks bedienen kann.
Unter macOS lässt sich eine neue Netzwerkverbindung relativ einfach einrichten indem man im geöffneten Finder mit dem Kommando CMD + K den Dialog für eine neue Verbindung aufruft. Entsprechend der auf dem Server konfigurierten Freigabe kann man eine Verbindung zum Dateiserver mit Samba und/oder NFS aufbauen:
smb://server-ip-adresse/
oder
nfs://server-ip-adresse/pfad/zur/freigabe
Nach Eingabe der Adresse drückt man ENTER oder klickt auf Verbinden. MacOS bestätigt den Verbindungsaufbau mit einem Ton, dem Anlegen eines Icons auf dem Desktop und dem Öffnen des Pfads im Finder. Soweit so gut und einfach.
Speed-Tuning von NFS und Samba
Bei der Benutzung meiner Netzwerkfreigaben ist mir jedoch recht schnell aufgefallen, dass die Übertragungsgeschwindigkeit miserabel ist und auch das Anlegen neuer Dateien und das Durchsuchen des Netzwerkspeichers extrem träge und langsam ist. Sowohl mit NFS, als auch mit Samba. Weil das nicht reicht, hatte ich mit NFS auch immer wieder Netzwerkabbrüche und Übertragungsfehler. V.a. seitdem ich Capture One Pro für die Bildbearbeitung auch mit Fotos vom Server nutze, ist eine stabile und schnelle Verbindung essentiell.
Nach etwas Internetrecherche stellte ich schnell fest, dass es gar nicht so einfach ist macOS zu einer performanteren Verbindung zu bewegen bzw. es nicht allzu viele klare Anleitungen gibt, die wirklich eine Verbesserung bringen. Das ganze hat mich deutlich mehr Zeit und Nerven gekostet, als ich erwartet hätte.
NFS beschleunigen
Um NFS-Zugriffe zu beschleunigen bzw. zu optimieren müssen sowohl Anpassungen auf Client- als auch auf Serverseite vorgenommen werden.
Die Konfigurationsdatei liegt bei macOS ähnlich einem Linux unter /etc/ – noch besser: Im macOS-Terminal verwenden wir die gleichen Kommandos, wie unter Linux und editieren die nfs.conf:
sudo nano /etc/nfs.conf
Hier packen wir folgenden Inhalt hinein:
nfs.client.mount.options=vers=4,async,tcp,wsize=65536
V.a. die Anpassung der Blockgröße für das Schreiben (wsize) hebt die Übertragungsgeschwindigkeit deutlich an.
Als nächsten folgen die Anpassungen auf dem Server in der /etc/exports. Also am besten per SSH auf den Server verbinden und die Datei mit nano öffnen.
sudo nano /etc/exports
Da man unter macOS eine andere Userverwaltung hat, hatte ich immer das Problem, dass ich keine Dateien schreiben konnte, da der NFS-Server die Zugriffe nicht zuordnen konnte. Bei meinen Linux-Kisten ist mein User immer gleich, da gibt es keine Probleme. Nachdem nur ich den NFS-Server nutze, habe ich es so gelöst, dass ich die Optionen all_squash und anonuid/anongid nutze.
Die Option all_squash ordnet den zugreifenden User anonymous zu, während anonuid und anongid die anonyme User- und Gruppen-ID auf meinen User am Server zuordnet. Damit erreiche ich, dass auf dem Server die Dateien vom richtigen lokalen User gelesen und geschrieben werden. Weitere Informationen zum Thema NFS Server kann man sehr gut auf Ubuntuusers.de nachlesen.
Die Zeile für den Export lautet also:
/pfad/zur/freigabe ip-adressen-bereich(rw,async,no_subtree_check,insecure,all_squash,anonuid=1000,anongid=1000)
Mit einem fiktiven Pfad und einer beispielhaften IP lautet es also wie folgt:
/media/storage 192.168.1.0/24(rw,async,no_subtee_check,insecure,all_squash,anonuid=1000,anongid=1000)
Achtung: Es dürfen bei der Auflistung der Optionen keine Leerzeichen gesetzt werden, auch nicht nach dem IP-Range und der Klammer!
Danach noch die exports neu einlesen und den NFS-Server neu starten:
sudo exports -ra
sudo service nfs-kernel-server restart
Auf macOS Seite die Verbindung neu aufbauen und schon sollte die Verbindung performanter sein.
Tipp: Überwachen kann man die momentane Übertragungsgeschwindikeit recht gut mit dem freien und kostenlosen Tool Stats, das diverse Systemwerte in der Menübar anzeigen kann: https://github.com/exelban/stats
SMB beschleunigen
Voraussetzung – wie auch bei NFS – ist natürlich ein funktionierender Samba-Server, der eine konfigurierte Freigabe vorweisen kann. Auch hier möchte ich auf Ubuntuusers.de verweisen, die das Thema ausführlich behandeln: https://wiki.ubuntuusers.de/Samba_Server/
Nach ewiger Sucherei bin ich auf diesen Beitrag gestoßen und haben ihn bei mir umgesetzt. Seitdem erreiche ich volle 1GBit/s Zugriff beim Lesen und Schreiben und v.a. ist das Durchsuchen von Ordnern mit vielen Dateien um ein vielfaches Schneller bzw. so, wie man es erwarten würde.
Dazu wieder auf den Linux-Server mit ssh verbinden und die smb.conf editieren:
sudo nano /etc/samba/smb.conf
Hier müssen bei der betroffnen Freigabe folgende Zeilen angefügt werden:
ea support = yes
vfs objects = catia fruit streams_xattr
fruit:aapl = yes
fruit:encoding = native
fruit:locking = none
fruit:metadata = stream
fruit:resource = file
fruit:veto_appledouble = no
Danach muss nur noch der Samba-Server neu gestartet und die Verbindung vom Mac neu aufgebaut werden.
sudo systemctl restart smbd.service
Mittlerweile nutze ich unter macOS vorzugsweise Samba, da mir die Verbindung in Summe stabiler und schneller erscheint als mit NFS. Hier habe ich nach wie vor hin und wieder Verbindungsabbrüche.
Fragen und/oder Anmerkungen? Gerne einen Kommentar da lassen!
SMB und macOS 13.0 Ventura
Anscheinend gibt es mit dem Versionswechsel von macOS 13.0 Ventura wieder einmal Probleme mit der SMB-Integration. Es gibt diverse Berichte, dass die Benutzer keinen Zugriff mehr auf ihre SMB-Freigaben mehr bekommen. Diese Problem musste ich zwar nicht feststellen, hatte aber Probleme mit dem stabilen Zugriff auf meine Daten. So habe ich z.B. in Capture One Fotos und auch einen Katalog über SMB eingebunden. Die Fotos und der Katalog werden geladen, aber nach mehr oder weniger langer Zeit stürzt C1 ab.
Das Hinzufügen folgendes Zeile in die smb.conf auf dem Fileserver brachte bei mir Besserung, aber auch nur, wenn der Katalog lokal vorliegt und die Fotos auf dem Netzlaufwerk liegen:
strict sync = no
Der Artikel enthält Affiliate-Links zu Amazon die mit einem * gekennzeichnet sind. Kaufst du ein von mir verlinktes Produkt bei Amazon, bekomme ich eine kleine Provision und du unterstützt mich und meine Arbeit. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Dir entstehen keine Nachteile oder Mehrkosten.
2 Kommentare
Hey,
interessanter Beitag. Könntest du mal eine Beispiel Config posten?
Danke und LG
Hallo Mike!
Für NFS oder SMB? Selbst nutze ich eigentlich nur noch SMB mit macOS. NFS ist und bleibt leider lahm im Vergleich zu einer Linux zu Linux Verbindung.
VG
Andreas