NFS掛載參數詳解及使用建議

  1. NFS各版本通用參數
參數 說明 使用建議
soft/hard 軟掛載方式掛載系統(tǒng),若NFS請求超時,則客戶端向調用程序返回錯誤;如果使用硬連接方式則客戶端一直重新請求直至成功。默認為hard。 對于關鍵數據業(yè)務,不希望業(yè)務由于網絡延遲或服務器服務重啟或短暫的過載等情況而中斷,建議掛載時使用hard參數;對于非關鍵數據業(yè)務,希望客戶端程序能盡快響應,可以使用soft參數。
timeo=n 客戶端重傳請求前等待時間。對于基于TCP的NFS服務,默認等待重傳時間為60s。使用TCP協(xié)議時,NFS Client不執(zhí)行任何超時backoff。對于UDP協(xié)議,client使用一個合適的算法,為常用的請求類型estimate合適的超時時間。但對不常用的請求類型使用timeo設置。如果timeo沒有設置,不常用的請求類型1.1秒以后重試。在每次重發(fā)后,NFS Client會將timeout時間加倍,直到最大的60秒。 timeo、retrans**這兩個參數選擇主要取決于網絡性能。對于網絡吞吐量小,延時高,抖動高,丟包率大的情況,建議將timeo,retrans兩個參數值設置大一些。對于網絡吞吐量大,延時低,抖動低,丟包率小的情況,建議將timeo,retrans兩個參數值設置小一些。具體設置值因網絡狀況而定。
resize=n 每個READ命令字向服務器讀取文件的最大字節(jié)數。實際數據小于或等于此值。resize必須是1024倍數的正整數,小于1024時自動設為4096,大于1048576時自動設為1048576。默認時,服務器和客戶端進行協(xié)商后設置。 通常使用默認值,由客戶端和服務器協(xié)商設置。對于擁塞的低速網絡,可以將該值調小,向服務器發(fā)送較短的請求包來提高NFS性能。對于高速網絡,可以將該值增大,減少向服務器發(fā)送的請求包,獲得性能的提升。
wsize=n 每個WRITE命令字向服務器寫入文件的最大字節(jié)數。實際數據小于或等于此值。resize必須是1024倍數的正整數,小于1024時自動設為4096,大于1048576時自動設為1048576。默認時,服務器和客戶端進行協(xié)商后設置。 通常使用默認值,由客戶端和服務器協(xié)商設置。對于擁塞的低速網絡,可以將該值調小,向服務器發(fā)送較小的請求包來提高NFS性能。對于高速網絡,可以將該值增大,減少向服務器發(fā)送的請求包,獲得性能的提升。
async/sync 同步、異步掛載,客戶端默認異步(async)。對于異步掛載,客戶端下發(fā)的寫數據會先緩存在內存中,達到一定大小或者其他條件(與客戶端設置,狀態(tài)有關),再一起發(fā)往服務端。而同步掛載,每次下發(fā)的寫數據馬上發(fā)到服務端。 建議用默認的異步掛載,可以提高業(yè)務性能。對于客戶端應用層來說,完全感知不到數據是否發(fā)往服務端,只能感知數據已經寫成功。同步掛載要求每個請求立即發(fā)到服務端,增加了請求連接、發(fā)送次數,對于小io場景性能差異很明顯(io越小,差異越大,一般都能達到幾倍甚至更大的差異)。對于異步掛載,可能在查看io性能顯現(xiàn)為性能波動。在客戶端寫入緩存期間iops可能就低,因為數據還未發(fā)到服務端。但是性能是完全正常的,應該說比同步更好。如果是要要追求界面上的平穩(wěn),那就建議改為同步掛載。(補充:追求一次小io的數據全部刷到服務端穩(wěn)定存儲時間小,不僅要求客戶端同步掛載,還需要服務端共享也是同步導出,否則需要加上手動commit刷盤——flush)。
acregmin/acregmax 設置NFS客戶端緩存普通文件屬性的最短時間和最長時間,單位為秒。超過此時間后對其進行更新。默認最短時間是3s,最長時間是60s。
acdirmin/acdirmax 設置NFS客戶端緩存目錄屬性的最短時間和最長時間,單位為秒。超過此時間后對其進行更新。默認最短時間是3s,最長時間是60s。
ac/noac 設置是否緩存文件屬性。為了提高性能,NFS客戶端緩存文件屬性(默認ac),然后每隔一段時間去檢查文件屬性后更新。在緩存有效期內,客戶端不檢測服務器上文件屬性是否改變。默認為ac。 當服務器上共享文件的屬性頻繁地被多個客戶端改變時,建議使用noac選項,或者使用ac并配合使用較小的acregmin/acregmax/acdirmin/acdirmax設置,這樣就能獲得較好的屬性一致性。當服務器上共享文件的屬性不會被頻繁改變時,例如文件共享為只讀,或者網絡性能較好,建議使用默認的ac選項,然后根據實際的網絡狀況來調整acregmin/acregmax/acdirmin/acdirmax設置。
Actimeo 將acregmin/acregmax/acdirmin/acdirmax四個參數設置為相同時間,單位為秒。
bg/fg 設置掛載失敗后的行為方式。默認的fg方式將立刻退出返回錯誤狀態(tài),bg方式是退出前將產生一個子進程在后臺繼續(xù)嘗試掛載。
sharecache/nosharecache 設置客戶端并發(fā)掛載同一文件系統(tǒng)時數據緩存和屬性緩存的共享方式。設置為sharecache時,多個掛載共享共享同一緩存。設為nosharecache時,每個掛載各有一個緩存。默認為sharecache。 該參數用于客戶端多次掛載同一共享目錄的情況,建議使用默認的sharecache選項。
resvport/noresvport 設置連接服務器是否使用保密源端口。默認的resvport設置保密端口,noresvport設置為非保密端口。內核2.6.28及以后版本支持。
lookupcache=mode 設置內核管理給定掛載點的目錄項緩存方式。其中包括all/none/pos幾種方式??蛻舳司彺鍸OOKUP命令字請求結果。如果請求的目錄項在服務器上,則返回結果為正,否則為負。all的管理方式是在父目錄緩存的屬性失效前客戶端緩存這兩種目錄項;pos是在父目錄緩存的屬性失效前客戶端緩存結果為正的查詢結果,總是重新驗證結果為負的查詢結果。none總是重新驗證目錄緩存項。默認為all管理方式,內核2.6.28及以后版本支持。 LOOKUP命令字的作用是將文件名轉換文件句柄。對于多個客戶端經常創(chuàng)建或刪除文件的情況,建議使用none。其它情況選用all或者pos。
intr/nointr 設置是否允許信號中斷掛載點的文件操作。如果指定intr,當NFS操作被信號中斷時系統(tǒng)返回EINTR。指定nointr,信號不會中斷NFS文件操作。默認為nointr。指定intr時,通常同時使用soft選項,防止數據損壞。內核2.6.25及以后不再支持。
cto/nocto 設置是否使用“關閉打開”緩存一致的特性。通常客戶端打開文件時檢查是否存在以及是否有權限,當關閉文件時刷新更改。當設置為nocto時,客戶端使用非標準的試探來檢查服務器上文件是否改變,對于只讀和文件更改較少時情形有助于提高性能。 對于文件內容改變很少的情況,如服務器提供只讀共享權限(文件系統(tǒng)以RO權限導出)給客戶使用,建議使用nocto選項,這樣可以提高性能。對于文件內容經常改變,客戶端對文件緩存一致性要求較高,建議使用cto參數。
  1. 對NFS2、NFS3有效的參數:
