NFS服務(wù)器故障與問(wèn)題診斷
NFS問(wèn)題確定
與其它網(wǎng)絡(luò)服務(wù)一樣,使用網(wǎng)絡(luò)文件系統(tǒng)NFS服務(wù)器可能出現(xiàn)問(wèn)題。對(duì)這些問(wèn)題的故障診斷涉及理解跟蹤 NFS 問(wèn)題的策略、識(shí)別 NFS 相關(guān)的錯(cuò)誤消息和選擇適當(dāng)?shù)慕鉀Q方案。當(dāng)跟蹤到一個(gè)NFS服務(wù)器問(wèn)題時(shí),請(qǐng)首先孤立三個(gè)主要故障點(diǎn)以確定其中是哪一個(gè)不工作:服務(wù)器、客戶機(jī)或網(wǎng)絡(luò)本身。
識(shí)別硬安裝和軟安裝文件問(wèn)題
當(dāng)網(wǎng)絡(luò)或服務(wù)器有問(wèn)題時(shí),訪問(wèn)硬安裝遠(yuǎn)程文件的程序與訪問(wèn)軟安裝遠(yuǎn)程文件的程序所出現(xiàn)的故障不同。
如果一臺(tái)服務(wù)器未能響應(yīng)一個(gè)硬安裝請(qǐng)求,NFS 會(huì)顯示消息:
NFS服務(wù)器主機(jī)名未響應(yīng),仍在嘗試
因?yàn)榭蛻魴C(jī)會(huì)反復(fù)嘗試安裝請(qǐng)求直到成功,所以硬安裝遠(yuǎn)程文件系統(tǒng)導(dǎo)致程序掛起直到服務(wù)器響應(yīng)。執(zhí)行硬安裝時(shí)請(qǐng)使用 mount 命令的 -bg 標(biāo)志,這樣如果服務(wù)器不響應(yīng),客戶機(jī)就會(huì)在后臺(tái)重試安裝。
如果服務(wù)器未響應(yīng)一個(gè)軟安裝請(qǐng)求,NFS 會(huì)顯示消息:
連接超時(shí)
當(dāng)一段時(shí)間的嘗試沒(méi)有成功后軟安裝遠(yuǎn)程文件系統(tǒng)返回一個(gè)錯(cuò)誤。不幸的是在文件系統(tǒng)操作中很多程序不檢查返回情況,因此在訪問(wèn)軟安裝文件時(shí)您不會(huì)看到該錯(cuò)誤消息。然而,該 NFS 錯(cuò)誤消息在控制臺(tái)上顯示。
獲取 NFS 守護(hù)程序的當(dāng)前狀態(tài)
可以立即分別或全部獲取 NFS 守護(hù)程序的當(dāng)前狀態(tài)。要分別獲取 NFS 守護(hù)程序的當(dāng)前狀態(tài),請(qǐng)運(yùn)行:
lssrc -s Daemon
其中 Daemon 是由 SRC 控制的任何一個(gè)守護(hù)程序。例如,要獲取 rpc.lockd 守護(hù)程序的當(dāng)前狀態(tài),請(qǐng)運(yùn)行:
lssrc -s rpc.lockd
要立即獲取所有 NFS 守護(hù)程序的當(dāng)前狀態(tài),請(qǐng)運(yùn)行:
lssrc -a
識(shí)別NFS故障核對(duì)表
如果一臺(tái)客戶機(jī)當(dāng)前有NFS故障,請(qǐng)執(zhí)行以下操作:
1. 驗(yàn)證網(wǎng)絡(luò)連接是否正確。
2. 按照 獲取 NFS 守護(hù)程序的當(dāng)前狀態(tài) 中的指示信息,驗(yàn)證客戶機(jī)中是否運(yùn)行了 inetd , portmap 和 biod 守護(hù)程序。
3. 驗(yàn)證正在安裝的文件系統(tǒng)是否存在有效的安裝點(diǎn)。
4. 在客戶機(jī) shell 提示符下運(yùn)行以下命令以驗(yàn)證服務(wù)器是否已啟動(dòng)并運(yùn)行:
/usr/bin/rpcinfo -p server_name
如果服務(wù)器已啟動(dòng),會(huì)顯示程序、版本、協(xié)議和端口號(hào)的清單,類似以下內(nèi)容:
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100005 1 udp 1025 mountd
100001 1 udp 1030 rstatd
100001 2 udp 1030 rstatd
100001 3 udp 1030 rstatd
100002 1 udp 1036 rusersd
100002 2 udp 1036 rusersd
100008 1 udp 1040 walld
100012 1 udp 1043 sprayd
100005 1 tcp 694 mountd
100003 2 udp 2049 nfs
100024 1 udp 713 status
100024 1 tcp 715 status
100021 1 tcp 716 nlockmgr
100021 1 udp 718 nlockmgr
100021 3 tcp 721 nlockmgr
100021 3 udp 723 nlockmgr
100020 1 udp 726 llockmgr
100020 1 tcp 728 llockmgr
100021 2 tcp 731 nlockmgr
如果沒(méi)有返回類似的響應(yīng),請(qǐng)?jiān)诜?wù)器控制臺(tái)上登錄服務(wù)器并按 獲取NFS守護(hù)程序的當(dāng)前狀態(tài) 中的指示信息檢查 inetd 守護(hù)程序的狀態(tài)。
5. 驗(yàn)證 mountd 、 portmap 和 nfsd 守護(hù)程序正在NFS服務(wù)器上運(yùn)行,請(qǐng)?jiān)诳蛻魴C(jī) shell 提示符下輸入以下命令:
6. /usr/bin/rpcinfo -u server_name mount
7. /usr/bin/rpcinfo -u server_name portmap
/usr/bin/rpcinfo -u server_name nfs
如果守護(hù)程序在服務(wù)器運(yùn)行,會(huì)返回以下響應(yīng):
program 100005 version 1 ready and waiting
program 100000 version 2 ready and waiting
program 100003 version 2 ready and waiting
程序號(hào)分別與命令對(duì)應(yīng),如前例中所示。如果沒(méi)有返回類似的響應(yīng),請(qǐng)?jiān)诜?wù)器控制臺(tái)上登錄服務(wù)器并按照 獲取 NFS 守護(hù)程序的當(dāng)前狀態(tài) 中的指示信息檢查守護(hù)程序的狀態(tài)。
8. 驗(yàn)證服務(wù)器中上的 /etc/exports 文件是否列出客戶機(jī)要安裝的文件系統(tǒng)名稱以及該文件系統(tǒng)是否已導(dǎo)出。輸入以下命令進(jìn)行操作:
showmount -e server_name
該命令列出了由 server_name 當(dāng)前導(dǎo)出的所有文件系統(tǒng)。
異步寫(xiě)錯(cuò)誤
當(dāng)應(yīng)用程序在 NFS 安裝文件系統(tǒng)中寫(xiě)數(shù)據(jù)到一個(gè)文件時(shí),寫(xiě)操作由 biod 守護(hù)程序調(diào)度為異步處理。如果在數(shù)據(jù)實(shí)際寫(xiě)入磁盤(pán)的同時(shí)在 NFS 服務(wù)器上出現(xiàn)錯(cuò)誤,該錯(cuò)誤會(huì)返回 NFS 客戶機(jī),且 biod 守護(hù)程序在 NFS 數(shù)據(jù)結(jié)構(gòu)內(nèi)部保存錯(cuò)誤。然后在下一次該應(yīng)用程序調(diào)用 fsync 或 close 函數(shù)時(shí),存儲(chǔ)的錯(cuò)誤返回該應(yīng)用程序。作為此類錯(cuò)誤的結(jié)果,寫(xiě)錯(cuò)誤在程序關(guān)閉文件前不會(huì)通知給該應(yīng)用程序。此事件的一個(gè)典型示例是當(dāng)服務(wù)器上的文件系統(tǒng)已滿時(shí),導(dǎo)致客戶機(jī)嘗試的寫(xiě)失敗。
NFS服務(wù)器錯(cuò)誤消息
以下部分解釋使用NFS時(shí)可能生成的錯(cuò)誤代碼。
nfs_server 錯(cuò)誤消息
您網(wǎng)絡(luò)上傳輸緩沖不足可能導(dǎo)致以下錯(cuò)誤消息:
nfs_server: 壞發(fā)送回復(fù)
要增加傳輸緩沖區(qū),請(qǐng)使用基于 Web 的系統(tǒng)管理器( wsm )或系統(tǒng)管理接口工具 (SMIT)快速路徑, smit commodev 。然后選擇您的適配器類型并增加傳輸緩沖區(qū)數(shù)。
mount 錯(cuò)誤消息
一個(gè)遠(yuǎn)程的安裝過(guò)程可能會(huì)以幾種方式出現(xiàn)故障。與安裝故障相關(guān)的錯(cuò)誤消息如下:
mount: ... 已安裝
您嘗試安裝的文件系統(tǒng)已經(jīng)安裝。
mount: ... 在 /etc/filesystems 中未找到
指定的文件系統(tǒng)或目錄名不能匹配。
如果您發(fā)出的 mount 命令帶有一個(gè)目錄或文件系統(tǒng)名稱但不是兩者,該命令在 /etc/filesystems 文件的文件系統(tǒng)或目錄字段中查找與參數(shù)匹配的項(xiàng)。如果 mount 命令找到類似以下的項(xiàng):
/dancer.src:
dev=/usr/src
nodename = d61server
type = nfs
mount = false
則它會(huì)象已經(jīng)在命令行輸入以下命令一樣執(zhí)行安裝:
/usr/sbin/mount -n dancer -o rw,hard /usr/src /dancer.src
... 在 hosts 數(shù)據(jù)庫(kù)中不存在
在一個(gè)無(wú)網(wǎng)絡(luò)信息服務(wù)的網(wǎng)絡(luò)中,此消息表示 mount 命令中指定的主機(jī)不在 /etc/hosts 文件中。在一個(gè)運(yùn)行 NIS 的網(wǎng)絡(luò)中,該消息表示 NIS 無(wú)法找到 /etc/hosts 數(shù)據(jù)庫(kù)中的主機(jī)名或機(jī)器上的 NIS ypbind 守護(hù)程序失敗。如果存在 /etc/resolv.conf 文件,而名稱服務(wù)器正用于主機(jī)名解析,則可能在 named 數(shù)據(jù)庫(kù)中有問(wèn)題。請(qǐng)參閱 NFS 服務(wù)器上的名稱解析 。
檢查 mount 命令中的拼寫(xiě)和語(yǔ)法。如果命令正確,您的網(wǎng)絡(luò)不運(yùn)行 NIS 并只得到該主機(jī)名的本條消息,請(qǐng)檢查 /etc/hosts 文件中的項(xiàng)。
如果網(wǎng)絡(luò)正在運(yùn)行 NIS,請(qǐng)?jiān)诿钚休斎胍韵聝?nèi)容確保 ypbind 守護(hù)程序正在運(yùn)行:
ps -ef
您應(yīng)該在列表中看到 ypbnd 守護(hù)程序。嘗試使用 rlogin 命令遠(yuǎn)程登錄到另一臺(tái)機(jī)器,或使用 rcp 命令來(lái)遠(yuǎn)程復(fù)制一些東西到另一臺(tái)機(jī)器上。如果這仍然失敗,您的 ypbind 守護(hù)程序很可能已停止或掛起。
如果您僅獲得該主機(jī)名的本條消息,請(qǐng)檢查 NIS 服務(wù)器上的 /etc/hosts 項(xiàng)。
mount: ... 服務(wù)器無(wú)響應(yīng):端口映射失敗 — RPC 超時(shí)
您嘗試要從其安裝的服務(wù)器已當(dāng)機(jī)或其端口映射器已停止或掛起。請(qǐng)嘗試重新啟動(dòng)服務(wù)器以激活 inetd 、 portmap 和 ypbind 守護(hù)程序。
如果無(wú)法使用 rlogin 命令遠(yuǎn)程登錄服務(wù)器但是服務(wù)器已啟動(dòng),請(qǐng)通過(guò)嘗試遠(yuǎn)程登錄另一臺(tái)機(jī)器以檢查網(wǎng)絡(luò)連接。同時(shí)檢查服務(wù)器網(wǎng)絡(luò)連接。
mount: ... 服務(wù)器無(wú)響應(yīng):程序未注冊(cè)
這意味著 mount 命令到達(dá)了端口映射器,但是 rpc.mountd NFS 安裝守護(hù)程序沒(méi)有注冊(cè)。
mount: 拒絕訪問(wèn) ...
您的機(jī)器名不在您正嘗試從服務(wù)器安裝的文件系統(tǒng)的導(dǎo)出列表中。
通過(guò)在命令行運(yùn)行以下命令您能得到服務(wù)器導(dǎo)出的文件系統(tǒng)的列表:
showmount -e hostname
如果您希望的文件系統(tǒng)不在列表中,或您的機(jī)器名或網(wǎng)組名稱不在文件系統(tǒng)的用戶列表中,請(qǐng)登錄服務(wù)器并檢查 /etc/exports 文件中是否有正確的文件系統(tǒng)項(xiàng)。出現(xiàn)在 /etc/exports 文件中,但沒(méi)有出現(xiàn)在 showmount 命令的輸出中的文件系統(tǒng)名表示 mountd 守護(hù)程序出了故障。守護(hù)程序不能分析文件中的該行,它不能查找目錄,或此目錄名不是一個(gè)本地安裝的目錄。如果 /etc/exports 文件看上去正確并且您的網(wǎng)絡(luò)運(yùn)行 NIS,請(qǐng)檢查服務(wù)器上的 ypbind 守護(hù)程序。它可能已終止或掛起。有關(guān)更多信息,請(qǐng)參閱 AIX 5L Version 5.2 Network Information Services (NIS and NIS+) Guide 。
mount: ... : 拒絕許可權(quán)
此消息是服務(wù)器上部分認(rèn)證失敗的通用指示。在前一個(gè)示例中,也可能您不在導(dǎo)出列表中,服務(wù)器不能識(shí)別您機(jī)器的 ypbind 守護(hù)程序,或服務(wù)器不接受您提供的身份。
請(qǐng)檢查服務(wù)器上的 /etc/exports 文件和(如果可用) ypbind 守護(hù)程序。在這種情況下,您可以僅使用 hostname 命令更改您的主機(jī)名并重試 mount 命令。
mount: ... : 不是一個(gè)目錄
遠(yuǎn)程路徑或本地路徑不是一個(gè)目錄。請(qǐng)檢查命令中的拼寫(xiě)并嘗試在兩個(gè)目錄上都運(yùn)行。
mount: ... : 您不被允許
您必須有 root 許可權(quán)或是系統(tǒng)組的成員以在您的機(jī)器上運(yùn)行 mount 命令,因?yàn)樗鼤?huì)影響該機(jī)器上所有用戶的文件系統(tǒng)。僅允許 root 用戶和系統(tǒng)組的成員進(jìn)行 NFS 安裝和卸裝安裝。
識(shí)別 NFS 緩慢訪問(wèn)時(shí)間的原因
如果訪問(wèn)遠(yuǎn)程文件異常緩慢,請(qǐng)確保訪問(wèn)時(shí)間沒(méi)有被失控守護(hù)程序、壞的 tty 行或類似的錯(cuò)誤所禁止。
檢查進(jìn)程
在服務(wù)器上的命令行輸入以下命令:
ps -ef
如果服務(wù)器似乎運(yùn)行正常且別的用戶得到及時(shí)的響應(yīng),請(qǐng)確保 biod 守護(hù)程序正在運(yùn)行。請(qǐng)嘗試以下的步驟:
1. 請(qǐng)運(yùn)行 ps -ef 命令并在顯示中尋找 biod 守護(hù)程序。
如果它們沒(méi)有運(yùn)行,請(qǐng)繼續(xù)步驟 2 和步驟 3。
2. 通過(guò)發(fā)出以下命令停止 biod 守護(hù)程序。
stopsrc -x biod -c
3. 通過(guò)發(fā)出以下命令啟動(dòng) biod 守護(hù)程序:
startsrc -s biod
要確定是否一個(gè)或多個(gè) biod 守護(hù)程序沒(méi)有響應(yīng),當(dāng)用戶懷疑一個(gè)或多個(gè) biod 守護(hù)程序掛起時(shí)可以運(yùn)行幾次 nfsstat -c 。如果遠(yuǎn)程進(jìn)程呼叫(RPC)客戶機(jī)讀或?qū)憯?shù)中沒(méi)有明顯的更改,則一個(gè)或多個(gè) biod 守護(hù)程序沒(méi)有執(zhí)行它們的任務(wù)。您只能確定一個(gè)或多個(gè) biod 守護(hù)程序處于非激活狀態(tài);但不能確定哪一個(gè)是處于非激活狀態(tài)。
檢查網(wǎng)絡(luò)連接
如果 biod 守護(hù)程序正在工作,請(qǐng)檢查網(wǎng)絡(luò)連接。 nfsstat 命令確定是否正在丟信息包。使用 nfsstat -c 和 nfsstat -s 命令來(lái)確定是否客戶機(jī)或服務(wù)器正在重新發(fā)送大的數(shù)據(jù)塊。信息包丟失或服務(wù)器繁忙容易導(dǎo)致重發(fā)。重發(fā)率在百分之五或以上就認(rèn)為是高。
重新發(fā)送的可能性可以通過(guò)更改通信適配器傳輸隊(duì)列參數(shù)來(lái)減少。 系統(tǒng)管理接口工具 (SMIT)可以用來(lái)更改這些參數(shù)。
下面是給 NFS 服務(wù)器的推薦值。
通信適配器***傳輸單元(MTU)和傳輸隊(duì)列大小
適配器MTU傳輸隊(duì)列
令牌環(huán)
4Mb
16Mb1500
3900
1500
850050
40(如果 nfsstat 命令超時(shí)請(qǐng)?jiān)黾印#?
40(如果 nfsstat 命令超時(shí)請(qǐng)?jiān)黾樱?
40(如果 nfsstat 命令超時(shí)請(qǐng)?jiān)黾?。?
以太網(wǎng)150040(如果 nfsstat 命令超時(shí)請(qǐng)?jiān)黾樱?
每個(gè)令牌環(huán)速度的較大
MTU 值會(huì)減少處理器使用并顯著提升讀/寫(xiě)操作。
注:
1. 如果重新發(fā)送持續(xù),則請(qǐng)將這些值應(yīng)用于 NFS 客戶機(jī)。
2. 網(wǎng)絡(luò)上所有節(jié)點(diǎn)必須使用相同 MTU 大小。
設(shè)置 MTU 大小
要設(shè)置 MTU 大小,請(qǐng)使用基于 Web 的系統(tǒng)管理器( wsm )或 SMIT 快速路徑 smit chif 。請(qǐng)選擇相應(yīng)的適配器并在“***的 IP 包尺寸”字段中輸入一個(gè) MTU 值。
ifconfig 命令可被用來(lái)設(shè)置 MTU 大?。ㄇ以O(shè)置 MTU 大小為 8500 時(shí) 必須 使用)。 ifconfig 命令的格式是:
ifconfig tr n NodeName up mtu MTUSize
其中 tr n 是您的適配器名稱,例如 tr0。
另一種設(shè)置 MTU 大小的方法把 ifconfig 命令和 SMIT 組合。
1. 為令牌環(huán)將 ifconfig 命令(如前例中所示)添加到 /etc/rc.bsdnet 文件。
2. 輸入 smit setbootup_option 快速路徑。將“使用 BSD 風(fēng)格”字段切換到 是 。
設(shè)置傳輸隊(duì)列大小
通信適配器傳輸隊(duì)列大小由 SMIT 設(shè)置。輸入 smit chgtok 快速路徑,選擇相應(yīng)的適配器,然后在“傳輸”字段輸入一個(gè)隊(duì)列大小。
修正掛起的程序
如果在與文件相關(guān)工作期間程序掛起,NFS 服務(wù)器可能已停止。在這種情況下,可能顯示以下錯(cuò)誤消息:
NFS服務(wù)器 hostname 沒(méi)有響應(yīng),仍在嘗試
NFS服務(wù)器(hostname)已當(dāng)機(jī)。這表示 NFS 服務(wù)器、網(wǎng)絡(luò)連接或 NIS 服務(wù)器有問(wèn)題。
如果您的機(jī)器完全掛起,請(qǐng)檢查已從其安裝文件系統(tǒng)的服務(wù)器。如果一臺(tái)或多臺(tái)服務(wù)器當(dāng)機(jī),請(qǐng)不用擔(dān)心。當(dāng)服務(wù)器重新啟動(dòng)時(shí),程序會(huì)自動(dòng)繼續(xù)。沒(méi)有文件會(huì)破壞。
如果一個(gè)軟安裝服務(wù)器死機(jī),別的工作不受影響。當(dāng)嘗試訪問(wèn)軟安裝的遠(yuǎn)程文件時(shí),超時(shí)的程序會(huì)失敗并發(fā)出 errno 信息,但是您仍然可以訪問(wèn)您其它的文件系統(tǒng)。
如果所有服務(wù)器正在運(yùn)行,請(qǐng)確定是否正在運(yùn)行同一服務(wù)器其它用戶也有問(wèn)題。超過(guò)一臺(tái)有服務(wù)錯(cuò)誤的機(jī)器表示服務(wù)器上的 nfsd 守護(hù)程序有問(wèn)題。在這種情況下,請(qǐng)登錄到服務(wù)器并運(yùn)行 ps 命令來(lái)察看是否 nfsd 守護(hù)程序正在運(yùn)行并累積 CPU 時(shí)間。如果不是,您也許可以終止并重啟 nfsd 守護(hù)程序。如果不起作用,您必須重啟服務(wù)器。
如果其它系統(tǒng)似乎啟動(dòng)并運(yùn)行,請(qǐng)檢查您的網(wǎng)絡(luò)連接和服務(wù)器連接。
#p#許可和認(rèn)證方案
有時(shí),安裝已成功的建立后,會(huì)出現(xiàn)讀、寫(xiě)或創(chuàng)建遠(yuǎn)程文件或目錄的問(wèn)題。這些困難通常是由于許可或認(rèn)證問(wèn)題引起的。許可和認(rèn)證問(wèn)題的原因根據(jù)是否使用 NIS 和指定安全安裝而變化。
最簡(jiǎn)單的情況出現(xiàn)在指定了非安全安裝且沒(méi)有使用 NIS 的時(shí)候。在這種情況下,用戶標(biāo)識(shí)(UID)和組標(biāo)識(shí)(GID)只通過(guò)服務(wù)器 /etc/passwd 文件和客戶機(jī) /etc/group 文件映射。在該方案中,一個(gè)名叫 B 的要在客戶機(jī)和服務(wù)器上都識(shí)別為 B 用戶,用戶 B 必須在 /etc/passwd 文件中有相同的 UID 號(hào)。下面是一個(gè)這樣可能如何導(dǎo)致問(wèn)題的示例:
用戶 B 在客戶機(jī) foo 上的 uid 是 200。
用戶 B 在服務(wù)器 bar 上的 uid 是 250。
用戶 G 在服務(wù)器 bar 上的 uid 是 200。
/home/bar 目錄從服務(wù)器 bar 安裝到客戶機(jī) foo。如果用戶 B 正編輯在客戶機(jī) foo 上的 /home/bar 遠(yuǎn)程文件系統(tǒng)上的文件,當(dāng)保存文件時(shí)會(huì)發(fā)生混亂。
服務(wù)器 bar 認(rèn)為文件屬于用戶 G,因?yàn)?G 在 bar 上的 UID 是 200。如果 B 通過(guò)使用 rlogin 命令直接登錄到 bar,則其可能無(wú)法訪問(wèn)剛才在遠(yuǎn)程安裝的文件系統(tǒng)上工作時(shí)創(chuàng)建的文件。然而 G,可以這樣做,因?yàn)闄C(jī)器根據(jù) UID 而不是名稱仲裁許可權(quán)的。
該問(wèn)題唯一的***解決方案是在兩臺(tái)機(jī)器上重新分配一致的 UID。例如,在服務(wù)器 bar 上給 B UID 200 或在客戶機(jī) foo 上給它 250。然后需要對(duì) B 的這些文件運(yùn)行 chown 命令,以使它們與相應(yīng)機(jī)器上的新標(biāo)識(shí)匹配。
由于在網(wǎng)絡(luò)中維護(hù)所有機(jī)器 UID 和 GID 映射一致的問(wèn)題,通常用 NIS 或 NIS+ 來(lái)執(zhí)行相應(yīng)的映射以避免此類問(wèn)題。有關(guān)更多信息,請(qǐng)參閱 AIX 5L Version 5.2 Network Information Services (NIS and NIS+) Guide 。
NFS服務(wù)器上的名稱解析
當(dāng)一個(gè) NFS 服務(wù)器服務(wù)一個(gè)安裝請(qǐng)求時(shí),它查找產(chǎn)生請(qǐng)求的客戶機(jī)的名稱。服務(wù)器接管客戶機(jī)網(wǎng)際協(xié)議(IP)地址并查找匹配該地址的相應(yīng)主機(jī)名。一旦找到主機(jī)名,服務(wù)器會(huì)在導(dǎo)出列表中查找請(qǐng)求的目錄并在目錄的訪問(wèn)列表中檢查客戶機(jī)名稱是否存在。如果存在客戶機(jī)項(xiàng)且該項(xiàng)完全匹配從名稱解析返回的內(nèi)容,則通過(guò)此部分安裝認(rèn)證。
如果服務(wù)器不能執(zhí)行 IP 地址到主機(jī)名解析,則服務(wù)器拒絕安裝請(qǐng)求。服務(wù)器必須能找到產(chǎn)生安裝請(qǐng)求的客戶機(jī) IP 址的某個(gè)匹配。如果目錄已導(dǎo)出為所有客戶機(jī)訪問(wèn),則服務(wù)器仍然必須能執(zhí)行逆向名稱查找以允許安裝請(qǐng)求。
服務(wù)器也必須能查找客戶機(jī)的正確名稱。例如,如果在 /etc/exports 文件中已存在類似以下的一個(gè)項(xiàng):
/tmp -access=silly:funny
則以下相應(yīng)的項(xiàng)存在于 /etc/hosts 文件中:
150.102.23.21 silly.domain.name.com
150.102.23.52 funny.domain.name.com
請(qǐng)注意名稱是不完全對(duì)應(yīng)的。當(dāng)服務(wù)器查找主機(jī) silly 和 funny 的 IP 地址到主機(jī)名匹配時(shí),字符串名稱與導(dǎo)出訪問(wèn)列表中的項(xiàng)不完全匹配。這種類型的名稱解析問(wèn)題通常在將 named 守護(hù)程序用于名稱解析時(shí)發(fā)生。大多數(shù) named 守護(hù)程序數(shù)據(jù)庫(kù)具有主機(jī)的全域名的別名,以使用戶在引用主機(jī)時(shí)不必輸入全名。即使存在別名的主機(jī)名到 IP 地址項(xiàng),逆向查找可能不存在。逆向名稱查找的數(shù)據(jù)庫(kù)(IP 地址到主機(jī)名)通常具有包含該主機(jī)的 IP 地址和全域名(不是別名)。有時(shí)導(dǎo)出項(xiàng)以較短的別名創(chuàng)建,當(dāng)客戶機(jī)嘗試安裝時(shí)會(huì)引起問(wèn)題。
NFS結(jié)構(gòu)中組數(shù)的限制
在使用 NFS V3.2 的系統(tǒng)上,用戶不可能成為超過(guò) 16 個(gè)組的成員而不導(dǎo)致復(fù)雜化。 (組由 groups 命令定義。)如果一個(gè)用戶是 17 個(gè)或更多組的成員,且用戶嘗試訪問(wèn)第 17 個(gè)(或更大)組擁有的文件時(shí),系統(tǒng)將不允許文件讀取或復(fù)制。為了允許用戶訪問(wèn)文件,請(qǐng)重排列組的次序。
從具有先前版本 NFS 的 NFS 服務(wù)器安裝
當(dāng)從早于 NFS V3 的服務(wù)器安裝文件系統(tǒng)到 NFS V3 客戶機(jī)時(shí),當(dāng)客戶機(jī)上執(zhí)行安裝的用戶是超過(guò)八個(gè)組的成員時(shí)會(huì)發(fā)生問(wèn)題。一些服務(wù)器不能正確處理這種情況并拒絕安裝請(qǐng)求。解決方案是將用戶的組員身份更改為少于八個(gè)然后重試安裝。以下是這種組問(wèn)題的特征錯(cuò)誤消息:
RPC: Authentication error; why=Invalid client credential
沒(méi)有裝載NFS內(nèi)核擴(kuò)展而發(fā)生的問(wèn)題
有些NFS命令在NFS內(nèi)核擴(kuò)展沒(méi)有裝入的情況下不能正確執(zhí)行。具有這些相關(guān)性的一些命令有: nfsstat 、 exportfs 、 mountd 、 nfsd 和 biod 。當(dāng) NFS 安裝在系統(tǒng)上時(shí),內(nèi)核擴(kuò)展存放在 /usr/lib/drivers/nfs.ext 文件中。然后當(dāng)配置系統(tǒng)文件時(shí),該文件隨后裝入為 NFS 內(nèi)核擴(kuò)展。進(jìn)行該內(nèi)核擴(kuò)展的腳本裝入 /etc/rc.net 文件。在腳本中完成了許多別的東西,其中之一用來(lái)裝入 NFS 內(nèi)核擴(kuò)展。請(qǐng)注意傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)內(nèi)核擴(kuò)展應(yīng)該在裝入 NFS 內(nèi)核擴(kuò)展之前裝入。
注:
gfsinstall 命令是用于在系統(tǒng)初始啟動(dòng)時(shí)將 NFS 內(nèi)核擴(kuò)展裝入內(nèi)核的命令。每次系統(tǒng)啟動(dòng)時(shí)這條命令可以運(yùn)行超過(guò)一次而并不會(huì)導(dǎo)致問(wèn)題。當(dāng)前隨系統(tǒng)提供了 gfsinstall 命令,該命令用于 /etc/rc.net 和 /etc/rc.nfs 文件中。不需除去這些調(diào)用中的任何一個(gè)。