linux mount (3) nfs


文章轉載自http://leonhongchina.blog.163.com/blog/static/180294117201133012814141/

 

NFS協議是網絡當中比較常用的一類協議,在很多開發系統平臺中,都需要加載這個協議。所以,我們這裏就來詳細介紹一下NFS協議的啓動以及寫在等內容。希望對大家有所幫助。

一:服務器端的設定(以LINUX爲例)

服務器端的設定都是在/etc/exports這個文件中進行設定的,設定格式如下:

欲分享出去的目錄 主機名稱1或者IP1(參數1,參數2) 主機名稱2或者IP2(參數3,參數4)

上面這個格式表示,同一個目錄分享給兩個不同的主機,但提供給這兩臺主機的權限和參數是不同的,所以分別設定兩個主機得到的權限.

可以設定的參數主要有以下這些:

rw:可讀寫的權限;

ro:只讀的權限;

no_root_squash:登入到NFS 主機的用戶如果是ROOT用戶,他就擁有ROOT的權限,此參數很不安全,建議不要使用.

root_squash:在登入 NFS協議主機使用分享之目的使用者如果是使用者的都成 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參數,這樣你就可以終止任何掛起的文件訪問.

intr 允許通知中斷一個NFS調用.當服務器沒有應答需要放棄的時候有用處.

udp:使用udp作爲nfs協議的傳輸協議(NFS V2只支持UDP)

tcp:使用tcp作爲nfs的傳輸協議

namlen=n:設定遠程服務器所允許的最長文件名.這個值的默認是255

acregmin=n:設定最小的在文件更新之前cache時間,默認是3

acregmax=n:設定最大的在文件更新之前cache時間,默認是60

acdirmin=n:設定最小的在目錄更新之前cache時間,默認是30

acdirmax=n:設定最大的在目錄更新之前cache時間,默認是60

actimeo=n:將acregmin?acregmax?acdirmin?acdirmax設定爲同一個數值,默認是沒有啓用.

retry=n:設定當網絡傳輸出現故障的時候,嘗試重新連接多少時間後不再嘗試.默認的數值是10000 minutes

noac:關閉cache機制.

同時使用多個參數的方法:mount -t nfs -o timeo=3,udp,hard 192.168.0.30:/tmp /nfs

請注意,NFS客戶機和服務器的選項並不一定完全相同,而且有的時候會有衝突.比如說服務器以只讀的方式導出,客戶端卻以可寫的方式mount,雖然可以成功mount上,但嘗試寫入的時候就會發生錯誤.一般服務器和客戶端配置衝突的時候,會以服務器的配置爲準.

4?/etc /fstab的設定方法

/etc/fstab的格式如下:

fs_spec fs_filefs_type  fs_optionsfs_dump fs_pass

fs_spec:該字段定義希望加載的文件系統所在的設備或遠程文件系統,對於 nfs這個參數一般設置爲這樣:192.168.0.1:/NFS

fs_本地的掛載點

fs_type:對於NFS協議來說這個字段只要設置成nfs就可以了

fs_options:掛載的參數,可以使用的參數可以參考上面的mount參數.

fs_dump  - 該選項被"dump"命令使用來檢查一個文件系統應該以多快頻率進行轉儲,若不需要轉儲就設置該字段爲0

fs_pass - 該字段被 fsck命令用來決定在啓動時需要被掃描的文件系統的順序,根文件系統"/"對應該字段的值應該爲1,其他文件系統應該爲2.若該文件系統無需在啓動時掃描則設置該字段爲0 .

5?與NFS有關的一些命令介紹

nfsstat:

查看NFS的運行狀態,對於調整 NFS的運行有很大幫助

rpcinfo:

查看rpc執行信息,可以用於檢測rpc運行情況的工具.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章