リモートフォルダをマウントする最良の方法


40

debian wheezyを実行している2つのRasberryPiがあり、コンピューターAのフォルダーをコンピューターBにマウントしたいと思います。

これを行うための最良の(最も効率的な)方法は何ですか?

SMBを介してそれを行うことはできますが、それはWindows向けであり、Linux間で共有するためのより良い方法が必要だと思います。


回答:


31

たくさんのものを使用できますが、その中で人気のあるオプションは次のとおりです。

  • NFS
  • サンバ/ CIFS
  • SSHFS

セットアップが簡単なため、この順序で並べる必要があると思います(上:最も簡単)

SSHFS

FUSEを使用すると、sshを介してリモートファイルシステムをマウントできます。クリストファーがすでに非常によく説明しているので、その方法については説明しません。ファイルを自動的にマウントするには、もう少し作業が必要になることに注意してください。

サンバ

WindowsおよびUnixマシンを使用して、リモートフォルダにアクセスできます。それがあなたにとって大したことではないなら、あなたはおそらくそれから利益を得ないでしょう。ただし、initに自動マウントするのは簡単です(オプション列/etc/fstabを含め、に適切な値を入力するだけusername=<your-samba-username>,password=<your-samba-password>です)。

NFS

IP(ユーザー名なし=高速、非敵対的 LAN 内でのみ使用)またはKerberosチケット(たった2つのラズベリーには痛みがありますが、企業環境では便利です)を介して認証できます。

カーネルモードをサポートしているため、sshfsよりも高速に実行されます。また、暗号化が実行されないため、スループットが向上します。小さなRaspberry ARMの場合、違いが生じる可能性があります。

その上、ネットワークを信頼するだけでセットアップするのはそれほど苦痛ではありません。あなたには自動マウントをサポートしている/etc/fstab、あまりにも、あなたは、(ユーザー名やパスワードなど)の機密データを配置する必要はありません、そして、あなたのユーザ名を持っている場合syncrhronized(同じ/etc/passwd/etc/groupファイル)を使用すると、通常のPOSIXアクセス権のツールセットを使用することができます(chownchgrpおよびchmod)。


私はPiを、ほとんどが映画やその他のメディア(つまりシステムに重要なものではなく、「/ home /」など)ではないディスクを持つNFSサーバーとして使用します。NFSを使用すると、最初にローカルドライブにコピーすることなく映画を見ることができますが、NFSディスクにファイルを書き込むときは、rsyncを使用することを好みます。したがって、NFSディスクを読み取り専用でマウントし、SSH(rsyncを使用)でデータを書き込みます。これにより、誤ってNFSマウントされたディスクにrsyncすることもなくなります(非常に非効率的です)。
zrajm

@zrajm piにディスクをマウントする方法は?
FutuToad

arisu:/mnt/ytra /mnt/ytra nfs soft,ro,intr 0 2
zrajm 14年

Sambaは一部のUNIXアプリケーションを混乱させる可能性があります。特に、アクセス許可やstat()返品など、nlinkCIFSが認識していないカウントに依存するものなどです。SSHFSはファイルサーバーでコンテキストスイッチを非常に高く実行し、社内プログラムで必要なロックをサポートしていなかったため、あまり感心していませんでした。だから、NFS
...-thrig

38

SSHFSは素晴らしいです。FUSEを使用して、リモートディレクトリをローカルディレクトリにマウントできます。以下#のコマンドは、コマンドがとして実行されたことを示すために使用しますが、通常のユーザーとしての実行root$示します。FUSEソフトウェアが必要なため、最初にFUSEソフトウェアが使用可能で実行中であることを確認してください。

以下のlsmodおよびgrepコマンドのいずれかを使用すると、ソフトウェアがロードされ、使用できる状態になっているかどうかを確認できます。いずれかのコマンドの結果は、それfuseが利用可能であることを示しています。

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

どちらのコマンドでも結果が得られない場合は、再起動せずにカーネルモジュールをロードして、modprobeもう一度確認してください。

# modprobe fuse
# lsmod fuse

モジュールのロードに失敗した場合は、でソフトウェアをインストールしてくださいapt-get

# apt-get install fuse

インストール後にもう一度確認してください。

# modprobe fuse
# lsmod fuse

続行する前に、FUSEをインストールして実行する必要があります。


の権限を確認してください/dev/fuse。アクセス許可は、通常のユーザーアカウントに読み取りおよび書き込みアクセスを提供する必要があります。通常のユーザーアカウントに既に読み取りおよび書き込み権限があると判断した場合は、この部分をスキップしてください/dev/fuse

# ls -l /dev/fuse

出力は次のいずれかになります。

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)

2013年に、Debian /dev/fuse0600権限、所有者root、グループ所有者で作成しましたfuse。以下に示すように、ヒューズグループにデバイスを使用させ、通常のユーザーアカウントをグループに追加する必要がありました。

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

新しいグループメンバーシップが必要な場合は、ログアウトして再度ログインし、グループのメンバーになります。


次に、ssh次のように両側にインストールします。

# apt-get install ssh

この回答は、Debianのために書かれましたが、Ubuntuの18.x上の少なくとも、openssh-clientfuse、およびその他のいくつかのパッケージは、Ubuntuのの一部であるsshfsパッケージ。sshfsソフトウェアは、クライアント側で必要とされるが、必要に応じて、それは両側に設置することができます。パッケージの依存関係の1つはfuseですが、インストーラーは既にインストールされているソフトウェアをスキップします。

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

fuseし、ssh利用できる、およびデバイスを使用する許可を得て、/dev/fuseリモート・ファイル・システムのマウントポイントを作成します。そして、そのリモートファイルシステムを次のようにローカルにマウントします。

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

ホーム以外のディレクトリをマウントするには、コロンの後に指定します。

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

マウント解除するには、を使用しますfusermount

fusermount -u /mnt/$directory_name

Windowsマシンをお持ちの場合は、win-sshfsで SSHFSを使用することもできます。このソフトウェアはSSHFSで「ドライブをマップ」するため、リモートディレクトリを含むWindowsドライブ文字を使用できます。


1
追加のオプションを使用すると、SSHFSのパフォーマンス速度を大幅に向上させることができます。NFSの詳細と速度の比較については、この記事をご覧ください:admin-magazine.com/HPC/Articles/Sharing-Data-with-SSHFS
blendenzo

ねえ-私はあなたの指示(に調整yum install fuse-sshfs.x86_64)を使おうとしましたが、私がやったとき、私のmodprobe fuseためにヒューズグループを作成しませんでした。だから私がやったときusermod -a -G fuse [your-user]、私は得たusermod: group 'fuse' does not exist。お手伝いできますか?事前に感謝
両生類

lsmod | grep fuseは結果を返しますが/dev/fuse、ルートが所有しているmがあります。あなたは私がグループなしで大丈夫だと言っている?
両生類

はい、できますcrw-rw-rw-. 1 root root 10, 229 Nov 21 15:32 /dev/fuse
両生類

#apt-get install fuse-utils sshfsの後、「パッケージfuse-utilsが見つかりません」と表示されます。理由は何ですか?(Ubuntu 18.04.01)
Kvothe

7

Linuxでは、NFSを選択します(また、あなたのディストリビューションに適用可能な情報があるかもしれない、それについてのarchwiki の記事もチェックしてください)。sambaよりも高度な機能を備えています。nfsはステートレスであるため、ファイルをロック(つまり、同時アクセス)する必要がある場合は、lockdも調べる必要があります。ただし、smbよりも構成するのは困難です。sambaとnfsの両方を試して、どちらがニーズに合っているかを確認することをお勧めします。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.