?? nfs.txt
字號:
NFS server可以看作是一個FILE SERVER,它可以讓你的PC通過網絡將遠端得NFS SERVER共享出來的檔案MOUNT到自己的系統中,在CLIENT看來使用NFS的遠端文件就象是在使用本地文件一樣。 NFS協議從誕生到現在為止,已經有多個版本,如NFS V2(rfc1094),NFS V3(rfc1813)(最新的版本是V4(rfc3010)。 二、各NFS協議版本的主要區別 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、異步寫入特性 6、改進了SERVER的mount性能 7、有更好的I/O WRITES 性能。 9、更強網絡運行效能,使得網絡運作更為有效。 10、更強的災難恢復功能。 異步寫入特性(v3新增加)介紹: NFS V3 能否使用異步寫入,這是可選擇的一種特性。NFS V3客戶端發發送一個異步寫入請求到服務器,在給客戶端答復之前服務器并不是必須要將數據寫入到存儲器中(穩定的)。服務器能確定何時去寫入數據或者將多個寫入請求聚合到一起并加以處理,然后寫入。客戶端能保持一個數據的copy以防萬一服務器不能完整的將數據寫入。當客戶端希望釋放這個copy的時候,它會向服務器通過這個操作過程,以確保每個操作步驟的完整。異步寫入能夠使服務器去確定最好的同步數據的策略。使數據能盡可能的同步的提交何到達。與V2比較來看,這樣的機制能更好的實現數據緩沖和更多的平行(平衡)。而NFS V2的SERVER在將數據寫入存儲器之前不能再相應任何的寫入請求。 V4相對V3的改進: 1:改進了INTERNET上的存取和執行效能 2:在協議中增強了安全方面的特性 3:增強的跨平臺特性 三、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的。 一:服務器端的設定(以LINUX為例) 服務器端的設定都是在/etc/exports這個文件中進行設定的,設定格式如下: 欲分享出去的目錄 主機名稱1或者IP1(參數1,參數2) 主機名稱2或者IP2(參數3,參數4) 上面這個格式表示,同一個目錄分享給兩個不同的主機,但提供給這兩臺主機的權限和參數是不同的,所以分別設定兩個主機得到的權限。 可以設定的參數主要有以下這些: rw:可讀寫的權限; ro:只讀的權限; no_root_squash:登入到NFS主機的用戶如果是ROOT用戶,他就擁有ROOT的權限,此參數很不安全,建議不要使用。 root_squash:在登入 NFS 主?C使用分享之目?的使用者如果是 root ?r,那????使用者的?嘞?⒈?嚎s成?檳涿褂謎擼ǔK?UID ? GID 都??成 nobody 那??身份; all_squash:不管登陸NFS主機的用戶是什么都會被重新設定為nobody。 anonuid:將登入NFS主機的用戶都設定成指定的user id,此ID必須存在于/etc/passwd中。 anongid:同 anonuid ,但是?成 group ID 就是了! sync:資料同步寫入存儲器中。 async:資料會先暫時存放在內存中,不會直接寫入硬盤。 insecure 允許從這臺機器過來的非授權訪問。 例如可以編輯/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) 設定好后可以使用以下命令啟動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中的內容 -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 :這個參數是一般在NFS SERVER上使用,是用來顯示已經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的其它可選參數: HARD mount和SOFT MOUNT: HARD: NFS CLIENT會不斷的嘗試與SERVER的連接(在后臺,不會給出任何提示信息,在LINUX下有的版本仍然會給出一些提示),直到MOUNT上。 SOFT:會在前臺嘗試與SERVER的連接,是默認的連接方式。當收到錯誤信息后終止mount嘗試,并給出相關信息。 例如:mount -F nfs -o hard 192.168.0.10:/nfs /nfs 對于到底是使用hard還是soft的問題,這主要取決于你訪問什么信息有關。例如你是想通過NFS來運行X PROGRAM的話,你絕對不會希望由于一些意外的情況(如網絡速度一下子變的很慢,插拔了一下網卡插頭等)而使系統輸出大量的錯誤信息,如果此時你用的是HARD方式的話,系統就會等待,直到能夠重新與NFS SERVER建立連接傳輸信息。另外如果是非關鍵數據的話也可以使用SOFT方式,如FTP數據等,這樣在遠程機器暫時連接不上或關閉時就不會掛起你的會話過程。 rsize和wsize: 文件傳輸尺寸設定:V3沒有限定傳輸尺寸,V2最多只能設定為8k,可以使用-rsize and -wsize 來進行設定。這兩個參數的設定對于NFS的執行效能有較大的影響 bg:在執行mount時如果無法順利mount上時,系統會將mount的操作轉移到后臺并繼續嘗試mount,直到mount成功為止。(通常在設定/etc/fstab文件時都應該使用bg,以避免可能的mount不上而影響啟動速度) fg:和bg正好相反,是默認的參數 nfsvers=n:設定要使用的NFS版本,默認是使用2,這個選項的設定還要取決于server端是否支持NFS VER 3 mountport:設定mount的端口 port:根據server端export出的端口設定,例如如果server使用5555端口輸出NFS,那客戶端就需要使用這個參數進行同樣的設定 timeo =n:設置超時時間,當數據傳輸遇到問題時,會根據這個參數嘗試進行重新傳輸。默認值是7/10妙(0.7秒)。如果網絡連接不是很穩定的話就要加大這個數值,并且推薦使用HARD MOUNT方式,同時最好也加上INTR參數,這樣你就可以終止任何掛起的文件訪問。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -