NFS & mount

     因爲NFS是一個RPC(Remote Procedure Call, 遠程過程調用)服務程序,所以在使用它之前,先要映射好端口——通過portmap設定. 比如: 某個NFS client發起NFS服務請求時, 它需要先得到一個端口(port). 所以它先通過portmap得到port number. (不僅NFS, 所有的RPC服務程序啓動之前, 都需要設定好portmap)
與NFS相關的幾個文件、命令
1, /etc/exports
對NFS卷的訪問是由exports來批准, 它枚舉了若干有權訪問NFS服務器上文件系統的主機名.
2, /sbin/exportfs
維護NFS的資源共享. 可以通過它重新設定 /etc/exports 的共享目錄, 卸載NFS Server共享的目錄或者重新共享等.
3, /usr/sbin/showmount
用在 NFS Server 端,而 showmount 則主要用在 Client 端. showmount 可以用來查看 NFS 共享的目錄資源.
4, /var/lib/nfs/xtab
NFS的記錄文檔: 通過它可以查看有哪些Client 連接到NFS主機的記錄.

下面這幾個並不直接負責NFS, 實際上它們負責所有的RPC
5, /etc/default/portmap
實際上, portmap負責映射所有的RPC服務端口, 它的內容非常非常之簡單(後面詳述)
6, /etc/hosts.deny
設定拒絕portmap服務的主機
7, /etc/hosts.allow
設定允許portmap服務的主機 (注:6、7未定義)


安裝NFS
Debian/Ubuntu上默認是沒有安裝NFS服務器的,首先要安裝NFS服務程序:
$ sudo apt-get install nfs-kernel-server

(安裝nfs-kernel-server時,apt會自動安裝nfs-common和portmap)
這樣,宿主機就相當於NFS Server。
     
配置NFS、配置portmap

方法1: 編輯/etc/default/portmap, 將 -i 127.0.0.1 去掉.     
// default is denoted
方法2: $ sudo dpkg-reconfigure portmap , 對Should portmap be bound to the loopback address? 選N.


配置/etc/hosts.deny

(禁止任何host(主機)能和你的NFS服務器進行NFS連接),加入:
### NFS DAEMONS

portmap:ALL

lockd:ALL

mountd:ALL

rquotad:ALL

statd:ALL

配置/etc/hosts.allow

允許那些你想要的主機和你的NFS服務器建立連接。下列步驟將允許任何IP地址以192.168.2開頭的主機(連接到NFS服務器上),也可以指定特定的IP地址。參看man頁 hosts_access(5), hosts_options(5)。加入:
### NFS DAEMONS

portmap: 10.103.4.
lockd: 10.103.4.
rquotad: 10.103.4.
mountd: 10.103.4.
statd: 10.103.4.

    /etc/hosts.deny 和 /etc/hosts.allow 設置對portmap的訪問. 採用這兩個配置文件有點類似"mask"的意思.現在/etc/hosts.deny中禁止所有用戶對portmap的訪問. 再在/etc/hosts.allow 中允許某些用戶對portmap的訪問.
    運行 $/etc/init.d/portmap restart 重啓portmap daemon.

配置/etc/exports
NFS掛載目錄及權限由/etc/exports文件定義

比如我要將將我的home目錄中的/home/zp/share目錄讓10.103.4*的IP共享, 則在該文件末尾添加下列語句:
/nfsroot/rootfs 10.103.4.*rw,sync,no_root_squash)
或者:/nfsroot/rootfs 10.103.4..0/24(rw,sync,no_root_squash)

10.103.4.*網段內的NFS客戶端能夠共享NFS服務器/nfsroot/rootfs目錄內容.且有讀,寫權限, 並且該用戶進入/nfsroot/rootfs目錄後的身份爲root
最好加上sync, 否則 $ exportfs -r 時會給出警告, sync是NFS的默認選項.

(運行 $ showmount -e 查看NFS server的export list.

若更改了/etc/exports, 運行 $ sudo exportfs -r 更新

運行 $/etc/init.d/nfs  restart 重啓nfs服務


/etc/exports實際上就是nfs服務器的核心配置文件了. 鳥哥的Linux私房菜列舉了一些exports文件的寫法.


測試NFS

可以嘗試一下掛載本地磁盤(假設本地主機IP地址爲:10.103.4.216,將/nfsroot/rootfs掛載到/mnt)
$ mount -t nfs 10.103.4.216:/nfsroot/rootfs /mnt
運行 $ls /mnt 看看結果
卸載 $umount /mnt
2011.5.25
發佈了10 篇原創文章 · 獲贊 4 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章