1 NFS簡介
NFS 是Network File System的縮寫,即網絡檔案系統。一種使用于分散式檔案系統的協定,由Sun公
司開發,于1984年向外公布。功能是通過網絡讓不同的機器、不同的作業系統能夠彼此分享個别的資料,
讓應用程式在用戶端通過網絡通路位于伺服器磁盤中的資料,是實作磁盤檔案共享的一種方法。
NFS 的基本原則是“容許不同的用戶端及服務端通過一組RPC分享相同的檔案系統”,它是獨立于操作
系統,容許不同硬體及作業系統的系統共同進行檔案的分享。
2 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手動建立,然後在檔案裡面寫入配置内容。
/etc/exports檔案内容格式:
<輸出目錄> [用戶端1 選項(通路權限,使用者映射,其他)] [用戶端2 選項(通路權限,使用者映射,其他)]
輸出目錄是指NFS系統中需要共享給客戶機使用的目錄;
用戶端是指網絡中可以通路這個NFS輸出目錄的計算機;
選項用來設定輸出目錄的通路權限、使用者映射等。
NFS主要有3類選項:
通路權限選項
設定輸出目錄隻讀:ro
設定輸出目錄讀寫:rw
使用者映射選項
all_squash:将遠端通路的所有普通使用者及所屬組都映射為匿名使用者或使用者組(nfsnobody);
no_all_squash:與all_squash取反(預設設定);
root_squash:将root使用者及所屬組都映射為匿名使用者或使用者組(預設設定);
no_root_squash:與rootsquash取反;
anonuid=xxx:将遠端通路的所有使用者都映射為匿名使用者,并指定該使用者為本地使用者(UID=xxx);
anongid=xxx:将遠端通路的所有使用者組都映射為匿名使用者組賬戶,并指定該匿名使用者組賬戶為本地使用者組賬戶(GID=xxx);
其它選項
secure:限制用戶端隻能從小于1024的tcp/ip端口連接配接nfs伺服器(預設設定);
insecure:允許用戶端從大于1024的tcp/ip端口連接配接伺服器;
sync:将資料同步寫入記憶體緩沖區與磁盤中,效率低,但可以保證資料的一緻性;
async:将資料先儲存在記憶體緩沖區中,必要時才寫入磁盤;
wdelay:檢查是否有相關的寫操作,如果有則将這些寫操作一起執行,這樣可以提高效率(預設設定);
no_wdelay:若有寫操作則立即執行,應與sync配合使用;
subtree:若輸出目錄是一個子目錄,則nfs伺服器将檢查其父目錄的權限(預設設定);
no_subtree:即使輸出目錄是一個子目錄,nfs伺服器也不檢查其父目錄的權限,這樣可以提高效率;
3 執行個體解析
服務端配置192.168.1.6
通過nfs服務,把主機192.168.1.6的/home/web與/home/data共享出去
[root@localhost ~]# yum install -y nfs-utils rpcbind #安裝nfs和rpcbind
[root@localhost ~]# rpm -qa|grep nfs-utils #檢視安裝結果
nfs-utils-lib-1.1.5-11.el6.x86_64
nfs-utils-1.2.3-70.el6_8.2.x86_64
[root@localhost ~]# rpm -qa|grep rpcbind #檢視安裝結果
rpcbind-0.2.0-12.el6.x86_64
[root@localhost ~]# mkdir /home/{web,data} #建立共享目錄
[root@localhost ~]# chmod a+w /home/web #給共享目錄添加寫權限
[root@localhost ~]# vim /etc/exports #添加配置檔案内容
/home/web 192.168.1.5(rw,async,no_root_squash)
/home/data 192.168.1.5(ro,sync)
[root@localhost ~]# /etc/init.d/rpcbind restart #重新開機rpc
停止 rpcbind: [确定]
正在啟動 rpcbind: [确定]
[root@localhost ~]# /etc/init.d/nfs restart #重新開機nfs
關閉 NFS 守護程序: [失敗]
關閉 NFS mountd: [失敗]
關閉 NFS quotas: [失敗]
啟動 NFS 服務: [确定]
關掉 NFS 配額: [确定]
啟動 NFS mountd: [确定]
啟動 NFS 守護程序: [确定]
正在啟動 RPC idmapd: [确定]
[root@localhost ~]# chkconfig rpcbind on #添加到開機啟動
[root@localhost ~]# chkconfig nfs on
用戶端操作192.168.1.5
[root@localhost ~]# showmount -e 192.168.1.6 #檢視伺服器端清單
Export list for 192.168.1.6:
/home/data 192.168.1.5
/home/web 192.168.1.5
[root@localhost ~]# mkdir /web #建立挂載目錄
[root@localhost ~]# mkdir /data
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 18344828 1017808 16388476 6% /
tmpfs 502384 0 502384 0% /dev/shm
/dev/sda1 95054 27170 62764 31% /boot
[root@localhost ~]# mount 192.168.1.6:/home/web /web #将服務端的共享挂載
[root@localhost ~]# mount 192.168.1.6:/home/data /data
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 18344828 1017812 16388472 6% /
tmpfs 502384 0 502384 0% /dev/shm
/dev/sda1 95054 27170 62764 31% /boot
192.168.1.6:/home/web 18244480 6994432 10316544 41% /web
192.168.1.6:/home/data 18244480 6994432 10316544 41% /data
[root@localhost ~]# echo "192.168.1.6:/home/web /web nfs defaults 0 0" >> /etc/fstab
設定開機挂載
[root@localhost ~]# echo "192.168.1.6:/home/data /data nfs defaults 0 0" >> /etc/fstab
[root@localhost ~]# chmod a+w /web #添加寫權限
[root@localhost ~]# cd /web
[root@localhost web]# ls
[root@localhost web]# mkdir test
[root@localhost web]# touch text
[root@localhost web]# ll
總用量 4
drwxr-xr-x. 2 root root 4096 1月 2 16:18 test
-rw-r--r--. 1 root root 0 1月 2 16:18 text
回到用戶端192.168.1.6檢視
[root@localhost ~]# cd /home/web 說明一切正常
test text
本文轉自super李導51CTO部落格,原文連結: http://blog.51cto.com/superleedo/1888324,如需轉載請自行聯系原作者