Beste Möglichkeit, Remote-Ordner zu mounten

40

Ich habe zwei RasberryPi, auf denen debian wheezy läuft, und ich möchte einen Ordner von Computer A auf Computer B mounten.

Was ist der beste (wie am effizientesten) Weg, um dies zu tun?

Ich kann es über SMB tun, aber das ist für Windows, ich denke, es muss einen besseren Weg geben, um über Linux zu teilen.

cjburkha
quelle

Antworten:

31

Sie können viele Dinge verwenden, unter denen beliebte Optionen sind:

  • NFS
  • Samba / CIFS
  • SSHFS

Aufgrund der einfachen Einrichtung müssten sie meiner Meinung nach in dieser Reihenfolge angeordnet werden (oben: am einfachsten).

SSHFS

Mit FUSE können Sie entfernte Dateisysteme über ssh mounten. Ich werde nicht darauf eingehen, wie, wie Cristopher das bereits sehr gut erklärt hat. Beachten Sie, dass zum automatischen Mounten der Datei etwas mehr Arbeit erforderlich ist .

Samba

Sie können Windows- und Unix-Computer verwenden, um auf den Remote-Ordner zuzugreifen. Wenn es für Sie keine große Sache ist, werden Sie wahrscheinlich nicht davon profitieren. Es ist jedoch einfach, es bei init automatisch zu aktivieren (geben Sie einfach die entsprechenden Werte bei ein /etc/fstab, einschließlich username=<your-samba-username>,password=<your-samba-password>in der Optionsspalte .

NFS

Damit können Sie sich nur über IP authentifizieren (kein Benutzername = schneller, nur in Ihrem nicht feindlichen LAN) oder über Kerberos-Tickets (zu schmerzhaft für nur zwei Himbeeren, aber nützlich in Unternehmensumgebungen).

Da der Kernel-Modus unterstützt wird, läuft er schneller als sshfs. Da keine Verschlüsselung durchgeführt wird, hat es außerdem einen besseren Durchsatz, und im Fall des winzigen Himbeer-ARM kann es einen Unterschied machen.

Außerdem ist es nicht so schmerzhaft, wenn Sie einfach Ihrem Netzwerk vertrauen. Sie haben auch Auto-Mount-Unterstützung /etc/fstabund müssen keine vertraulichen Daten (wie Benutzernamen oder Kennwörter) eingeben. Wenn Sie Ihre Benutzernamen synchronisiert haben (dieselben /etc/passwdund /etc/groupDateien), können Sie das übliche POSIX-Berechtigungs-Toolset ( chown, chgrpund chmod) verwenden.

ssice
quelle
Ich verwende meinen Pi als NFS-Server mit einer Festplatte, auf der hauptsächlich Filme und andere Medien gespeichert sind (dh nicht systemkritisches Material, nicht '/ home /' oder ähnliches). Mit NFS kann ich einen Film ansehen, ohne ihn zuerst auf das lokale Laufwerk kopieren zu müssen. Beim Schreiben von Dateien auf die NFS-Festplatte bevorzuge ich jedoch die Verwendung von rsync. Ich habe daher meine NFS-Festplatten nur readonly gemountet und Sachen über SSH geschrieben (mit rsync). Dies hindert mich auch daran, versehentlich eine Synchronisierung mit einer über NFS bereitgestellten Festplatte durchzuführen (was sehr ineffizient ist).
Zrajm
@zrajm wie mounten Sie Ihre Festplatten auf dem Pi?
FutuToad
arisu:/mnt/ytra /mnt/ytra nfs soft,ro,intr 0 2
Zrajm
Samba kann einige Unix-Anwendungen verwirren, insbesondere was Berechtigungen oder was stat()zurückgibt, z. B. Dinge, die von der nlinkAnzahl abhängen, von der CIFS keine Ahnung hat. SSHFS hat mich nicht sonderlich beeindruckt, da es Kontextwechsel auf dem Dateiserver sehr hoch laufen ließ und die für interne Programme erforderliche Sperrung nicht unterstützte. Also, NFS ...
Uhr
38

SSHFS ist wunderbar. Es kann entfernte Verzeichnisse in einem lokalen Verzeichnis mit FUSE mounten . Mit den folgenden Befehlen wird #angegeben, dass ein Befehl ausgeführt wurde root, während $die Ausführung als regulärer Benutzer angegeben wird. Da FUSE-Software erforderlich ist, stellen Sie zunächst sicher, dass sie verfügbar ist und ausgeführt wird.

Einer der lsmodund grep Befehle kann unten zeigen , wenn die Software geladen und einsatzbereit. Ein Ergebnis von beiden Befehlen zeigt an, dass fuseverfügbar ist.

# lsmod | grep fuse
$ grep -i fuse /lib/modules/$(uname -r)/modules.builtin

Wenn keiner der beiden Befehle ein Ergebnis liefert, versuchen Sie, das Kernelmodul ohne Neustart mit zu laden, modprobeund überprüfen Sie es erneut.

# modprobe fuse
# lsmod fuse

Wenn das Laden des Moduls fehlschlägt, installieren Sie die Software mit apt-get.

# apt-get install fuse

Überprüfen Sie es nach der Installation erneut.

# modprobe fuse
# lsmod fuse

FUSE muss installiert sein und ausgeführt werden, bevor Sie fortfahren können.


Überprüfen Sie die Berechtigungen von /dev/fuse. Die Berechtigungen sollten Ihrem regulären Benutzerkonto Lese- und Schreibzugriff gewähren. Überspringen Sie diesen Teil, wenn Sie festgestellt haben, dass Ihr reguläres Benutzerkonto bereits über Lese- und Schreibberechtigungen verfügt /dev/fuse.

# ls -l /dev/fuse

Die Ausgabe könnte eine der folgenden sein.

crw-rw-rw- 1 root root (all users can read/write)
crw------- 1 root fuse (only root can read/write)
crw-rw---- 1 root fuse (root and members of fuse group can read/write)

Im Jahr 2013 hat mein Debian /dev/fusemit 0600Berechtigungen, Eigentümer root, Gruppeneigentümer erstellt fuse. Ich musste die Sicherungsgruppe das Gerät verwenden lassen und mein reguläres Benutzerkonto zur Gruppe hinzufügen, wie unten gezeigt.

# usermod -aG fuse $your_regular_user_account
# chmod 0660 /dev/fuse

Wenn die neue Gruppenmitgliedschaft erforderlich war, melden Sie sich ab und wieder an, um Mitglied der Gruppe zu werden.


Anschließend sshwie folgt beidseitig montieren .

# apt-get install ssh

Diese Antwort wurde für Debian geschrieben, aber auf Ubuntu 18.x zumindest openssh-client, fuseund ein paar andere Pakete sind ein Teil des Ubuntu - sshfsPaket. Die sshfsSoftware wird auf der Client-Seite benötigt, kann jedoch auf beiden Seiten installiert werden. Eine der Paketabhängigkeiten ist fuse, aber das Installationsprogramm überspringt bereits installierte Software.

# Ubuntu 18.x: 
# apt-get install sshfs

Erstellen Sie mit fuseund sshverfügbar und mit der Berechtigung zur Verwendung des Geräts /dev/fuseeinen Einhängepunkt für das ferne Dateisystem. und hängen Sie das entfernte Dateisystem wie folgt lokal an.

# mkdir /mnt/$directory_name
# chown $your_user:$group /mnt/$directory_name/
$ sshfs $remote_username@$remote_server_name: /mnt/$directory_name/

Wenn Sie ein anderes Verzeichnis als home bereitstellen möchten, geben Sie es nach dem Doppelpunkt an.

$ sshfs $remote_username@$remote_server_name:/remote/directory /mnt/$directory_name

Zum Abhängen verwenden Sie fusermount.

fusermount -u /mnt/$directory_name

Wenn Sie einen Windows-Computer haben, kann er auch SSHFS mit win-sshfs verwenden . Diese Software ordnet ein Laufwerk mit SSHFS zu, sodass Sie einen Windows-Laufwerksbuchstaben haben können, der das Remote-Verzeichnis enthält.

Christopher
quelle
1
Sie können die Geschwindigkeit von SSHFS mithilfe zusätzlicher Optionen erheblich verbessern. Weitere Informationen und Geschwindigkeitsvergleiche mit NFS finden Sie in diesem Artikel: admin-magazine.com/HPC/Articles/Sharing-Data-with-SSHFS
blendenzo
Hey - Ich habe versucht, Ihre Anweisungen zu verwenden (Anpassung an yum install fuse-sshfs.x86_64), aber als ich modprobe fusees tat, hat es keine Sicherungsgruppe für mich erstellt. Als ich das tat usermod -a -G fuse [your-user], bekam ich usermod: group 'fuse' does not exist. kannst du helfen
Vielen
lsmod | grep fuseGibt das Ergebnis zurück und ich habe /dev/fusem, das root gehört. Du sagst also, ich bin okay ohne die Gruppe?
Amphibient
Ja, ich bekommecrw-rw-rw-. 1 root root 10, 229 Nov 21 15:32 /dev/fuse
amphibient
Nach # apt-get install fuse-utils sshfs erhalte ich die Meldung "Paket fuse-utils kann nicht gefunden werden". Irgendeine Idee warum? (Ubuntu 18.04.01)
Kvothe
7

Unter Linux würden Sie sich für NFS entscheiden ( lesen Sie dazu auch den Artikel auf archwiki, der möglicherweise auch relevante Informationen für Ihre Distribution enthält). Es hat erweiterte Funktionen als Samba. Wenn Sie Dateien sperren müssen (dh gleichzeitig auf sie zugreifen müssen), sollten Sie sich auch mit lockd befassen, da nfs statusfrei ist. Es ist jedoch schwieriger zu konfigurieren als smb. Ich würde vorschlagen, sowohl Samba als auch NFS auszuprobieren, um herauszufinden, welches Ihren Bedürfnissen entspricht.

Silverrocker
quelle
1

Ich habe in der Vergangenheit sowohl SFTP-Netzlaufwerk als auch ExpanDrive verwendet und kann Ihnen sagen, dass sshfs beide ohne Frage übertrifft.

sublimieren
quelle