nfs参数介绍与写法示例及报错( Operation not permitted)
一.?NFS各版本通用參數(shù)
soft/hard【參數(shù)說明】軟掛載方式掛載系統(tǒng),若NFS請求超時,則客戶端向調(diào)用程序返回錯誤;如果使用硬連接方式則客戶端一直重新請求直至成功。默認(rèn)為hard。
【使用建議】對于關(guān)鍵數(shù)據(jù)業(yè)務(wù),不希望業(yè)務(wù)由于網(wǎng)絡(luò)延遲或服務(wù)器服務(wù)重啟或短暫的過載等情況而中斷,建議掛載時使用hard參數(shù);對于非關(guān)鍵數(shù)據(jù)業(yè)務(wù),希望客戶端程序能盡快響應(yīng),可以使用soft參數(shù)。
timeo=n【參數(shù)說明】客戶端重傳請求前等待時間。對于基于TCP的NFS服務(wù),默認(rèn)等待重傳時間為60s。使用TCP協(xié)議時,NFS Client不執(zhí)行任何超時backoff。對于UDP協(xié)議,client使用一個合適的算法,為常用的請求類型estimate合適的超時時間。但對不常用的請求類型使用timeo設(shè)置。如果timeo沒有設(shè)置,不常用的請求類型1.1秒以后重試。在每次重發(fā)后,NFS Client會將timeout時間加倍,直到最大的60秒。
retrans=n:客戶端返回錯誤前的重傳次數(shù)。默認(rèn)為重傳3次。retrans與soft參數(shù)一起使用時才有效。
【使用建議】timeo、retrans這兩個參數(shù)選擇主要取決于網(wǎng)絡(luò)性能。對于網(wǎng)絡(luò)吞吐量小,延時高,抖動高,丟包率大的情況,建議將timeo,retrans兩個參數(shù)值設(shè)置大一些。對于網(wǎng)絡(luò)吞吐量大,延時低,抖動低,丟包率小的情況,建議將timeo,retrans兩個參數(shù)值設(shè)置小一些。具體設(shè)置值因網(wǎng)絡(luò)狀況而定。
resize=n【參數(shù)說明】每個READ命令字向服務(wù)器讀取文件的最大字節(jié)數(shù)。實際數(shù)據(jù)小于或等于此值。resize必須是1024倍數(shù)的正整數(shù),小于1024時自動設(shè)為4096,大于1048576時自動設(shè)為1048576。默認(rèn)時,服務(wù)器和客戶端進(jìn)行協(xié)商后設(shè)置。
【使用建議】通常使用默認(rèn)值,由客戶端和服務(wù)器協(xié)商設(shè)置。對于擁塞的低速網(wǎng)絡(luò),可以將該值調(diào)小,向服務(wù)器發(fā)送較短的請求包來提高NFS性能。對于高速網(wǎng)絡(luò),可以將該值增大,減少向服務(wù)器發(fā)送的請求包,獲得性能的提升。
wsize=n【參數(shù)說明】每個WRITE命令字向服務(wù)器寫入文件的最大字節(jié)數(shù)。實際數(shù)據(jù)小于或等于此值。resize必須是1024倍數(shù)的正整數(shù),小于1024時自動設(shè)為4096,大于1048576時自動設(shè)為1048576。默認(rèn)時,服務(wù)器和客戶端進(jìn)行協(xié)商后設(shè)置。
【使用建議】通常使用默認(rèn)值,由客戶端和服務(wù)器協(xié)商設(shè)置。對于擁塞的低速網(wǎng)絡(luò),可以將該值調(diào)小,向服務(wù)器發(fā)送較小的請求包來提高NFS性能。對于高速網(wǎng)絡(luò),可以將該值增大,減少向服務(wù)器發(fā)送的請求包,獲得性能的提升。
async/sync【參數(shù)說明】同步、異步掛載,客戶端默認(rèn)異步(async)。對于異步掛載,客戶端下發(fā)的寫數(shù)據(jù)會先緩存在內(nèi)存中,達(dá)到一定大小或者其他條件(與客戶端設(shè)置,狀態(tài)有關(guān)),再一起發(fā)往服務(wù)端。而同步掛載,每次下發(fā)的寫數(shù)據(jù)馬上發(fā)到服務(wù)端。
【使用建議】建議用默認(rèn)的異步掛載,可以提高業(yè)務(wù)性能。對于客戶端應(yīng)用層來說,完全感知不到數(shù)據(jù)是否發(fā)往服務(wù)端,只能感知數(shù)據(jù)已經(jīng)寫成功。同步掛載要求每個請求立即發(fā)到服務(wù)端,增加了請求連接、發(fā)送次數(shù),對于小io場景性能差異很明顯(io越小,差異越大,一般都能達(dá)到幾倍甚至更大的差異)。
????注:對于異步掛載,可能在查看io性能顯現(xiàn)為性能波動。在客戶端寫入緩存期間iops可能就低,因為數(shù)據(jù)還未發(fā)到服務(wù)端。但是性能是完全正常的,應(yīng)該說比同步更好。如果是要要追求界面上的平穩(wěn),那就建議改為同步掛載。(補(bǔ)充:追求一次小io的數(shù)據(jù)全部刷到服務(wù)端穩(wěn)定存儲時間小,不僅要求客戶端同步掛載,還需要服務(wù)端共享也是同步導(dǎo)出,否則需要加上手動commit刷盤——flush)。
?acregmin/acregmax【參數(shù)說明】設(shè)置NFS客戶端緩存普通文件屬性的最短時間和最長時間,單位為秒。超過此時間后對其進(jìn)行更新。默認(rèn)最短時間是3s,最長時間是60s。
?acdirmin/acdirmax【參數(shù)說明】設(shè)置NFS客戶端緩存目錄屬性的最短時間和最長時間,單位為秒。超過此時間后對其進(jìn)行更新。默認(rèn)最短時間是3s,最長時間是60s。
?ac/noac【參數(shù)說明】設(shè)置是否緩存文件屬性。為了提高性能,NFS客戶端緩存文件屬性(默認(rèn)ac),然后每隔一段時間去檢查文件屬性后更新。在緩存有效期內(nèi),客戶端不檢測服務(wù)器上文件屬性是否改變。默認(rèn)為ac。
【使用建議】當(dāng)服務(wù)器上共享文件的屬性頻繁地被多個客戶端改變時,建議使用noac選項,或者使用ac并配合使用較小的acregmin/acregmax/acdirmin/acdirmax設(shè)置,這樣就能獲得較好的屬性一致性。當(dāng)服務(wù)器上共享文件的屬性不會被頻繁改變時,例如文件共享為只讀,或者網(wǎng)絡(luò)性能較好,建議使用默認(rèn)的ac選項,然后根據(jù)實際的網(wǎng)絡(luò)狀況來調(diào)整acregmin/acregmax/acdirmin/acdirmax設(shè)置。
?Actimeo【參數(shù)說明】將acregmin/acregmax/acdirmin/acdirmax四個參數(shù)設(shè)置為相同時間,單位為秒。
?bg/fg【參數(shù)說明】設(shè)置掛載失敗后的行為方式。默認(rèn)的fg方式將立刻退出返回錯誤狀態(tài),bg方式是退出前將產(chǎn)生一個子進(jìn)程在后臺繼續(xù)嘗試掛載。?
sharecache/nosharecache【參數(shù)說明】設(shè)置客戶端并發(fā)掛載同一文件系統(tǒng)時數(shù)據(jù)緩存和屬性緩存的共享方式。設(shè)置為sharecache時,多個掛載共享共享同一緩存。設(shè)為nosharecache時,每個掛載各有一個緩存。默認(rèn)為sharecache。
使用建議:該參數(shù)用于客戶端多次掛載同一共享目錄的情況,建議使用默認(rèn)的sharecache選項。
?resvport/noresvport【參數(shù)說明】設(shè)置連接服務(wù)器是否使用保密源端口。默認(rèn)的resvport設(shè)置保密端口,noresvport設(shè)置為非保密端口。內(nèi)核2.6.28及以后版本支持。
?lookupcache=mode【參數(shù)說明】設(shè)置內(nèi)核管理給定掛載點的目錄項緩存方式。其中包括all/none/pos幾種方式。客戶端緩存LOOKUP命令字請求結(jié)果。如果請求的目錄項在服務(wù)器上,則返回結(jié)果為正,否則為負(fù)。all的管理方式是在父目錄緩存的屬性失效前客戶端緩存這兩種目錄項;pos是在父目錄緩存的屬性失效前客戶端緩存結(jié)果為正的查詢結(jié)果,總是重新驗證結(jié)果為負(fù)的查詢結(jié)果。none總是重新驗證目錄緩存項。默認(rèn)為all管理方式,內(nèi)核2.6.28及以后版本支持。
【使用建議】LOOKUP命令字的作用是將文件名轉(zhuǎn)換文件句柄。對于多個客戶端經(jīng)常創(chuàng)建或刪除文件的情況,建議使用none。其它情況選用all或者pos。
?intr/nointr【參數(shù)說明】設(shè)置是否允許信號中斷掛載點的文件操作。如果指定intr,當(dāng)NFS操作被信號中斷時系統(tǒng)返回EINTR。指定nointr,信號不會中斷NFS文件操作。默認(rèn)為nointr。指定intr時,通常同時使用soft選項,防止數(shù)據(jù)損壞。內(nèi)核2.6.25及以后不再支持。
cto/nocto【參數(shù)說明】設(shè)置是否使用“關(guān)閉打開”緩存一致的特性。通常客戶端打開文件時檢查是否存在以及是否有權(quán)限,當(dāng)關(guān)閉文件時刷新更改。當(dāng)設(shè)置為nocto時,客戶端使用非標(biāo)準(zhǔn)的試探來檢查服務(wù)器上文件是否改變,對于只讀和文件更改較少時情形有助于提高性能。
【使用建議】對于文件內(nèi)容改變很少的情況,如服務(wù)器提供只讀共享權(quán)限(文件系統(tǒng)以RO權(quán)限導(dǎo)出)給客戶使用,建議使用nocto選項,這樣可以提高性能。對于文件內(nèi)容經(jīng)常改變,客戶端對文件緩存一致性要求較高,建議使用cto參數(shù)。
2?對NFS(NFS2/NFS3)有效的選項:
?proto=transport【參數(shù)說明】客戶端向服務(wù)器發(fā)起傳輸請求使用的協(xié)議,可以為UDP或者TCP。未指定時,mount命令選擇服務(wù)器支持的協(xié)議。
tcp/udp【參數(shù)說明】等價于proto=tcp和proto=udp選項。
【使用建議】在不穩(wěn)定的復(fù)雜網(wǎng)絡(luò)環(huán)境中建議使用tcp參數(shù),在穩(wěn)定的網(wǎng)絡(luò)下可以使用udp參數(shù)。NFSv3/NFSv4支持tcp/udp,NFSv2只支持udp。
port=n【參數(shù)說明】指定服務(wù)器NFS服務(wù)端口。如果NFS服務(wù)端口不在port上,則mount請求失敗。未指定或設(shè)為0,mount命令根據(jù)服務(wù)器的rpcbind服務(wù)選擇服務(wù)端口。
mountport=n【參數(shù)說明】指定服務(wù)器上mountd的端口。如果mountd服務(wù)端口不在port上,則mount請求失敗。未指定或設(shè)為0,mount命令根據(jù)服務(wù)器的rpcbind服務(wù)選擇服務(wù)端口。該參數(shù)用于即使防火墻屏蔽rpcbind協(xié)議也能正常mount到服務(wù)器。
?mountproto=transport【參數(shù)說明】客戶端向服務(wù)器發(fā)起MNT請求時和UMNT使用的協(xié)議,可以為udp或者tcp。該參數(shù)用于防火墻屏蔽特定的協(xié)議也能正常mount到服務(wù)器。
?mounthost=name【參數(shù)說明】設(shè)置開啟mountd主機(jī)名。未指定時,mount命令認(rèn)為mountd服務(wù)和NFS服務(wù)在同一主機(jī)上。
?mountvers=n【參數(shù)說明】設(shè)置連接服務(wù)器mountd時的RPC版本號。未指定時使用與請求的NFS版本相適應(yīng)的版本號。該參數(shù)用于多個NFS服務(wù)運行于同一遠(yuǎn)程主機(jī)上。
namlen=n【參數(shù)說明】設(shè)置掛載路徑名的最大長度。未指定時,通過與服務(wù)器協(xié)商設(shè)定。大多數(shù)情況為255字節(jié)。
nfsvers/vers=n【參數(shù)說明】設(shè)置使用NFS服務(wù)的NFS協(xié)議版本號。當(dāng)文件系統(tǒng)為nfs時,Linux客戶端支持NFS2和NFS3。如果不支持請求的版本,mount失敗。未指定時,客戶端先嘗試使用NFS3,若失敗再與服務(wù)器進(jìn)行協(xié)商。
lock/nolock【參數(shù)說明】選擇是否使用NLM協(xié)議在服務(wù)器上鎖文件。當(dāng)選擇nolock選項時,鎖對于同一主機(jī)的應(yīng)用有效,對不同主機(jī)不受鎖的影響。默認(rèn)為lock。
acl/noacl【參數(shù)說明】設(shè)置是否在掛載時使用NFSACL協(xié)議。NFSACL協(xié)議不屬于標(biāo)準(zhǔn)NFS協(xié)議,而是Solaris上的實現(xiàn)。未指定時,客戶端與服務(wù)器協(xié)商檢查服務(wù)器是否支持,如果支持則使用NFSACL。
?rdirplus/nordirplus【參數(shù)說明】設(shè)置是否使用NFS3的REAADDIRPLUS請求。默認(rèn)為readdirplus。
?對NFS4有效的選項:
proto=transpro【參數(shù)說明】客戶端向服務(wù)器發(fā)起傳輸請求使用的協(xié)議,可以為UDP或者TCP。未指定時,選用TCP。
port=n【參數(shù)說明】指定服務(wù)器NFS服務(wù)端口。如果NFS服務(wù)端口不在port上,則mount請求失敗。未指定時,客戶端使用NFS標(biāo)準(zhǔn)的2049號端口。指定為0時,客戶端選用服務(wù)器rpcbind服務(wù)支持的端口。
?clientaddr=n.n.n.n【參數(shù)說明】指定一個IPv4的主機(jī)地址使服務(wù)器能執(zhí)行NFS4的回調(diào)請求。未指定時,mount命令嘗試自己發(fā)現(xiàn)一個合適的回調(diào)地址。
——注1:所有的參數(shù)說明都可以在linux系統(tǒng)用man nfs參看含義,對于有差異的客戶端,請用此確認(rèn)。
——注2:為了描述簡單明了,可能轉(zhuǎn)義有差異,具體參見系統(tǒng)標(biāo)準(zhǔn)描述。
——注3:沒有“使用建議”的參數(shù)推薦使用默認(rèn)參數(shù)。
二.基本用法及概述
Network File System,
網(wǎng)絡(luò)文件系統(tǒng)用途:為客戶機(jī)提供共享使用的文件夾
協(xié)議:NFS(2049)、RPC(111)
所需軟件包:nfs-utils
配置文件: /etc/expoprts
刷新配置:exportfs -r
? ? ? ? ? ? ? ? systemctl restrat nf-server
2.訪問NFS共享目錄
1)列出所有NFS共享資源
showmount -e 服務(wù)器地址(本地則忽略)2)掛載
????????手動掛載NFS共享
mount 服務(wù)器地址:文件路徑 掛載點????????開機(jī)掛在配置
服務(wù)器地址:文件夾地址 掛載點 nfs _netdev 0 0系統(tǒng)服務(wù):nfs-server/etc/exports文件夾路徑客戶機(jī)地址(權(quán)限)/public*(ro)#允許所有客戶端進(jìn)行只讀訪問
/etc/exports 文件夾路徑 客戶機(jī)地址(權(quán)限) /public *(ro) #只讀 #允許所有客戶端進(jìn)行只讀訪問 其他權(quán)限寫法 (rw)讀寫? ?3.示例
????????1.裝包rpm-qnfs-utilsnfs-utils-1.3.0-0.54.el7.x86_64
????????2.創(chuàng)建共享目錄mkdir/public
????????3.寫入echohaha>/public/h.txtechoxixi>/public/x.txt
????????4.查看ls /punlic
????????5.寫配置文件/etc/exports文件夾路徑客戶機(jī)地址(權(quán)限)如:/public*(ro)#允許所有客戶端進(jìn)行只讀訪問
????????6.客戶端顯示服務(wù)端的共享文件
showmount -e‘服務(wù)端ip’? ? ? ? 7.客戶端創(chuàng)建nfs掛載點然后掛載mount服務(wù)端ip:共享目錄掛載點8實現(xiàn)開機(jī)自動掛載_netdev:聲明網(wǎng)絡(luò)設(shè)備,系統(tǒng)在具備網(wǎng)絡(luò)參數(shù)后,再進(jìn)行掛載本設(shè)備寫法例子:
192.168.4.7:/public/mnt/mynfs nfs _netdev 0 0三.特殊權(quán)限寫法及掛載
配置示例1:
/mount/www? 10.1.8.0/24(rw,all_squash,anonuid=500,anongid=500) /mount/www? 10.1.8.0/24(rw)常見的選項:
? ? ? ?ro:默認(rèn)選項,以只讀的方式共享。
? ? ? ?rw:以讀寫的方式共享。
? ? ? ?root_squash:將客戶端使用的是root用戶時,則映射到NFS服務(wù)器的用戶為NFS的匿名用戶(nfsnobody)。
? ? ? ?no_root_squash:將客戶端使用的是root用戶時,則映射到FNS服務(wù)器的用戶依然為root用戶。
? ? ? ?all_squash:默認(rèn)選項,將所有訪問NFS服務(wù)器的客戶端的用戶都映射為匿名用戶,不管客戶端使用的是什么用戶。
? ? ? ?anonuid:設(shè)置映射到本地的匿名用戶的UID
? ? ? ?anongid:設(shè)置映射到本地的匿名用戶的GID
? ? ? ?sync:默認(rèn)選項,保持?jǐn)?shù)據(jù)同步,數(shù)據(jù)同步寫入到內(nèi)存和硬盤。
? ? ? ?async:異步,先將數(shù)據(jù)寫入到內(nèi)存,在將數(shù)據(jù)寫入到硬盤。
? ? ? ?secure:NFS客戶端必須使用NFS保留端口(通常是1024以下的端口),默認(rèn)選項。
? ? ? ?insecure:允許NFS客戶端不使用NFS保留端口(通常是1024以上的端口)。
配置示例2
當(dāng)?mount -o noresvport <nfs 服務(wù)>?時,會碰到?Operation not permitted?問題,因為 nfs 默認(rèn)配置選項是?secure,不允許客戶端通過非特權(quán)端口訪問。
如果客戶端必須要?mount -o noresvport?訪問,那么就需要 nfs 服務(wù)器配置允許非特權(quán)端口訪問。需要修改 /etc/exports,設(shè)置?insecure?選項。
/etc/exports
/etc/exports?是 nfs 服務(wù)端的配置。nfs 客戶端不讀這個配置文件。
exportfs -s?查看 nfs 服務(wù)已加載的配置情況。
修改?/etc/exports?文件不會自動應(yīng)用到當(dāng)前 nfs,需要通過?exportfs -rv?重載。
cat /etc/exports /keke *(rw,insecure) exportfs -r mount -t nfs -o vers=4.0,noresvport,lookupcache=pos 192.168.1.1:/keke /mnt/nfs總結(jié)
以上是生活随笔為你收集整理的nfs参数介绍与写法示例及报错( Operation not permitted)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 本机镜像仓库base64解密
- 下一篇: linux定时关机