NFS Server 簡易設定與啟動 環境: VMware + NAT(192.168.116.0/24) OpenLinux 3.1.1 WS IP: 192.168.116.128 (open) Slackware 8.1 + Gaga IP: 192.168.116.129 (slack) GNU/Linux Debian 3.0 r0 IP: 192.168.116.130 (debian) RedHat 8.0 IP: 192.168.116.131 (redhat) Mandrake 9.0 IP: 192.168.116.132 (mdk) FreeBSD 4.7 IP: 192.168.116.133 (freebsd) Testing (RH 7.3) IP: 192.168.116.136 (testing) Windows2000 IP: 192.168.116.160 (p866) -- 前言 -- 要成為伺服器須安裝的套件: OL 3.1.1: nfs, nfs-lockd, nfs-server Debian 3.0: nfs-common (包含了 lockd. statd, showmount & nfsstat) Slack 8.1: nfs-utils 安裝方式: installpkg filename.tgz, removepkg filename.tgz -- 與 NFS 有關的檔案有: [伺服器] 指令檔: exportfs 相關檔: /usr/sbin/rpc.nfsd 相關檔: /usr/sbin/rpc.mountd 設定檔: /etc/exports 檢視檔: /var/lib/nfs/xtab 檢視檔: /proc/filesystems [客端機] 指令檔: mount 相關檔: /usr/sbin/amd 設定檔: /etc/am.d/conf 設定檔: /etc/am.d/localdev -- 操作 [伺服器] 1.預行: 以 root 執行 /etc/rc.d/init.d/portmap start 這個在 OpenLinux 預設是啟動的 Debian 則是在 /etc/init.d/portmap 2.模組: 要掛入 nfsd 模組 (可用 insmod nfsd 或 modprobe nfsd) 3.編輯: /etc/exports 設定檔 4.格式: [欲分享目錄] [可取得分享的客端電腦IP(權限)] ex: /mnt/exp_nfs 192.168.100.*(ro) 192.168.116.*(rw) ... 其中客端電腦要以 IP_ADDR 型式編寫, 可用萬用字元 每個 IP 間以空白區隔 5.啟動: 以 root 執行 /etc/rc.d/init.d/nfs start 停用: 以 root 執行 /etc/rc.d/init.d/nfs stop 重啟: 以 root 執行 /etc/rc.d/init.d/nfs restart *** OL, RH, MDK: /etc/rc.d/init.d/nfs start|stop|restart Debian: /etc/init.d/nfs-kernel-server start|stop|restart 若只是執行 /etc/init.d/nfs-common 只是成為客端機器, 硬要掛載會產生 尚未註冊 RPC 的訊息 Slack: /etc/rc.d/rc.nfsd start|stop|restart 會自動啟動 /usr/sbin 下的 exportfs -r, rpc.rquotad, rpc.nfsd 8, rpc.mountd, rpc.lockd, rpc.statd 等檔案 *** [客端機] 1.編輯: /etc/am.d/conf (設定自動掛載的相關資訊) 2.編輯: /etc/am.d/localdev (加入要掛上的FS) ->以上為設定自動掛載所需的設定檔<- 3.掛上: mount NFS_SERVER_IP_ADDR:/伺服器分享目錄名稱 /客端機掛入點 ex: mount 192.168.116.128:/mnt/exp_nfs /mnt/nfs -- 測試 [伺服器] exportfs -rv 會出現目前 NFS 允許 export 的狀況, 另 showmount 指令可以用以檢查目前可用的 NFS 分享 showmount -e 指令可列出某伺服器的分享資源有哪些 showmount -e [hostname|IP] [客端機] mount 192.168.116.128:/mnt/exp_nfs /mnt/nfs cd /mnt/nfs ls /mnt/nfs 若目錄裡的內容與主機的相同, 即表示成功了!! 另, 因為 mount 指令是給 root 使用的, 所以在客端機裡須先登入為 root -- 安全性設定 1.在 /etc/exports 裡設定權限及壓縮的相關設定 權限: IP_ADDR(ro) 或 IP_ADDR(rw) 壓縮: IP_ADD(rw,root_squash) 改完後執行 exports -a 以更新設定值, 當然, 重跑 nfsd 也可 2.設定客端機的安全選項 在客端機裡, root 執行 mount nosuid NFS_SERVER_IP_ADDR:/mnt/exp_nfs /mnt/nfs 是免除 suid 的安全性問題, 在 amd 預設也是有這個的 3.防火牆的設定 -- 問題解決(Troubleshoot) 1.從紀錄檔查看 NFS 的問題 grep nfsd /var/log/mesages | less 以分號為分隔, 第一欄為時間, 第二欄為NFS主機名稱, 第三欄即是訊息 可由第三欄的訊息得到相關的解決提示 2.了解一般 NFS 問題 (以下請參見 LNA book-1 p.2-38) a.檔案未出現在客端機的掛載目錄裡 b.無法掛載檔案系統或取得檔案的動作掛掉了, 或 timeout 了 c.存取問題 d.NFS Daemon 未啟動 e.遠端檔案系統存取狀況不良 -- 後記, 若在同一個掛載點上掛上超過一個掛載, 則最後一次掛載的為有效 umount 動作只會移除一次同一掛載點, 若在同一掛載點掛上三個位置, 則 必須 umount 三次才會將三次掛載都移除掉 本文內容將於 http://jhchen62.vbird.org/ 網頁中持續修正 祝順利!!