NFS SERVER的創(chuàng)建
NFS SERVER的使用在很多系統(tǒng)和主機(jī)上都有所體現(xiàn)。那么不少朋友也都來(lái)詢(xún)問(wèn)如何在Linux上面實(shí)現(xiàn)NFS SERVER的應(yīng)用。那么這里我們就總結(jié)了一下NFS SERVER的創(chuàng)建方法,希望對(duì)您有所幫助。
一:服務(wù)器端的設(shè)定(以L(fǎng)INUX為例)
服務(wù)器端的設(shè)定都是在/etc/exports這個(gè)文件中進(jìn)行設(shè)定的,設(shè)定格式如下:
欲分享出去的目錄 主機(jī)名稱(chēng)1或者IP1(參數(shù)1,參數(shù)2) 主機(jī)名稱(chēng)2或者IP2(參數(shù)3,參數(shù)4)
上面這個(gè)格式表示,同一個(gè)目錄分享給兩個(gè)不同的主機(jī),但提供給這兩臺(tái)主機(jī)的權(quán)限和參數(shù)是不同的,所以分別設(shè)定兩個(gè)主機(jī)得到的權(quán)限.
可以設(shè)定的參數(shù)主要有以下這些:
rw:可讀寫(xiě)的權(quán)限;
ro:只讀的權(quán)限;
no_root_squash:登入到NFS 主機(jī)的用戶(hù)如果是ROOT用戶(hù),他就擁有ROOT的權(quán)限,此參數(shù)很不安全,建議不要使用.
root_squash:在登入 NFS 主?C使用分享之目?的使用者如果是使用者的身份;
all_squash:不管登陸NFS主機(jī)的用戶(hù)是什么都會(huì)被重新設(shè)定為nobody.
anonuid:將登入NFS主機(jī)的用戶(hù)都設(shè)定成指定的user id,此ID必須存在于/etc/passwd中.
anongid:同 anonuid ,但是?成 group ID 就是了!
sync:資料同步寫(xiě)入存儲(chǔ)器中.
async:資料會(huì)先暫時(shí)存放在內(nèi)存中,不會(huì)直接寫(xiě)入硬盤(pán).
insecure 允許從這臺(tái)機(jī)器過(guò)來(lái)的非授權(quán)訪(fǎng)問(wè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è)定好后可以使用以下命令啟動(dòng) NFS:
/etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默認(rèn)啟動(dòng)的)
/etc/rc.d/init.d/nfs start
exportfs命令:
如果我們?cè)趩?dòng)了NFS之后又修改了/etc/exports,是不是還要重新啟動(dòng)nfs呢?這個(gè)時(shí)候我們就可以用exportfs命令來(lái)使改動(dòng)立刻生效,該命令格式如下:
exportfs [-aruv]
-a :全部 mount或者unmount /etc/exports中的內(nèi)容
-r :重新mount /etc/exports中分享出來(lái)的目錄
-u :umount 目錄
-v :在 export 的?r候,將詳細(xì)的信息輸出到屏幕上.
具體例子:
[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 <== 全部都卸載了.#p#
客戶(hù)端的操作:
1、showmout命令對(duì)于NFS的操作和查錯(cuò)有很大的幫助,所以我們先來(lái)看一下showmount的用法
showmout
-a :這個(gè)參數(shù)是一般在NFS SERVER上使用,是用來(lái)顯示已經(jīng) mount上本機(jī)nfs目錄的cline機(jī)器.
-e :顯示指定的NFS SERVER上export出來(lái)的目錄.
例如:
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會(huì)不斷的嘗試與SERVER的連接(在后臺(tái),不會(huì)給出任何提示信息,在LINUX 下有的版本仍然會(huì)給出一些提示),直到MOUNT上.
SOFT:會(huì)在前臺(tái)嘗試與SERVER的連接,是默認(rèn)的連接方式.當(dāng)收到錯(cuò)誤信息后終止 mount嘗試,并給出相關(guān)信息.
例如:mount -F nfs -o hard 192.168.0.10:/nfs /nfs
對(duì)于到底是使用hard還是soft的問(wèn)題,這主要取決于你訪(fǎng)問(wèn)什么信息有關(guān).例如你是想通過(guò)NFS來(lái)運(yùn)行X PROGRAM的話(huà),你絕對(duì)不會(huì)希望由于一些意外的情況(如網(wǎng)絡(luò)速度一下子變的很慢,插拔了一下網(wǎng)卡插頭等)而使系統(tǒng)輸出大量的錯(cuò)誤信息,如果此時(shí)你用的是HARD方式的話(huà),系統(tǒng)就會(huì)等待,直到能夠重新與NFS SERVER建立連接傳輸信息.另外如果是非關(guān)鍵數(shù)據(jù)的話(huà)也可以使用SOFT方式,如FTP數(shù)據(jù)等,這樣在遠(yuǎn)程機(jī)器暫時(shí)連接不上或關(guān)閉時(shí)就不會(huì)掛起你的會(huì)話(huà)過(guò)程.
rsize和wsize:
文件傳輸尺寸設(shè)定:V3沒(méi)有限定傳輸尺寸,V2最多只能設(shè)定為8k,可以使用-rsize and -wsize 來(lái)進(jìn)行設(shè)定.這兩個(gè)參數(shù)的設(shè)定對(duì)于NFS的執(zhí)行效能有較大的影響
bg:在執(zhí)行mount時(shí)如果無(wú)法順利mount上時(shí),系統(tǒng)會(huì)將mount的操作轉(zhuǎn)移到后臺(tái)并繼續(xù)嘗試mount,直到mount成功為止.(通常在設(shè)定/etc/fstab文件時(shí)都應(yīng)該使用bg,以避免可能的mount不上而影響啟動(dòng)速度)
fg:和bg正好相反,是默認(rèn)的參數(shù)
nfsvers=n:設(shè)定要使用的 NFS版本,默認(rèn)是使用2,這個(gè)選項(xiàng)的設(shè)定還要取決于server端是否支持NFS VER 3
mountport:設(shè)定mount的端口
port:根據(jù)server端export出的端口設(shè)定,例如如果server使用5555端口輸出NFS,那客戶(hù)端就需要使用這個(gè)參數(shù)進(jìn)行同樣的設(shè)定
timeo=n:設(shè)置超時(shí)時(shí)間,當(dāng)數(shù)據(jù)傳輸遇到問(wèn)題時(shí),會(huì)根據(jù)這個(gè)參數(shù)嘗試進(jìn)行重新傳輸.默認(rèn)值是7/10妙(0.7秒).如果網(wǎng)絡(luò)連接不是很穩(wěn)定的話(huà)就要加大這個(gè)數(shù)值,并且推薦使用HARD MOUNT方式,同時(shí)最好也加上INTR參數(shù),這樣你就可以終止任何掛起的文件訪(fǎng)問(wèn).#p#
intr 允許通知中斷一個(gè)NFS調(diào)用.當(dāng)服務(wù)器沒(méi)有應(yīng)答需要放棄的時(shí)候有用處.
udp:使用udp作為nfs的傳輸協(xié)議(NFS V2只支持UDP)
tcp:使用tcp作為nfs的傳輸協(xié)議
namlen=n:設(shè)定遠(yuǎn)程服務(wù)器所允許的最長(zhǎng)文件名.這個(gè)值的默認(rèn)是255
acregmin=n:設(shè)定最小的在文件更新之前cache時(shí)間,默認(rèn)是3
acregmax=n:設(shè)定最大的在文件更新之前cache時(shí)間,默認(rèn)是60
acdirmin=n:設(shè)定最小的在目錄更新之前cache時(shí)間,默認(rèn)是30
acdirmax=n:設(shè)定最大的在目錄更新之前cache時(shí)間,默認(rèn)是60
actimeo=n:將acregmin、acregmax、acdirmin、acdirmax設(shè)定為同一個(gè)數(shù)值,默認(rèn)是沒(méi)有啟用.
retry=n:設(shè)定當(dāng)網(wǎng)絡(luò)傳輸出現(xiàn)故障的時(shí)候,嘗試重新連接多少時(shí)間后不再?lài)L試.默認(rèn)的數(shù)值是10000 minutes
noac:關(guān)閉cache機(jī)制.
同時(shí)使用多個(gè)參數(shù)的方法:mount -t nfs -o timeo=3,udp,hard 192.168.0.30:/tmp /nfs
請(qǐng)注意,NFS客戶(hù)機(jī)和服務(wù)器的選項(xiàng)并不一定完全相同,而且有的時(shí)候會(huì)有沖突.比如說(shuō)服務(wù)器以只讀的方式導(dǎo)出,客戶(hù)端卻以可寫(xiě)的方式mount,雖然可以成功mount上,但嘗試寫(xiě)入的時(shí)候就會(huì)發(fā)生錯(cuò)誤.一般服務(wù)器和客戶(hù)端配置沖突的時(shí)候,會(huì)以服務(wù)器的配置為準(zhǔn).
4、/etc /fstab的設(shè)定方法
/etc/fstab的格式如下:
fs_spec fs_file fs_type fs_options fs_dump fs_pass
fs_spec:該字段定義希望加載的文件系統(tǒng)所在的設(shè)備或遠(yuǎn)程文件系統(tǒng),對(duì)于 nfs這個(gè)參數(shù)一般設(shè)置為這樣:192.168.0.1:/NFS
fs_file:本地的掛載點(diǎn)
fs_type:對(duì)于NFS來(lái)說(shuō)這個(gè)字段只要設(shè)置成nfs就可以了
fs_options:掛載的參數(shù),可以使用的參數(shù)可以參考上面的mount參數(shù).
fs_dump - 該選項(xiàng)被"dump"命令使用來(lái)檢查一個(gè)文件系統(tǒng)應(yīng)該以多快頻率進(jìn)行轉(zhuǎn)儲(chǔ),若不需要轉(zhuǎn)儲(chǔ)就設(shè)置該字段為0
fs_pass - 該字段被 fsck命令用來(lái)決定在啟動(dòng)時(shí)需要被掃描的文件系統(tǒng)的順序,根文件系統(tǒng)"/"對(duì)應(yīng)該字段的值應(yīng)該為1,其他文件系統(tǒng)應(yīng)該為2.若該文件系統(tǒng)無(wú)需在啟動(dòng)時(shí)掃描則設(shè)置該字段為0 .
5、與NFS有關(guān)的一些命令介紹
nfsstat:
查看NFS的運(yùn)行狀態(tài),對(duì)于調(diào)整 NFS的運(yùn)行有很大幫助
rpcinfo:
查看rpc執(zhí)行信息,可以用于檢測(cè)rpc運(yùn)行情況的工具.
NFS server可以看作是一個(gè)FILE SERVER,它可以讓你的PC通過(guò)網(wǎng)絡(luò)將遠(yuǎn)端得NFS SERVER共享出來(lái)的檔案MOUNT到自己的系統(tǒng)中,在CLIENT看來(lái)使用NFS的遠(yuǎn)端文件就象是在使用本地文件一樣.