對比分析各個NFS版本的特點
NFS是網絡文件系統。隨著網絡的不斷發展,這個協議版本也逐漸增多。現在已經有了4.1的***版本了。那么對于這些版本信息,你是否有點不知所措呢?沒關系,這里我們來對NFS版本內容進行一下解讀吧。
1、NFS—Network File System
2、由Sun Microsystems公司在1985年推出
3、是一種通用的文件共享方案
4、linux從1.2系列內核開始支持NFS版本2,在2.2.18版內核后支持NFS版本3 (我最近使用的2.14.3內核,發現已經支持NFS版本4了)
NFS協議從誕生到現在為止,已經有多個版本,如NFS V2(rfc1094),NFS V3(rfc1813)(***的版本是V4(rfc3010)
5、NFS版本3比NFS版本2運行速度更快,版本3的軟件一定能與版本2實現互操作
6、V3相對V2的主要區別:
1>文件尺寸
V2***只支持32BIT的文件大小(4G),而NFS V3新增加了支持64BIT文件大小的技術.
2>文件傳輸尺寸
V3沒有限定傳輸尺寸,V2最多只能設定為8k,可以使用-rsize and -wsize 來進行設定.
3>完整的信息返回
V3增加和完善了許多錯誤和成功信息的返回,對于服務器的設置和管理能帶來很大好處.
4>增加了對TCP傳輸協議的支持
V2只提供了對UDP協議的支持,在一些高要求的網絡環境中有很大限制,V3增加了對TCP協議的支持
5>異步寫入特性
異步寫入特性(v3新增加)介紹:
NFS版本3 能否使用異步寫入,這是可選擇的一種特性.NFS V3客戶端發發送一個異步寫入請求到服務器,在給客戶端答復之前服務器并不是必須要將數據寫入到存儲器中(穩定的).服務器能確定何時去寫入數據或者將多 個寫入請求聚合到一起并加以處理,然后寫入.客戶端能保持一個數據的copy以防萬一服務器不能完整的將數據寫入.當客戶端希望釋放這個copy的時候, 它會向服務器通過這個操作過程,以確保每個操作步驟的完整.異步寫入能夠使服務器去確定***的同步數據的策略.使數據能盡可能的同步的提交何到達.與V2 比較來看,這樣的機制能更好的實現數據緩沖和更多的平行(平衡).而NFS V2的SERVER在將數據寫入存儲器之前不能再相應任何的寫入請求.
6>改進了SERVER的mount性能
7>有更好的I/O WRITES 性能.
9>更強網絡運行效能,使得網絡運作更為有效.
10>更強的災難恢復功能.
7、V4相對V3的改進:
1>改進了INTERNET上的存取和執行效能
2>在協議中增強了安全方面的特性
3>增強的跨平臺特性
8、NFS運行在Sun的RPC協議之上,因此既可使用UDP也可用TCP作為下層的傳輸協議,但TCP具有更多的優勢,由客戶機決定選擇TCP還是UDP
linux上的大多數NFS版本服務器不支持用TCP來傳輸
9、NFS文件上鎖是個棘手問題,NFS服務器是無狀態的,它們不知道哪臺機器正在使用某個特定的文件
10、rquotad磁盤配額的方法已經過時
11、cookies與無狀態安裝
12、共享文件系統命名規則:***提供一種深層次的結構(如:/home/share1),保證客戶機的根目錄下不會混亂
13、安全:禁止訪問NFS使用的TCP和UDP 2049端口
阻止對portmap(該進程監聽TCP和UDP的111端口)守護進程的訪問
14、NFS版本的服務器啟動腳本名字
RedHat /etc/init.d/nfs
SuSE /etc/init.d/nfsserver
Debian /etc/init.d/nfs-kernel-server /etc/init.d/nfs-common
15、mountd服務用于安裝請求
nfsd是NFS運行的守護進程(如果客戶機要導出自身文件系統,也必須運行nfsd)
通過uptime查看平均負載,調整nfsd線程的數目
通過nfsstat檢查nfsd線程數量可能引發的性能問題
通過netstat -s監測UDP套接口溢出數目,增加nsfd線程數量使溢出數目降為0,再適當增加幾個
可以編輯啟動腳本來改變nfsd進程的數量
16、客戶機安裝文件系統和訪問文件的過程是完全不同的,使用不同的協議,由不同的守護進程來提供服務:
nfsd(或rpc.nfsd) 用于文件服務
mountd(或rpc.mountd) 用于安裝請求
portmap 使用SUN的RPC協議