Ist es machbar, einen mit NFS gehosteten Basisordner zu haben?


30

Ich habe vor, einige Kiosk-Computer bereitzustellen und möchte sie mit einem kleinen Pendrive als Bootdiskette belassen, damit der Rest auf einem leicht zu sichernden Server, ala LTSP , bleibt .

Im Moment überlege ich mir zwei Möglichkeiten. Ein NFSed / home / oder eine lokale Kopie von ~ /, die beim Anmelden kopiert und beim Abmelden synchronisiert wird.

Ich befürchte, dass die Arbeit mit Dateien zu langsam wird oder mein Netzwerk verstopft wird .


Könnten Sie bitte "safe" durch ein anderes Wort ersetzen, das weniger mit Sicherheit zu tun hat? Möglicherweise machbar merriam-webster.com/dictionary/feasible ?
Cristian Ciupitu

1
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:


30

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

  1. Keine NFS-Bereitstellung auf /home- auf diese Weise können Sie einen lokalen Benutzer einrichten, der es Ihnen ermöglicht, falls der NFS-Server ausfällt. Wir steigen auf/mnt/nfs/home

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

  3. Verwenden Sie den Automounter . Dies hält die Ressourcennutzung niedrig und bedeutet auch, dass Sie sich keine Gedanken über den Neustart von Diensten machen müssen, wenn der NFS-Server 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, um Probleme mit Berechtigungen zu vermeiden. Ich habe einen OpenLDAP-Server.


Ich fand den Automounter immer schrecklich unzuverlässig und anfällig für Abstürze, besonders wenn der NFS-Server ausfällt. Wenn Sie nach / mnt / nfs / home mounten, legen Sie dort das Home des Benutzers in / etc / passwd fest?
pjc50

2
Die Verwendung von / etc / passwd und NFS zum Mounten von Home-Verzeichnissen ist eine schlechte Idee, da Sie die UID und GIDs synchron halten müssen - verwenden Sie etwas wie OpenLDAP, aber ja, das Home-Verzeichnis des Benutzers lautet / mnt / nfs / home /Nutzername.
Aaron Brown

@AaronBrown Ich bin damit einverstanden, dass Sie, wenn Sie $ HOME in das Netzwerk einbinden, auch die Benutzeridentität und -authentifizierung in das Netzwerk einbinden sollten. Unabhängig davon, wie Sie dies tun, muss $ HOME irgendwo definiert werden, und Sie haben angegeben, dass Sie dies vorziehen, /mnt/nfs/homeaber wie verwenden Sie dann Ihr lokales /homeSystem während eines Ausfalls? Weitere
Informationen finden

8

http://www.howtoforge.com hat kürzlich einen Artikel über die Verwendung von GlusterFS als NFS-Ersatz / Alternative veröffentlicht.

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 heilt sich im Handumdrehen von selbst. Es gibt kein fsck. Auf das Speicher-Backend kann direkt als reguläre Dateien und Ordner zugegriffen werden (NFS-Stil). Wenn die 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 Speicherplatz in Ihrem SAN benötigen, einfach einen weiteren Speicherbaustein (Serverknoten) hinzufügen und Ihren Speicher bei Bedarf parallel skalieren und erweitern können.

Hoffe, das hilft oder hilft zumindest, Sie in die richtige Richtung zu weisen!


7

Sei vorsichtig mit den weichen Reittieren! Das weiche Mounten eines NFS-Dateisystems bedeutet, dass die E / A nach einer Zeitüberschreitung fehlschlägt. Stellen Sie sicher, dass dies in den privaten Verzeichnissen der Benutzer gewünscht ist! Vermutlich nicht. Hier fühlt sich die Verwendung einer harten Einbindung in Basisverzeichnisse in Kombination mit der Option intr viel sicherer an.

Hard wird keine Zeitüberschreitung verursachen: E / A-Vorgänge werden auf unbestimmte Zeit wiederholt. Die Option intr ermöglicht es, den Montagevorgang zu unterbrechen. Wenn Sie also den Export bereitstellen und ein Fehler auftritt, wird Ihre Sitzung durch die harte Bereitstellung gesperrt. Die Option intr ermöglicht das Unterbrechen des Ladevorgangs. Die Kombination ist also ziemlich sicher und stellt sicher, dass Sie die Daten eines Benutzers nicht leicht verlieren.

Auf jeden Fall macht autofs das alles noch einfacher.


1
Beachten Sie, dass die intrMount-Option in Linux nach Kernel 2.6.2 veraltet ist, siehe z. B. access.redhat.com/solutions/157873
myrdd

4

Wenn der NFS-Server ausfällt, frieren Ihre Mounts ein. Wenn Sie einen Soft-Mount ausführen, wird dies nicht blockiert, sodass das "Einfrieren" selbst vermieden werden kann. Dadurch wird jedoch das Problem von Basisverzeichnissen wie ohne Basis nicht behoben Verzeichnis ist der Benutzer trotzdem angeschraubt.

