講解:Solaris nfs的配置
Solaris nfs的問題我們今天來詳細講解一下。在Solaris系統(tǒng)中,如何構建NFS服務器呢?首先我們需要理解一下NFS服務器的基礎內(nèi)容。然后我們再來解析一下Solaris nfs配置的相關命令。
1、理解Solaris nfs服務器和客戶端功能.
nfs是sun公司來建立來使用tcp/ip協(xié)議以及sun的遠程調(diào)用和外部數(shù)據(jù)表示規(guī)范的產(chǎn)品.nfs的使用非常方便,也比較可靠.他具有在不同操作系統(tǒng)之間共享文件的能力.
nfs服務器可以使用nfs來讓其他遠程機器共享它的本地資源.nfs客戶機是訪問nfs服務器的共享資源的機器.其實在實際工作中,一臺主機即可以是nfs服務器,也可以是nfs客戶機.他們可以互相共享和訪問.只要你能理解nfs服務器和nfs客戶機之間的不同.剩下的就很easy了.
2、 nfs服務器和nfs客戶機區(qū)別.
1 solaris使用分布式文件系統(tǒng)或dfs命令公享資源.公享資源可以手動和自動設置.
nfs服務器運行兩個守侯進程:mountd 和 nfsd.
用到的文件是:
- /etc/rc3.d/S15nfs.server
- /etc/dfs/dfstab
- /etc/dfs/sharetab
- /etc/rmtab
Solaris nfs服務器使用命令是:share unshare shareall unshareall
nfs客戶機上運行的守侯進程是:statd 和 lockd.
用到的文件是:
- /etc/vfstab
- /etc/mnttab
nfs客戶機使用命令是:mount umount mountall umountall
2 nfs服務器設置
nfs服務器需要運行兩個守侯進程mountd和nfsd來工作.當nfs客戶機試圖訪問一個遠程的nfs服務器資源.nfs客戶機通過mount命令請求與 nfs服務器的mountd守侯進程進行連接.當nfs服務器響應客戶機時候,返回給可戶機一個信息.客戶機把這個信息寫到本地的/etc/mnttab文件中.這個信息是服務器中共享文件和目錄的信息.它是資源信息的編碼:磁盤設備號、節(jié)點生成號、節(jié)點號等.這個是唯一的.
一旦可戶機得到請求信息,nfs服務器上的mountd進程就會在服務器本地的/etc/rmtab文件中添加一條信息.這是為了保持對當前加載可戶機上文件的跟蹤.這個文件為每一個被加載資源添加一個條目,格式是:
- remote hostname: local filename name
注意:mountd每一次重新啟動和可戶機發(fā)一個卸載請求,都會更新服務器的/etc/rmtab文件中的舊條目.
3 共享設置命令.
明白了以上的道理,下面說具體的操作了.Solaris nfs服務器使用/usr/sbin/share命令為客戶機共享資源.
命令詳解:
- # share ---顯示所有可以安裝的資源,不管它是否已經(jīng)被安裝.
- # share [ -F filesystem ] [ -o options ] [-d description ] pathname-to-resource
指定共享文件.
* -F file system type 指定被公享的文件系統(tǒng)類型.
* -o options 指定客戶對資源訪問的類型.
* -d description 功享資源的簡單描述.當你share命令不帶任何參數(shù)運行,他就會被顯示.
* pathname-to-resource 在服務器上共享的資源名字.
*-o 指定了允許客戶訪問共享資源的用戶也權限.
具體如下:
rw 表示用戶可讀/寫,是默認植.
rw=client1:client2 指定用戶可以有讀/寫權限.可以有很多用戶,用冒號分隔.
ro 表示只讀.
ro=client1:client2 指定用戶client1和client2只讀.client1可以是用戶名,也可以是ip地址,或者一個網(wǎng)段.例如:ro=@202.99.88.0/24
root=client:client2 指定client1和client2上的root用戶對共享資源有超級用戶的權限.但是,他的優(yōu)先級小于Solaris nfs服務器的本地權限.
例如:用戶peng有個目錄/exprot/home/games要共享.#p#
- # share -F nfs -o rw=lnx3000:race , ro=@202.88.99.0/24:sune450 ,root=mmmmn -d "i love MM !" /export/home/peng/games
運行結果:共享/exprot/home/peng/games目錄,名字是lnx3000和race的兩臺主機有讀/寫權限;202.88.99.0這個c類網(wǎng)的機器和sun450這個主機只有讀的權限;mmmmn這臺主機的root用戶可以對共享資源有超級用戶訪問權限.但是聲名一點,要是我給共享目錄/exprot/home/peng/games目錄只讀,mmmmn的root權限也沒有用,只能只讀.因為服務器本地權限大于任何share的權限.
取消share資源.
- # unshare [ -F nfs ] path-to-resource
- * -F nfs 指定系統(tǒng)類型,默認.
- * path-to-resource 指定共享路徑.
例如:
- # unshare /export/home/peng/games
取消這個共享資源了.
4 開機自動共享資源.
以上的命令方法,在機器重新啟動的時候,設置消失.如何保留和開機自動啟動Solaris nfs共享.我們可以用/etc/dfs/dfstab文件來實現(xiàn)自動共享文件.只要主機啟動進入運行級別3,nfs資源共享自動啟動.
1、編輯/etc/dfs/dfstab文件,添加:
- share [ -F filesystem ] [ -o options ] [-d description ] pathname-to-resource
這個和命令行是一樣的
2、# /etc/init.d/nfs.server start
這樣就ok了.
3、手工快速命令.
- # shareall --共享所有列在/etc/dfs/dfstab中的共享資源.
- # unshareall --取消所有列在/etc/dfs/dfstab中的共享資源.
資源查看.
- # dfshares
用以查看服務器的共享資源 .輸入格式如下:#p#
- resource server access transprot
- * resource 可被遠程調(diào)用的資源的主機和路徑名.
- * server 指定資源的系統(tǒng)名稱.
- * access 服務器指定的權限,默認是rw,顯示為"-".
- * transport 指定共享資源的端口.
- # dfmounts命令
顯示服務器上查看共享資源被利用的狀況,輸出格式如下:
- RESOURCE SERVER PATHNAME CLIENTS
- * resource 共享資料名稱.
- * server pathname 共享資料目錄.
- * client 連接的客戶端.
- # nfsstat
看Solaris nfs的全部狀態(tài)
3、nfs客戶機設置.
安裝好nfs服務器后,就可以用客戶端使用共享資料了.首先要檢測nfs服務器,然后安裝.
1 檢測Solaris nfs服務器.
- # showmount [ -ade ] <hostname>
- * -a 顯示已經(jīng)已經(jīng)使用的資源和來自哪個nfs服務器.
- * -d 顯示已經(jīng)被遠程安裝的資源.
- * -e 顯示可以被安裝的可以資源.一般用-e來查看遠程主機的可以資源.
2 建立共享.
- # mount [ -F nfs ] [ -o options ] path-to-resource path-to-local-mount-point
- * -F nfs 指定共享文件系統(tǒng),默認的.沒必要指定.
- * -o options 指定選項,例如權限.默認rw,可讀/寫.也可以ro--只讀.
- * path-to-rescource 指定nfs服務器的主機名和共享資源路徑.
- * path-to-local-mount-point 指定共享資源在本地的mount點.
例如:
# mkdir /export/home/games
# mount peng:/export/home/peng/games /exprot/home/games
共享遠程主機peng的/export/home/peng/games目錄,可讀寫,掛接在本地的/exprot/home/games目錄上.
3 取消共享.
# umount [-F nfs] remote-path-to-resource path-to-local-mount-point
* -F nfs 默認的文件系統(tǒng).
* remote-path-to-resource 遠程主機和共享目錄路徑,主機和共享目錄路徑用冒號分隔.
* path-to-local-mount-point 本地主機掛點.
例如:
- # umount peng:/export/home/peng/games /export/home/games
取消遠程主機peng上的/exprot/home/peng/games這個目錄的在本地/export/home/games上的共享.
4 系統(tǒng)開機自動共享.
修改/etc/vfstab文件,格式如下:#p#
device to mount device to fsck mount point FS type fsck pass mount at boot mount options
* device to mount 指定遠程服務器名和共享路徑.遠程服務器名和共享路徑用冒號分開.
* device to fsck 這個是空的.從來不從客戶機進行文件檢測.
* mount point 指定本地的mount點.這個目錄必須是已經(jīng)存在的.
* FS type 對于Solaris nfs資源系統(tǒng)來說,當然是nfs了.
* fsck pass 這個也是空的.表示不從客戶機進行文件系統(tǒng)檢測.
* mount at boot 選擇yes or no,yes就是啟動時自動安裝.
* mount options 用逗號分隔的mount命令的列表.
例如:
# vi /etc/vfstab 添加:
peng:/export/home/peng/games - /export/home/games nfs - yes soft,bg
表示開機自動把遠程主機peng的/export/home/peng/games目錄自動掛到本機的/export/home/games下.soft選項是目錄不能安裝,產(chǎn)生一個錯誤.bg選項,系統(tǒng)啟動過程中安裝在后臺.關于mount options的參數(shù),請用 man mount 自己看看吧.
5 手工調(diào)試命令.
# mountall
不帶任何參數(shù),安裝所有列在/etc/vfstab文件中mount at boot中為yes的資源.
# mountall -r 只影響遠程文件
# mountall -l 只影響本地文件
# umountall
不帶任何參數(shù),謝載已經(jīng)安裝的資源.不包括/ 、/proc、/usr、/var.另外,系統(tǒng)忙,也可能不會卸載.
# umountall -r 只影響遠程文件
# umountall -l 只影響本地文件
Solaris nfs服務小節(jié):
到這里我想應該沒有什么問題了.大家只要注意一下客戶端和服務器端的區(qū)分.
nfs服務器端運行守侯進程mound、nfsd
nfs服務器端使用文件/etc/dfs/dfstab、/etc/dfs/sharetab、/etc/rmtab
nfs服務器使用命令是:share unshare shareall unshareall
nfs客戶端運行守侯進程statd、lockd.
用到的文件是/etc/vfstab、/etc/mnttab
nfs客戶機使用命令是:mount umount mountall umountall
FAQ :
1、運行mount命令不能得到共享資源,得到信息:"nfs server not responding".
answer:確信服務器上nfsd和mountd已經(jīng)運行,資源已經(jīng)用共享命令正確共享.
2、當我企圖共享到本地磁盤時,錯誤為:"mount:/tmp_mount not found".
answer: 你有沒有在本地創(chuàng)建mount點.