In diesem Artikel gehe ich kurz darauf ein, wie die optimalen Einstellungen für einen NFS-Share in Unraid aussehen. Dabei muss ich betonen, dass diese Einstellungen nicht in Unternehmens- oder kritischen Umgebungen verwendet werden sollten. Dafür müssten noch ein paar Anpassungen seitens der Sicherheit gemacht werden.
Freigabe-Einstellungen
Nachdem wir eine NFS-Freigabe erstellt haben, sollten wir den Zugriff auf „privat“ stellen, um den Zugriff auf unsere NFS-Freigabe besser steuern zu können. In der NFS-Regel verwenden wir je nach Bedarf folgende Einstellungen:
Zugriff von allen IP-Adressen
*(async,no_subtree_check,rw,sec=sys,insecure,anongid=100,anonuid=99,no_root_squash)
Zugriff von einer IP-Adresse oder Subnetz
192.168.10.5(async,no_subtree_check,rw,sec=sys,insecure,anongid=100,anonuid=99,no_root_squash)
192.168.10.0/24(async,no_subtree_check,rw,sec=sys,insecure,anongid=100,anonuid=99,no_root_squash)
Einstellung | Erklärung |
async | Das bedeutet, dass NFS-Antworten asynchron erfolgen, was die Performance verbessern kann, jedoch auf Kosten der Datenkonsistenz bei Abstürzen oder Netzwerkproblemen. In den meisten Fällen ist sync sicherer, aber async kann bei lokalem Zugriff und kontrollierten Bedingungen akzeptabel sein, wenn Performance ein wichtiges Kriterium ist. |
no_subtree_check | Dies ist eine gängige Einstellung, um Probleme mit Subbaumprüfungen zu vermeiden. In den meisten Fällen ist diese Einstellung sinnvoll. |
rw | Das erlaubt Lese- und Schreibzugriff, was in den meisten Anwendungsfällen notwendig ist. |
sec=sys | Standard-Sicherheitsmodus für NFS, der auf dem UID/GID basierten Zugriff basiert. Normalerweise gut. |
insecure | Diese Einstellung erlaubt es, dass NFS-Clients von unprivilegierten Ports (Ports über 1024) zugreifen können. Das ist nützlich für Heimnetzwerke, aber in sicherheitskritischen Umgebungen sollte secure bevorzugt werden. |
anongid=100, anonuid=99 | Diese Einstellungen sorgen dafür, dass anonyme Benutzer eine spezifische UID/GID erhalten, was nützlich ist, um Berechtigungsprobleme zu vermeiden. |
no_root_squash | Dies erlaubt es dem NFS-Server, Root-Rechte an den NFS-Clients weiterzugeben, was in manchen Fällen notwendig ist, aber mit Vorsicht verwendet werden sollte, weil es ein Sicherheitsrisiko darstellen kann. In vielen Umgebungen wird root_squash verwendet, um root-Zugriff für den Client zu verhindern. |
Hinweis: Diese Einstellungen eigenen sich gut für Heimnetzwerke oder kleinere Umgebungen. Es muss jedoch betont werden, dass diese Konfigurationen nicht in Unternehmens- oder sicherheitskritischen Umgebungen verwenden werden sollten. Für solche Szenarien wären zusätzliche Sicherheitsanpassungen notwendig, insbesondere in Bezug auf
no_root_squash
undinsecure
, da diese die Sicherheit potenziell gefährden können.
Client-Einstellungen
Auf der Client-Seite sollten wir die folgenden NFS-Mount-Parameter verwenden, um eine stabile und performante Verbindung zu gewährleisten. Diese Parameter können sowohl bei einem normalen NFS-Mount als auch bei der Verwendung von AutoFS eingesetzt werden:
hard,timeo=50,retrans=5,relatime,rsize=1048576,wsize=1048576
Einstellung | Erklärung |
hard | Der Client wird bei Fehlern fortlaufend versuchen, die Verbindung wiederherzustellen. Dies ist besonders wichtig, um Datenintegrität zu gewährleisten. |
timeo=50 | Wartezeit (in Millisekunden) für ein Timeout, bevor ein Fehler bei der Kommunikation gemeldet wird |
retrans=5 | Anzahl der Versuche, die der Client bei einem Fehler unternehmen soll |
relatime | Reduziert die Anzahl der Dateizugriffszeit-Updates und erhöht so die Performance |
rsize=1048576,wsize=1048576 | Maximale Lese- und Schreibpuffergröße (1 MB). Dies ist ideal für die meisten modernen Netzwerke |
Globale Einstellungen
Ab Unraid 7.0.0 können wir einige wichtige Verbesserungen vornehmen, wenn wir eine hohe NFS-Aktivität haben:
Erhöhung der Anzahl der FUSE-Dateideskriptoren
Wenn du viele gleichzeitige NFS-Verbindungen hast, kann es hilfreich sein, die Number of Fuse File Descriptors zu erhöhen. Diese Option findest du unter Settings > Global Share Settings.
Eine höhere Anzahl an Dateideskriptoren kann die Performance verbessern und verhindern, dass Verbindungen aufgrund von Ressourcenmangel fehlschlagen.
Erhöhung der NFS-Threads
In den NFS-Einstellungen (unter Settings > NFS) kannst du die Anzahl der Threads von 8 auf eine höhere Zahl erhöhen, wenn du eine hohe NFS-Aktivität erwartest. Mehr Threads können dabei helfen, die NFS-Operationen effizienter zu bearbeiten.
Hinweis: Die Anpassung der Thread-Anzahl und der Dateideskriptoren sollte nur dann vorgenommen werden, wenn tatsächlich eine hohe NFS-Nutzung vorliegt. Mehr Threads und Deskriptoren verbrauchen zusätzliche Systemressourcen, was nicht immer notwendig ist.