2019年9月18日
  • Just another WordPress site

UbuntuネットワークにおいてNFSでファイル共有する方法

サイト管理者の自宅のネットワークでは、リアルのWindowsマシンは存在しません。Sambaも使いますが、ということで、Linux/UbuntuでNFSを使ってファイル共有した方が、ドキュメントをFTPであちこちやりとりしなくても済みます。RedHat Enterprise Linux系と少し異なるようなので、下記にまとめて置きました。

環境としては、

  1. 192.168.1.30がNFSサーバー
  2. 192.168.1.2がNFSクライアントサーバー
  3. いずれも、Ubuntuサーバーをデスクトップ化

という前提です。

ダウンロード

まず、NFSサーバーの方ですが、Ubuntuではnfs-kernel-serverパッケージがサーバー群で、デーモン名も同じくnfs-kernel-server。NFSデスクトップのパッケージはnfs-commonです。これらをそれぞれ192.168.1.30、192.168.1.2に$ sudo apt-getを使ってインストールします。サーバーのデーモンはパッケージをインストールすると自動的にスタートするようです。

次に、サーバー側で公開する共有ディレクトリを設定する必要がありますが、これは、/etc/exportsに書き込みます。セキュリティを気にせず、次のようにしました。

# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/home/michiaki/document 192.168.1.2(rw,sync,no_subtree_check)

設定をUbuntuに反映させるため、

$ sudo exportfs -ra

を実行する必要があります。
主なオプションは

主なオプション一覧。詳しくは “man exports” を参照してください。
ro   ファイルの読み込みのみを許可
rw   読み書きを許可
sync  書き込んだデータを共有ディレクトリに即座に書き込み
async   書き込んだデータを一旦サーバーのメモリに蓄積し、随時書き込み(既定値)
root_squash   クライアントからのアクセスを匿名ユーザー(nobody)にマッピング(既定値)
※ただし、途中でサーバーが再起動などするとデータが壊れる場合があるとのことです。
no_root_squash クライアントからのroot権限での接続を、そのままroot権限によるアクセスとして処理
all_squash   全てのアクセスをnobodyからのアクセスとして処理
anonuid=uid root_squashあるいはall_squashがオプションの場合にanonymousの利用者IDを指定
anongid=gid root_squashあるいはall_squashがオプションの場合にanonymousのグループIDを指定

次に、クライアント側で次のコマンドを実行すればファイル共有ができます。

$ mkdir /home/michiaki/document2
$ sudo mount -t nfs 192.168.1.30:/home/michiaki/document /home/michiaki/document2

共有の解除は、$ sudo umount /home/michiaki/document2で。

Linuxのデスクトップマシンが普及してくると、SambaとNFSの混在環境になるかも知れません。

 

コメントを残す

CAPTCHA