Frage Ist es möglich, den Home-Ordner mit NFS zu hosten?


Ich plane, einige Kioskcomputer einzusetzen und möchte sie mit einem kleinen USB-Stick als Bootdiskette belassen und den Rest auf einem einfach zu sichernden Server halten, ala LTSP.

Im Moment überlege ich mir zwei Möglichkeiten. Eine NFSed / home / oder eine lokale Kopie von ~ / bei der Anmeldung kopiert, rsync beim Abmelden.

Meine Befürchtungen sind, dass die Arbeit mit Dateien zu langsam wird, oder mein Netzwerk könnte es bekommen verstopft.


27
2018-06-04 01:11


Ursprung


Könnten Sie bitte "sicher" durch ein anderes Wort ersetzen, das weniger mit Sicherheit zu tun hat? Vielleicht machbar merriam-webster.com/dictionary/durchführbar ? - Cristian Ciupitu
Ein leichtes Gefühl von déja vu. Es ist nicht genau dasselbe, aber es ist ein interessanter Thread, den sie dort haben. hardware.slashdot.org/story/09/06/23/1823201/... - voyager


Antworten:


Ich verwende NFS für meine Home-Verzeichnisse in unserer Produktionsumgebung. Es gibt ein paar Tricks.

  1. Nicht mit NFS mounten /home - Auf diese Weise können Sie einen lokalen Benutzer haben, der Ihnen erlaubt, wenn der NFS-Server ausfällt. Wir montieren auf /mnt/nfs/home

  2. Verwenden Sie weiche Mounts und ein sehr kurzes Timeout - dies verhindert, dass Prozesse für immer blockiert werden.

  3. Benutze die Automounter. Dies wird die Ressourcennutzung niedrig halten und bedeutet auch, dass Sie sich keine Gedanken über das Neustarten von Diensten machen müssen, wenn der NFS-Server hochfährt, wenn er aus irgendeinem Grund ausfällt.

    auto.master:
      +auto.master
      /mnt/nfs /etc/auto.home --timeout=300
    
    auto.home
       home -rw,soft,timeo=5,intr      home.bzzprod.lan:/home
    
  4. Verwenden Sie ein Single Sign-On-System, damit Sie nicht auf Berechtigungsprobleme stoßen. Ich habe einen OpenLDAP-Server.


28
2018-06-04 03:02



Ich habe den Automounter immer fürchterlich unzuverlässig und anfällig für Sperren gefunden, besonders wenn der NFS-Server ausfällt. Wenn Sie mount an / mnt / nfs / home, ist das, wo Sie die Heimat des Benutzers in / etc / passwd festgelegt? - pjc50
Nun, die Verwendung von / etc / passwd und NFS-Mounten von Home-Verzeichnissen ist eine schlechte Idee, da Sie die UID und GIDs synchronisieren müssen - verwenden Sie etwas wie OpenLDAP, aber ja, das Home-Verzeichnis des Benutzers ist auf / mnt / nfs / home gesetzt /Nutzername. - Aaron Brown
@AaronBrown Ich stimme zu, dass Sie, wenn Sie $ HOME in das Netzwerk stellen wollen, auch die Benutzeridentität und die Authentifizierung in das Netzwerk einfügen sollten. Unabhängig davon, wie Sie das tun, muss $ HOME irgendwo definiert werden, und Sie haben angegeben, dass Sie es lieber festlegen möchten /mnt/nfs/homeaber wie nützt du dann dein Lokal? /home während eines Ausfalls? Genauer gesagt, bitte sehen Sie unix.stackexchange.com/questions/189404/ ... - JFlo


http://www.howtoforge.com kürzlich einen Artikel über die Verwendung von GlusterFS als NFS-Ersatz / Alternative veröffentlicht haben, können Sie es überprüfen.

http://www.howtoforge.com/creating-an-nfs-like-standalone-storage-server-with-glusterfs-on-debian-lenny

