安裝NFS服務,需要安裝nfs-utils和rpcbind,NFS的RPC服務,在Centos5.X下名稱爲portmap,在Centos6.X下名稱爲rcpbind。
1.查詢nfs服務和rpc服務是否安裝
[root@nfs-server ~]# rpm -qa|grep nfs [root@nfs-server ~]# rpm -qa|grep rpcbind
2.使用YUM安裝nfs和rpcbind
[root@nfs-server ~]# yum -y install nfs*
3.啓動nfs服務,在啓動nfs服務之前,一定要先啓動rpcbind,然後再啓動nfs
[root@nfs-server ~]# /etc/init.d/rpcbind start
查看rpc信息
[root@nfs-server ~]# rpcinfo -p localhost program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper
[root@nfs-server ~]# /etc/init.d/nfs start Starting NFS services: [ OK ] Starting NFS quotas: [ OK ] Starting NFS mountd: [ OK ] Starting NFS daemon: [ OK ] Starting RPC idmapd: [ OK ]
啓動nfs服務以後,再查看rpcinfo信息。
[root@nfs-server ~]# rpcinfo -p program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 100011 1 udp 875 rquotad 100011 2 udp 875 rquotad 100011 1 tcp 875 rquotad 100011 2 tcp 875 rquotad 100005 1 udp 35606 mountd 100005 1 tcp 38238 mountd 100005 2 udp 33761 mountd 100005 2 tcp 41083 mountd 100005 3 udp 47608 mountd 100005 3 tcp 35056 mountd 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100227 2 tcp 2049 nfs_acl 100227 3 tcp 2049 nfs_acl 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100227 2 udp 2049 nfs_acl 100227 3 udp 2049 nfs_acl 100021 1 udp 34627 nlockmgr 100021 3 udp 34627 nlockmgr 100021 4 udp 34627 nlockmgr 100021 1 tcp 46375 nlockmgr 100021 3 tcp 46375 nlockmgr 100021 4 tcp 46375 nlockmgr
4.配置共享目錄/share,允許192.168.10.*訪問
[root@nfs-server ~]# mkdir /share //創建共享目錄 [root@nfs-server ~]# ll -d /share/ //查看目錄信息 drwxr-xr-x. 2 root root 4096 Dec 30 13:55 /share/ [root@nfs-server ~]# chown -R nfsnobody:nfsnobody /share/ //更改目錄所屬用戶和所屬組 [root@nfs-server ~]# ll -d /share/ drwxr-xr-x. 2 nfsnobody nfsnobody 4096 Dec 30 13:55 /share/ [root@nfs-server ~]# cat /etc/exports /share 192.168.10.*(rw,sync)
5.查看NFS共享目錄信息
[root@nfs-server ~]# showmount -e 192.168.10.1 Export list for 192.168.10.1: /share 192.168.10.*
6.NFS客戶端掛載共享目錄/share
[root@nfs-server ~]# mount -t nfs 192.168.10.1:/share /mnt [root@nfs-server ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_software-lv_root 18G 1.5G 15G 9% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 477M 28M 424M 7% /boot 192.168.10.1:/share/ 18G 1.5G 15G 9% /mnt
7.NFS客戶端排錯思路
測試客戶端與服務端網絡是否可否,如在客戶端使用ping IP地址
在服務端自己掛載看看是否能夠正常掛載
檢查服務端防火牆規則,初學者可以選擇直接關閉防火牆
8.管理NFS共享目錄
exportfs命令可以導出NFS服務器上的共享目錄、顯示共享目錄,或者不導出共享目錄。
命令語法:
exportfs [選項] [目錄]
選項 | 含義 |
-a | 導出或不導出所有的目錄 |
-v | 顯示導出列表的同時,也顯示導出選項的列表 |
-u | 不導出指定的目錄。當和-a選項一起時,不導出所有的目錄 |
-f | 指定一個新的導出文件,而不是/etc/exports文件 |
-r | 重新導出所有的目錄 |
-o<選項> | 指定導出選項列表 |
查看NFS共享目錄信息
showmount [選項] [NFS服務器]
選項 | 含義 |
-a | 同時顯示客戶端的主機名或IP地址以及所掛載的目錄 |
-e | 顯示NFS服務器的導出列表 |
-d | 只顯示已經被掛載的NFS共享目錄信息 |
9.NFS配置文件權限參數說明
參數名稱 | 參數用途 |
rw | 共享目錄具有讀寫權限 |
ro | 共享目錄具有隻讀權限 |
sync | 請求或寫入數據時,數據同步寫入到NFS Server硬盤中。 數據安全不會丟,缺點,性能比不啓用該參數要差。 |
async | 請求或寫入數據時,先返回請求,再將數據寫入到內存緩存和硬盤中, 即異步寫入數據。此參數可以提升NFS性能,但是會降低數據的安全。 因此,一般情況下建議不用,如果NFS處於瓶頸狀態,並且允許數據丟 失的話可以打開此參數提升NFS性能。 寫入時數據會先到內存緩衝區,等硬盤有空檔再寫入磁盤,這樣可以提 升寫入效率!風險爲若服務器宕機或不正常關機,會損失緩衝區未寫入 硬盤的數據(解決辦法:服務器主板電池或加UPS不間斷電源)! |
root_squash | root用戶的所有請求映射成如nfsnobody(匿名)用戶一樣的權限 |
no_root_squash | 關閉root_squash |
all_squash | 映射所有的UID和GID爲匿名用戶 |
no_all_squash | 保留共享文件的UID和GID(默認) |
anonuid | 指定NFS服務器/etc/passwd文件中匿名用戶的UID |
anongid | 指定NFS服務器/etc/passwd文件中匿名用戶的GID |
secure | NFS通過1024以下的安全TCP/IP端口發送 |
insecure | NFS通過1024以上的端口發送 |
wdelay | 如果多個用戶要寫入NFS目錄,則歸組寫入(默認) |
no_wdelay | 如果多個用戶要寫入NFS目錄,則立即寫入,當使用async時,不需要設置 |
subtree_check | 如果共享/usr/bin之類的子目錄時,強制NFS檢查父目錄的權限 |
no_subtree_check | 和subtree_check相對,不檢查父目錄權限 |
hide | 在NFS共享目錄中不共享其子目錄 |
nohide | 共享NFS目錄的子目錄 |
mp | 如果它已經成功掛載,那麼使得它只導出一個目錄 |
fsid | NFS需要能夠識別每個它導出的文件系統。通常情況下它會爲文件系統使用一 個UUID,或者該設備保持文件系統的設備號 |