◎敘述:
透過NFS檔案分享,我們可以將A機器上(server 端)的目錄或檔案系統,開放給B機器(client端)掛載。
讓A機器和B機器共享檔案.
常見用途舉例:
1.共用光碟機.
2.共用/home資料夾.讓所有的使用者管理檔案.
3.共用/usr/ports/distfiles資料夾,就不用每台電腦都要去抓同一檔案.
4.讓資源高的機器處理資源低機器的資料. (這也是我重寫NFS架設的原因..QQ)
◎設定 NFS 伺服端:
所謂NFS伺服端就是要提供其他機器目錄或是檔案系統的機器.
以 4.9-RELEASE 為例說明,跟以往我們安裝NFS不同的差別是要多啟動portmap服務.
a.修改 /etc/rc.conf : (從 /etc/default/rc.conf 找到相關部分)
新增內容:
nfs_server_enable="YES" # This host is an NFS server (or NO).
portmap_enable="YES" # Run the portmapper service (YES/NO).
single_mountd_enable="YES" # Run mountd only (or NO).
b.編輯 /etc/exports 檔案: (此檔案說明要分享檔案及可存取的機器)
ex:將 /backup 分享,允許 192.168.0.10 存取(root身份)。
/usr/home/netflow/raw -maproot=root 192.168.0.10
若想看看其它範例和詳細寫法,exports(5)。
常見問題:
若想要將 /usr/a 和 /usr/b 允許 192.168.0.10 存取(root身份)。
很直覺地修改/etc/exports檔案:
/usr/a -maproot=root 192.168.0.10
/usr/b -maproot=root 192.168.0.10
這樣是會失敗的.. /var/log/message 會出現 can't change attributes for ..的錯誤訊息.
原因在於 這兩個分享區屬於同一磁區,且針對同一clinet (192.168.0.10)所以必須合併為一行.
/usr/a /usr/b -maproot=root 192.168.0.10 | c.啟動server端
存檔後 重新開機 或是 手動啟動server端
# nfsd -u -t -n 4
# /usr/sbin/portmap -d
# mountd -r
(一定要先編輯完 /etc/exports 才能啟動NFS server喔)
◎設定client端
所謂client端指的是要去存取 (mount) 他人提供出來的目錄或檔案系統的機器。
FreeBSD:
把 /etc/default/rc.conf 中,有關client的部分抄入 /etc/rc.conf,也就是下面這行
nfs_client_enable="YES" # This host is an NFS client (or NO).
存檔後重開機或是手動啟動client端
# nfsiod -n 4
Redhat Linux: 不用修改.(我沒有很詳細測試..因為手邊的機器都不用改..^^)
◎Client端掛載遠端的目錄
#mount -v ohaha.ks.edu.tw:/backup /home/backup
說明:
ohaha.ks.edu.tw : 伺服端ip或是FQDN,若單純使用hostname,
建議在clinet端的/etc/hosts加入伺服端紀錄.
/backup : 伺服端分享資料夾
/home/backup : 本機掛入點
◎讓client端每次開機都自動掛上NFS
手動測試正常可以掛載寫入資料後,寫入 /etc/fstab 檔案
# Device Mountpoint FStype Options Dump Pass#
ohaha:/backup /backup nfs rw 2 2
◎參考資料:
export(5) nfsd(8) portmap(8)
|