一、NFS服務簡介
NFS 是Network File System的縮寫,即網絡文件系統。一種使用於分散式文件系統的協定,由Sun公司開發,於1984年向外公布。功能是通過網絡讓不同的機器、不同的操作系統能夠彼此分享個別的數據,讓應用程序在客戶端通過網絡訪問位於服務器磁盤中的數據,是在類Unix系統間實現磁盤文件共享的一種方法。
NFS 的基本原則是“容許不同的客戶端及服務端通過一組RPC分享相同的文件系統”,它是獨立於操作系統,容許不同硬件及操作系統的系統共同進行文件的分享。
NFS在文件傳送或信息傳送過程中依賴於RPC協議。RPC,遠程過程調用 (Remote Procedure Call) 是能使客戶端執行其他系統中程序的一種機制。NFS本身是沒有提供信息傳輸的協議和功能的,但NFS卻能讓我們通過網絡進行資料的分享,這是因為NFS使用了一些其它的傳輸協議。而這些傳輸協議用到這個RPC功能的。可以說NFS本身就是使用RPC的一個程序。或者說NFS也是一個RPC SERVER。所以只要用到NFS的地方都要啟動RPC服務,不論是NFS SERVER或者NFS CLIENT。這樣SERVER和CLIENT才能通過RPC來實現PROGRAM PORT的對應。可以這麼理解RPC和NFS的關系:NFS是一個文件系統,而RPC是負責負責信息的傳輸。
二、系統環境
系統平台:CentOS release 5.8 (Final)
NFS Server IP:42.51.155.219
防火牆已關閉
[root@htuidc ~]# setenforce 0
[root@htuidc ~]# service iptables stop
/iptables: Firewall is not running.
SELINUX=disabled
三、安裝NFS服務
[root@htuidc ~]# yum install nfs-utils-* portmap-* -y

四、NFS系統守護進程
nfsd:它是基本的NFS守護進程,主要功能是管理客戶端是否能夠登錄服務器;
mountd:它是RPC安裝守護進程,主要功能是管理NFS的文件系統。當客戶端順利通過nfsd登錄NFS服務器後,在使用NFS服務所提供的文件前,還必須通過文件使用權限的驗證。它會讀取NFS的配置文件/etc/exports來對比客戶端權限。
portmap:主要功能是進行端口映射工作。當客戶端嘗試連接並使用RPC服務器提供的服務(如NFS服務)時,portmap會將所管理的與服務對應的端口提供給客戶端,從而使客戶可以通過該端口向服務器請求服務。
五、NFS服務器的配置
NFS服務器的配置相對比較簡單,只需要在相應的配置文件中進行設置,然後啟動NFS服務器即可。
NFS的常用目錄
/etc/exports NFS服務的主要配置文件
/usr/sbin/exportfs NFS服務的管理命令
/usr/sbin/showmount 客戶端的查看命令
/var/lib/nfs/etab 記錄NFS分享出來的目錄的完整權限設定值
/var/lib/nfs/xtab 記錄曾經登錄過的客戶端信息
NFS服務的配置文件為 /etc/exports,這個文件是NFS的主要配置文件,不過系統並沒有默認值,所以這個文件不一定會存在,可能要使用vim手動建立,然後在文件裡面寫入配置內容。
[root@htuidc ~]# vi /etc/exports
/web *(rw,no_root_squash) #掛載普通文件 *表示所有IP
/yanghongfei 42.51.0.0/16(rw) #掛載硬盤 只允許42.51.0.0這個網段
創建這2個文件夾 ###後面要用到

六、NFS服務器的啟動與停止
[root@htuidc ~]# service nfs restart
[root@htuidc ~]# /etc/init.d/portmap restart
設置NFS服務器的自動啟動狀態
[root@htuidc /]# chkconfig --level 35 portmap on
[root@htuidc /]# chkconfig --level 35 nfs on
[root@htuidc /]# chkconfig --list portmap
portmap 0:off 1:off 2:off 3:on 4:on 5:on 6:off
[root@htuidc /]# chkconfig --list nfs
nfs 0:off 1:off 2:off 3:on 4:off 5:on 6:off
七、NFS客戶端掛載
1客戶端創建掛載點
[root@htuidc ~]# mkdir /web /yanghongfei

[root@htuidc /]# mount -t nfs 42.51.155.219:/web /web/
掛載普通文件

2.掛載系統磁盤 查看磁盤
sdb/32G 首先分區格式化
[root@htuidc ~]# fdisk -l

[root@htuidc ~]# fdisk /dev/sdb

然後格式化
[root@htuidc ~]# mkfs -t ext3 /dev/sdb1

將格式化的/dev/sdb1掛載到新建的yanghongfei文件上
[root@htuidc /]# mount -t ext3 /dev/sdb1 /yanghongfei/
####注意: 這裡是服務器端本地掛載

3.接著轉到客戶端 掛載磁盤
[root@htuidc /]# mount -t nfs 42.51.155.219:/yanghongfei/ yanghongfei/
#######可以看出 掛載到了磁盤32G

服務器端使用showmount命令查詢NFS的共享狀態
[root@htuidc /]# showmount -e localhost

客戶端查看NFS掛載狀態
[root@htuidc /]# showmount -e 42.51.155.219 ##IP為服務端IP

八、啟動自動掛載nfs文件系統
vi /etc/rc.local ###服務器端

vi /etc/fatab ###服務器端

vi /etc/rc.local ###客戶端
第一個為普通文件
第二個為帶磁盤的掛載

vi /etc/fatab ###客戶端

客戶端重啟測試

剛開機查看可以自動掛載上
[root@htuidc ~]# df -hT