Hier ist eine kurze Beschreibung, warum es eine gute "machbare" Alternative zu NFS ist, von der GlusterFS-Projektseite http://www.gluster.org/:

"GlusterFS selbst heilt sich im laufenden Betrieb. Es gibt kein fsck. Storage-Backend ist direkt als normale Dateien und Ordner (NFS-Stil) zugänglich. Wenn Replikation aktiviert ist, kann GlusterFS Hardwarefehler aushalten."

Weitere Informationen finden Sie in der Projektdokumentation.

Ein weiterer Vorteil von GlusterFS ist, dass Sie, wenn Sie mehr Platz in Ihrem SAN benötigen, einfach einen weiteren Speicherbaustein (Serverknoten) hinzufügen und Ihren Speicher bei Bedarf parallel skalieren / vergrößern können.

Hoffe, das hilft oder zumindest hilft Ihnen, in die richtige Richtung zu zeigen!


7
2018-06-04 02:09





Sei vorsichtig mit den weichen Halterungen! Durch das Mounten eines NFS-Dateisystems wird der IO nach einem Timeout fehlschlagen. Seien Sie sicher, dass Sie das in den Home-Verzeichnissen der Benutzer haben wollen! Ich schätze, du tust es nicht. Die Verwendung eines Hardmounts auf Home-Verzeichnissen in Verbindung mit der Intr-Option fühlt sich hier viel sicherer an.

Hard Timeout nicht: IO-Operationen werden unbegrenzt wiederholt. Die Option intr ermöglicht es, den Montagevorgang zu unterbrechen. Wenn Sie also den Export mounten und einen Fehler feststellen, wird die Sitzung durch das Hardmount gesperrt. Die Intr-Option wird es ermöglichen, den Mount zu unterbrechen, so dass die Kombination ziemlich sicher ist und sicherstellt, dass Sie die Daten eines Benutzers nicht leicht verlieren werden.

Autofs macht das alles noch einfacher.


7
2018-06-04 06:36



Notiere dass der intr Die Mount-Option wurde in Linux nach Kernel 2.6.2 veraltet, siehe z.B. Zugriff.redhat.com/solutions/157873 - myrdd


Die eine Sache zu beachten ist, dass, wenn der NFS-Server aus ist - Ihre Mounts werden einfrieren - eine weiche mount wird nicht blockieren, so dass das "Einfrieren" selbst vermieden werden kann, jedoch wird das Problem der Home-Verzeichnisse als ohne ein Haus nicht beheben Verzeichnis, der Benutzer ist sowieso verschraubt.

Selbst wenn der NFS-Server wiederhergestellt wird, bleibt das Einfrieren-Problem bestehen, wenn Sie nichts dagegen tun. Sie müssen den Prozess auf dem Mounting-Computer beenden und erneut mounten. Der Grund dafür ist, dass wenn der NFS-Server wieder hochfährt, er einen anderen zugewiesen hat fsid - so können Sie dieses Problem zumindest beheben, indem Sie den Code hart codieren fsids auf dem NFS-Server, zum Beispiel ...

#. Home Directories
/usr/users \
  192.168.16.0/22(rw,sync,no_root_squash,fsid=1) \
  192.168.80.0/22(rw,sync,no_root_squash,fsid=1)

#. Scratch Space
/var/ftp/scratch \
  192.168.16.0/22(rw,async,no_root_squash,fsid=3) \
  192.168.80.0/22(rw,async,no_root_squash,fsid=3) \
  172.28.24.151(rw,async,root_squash,fsid=3)

Das exports(5) man page states ...

fsid=num
          This option forces the filesystem identification portion of the file handle
          and  file attributes used on the wire to be num instead of a number derived
          from the major and minor number of the block device on which the filesystem
          is  mounted.   Any 32 bit number can be used, but it must be unique amongst
          all the exported filesystems.

          This can be useful for NFS failover, to ensure that  both  servers  of  the
          failover  pair use the same NFS file handles for the shared filesystem thus
          avoiding stale file handles after failover.