Selbst wenn der NFS-Server wiederhergestellt wird, bleibt das Problem des Einfrierens bestehen, sofern Sie nichts dagegen unternehmen. Sie müssen den Prozess auf dem Bereitstellungscomputer abbrechen und erneut bereitstellen. Der Grund dafür ist, dass der NFS-Server, wenn er wieder hochfährt, eine andere Zuordnung fsidhat. Sie können dieses Problem also zumindest beheben, indem Sie die fsids auf dem NFS-Server fest codieren , z. B. ...

#. 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)

In der exports(5)Manpage heißt es ...

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 dies darauf hinweist, dass sich die Haupt- / Nebenzahlen nicht ändern (was normalerweise nicht der Fall ist, außer wenn Sie SAN- / Multipfad-Volumes exportieren, bei denen sich die möglicherweise ändern), habe ich festgestellt, dass dies der Fall ist habe das problem komplett beseitigt - dh wenn der nfs server zurückkommt - die verbindung wurde schnell wiederhergestellt - ich weiß immer noch nicht wirklich, warum dies einen unterschied für geräte wie /dev/sdaXzum beispiel gemacht hat.

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


Sind Sie sicher, dass diese "zufällige" Fsid vom Server verwendet wird?
Cristian Ciupitu

Hallo Cristian - ich habe versucht, es oben zu erklären - aber ich kann das Verhalten in Bezug auf die Manpage-Beschreibung der Flagge nicht vollständig erklären. Hast du es versucht und anders gesehen?
Xerxes

4

Einige allgemeine Ratschläge, die unabhängig vom verwendeten Netzwerkdateisystem gelten: Viele Programme speichern Daten im Basisverzeichnis des Benutzers, was normalerweise mehr schadet als nützt, wenn über ein Netzwerk auf das Basisverzeichnis zugegriffen wird.

Heutzutage können Sie vielen Programmen anweisen, ihre Caches an anderer Stelle (z. B. auf einer lokalen Festplatte) zu speichern, indem Sie die XDG_CACHE_HOMEUmgebungsvariable in einem Anmeldeskript festlegen. Viele Programme (z. B. Firefox) erfordern jedoch noch eine manuelle Konfiguration, sodass Sie möglicherweise zusätzliche Arbeiten ausführen müssen, um sie für alle Benutzer auf einheitliche Weise zu identifizieren und zu konfigurieren.


+1 Ich hatte Leistungsprobleme mit Google Chrome und NFS-Heimverzeichnissen. Es wurde behoben, indem die Arbeitsverzeichnisse von Chrome zurück auf das lokale System verschoben und anschließend ein Symlink aus dem NFS-Ausgangsverzeichnis (in dem Chrome die Verzeichnisse erwartet) zurück in das lokale Verzeichnis eingefügt wurde. Es gibt vielleicht eine bessere Methode, um das zu tun, was ich getan habe, aber sie hat das Problem für mich gelöst.
Bryan

Bryan (9. März) hat eine gute Teilantwort hinterlassen, aber ich möchte auf dieses Thema näher eingehen. Bitte tun Sie ... Danke. Wie haben Sie die Arbeitsverzeichnisse auf den lokalen Computer verschoben und Symlinks platziert?
Jason

Schauen Sie sich auch den XDG_RUNTIME_DIRfür Dconf beschriebenen Speicherort an: developer.gnome.org/dconf/unstable/dconf-overview.html
JKnight

3

An vielen Orten, an denen ich gearbeitet habe, werden von NFS gemountete Home-Verzeichnisse verwendet. Normalerweise gibt es keinen großen Leistungsunterschied (und Kioskbenutzer sind wahrscheinlich weniger anspruchsvoll als Entwickler, die wissen, wie sie ihren lokalen IT-Mitarbeiter 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 irgendeinem Grund nicht mehr erreichbar ist. Die Dinge reagieren wirklich nicht mehr.


2

Ich benutze ein NFSed-Haus und es funktioniert gut. Sie müssen jedoch sicherstellen, dass das Netzwerk schnell genug ist und niemals ausfällt.


2

In der Praxis bietet NFS eine gute Leistung für das Home-Verzeichnis, wenn es ein 100-MBit-Switched-Netzwerk oder besser gibt. Für mehr als 10-20 Kioske sollte der Server über eine Gigabit-Konnektivität verfügen. Sie werden keine Leistungswettbewerbe gewinnen, aber Dinge wie Firefox und Open Office funktionieren einwandfrei.

Das Kopieren in das Home-Verzeichnis kann zu Verzögerungen bei der Anmeldung führen (in einem 100-MBit-Netzwerk mit maximal 12 MB / s. Ein 100-MB-Home-Verzeichnis ist fast 10 Sekunden lang) Minuten und 500 Dateien schaden.


1

Schauen Sie sich cachefilesd an . Ich habe es selbst nicht benutzt, aber es sieht vielversprechend aus.

Der Daemon cachefilesd verwaltet die Caching-Dateien und das Caching-Verzeichnis, die von Netzwerk-Dateisystemen wie AFS und NFS verwendet werden, um das dauerhafte Caching auf der lokalen Festplatte durchzuführen.

Vergessen Sie auch nicht, die Parameter rsize und wsize abzustimmen und wenn möglich Jumbo-Frames zu verwenden.


Ich habe Cachefilesd einige Jahre lang ausprobiert, aber aufgrund der damit verbundenen Instabilität aufgegeben. YMMV
JFlo
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.