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