時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)
NFS server可以看作是一個FILE SERVER,它可以讓你的PC通過網(wǎng)絡(luò)將遠端得NFS SERVER共享出來的檔案MOUNT到自己的系統(tǒng)中,在CLIENT看來使用NFS的遠端文件就象是在使用本地文件一樣。
NFS協(xié)議從誕生到現(xiàn)在為止,已經(jīng)有多個版本,如 NFS V2(rfc1094),NFS V3(rfc1813)(最新的版本是V4(rfc3010)。
二、各NFS協(xié)議版本的主要區(qū)別
V3相對V2的主要區(qū)別:
1、文件尺寸
V2最大只支持32BIT的文件大小(4G),而NFS V3新增加了支持 64BIT文件大小的技術(shù)。
2、文件傳輸尺寸
V3沒有限定傳輸尺寸,V2最多只能設(shè)定為8k,可以使用 -rsize and -wsize 來進行設(shè)定。
3、完整的信息返回
V3增加和完善了許多錯誤和成功信息的返回,對于服務(wù)器的設(shè)置和管理能帶來很大好處。
4、增加了對TCP傳輸協(xié)議的支持
V2只提供了對UDP協(xié)議的支持,在一些高要求的網(wǎng)絡(luò)環(huán)境中有很大限制,V3增加了對TCP協(xié)議的支持
*5、異步寫入特性
6、改進了SERVER的mount性能
7、有更好的 I/O WRITES 性能。
9、更強網(wǎng)絡(luò)運行效能,使得網(wǎng)絡(luò)運作更為有效。
10、更強的災(zāi)難恢復功能。
異步寫入特性(v3新增加)介紹:
NFS V3 能否使用異步寫入,這是可選擇的一種特性。NFS V3客戶端發(fā)發(fā)送一個異步寫入請求到服務(wù)器,在給客戶端答復之前服務(wù)器并不是必須要將數(shù)據(jù)寫入到存儲器中(穩(wěn)定的)。服務(wù)器能確定何時去寫入數(shù)據(jù)或者將多個寫入請求聚合到一起并加以處理,然后寫入??蛻舳四鼙3忠粋€數(shù)據(jù)的copy以防萬一服務(wù)器不能完整的將數(shù)據(jù)寫入。當客戶端希望釋放這個copy的時候,它會向服務(wù)器通過這個操作過程,以確保每個操作步驟的完整。異步寫入能夠使服務(wù)器去確定最好的同步數(shù)據(jù)的策略。使數(shù)據(jù)能盡可能的同步的提交何到達。與V2比較來看,這樣的機制能更好的實現(xiàn)數(shù)據(jù)緩沖和更多的平行(平衡)。而NFS V2的SERVER在將數(shù)據(jù)寫入存儲器之前不能再相應(yīng)任何的寫入請求。
V4相對V3的改進:
1:改進了INTERNET上的存取和執(zhí)行效能
2:在協(xié)議中增強了安全方面的特性
3:增強的跨平臺特性
三、CLIENT 和SERVER的具體操作和設(shè)置
在講NFS SERVER的運作之前先來看一些與NFS SERVER有關(guān)的東西:
RPC(Remote Procedure Call)
NFS本身是沒有提供信息傳輸?shù)膮f(xié)議和功能的,但NFS卻能讓我們通過網(wǎng)絡(luò)進行資料的分享,這是因為NFS使用了一些其它的傳輸協(xié)議。而這些傳輸協(xié)議勇士用到這個RPC功能的??梢哉fNFS本身就是使用RPC的一個程序?;蛘哒fNFS也是一個RPC SERVER.所以只要用到NFS的地方都要啟動RPC服務(wù),不論是NFS SERVER或者NFS CLIENT。這樣SERVER和CLIENT才能通過RPC來實現(xiàn)PROGRAM PORT的對應(yīng)。可以這么理解RPC和NFS的關(guān)系: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的對應(yīng)工作,而且這樣的任務(wù)就是由PORTMAP來完成的。通俗的說PortMap就是用來做 PORT的mapping的。
一:服務(wù)器端的設(shè)定(以LINUX為例)
服務(wù)器端的設(shè)定都是在/etc/exports這個文件中進行設(shè)定的,設(shè)定格式如下:
欲分享出去的目錄 主機名稱1或者IP1(參數(shù)1,參數(shù)2) 主機名稱2或者IP2(參數(shù)3,參數(shù)4)
上面這個格式表示,同一個目錄分享給兩個不同的主機,但提供給這兩臺主機的權(quán)限和參數(shù)是不同的,所以分別設(shè)定兩個主機得到的權(quán)限。
可以設(shè)定的參數(shù)主要有以下這些:
rw:可讀寫的權(quán)限;
ro:只讀的權(quán)限;
no_root_squash:登入到NFS 主機的用戶如果是ROOT用戶,他就擁有ROOT的權(quán)限,此參數(shù)很不安全,建議不要使用。
root_squash:在登入 NFS 主?C使用分享之目?的使用者如果是 root ?r,那????使用者的?嘞?⒈?嚎s成?檳涿?褂謎擼?ǔK??UID ? GID 都??? 成 nobody 那??身份;
all_squash:不管登陸NFS主機的用戶是什么都會被重新設(shè)定為nobody。
anonuid:將登入NFS主機的用戶都設(shè)定成指定的user id,此ID必須存在于/etc/passwd中。
anongid:同 anonuid ,但是?成 group ID 就是了!
sync:資料同步寫入存儲器中。
async:資料會先暫時存放在內(nèi)存中,不會直接寫入硬盤。
insecure 允許從這臺機器過來的非授權(quán)訪問。
例如可以編輯/etc/exports為:
/tmp *(rw,no_root_squash)
/home/public 192.168.0.*(rw) *(ro)
/home/test 192.168.0.100(rw)
/home/linux ? *.the9.com(rw,all_squash,anonuid=40,anongid=40)
設(shè)定好后可以使用以下命令啟動 NFS:
/etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默認啟動的)
/etc/rc.d/init.d/nfs start
exportfs命令:
如果我們在啟動了NFS之后又修改了/etc/exports,是不是還要重新啟動nfs呢?這個時候我們就可以用exportfs命令來使改動立刻生效,該命令格式如下:
exportfs [-aruv]
-a :全部 mount或者unmount /etc/exports中的內(nèi)容
-r :重新mount /etc/exports中分享出來的目錄
-u :umount 目錄
-v :在 export 的?r候,將詳細的信息輸出到屏幕上。
具體例子:
[root @test root]# exportfs -rv <== 全部重新 export 一次!
exporting 192.168.0.100:/home/test
exporting 192.168.0.*:/home/public
exporting *.the9.com:/home/linux
exporting *:/home/public
exporting *:/tmp
reexporting 192.168.0.100:/home/test to kernel
exportfs -au <== 全部都卸載了。
客戶段的操作:
1、showmout命令對于NFS的操作和查錯有很大的幫助,所以我們先來看一下showmount的用法
showmout
-a :這個參數(shù)是一般在NFS SERVER上使用,是用來顯示已經(jīng) mount上本機nfs目錄的cline機器。
-e :顯示指定的NFS SERVER上export出來的目錄。
例如:
showmount -e 192.168.0.30
Export list for localhost:
/tmp *
/home/linux *.linux.org
/home/public (everyone)
/home/test 192.168.0.100
2、 mount nfs目錄的方法:
mount -t nfs hostname(orIP):/directory /mount/point
具體例子:
Linux: mount -t nfs 192.168.0.1:/tmp /mnt/nfs
Solaris:mount -F nfs 192.168.0.1:/tmp /mnt/nfs
BSD: mount 192.168.0.1:/tmp /mnt/nfs
3、mount nfs的其它可選參數(shù):
HARD mount 和SOFT MOUNT:
HARD: NFS CLIENT會不斷的嘗試與SERVER的連接(在后臺,不會給出任何提示信息,在LINUX 下有的版本仍然會給出一些提示),直到MOUNT上。
SOFT:會在前臺嘗試與SERVER的連接,是默認的連接方式。當收到錯誤信息后終止 mount嘗試,并給出相關(guān)信息。
例如:mount -F nfs -o hard 192.168.0.10:/nfs /nfs
對于到底是使用hard還是soft的問題,這主要取決于你訪問什么信息有關(guān)。例如你是想通過NFS來運行X PROGRAM的話,你絕對不會希望由于一些意外的情況(如網(wǎng)絡(luò)速度一下子變的很慢,插拔了一下網(wǎng)卡插頭等)而使系統(tǒng)輸出大量的錯誤信息,如果此時你用的是HARD方式的話,系統(tǒng)就會等待,直到能夠重新與NFS SERVER建立連接傳輸信息。另外如果是非關(guān)鍵數(shù)據(jù)的話也可以使用SOFT方式,如FTP數(shù)據(jù)等,這樣在遠程機器暫時連接不上或關(guān)閉時就不會掛起你的會話過程。
rsize和wsize:
文件傳輸尺寸設(shè)定:V3沒有限定傳輸尺寸,V2最多只能設(shè)定為8k,可以使用-rsize and -wsize 來進行設(shè)定。這兩個參數(shù)的設(shè)定對于NFS的執(zhí)行效能有較大的影響
bg:在執(zhí)行mount時如果無法順利mount上時,系統(tǒng)會將mount的操作轉(zhuǎn)移到后臺并繼續(xù)嘗試mount,直到mount成功為止。(通常在設(shè)定/etc/fstab文件時都應(yīng)該使用bg,以避免可能的mount不上而影響啟動速度)
fg:和bg正好相反,是默認的參數(shù)
nfsvers=n:設(shè)定要使用的 NFS版本,默認是使用2,這個選項的設(shè)定還要取決于server端是否支持NFS VER 3
mountport:設(shè)定mount的端口
port:根據(jù)server端export出的端口設(shè)定,例如如果server使用5555端口輸出NFS,那客戶端就需要使用這個參數(shù)進行同樣的設(shè)定
timeo=n:設(shè)置超時時間,當數(shù)據(jù)傳輸遇到問題時,會根據(jù)這個參數(shù)嘗試進行重新傳輸。默認值是7/10妙(0.7秒)。如果網(wǎng)絡(luò)連接不是很穩(wěn)定的話就要加大這個數(shù)值,并且推薦使用HARD MOUNT方式,同時最好也加上INTR參數(shù),這樣你就可以終止任何掛起的文件訪問。
intr 允許通知中斷一個NFS調(diào)用。當服務(wù)器
關(guān)鍵詞標簽:NFS,網(wǎng)絡(luò)文件系統(tǒng)
相關(guān)閱讀
熱門文章 路由器地址大全-各品牌路由設(shè)置地址 各品牌的ADSL與路由器出廠默認IP、帳號、密碼 Nslookup命令詳解-域名DNS診斷 站長裝備:十大網(wǎng)站管理員服務(wù)器工具軟件
人氣排行 各品牌的ADSL與路由器出廠默認IP、帳號、密碼 路由器地址大全-各品牌路由設(shè)置地址 騰達路由器怎么設(shè)置?騰達路由器設(shè)置教程 ADSL雙線負載均衡設(shè)置詳細圖文教程 路由表說明(詳解route print) Nslookup命令詳解-域名DNS診斷 網(wǎng)管員實際工作的一天 網(wǎng)管必會!了解交換機控制端口流量