NFS によるファイルシステムのマウント設定例
[履歴] (2015/04/22 10:15:46)
最近の投稿
注目の記事

概要

NFS (Network File System) は SMB/CIFS,AFP と同様に NAS (Network Attached Storage) を実現するためのプロトコルです。NFS サーバのファイルシステムを NFS クライアントがマウントして利用します。設定例を紹介します。

サーバ側の設定 (192.168.50.1)

インストールされていなければ NFS を yum で導入します。

$ sudo yum install nfs-utils

共有ディレクトリを作成します。所有者は nfsnobody としておくと後々都合がよいです。

$ sudo mkdir -p /data/share
$ sudo chown nfsnobody: /data/share

設定ファイルを編集します。

$ sudo vi /etc/exports
/data/share 192.168.50.0/24(rw,sync,all_squash)
  • 192.168.50.0/24 からのみアクセスを許可
  • rw (読み込みと書き込み) を許可
  • sync と設定して非同期 (async) ではなく即座に書き込み
  • all_squash と設定してすべてのクライアントは nfsnobody としてアクセス

NFS サービスを自動起動に登録してサービス開始します。

$ sudo service nfs start
$ sudo chkconfig nfs on
$ sudo chkconfig --list | grep nfs

2049 番ポートをリッスンしていることが確認できます。

$ sudo netstat -ltunp | grep 2049
$ sudo netstat -ltup | grep nfs

クライアント側の設定 (192.168.50.2)

マウントポイントを作成します。

$ sudo mkdir -p /data/192.168.50.1

マウントします。少々時間がかかります。

$ sudo mount -t nfs 192.168.50.1:/data/share /data/192.168.50.1

処理が戻ってきたらマウントされていることを確認します。

$ df -h
Filesystem                Size Used  Avail Use% Mounted on
...
192.168.50.1:/data/share  38G  676M  36G   2%   /data/192.168.50.1

ディレクトリおよびファイルを作成してみます。

$ mkdir /data/192.168.50.1/dir
$ touch /data/192.168.50.1/dir/file.txt

所有者 nfsnobody として作成されていることが確認できます。

192.168.50.1$ ls -l /data/share/
drwxrwxr-x. 2 nfsnobody nfsnobody 4096 Apr 21 16:00 dir

192.168.50.1$ ls -l /data/share/dir/
-rw-rw-r--. 1 nfsnobody nfsnobody 0 Apr 21 16:00 file.txt

サーバ側からは nfsnobody ユーザとならないため書き込みできません。

192.168.50.1$ touch /data/share/file2.txt
touch: cannot touch `/data/share/file2.txt': Permission denied

アンマウントするには以下のコマンドを発行します。

$ sudo umount /data/192.168.50.1

再起動後に自動でマウントする

ここまでの設定だけでは、再起動するとマウントが外れるため再度 mount コマンドを発行しなければなりません。再起動時に自動でマウントするためには /etc/fstab を編集します。

/etc/fstab

192.168.50.1:/data/share /data/192.168.50.1 nfs defaults 0 0
関連ページ
    概要 MySQL には binlog を出力する機能があります。binlog はこちらで紹介したレプリケーションなどで利用されます。binlog のフォーマットには STATEMENT,ROW,MIXED の三種類があります。MIXED は残り二つの混在モードのようなものですので STATEMENT,ROW の二つについて具体的に紹介します。検証用 MySQL のバージョンは 5.5 です。