server: OS: Fedora 7, ホスト名: ritto18
client: OS: Solaris 10 (Fedora 7 Xen のゲスト), ホスト名: s10ritto18
NIS や DHCP は使っていない。
/etc/hosts は手書きで追加。UID, GID は両ホストで同じにした。
やりたいこと: ホームディレクトリ(/home/tesigana) を NFSv4 で共有する。
○ Fedora 7 の設定
・NFS用のポートに穴を開ける
システム -> 管理 -> Firewall and SELinux (= system-config-securitylevel)
ファイアウォールのオプション(F) タブの NFS4 をチェックして、OK(O) を押す。
これで、/etc/sysconfig/iptables に次のエントリが追加される:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
・exportするディレクトリ
システム -> 管理 -> サーバー設定 -> NFS (= system-config-nfs)
追加で次を書き込んで、OK を押す:
基本(B) タブ:
ディレクトリ(D): /home
ホスト(H): s10ritto18
読み込み/書き込み(W) にチェック
一般オプション(G) タブ:
明示的なファイルシステムIDを設定:(I) に "0" を書き込む。
system-config-nfs を終了する。
これで、/etc/exports に次のエントリが追加される:
/home s10ritto18(rw,sync,fsid=0)
・デーモンの起動
システム -> 管理 -> サーバー設定 -> サービス (= system-config-services)
バックグランドのサービス(B) タブで、次の順でサービスを起動する:
rpcbind にチェックを入れて、開始
nfs にチェックを入れて、開始
・NFSv4 でマウントするだけだったら、次のポートは開けなくてよい:
portmap(sunrpc), lockd, mountd, statd
・NFSv4 でマウントするだけだったら、次のファイルの設定は不要:
/etc/hosts.allow, /etc/hosts.deny, /etc/sysconfig/nfs
○ Solaris 10 の設定
/etc/auto_home に次の行を書き込む:
* ritto18:/&
以上でおしまいです(のはずだなぁ)。
ritto18> ssh s10ritto18
パスワード:
Last login: Sat Jul 7 02:56:15 2007 from ritto18
Sun Microsystems Inc. SunOS 5.10 Generic January 2005
1 s10ritto18 > df -k .
ファイルシステム kbytes 使用済み 使用可能 容量 マウント先
ritto18:/tesigana 424338732 15677208 386758504 4% /home/tesigana
2 s10ritto18 >
○ 敗因
Linux の NFSv4 では、fsid=0 というオプションをつけてファイルシステムを
export する必要があるようです。そんなこと知るか ;-<
Fedora 7 の日本語 man exports には、fsid の記述はありません。
参考文献:
・CITI: Projects: NFS Version 4 Open Source Reference Implementation
<http://www.citi.umich.edu/projects/nfsv4/linux/using-nfsv4.html>
・Learning NFSv4 with Fedora Core 2
<http://www.vanemery.com/Linux/NFSv4/NFSv4-no-rpcsec.html>
・NFSv4 サーバーの基本設定
<http://www.white-stone.info/TL10S_Manual/user_guide/user_guide/nfssetup.html>
In Message-ID: <f6plo4$cnk$1...@news-est.ocn.ad.jp>
>Fedora 7 の Xen のゲストOSとして Solaris 10 を入れて、
>Fedora 7 上のホームディレクトリをその Solaris 10 と NFS で共有する...
Fedora 10 の VirtualBox のゲストOSとして OpenSolaris を入れて、
Fedora 10 上のホームディレクトリをその OpenSolaris と NFS で共有する...
ということの設定備忘録です。
(Solaris 10 ? 何それ? :-< あんなもん使えん ;-<)
server: OS: Fedora 10, ホスト名: ritto18
client: OS: OpenSolaris (Fedora 10 VirtualBox のゲスト), ホスト名: s11r18
DNS, NIS や DHCP は使っていない。
/etc/hosts は手書きで追加。
UID, GID は両ホストで /etc/passwd, /etc/group で同じにした。
やりたいこと: ホームディレクトリ(/home/tesigana) を NFSv4 で共有する。
○ Fedora 10 の設定
・NFS用のポートに穴を開ける
システム -> 管理 -> ファイアーウォール (= system-config-firewall)
信頼したサービス の NFS4 にチェックして、適用を押す。
これで、/etc/sysconfig/iptables に次のエントリが追加される:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT
・exportするディレクトリ
システム -> 管理 -> NFS (= system-config-nfs)
追加で次を書き込んで、OK を押す:
基本(B) タブ:
ディレクトリ(D): /home
ホスト(H): s10ritto18
読み込み/書き込み(W) にチェック
一般オプション(G) タブ:
明示的なファイルシステムIDを設定:(I) に "0" を書き込む。
system-config-nfs を終了する。
これで、/etc/exports に次のエントリが追加される:
/home s11r18(rw,sync,fsid=0)
「追加で次を書き込んで、OK を押す:」のとき、SELinux からこんな警告
が出るが、とりあえず NFSv4 は問題なく動いている:
SELinux is preventing rpc.idmapd (rpcd_t) "read write" unconfined_t.
メッセージからすると、この警告が元で問題が出るとしたら、
(DNS)ドメインを越えて NFS を張りめぐらすとか、disk quota を設定する
とかの場合になりそう。
今回は、そういうことはやっていないので、問題が出ないのだと思う。
・デーモンの起動
システム -> 管理 -> サービス (= system-config-services)
バックグランドのサービス(B) タブで、次の順でサービスを起動する:
rpcbind と nfs を有効(E) にする。
NFSv4 では rpcbind は不要なのだが、rpcbindサービスを起動しないと、
どういう訳か、マシンが立ち上がらない。
・NFSv4 でマウントするだけだったら、次のポートは開けなくてよい:
portmap(sunrpc), lockd, mountd, statd
・NFSv4 でマウントするだけだったら、次のファイルの設定は不要:
/etc/hosts.allow, /etc/hosts.deny, /etc/sysconfig/nfs
○ OpenSolaris の設定
/etc/auto_home に次の行を書き込む:
* ritto18:/&
以上でおしまいです。
ritto18> ssh s11r18
Password:
Last login: Tue Jan 27 22:23:49 2009 from ritto18
Sun Microsystems Inc. SunOS 5.11 snv_104 November 2008
s11r18> nfsstat -m `pwd`; ls -dl .
/home/tesigana from ritto18:/tesigana
Flags: vers=4,proto=tcp,sec=sys,hard,intr,link,symlink,acl,rsize=524288,wsize=524288,retrans=5,timeo=600
Attr cache: acregmin=3,acregmax=60,acdirmin=30,acdirmax=60
drwxr-xr-x+ 50 tesigana tesigana 4096 1月 27日 22:07 ./