トップ 一覧 置換 検索 ヘルプ RSS ログイン

NFSを使うの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/367usenfs.html

 Linuxが動作する別のPCのディレクトリを共有するときは、NFS(Network File System)を使うといい。NFSを利用するには、共有するディレクトリを持っているLinux(NFSサーバ)の設定と、共有ディレクトリにアクセスするLinux(NFSクライアント)の設定が必要になる。

 最初にNFSサーバの設定を行う。NFSの設定は、/etc/exportsというファイルで行う。初期設定では、/etc/exportsには何も記述されていない。書式は、以下のようになる。
 共有するディレクトリ    公開先(書き込みの可否)

 例えば、同一のLAN(192.168.0.0〜192.168.0.255)に接続されたPCに、/home/projectというディレクトリに対するアクセスを読み書き可で許可する場合は、以下のようにする。
 /home/project    192.168.0.0/255.255.255.0 (rw)

 公開先は、ドメイン名やホスト名も指定できる。また、書き込みを禁止する場合は「(rw)」を「(ro)」に変えればいい。
 /home/project    *.foo.co.jp (rw) ←*.foo.co.jpに読み書きを許可
 /home/project    host-a (ro) ←host-aに読み込みのみを許可

 設定が終わったら、NFSを再起動する(起動していない場合は起動する)。また、システム起動時にNFSが実行されない場合は、実行するように設定変更を行う。
 # service nfs restart
 Stopping NFS mountd:                                       [  OK  ]
 Stopping NFS daemon:                                       [  OK  ]
 Stopping NFS services:                                     [  OK  ]
 Stopping NFS quotas:                                       [  OK  ]
 Starting NFS services:                                     [  OK  ]
 Starting NFS quotas:                                       [  OK  ]
 Starting NFS mountd:                                       [  OK  ]
 Starting NFS daemon:                                       [  OK  ]
 # chkconfig nfs on

 次に、NFSクライアントの設定を行う。設定といっても、共有ディレクトリをマウントする作業だ。NFSサーバの/home/projectをNFSクライアントの/projectにマウントするには、以下のコマンドを実行する。もし、マウントポイント(この場合は/project)がない場合は、あらかじめ作成しておく。
 # mount -t nfs 192.168.0.7:/home/project /project ←NFSサーバが192.168.0.7の場合
 # cd /project/
 # ls
 psyche-i386-disc1.iso

 システム起動時に自動的に/home/projectをマウントしたい場合は、NFSクライアントの/etc/fstabに次の設定を追加する。
 192.168.0.7:/home/project     /project      nfs    defaults        0 0

!全てのホストを許可する場合
  /home/project   * (rw)

!exports の設定を反映させる
 # exportfs -ra

!ファイヤーウォール等を使用している場合
 /etc/sysconfig/nfs 
にあるポートをコメントインする。
 RQUOTAD_PORT=875
 LOCKD_TCPPORT=32803
 LOCKD_UDPPORT=32769
 MOUNTD_PORT=892
 STATD_PORT=662
 STATD_OUTGOING_PORT=2020

下記ポートの通信を許可する
 tcp/111
 udp/111
 tcp/662
 udp/662
 tcp/875
 udp/875
 tcp/892
 udp/892
 tcp/2049
 udp/2049
 tcp/32803
 udp/32769

!サービスの起動に失敗する
ときどき、そんなことがある。状況にもよるが
 /etc/init.d/avahi-daemon restart
あたりで直ることもがある

!exports のオプション
■一般的なオプション
,オプション名,説明
,ro,読み込み専用でマウント
,rw,読み書きを許可してマウント
,async,ディレクトリ内のファイルは非同期に反映される(デフォルト)
,sync,asyncと反対。ファイル更新が直ちに行われる
,wdelay,複数の書き込み処理を1度に行う。NFSサーバ側での更新を一括して行う
,no_wdelay,wdelayとは反対。syncオプションと併用する
,noaccess,指定したディレクトリを共有しない

■ユーザIDのマッピングに関するオプション
,オプション,説明
,all_squash,すべてのUID、GIDを匿名アカウントへマッピング(nfsnobody)
,anonuid,すべてのUIDを匿名アカウントへマッピング
,anongid,すべてのGIDを匿名グループへマッピング(nfsnobody)
,squash_uids,指定したUIDのユーザをすべて匿名アカウントへマッピング
,squash_gids,指定したGIDユーザをすべて匿名グループへマッピング
,map_identity,UID、GIDに関する変換を行わない。
,map_static,UID、GIDに関する変換を定義するマップファイルを指定する
,root_squash,rootアカウントをnfsnobodyへ変換する(デフォルト)
,no_root_squah,root_squashの反対。rootアカウントをroot(サーバ側)へマッピング
map_identity か no_root_squah にすれば手っ取り早く使える。
map_identity は、 root の uid を変換しようとするので注意

{{category2 OS,Linux}}