... Während das anzeigt, dass solange sich die Major / Minor-Zahlen nicht ändern (was sie normalerweise nicht tun, außer wenn Sie SAN / Multipath-Volumes exportieren, wo sich das ändern kann), habe ich festgestellt, dass wir habe das Problem vollständig behoben - dh, wenn der NFS - Server zurückkommt - die Verbindung wurde schnell wiederhergestellt - ich weiß immer noch nicht wirklich, warum dies für Geräte wie /dev/sdaX zum Beispiel.

Ich sollte jetzt darauf hinweisen, dass mein Argument im Wesentlichen anekdotisch ist - es macht eigentlich keinen Sinn, warum es das Problem behoben hat, aber es "scheint" es behoben zu haben - irgendwie - hier sind wahrscheinlich andere Variablen im Spiel, die ich habe noch nicht entdeckt. =)


4
2018-06-04 02:28



Sind Sie sich sicher über diese "zufällige" fsid, die vom Server verwendet wird? - Cristian Ciupitu
Hallo Cristian - ich habe oben versucht zu erklären - aber ich kann das Verhalten bezüglich der Manpage-Beschreibung der Flagge nicht vollständig erklären. Hast du es versucht und anders gesehen? - Xerxes


Einige allgemeine Hinweise, die Sie anwenden können, unabhängig davon, welches Netzwerk-Dateisystem Sie verwenden: Viele Programme cachen Daten im Home-Verzeichnis des Benutzers, was normalerweise mehr schadet als gut, wenn auf das Home-Verzeichnis über ein Netzwerk zugegriffen wird.

Heutzutage können Sie vielen Programmen mitteilen, dass sie ihre Caches an einem anderen Ort speichern sollen (z. B. auf einer lokalen Festplatte), indem Sie die XDG_CACHE_HOME Umgebungsvariable in einem Anmeldeskript. Viele Programme (z. B. Firefox) erfordern jedoch immer noch eine manuelle Konfiguration, daher müssen Sie wahrscheinlich etwas mehr Arbeit aufwenden, um sie für alle Benutzer einheitlich zu identifizieren und zu konfigurieren.


4
2018-03-09 12:07



+1 Ich hatte Leistungsprobleme mit Google Chrome und NFS-Home-Verzeichnissen. Es wurde behoben, indem die Arbeitsverzeichnisse von Chrome zurück auf das lokale System verschoben und dann ein Symlink aus dem NFS-Home-Verzeichnis (wo Chrome erwartet, dass die Verzeichnisse gefunden werden) in das lokale Verzeichnis zurückversetzt wurde. Es mag einen besseren Weg geben, das zu tun, was ich getan habe, aber es hat das Problem für mich gelöst. - Bryan
Bryan (9. März) hat eine gute teilweise Antwort hinterlassen, aber ich möchte auf dieses Problem eingehen. Bitte tun Sie ... Danke. Wie haben Sie die Arbeitsverzeichnisse auf den lokalen Rechner verschoben und Symlinks platziert? - Jason
Schau auch in die XDG_RUNTIME_DIR beschrieben für den Speicherort der Dconf-Datenbank unter: developer.gnome.org/dconf/unstable/dconf-overview.html - JKnight


Viele Orte, an denen ich gearbeitet habe, verwenden NFS-Home-Verzeichnisse. Es gibt normalerweise keinen großen Unterschied in der Leistung (und Kioskbenutzer sind wahrscheinlich etwas weniger anspruchsvoll als Entwickler, die wissen, wie sie ihren lokalen IT-Typen erreichen können). Ein Problem, das ich gesehen habe, ist, was passiert, wenn ich auf einem Gnome-Desktop angemeldet bin und der NFS-Server aus welchen Gründen auch immer weggeht. Die Dinge werden wirklich unempfänglich.


3
2018-06-04 01:30





Ich benutze ein NFSed-Heim und es funktioniert gut. aber Sie müssen sicherstellen, dass das Netzwerk schnell genug ist und dass es nie ausgefallen sein wird.


2
2018-06-04 01:23