參數 說明 使用建議
proto=transport 客戶端向服務器發(fā)起傳輸請求使用的協(xié)議,可以為UDP或者TCP。未指定時,mount命令選擇服務器支持的協(xié)議。
tcp/udp 等價于proto=tcp和proto=udp選項。 在不穩(wěn)定的復雜網絡環(huán)境中建議使用tcp參數,在穩(wěn)定的網絡下可以使用udp參數。NFSv3/NFSv4支持tcp/udp,NFSv2只支持udp。
port=n 指定服務器NFS服務端口。如果NFS服務端口不在port上,則mount請求失敗。未指定或設為0,mount命令根據服務器的rpcbind服務選擇服務端口。
mountport=n 指定服務器上mountd的端口。如果mountd服務端口不在port上,則mount請求失敗。未指定或設為0,mount命令根據服務器的rpcbind服務選擇服務端口。該參數用于即使防火墻屏蔽rpcbind協(xié)議也能正常mount到服務器。
mountproto=transport 客戶端向服務器發(fā)起MNT請求時和UMNT使用的協(xié)議,可以為udp或者tcp。該參數用于防火墻屏蔽特定的協(xié)議也能正常mount到服務器。
mounthost=name 設置開啟mountd主機名。未指定時,mount命令認為mountd服務和NFS服務在同一主機上。
mountvers=n 設置連接服務器mountd時的RPC版本號。未指定時使用與請求的NFS版本相適應的版本號。該參數用于多個NFS服務運行于同一遠程主機上。
namlen=n 設置掛載路徑名的最大長度。未指定時,通過與服務器協(xié)商設定。大多數情況為255字節(jié)。
nfsvers/vers=n 設置使用NFS服務的NFS協(xié)議版本號。當文件系統(tǒng)為nfs時,Linux客戶端支持NFS2和NFS3。如果不支持請求的版本,mount失敗。未指定時,客戶端先嘗試使用NFS3,若失敗再與服務器進行協(xié)商。
lock/nolock 選擇是否使用NLM協(xié)議在服務器上鎖文件。當選擇nolock選項時,鎖對于同一主機的應用有效,對不同主機不受鎖的影響。默認為lock。
acl/noacl 設置是否在掛載時使用NFSACL協(xié)議。NFSACL協(xié)議不屬于標準NFS協(xié)議,而是Solaris上的實現(xiàn)。未指定時,客戶端與服務器協(xié)商檢查服務器是否支持,如果支持則使用NFSACL。
rdirplus/nordirplus 設置是否使用NFS3的REAADDIRPLUS請求。默認為readdirplus。
  1. NFS4有效的參數:
參數 說明
proto=transpro 客戶端向服務器發(fā)起傳輸請求使用的協(xié)議,可以為UDP或者TCP。未指定時,選用TCP。
port=n 指定服務器NFS服務端口。如果NFS服務端口不在port上,則mount請求失敗。未指定時,客戶端使用NFS標準的2049號端口。指定為0時,客戶端選用服務器rpcbind服務支持的端口。
clientaddr=n.n.n.n 指定一個IPv4的主機地址使服務器能執(zhí)行NFS4的回調請求。未指定時,mount命令嘗試自己發(fā)現(xiàn)一個合適的回調地址。

轉載自https://blog.csdn.net/qq_43355223/article/details/122682180

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容