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 は、 root の uid を変換しようとするので注意
[カテゴリ: OS > Linux]
[通知用URL]
Tweet
最終更新時間:2011年08月04日 23時49分21秒