NFS服務器的架構和優化
在對NFS服務進行建設的時候,我們知道,打造一個NFS服務器需要有一個客戶端和一個服務端,然后兩者才能夠相連進行通信使用。這里我們就來了解一下客戶端以及服務器端的一些設置,然后再進行一下優化的講解。
CLIENT 和SERVER的具體操作和設置
在講NFS SERVER的運作之前先來看一些與NFS SERVER有關的東西:
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是負責負責信息的傳輸.
NFS服務器需要啟動的DAEMONS
pc.nfsd:主要復雜登陸權限檢測等.
rpc.mountd:負責NFS的檔案系統,當CLIENT端通過rpc.nfsd登陸SERVER后,對clinet存取server的文件進行一系列的管理
NFS SERVER在REDHAT LINUX平臺下一共需要兩個套件:nfs-utils和PORTMAP
nfs-utils:提供rpc.nfsd 及 rpc.mountd這兩個 NFS DAEMONS的套件
portmap:NFS其實可以被看作是一個RPC SERVER PROGRAM,而要啟動一個 RPC SERVER PROGRAM,都要做好PORT的對應工作,而且這樣的任務就是由PORTMAP來完成的.通俗的說PortMap就是用來做 PORT的mapping的.
NFS服務器調優
調優的步驟:
1、測量當前網絡、服務器和每個客戶端的執行效率.
2、分析收集來的數據并畫出圖表.查找出特殊情況,例如很高的磁盤和CPU占用、已經高的磁盤使用時間
3、調整服務器
4、重復第一到第三步直到達到你渴望的性能
與 NFS性能有關的問題有很多,通常可以要考慮的有以下這些選擇:
WSIZE,RSIZE參數來優化NFS的執行效能
WSIZE、 RSIZE對于NFS的效能有很大的影響.
wsize和rsize設定了SERVER和CLIENT之間往來數據塊的大小,這兩個參數的合理設定與很多方面有關,不僅是軟件方面也有硬件方面的因素會影響這兩個參數的設定(例如LINUX KERNEL、網卡,交換機等等).
下面這個命令可以測試NFS的執行效能,讀和寫的效能可以分別測試,分別找到合適的參數.對于要測試分散的大量的數據的讀寫可以通過編寫腳本來進行測試.在每次測試的時候最好能重復的執行一次MOUNT和unmount.
time dd if=/dev/zero of=/mnt/home/testfile bs=16k count=16384
用于測試的WSIZE,RSIZE最好是1024的倍數,對于NFS V2來說8192是RSIZE和WSIZE的最大數值,如果使用的是 NFS V3則可以嘗試的最大數值是32768.
如果設置的值比較大的時候,應該最好在CLIENT上進入mount上的目錄中,進行一些常規操作(LS,VI等等),看看有沒有錯誤信息出現.有可能出現的典型問題有LS的時候文件不能完整的列出或者是出現錯誤信息,不同的操作系統有不同的最佳數值,所以對于不同的操作系統都要進行測試.
設定最佳的NFSD的COPY數目.
linux中的NFSD的COPY數目是在/etc/rc.d/init.d/nfs這個啟動文件中設置的,默認是8個NFSD,對于這個參數的設置一般是要根據可能的CLIENT數目來進行設定的,和WSIZE、RSIZE一樣也是要通過測試來找到最近的數值.
UDP and TCP
可以手動進行設置,也可以自動進行選擇.
mount -t nfs -o sync,tcp,noatime,rsize=1024,wsize=1024 EXPORT_MACHINE:/EXPORTED_DIR /DIR
UDP有著傳輸速度快,非連接傳輸的便捷特性,但是UDP在傳輸上沒有TCP來的穩定,當網絡不穩定或者黑客入侵的時候很容易使NFS服務器的 Performance 大幅降低甚至使網絡癱瘓.所以對于不同情況的網絡要有針對的選擇傳輸協議.nfs over tcp比較穩定,nfs over udp速度較快.在機器較少網絡狀況較好的情況下使用UDP協議能帶來較好的性能,當機器較多,網絡情況復雜時推薦使用TCP協議(V2只支持UDP協議).在局域網中使用UDP協議較好,因為局域網有比較穩定的網絡保證,使用UDP可以帶來更好的性能,在廣域網中推薦使用TCP協議,TCP協議能讓NFS在復雜的網絡環境中保持最好的傳輸穩定性.可以參考這篇文章:http://www.hp.com.tw/ssn/unix/0212/unix021204.asp ;


















