目錄
一、NFS常用掛載選項
ro 只讀訪問
rw 讀寫訪問
sync 同步寫數據
async 異步寫入數據
secure NFS通過1024以下的安全TCP/IP端口發送
insecure NFS通過1024以上的端口發送
wdelay 如果多個用戶要寫入NFS目錄,則歸組寫入(默認)
no_wdelay 如果多個用戶要寫入NFS目錄,則立即寫入,當使用async時,無需此設置。
hide 在NFS共享目錄中不共享其子目錄
no_hide 共享NFS目錄的子目錄
subtree_check 如果共享/usr/bin之類的子目錄時,強制NFS檢查父目錄的權限(默認)
no_subtree_check 和上面相對,不檢查父目錄權限
all_squash 共享文件的UID和GID映射匿名用戶anonymous,適合公用目錄。
no_all_squash 保留共享文件的UID和GID(默認)
root_squash root用戶的所有請求映射成如anonymous用戶一樣的權限(默認)
no_root_squas root用戶具有根目錄的完全管理訪問權限
anonuid=xxx 指定NFS服務器/etc/passwd文件中匿名用戶的UID
anongid=xxx 指定NFS服務器/etc/passwd文件中匿名用戶的GID
二、掛載選項詳解
1 、NFS各版本通用參數
soft/hard
【參數說明】軟掛載方式掛載系統,若NFS請求超時,則客戶端向調用程序返回錯誤;如果使用硬連接方式則客戶端一直重新請求直至成功。默認為hard。
【使用建議】對於關鍵數據業務,不希望業務由於網絡延遲或服務器服務重啟或短暫的過載等情況而中斷,建議掛載時使用hard參數;對於非關鍵數據業務,希望客戶端程序能盡快響應,可以使用soft參數。
timeo=n
【參數說明】客戶端重傳請求前等待時間。對於基於TCP的NFS服務,默認等待重傳時間為60s。使用TCP協議時,NFS Client不執行任何超時backoff。對於UDP協議,client使用一個合適的算法,為常用的請求類型estimate合適的超時時間。但對不常用的請求類型使用timeo設置。如果timeo沒有設置,不常用的請求類型1.1秒以后重試。在每次重發后,NFS Client會將timeout時間加倍,直到最大的60秒。
retrans=n****:客戶端返回錯誤前的重傳次數。默認為重傳3次。retrans與soft參數一起使用時才有效。
【使用建議】timeo、retrans這兩個參數選擇主要取決於網絡性能。對於網絡吞吐量小,延時高,抖動高,丟包率大的情況,建議將timeo,retrans兩個參數值設置大一些。對於網絡吞吐量大,延時低,抖動低,丟包率小的情況,建議將timeo,retrans兩個參數值設置小一些。具體設置值因網絡狀況而定。
resize=n
【參數說明】每個READ命令字向服務器讀取文件的最大字節數。實際數據小於或等於此值。resize必須是1024倍數的正整數,小於1024時自動設為4096,大於1048576時自動設為1048576。默認時,服務器和客戶端進行協商后設置。
【使用建議】通常使用默認值,由客戶端和服務器協商設置。對於擁塞的低速網絡,可以將該值調小,向服務器發送較短的請求包來提高NFS性能。對於高速網絡,可以將該值增大,減少向服務器發送的請求包,獲得性能的提升。
wsize=n
【參數說明】每個WRITE命令字向服務器寫入文件的最大字節數。實際數據小於或等於此值。resize必須是1024倍數的正整數,小於1024時自動設為4096,大於1048576時自動設為1048576。默認時,服務器和客戶端進行協商后設置。
【使用建議】通常使用默認值,由客戶端和服務器協商設置。對於擁塞的低速網絡,可以將該值調小,向服務器發送較小的請求包來提高NFS性能。對於高速網絡,可以將該值增大,減少向服務器發送的請求包,獲得性能的提升。
async/sync
【參數說明】同步、異步掛載,客戶端默認異步(async)。對於異步掛載,客戶端下發的寫數據會先緩存在內存中,達到一定大小或者其他條件(與客戶端設置,狀態有關),再一起發往服務端。而同步掛載,每次下發的寫數據馬上發到服務端。
【使用建議】建議用默認的異步掛載,可以提高業務性能。對於客戶端應用層來說,完全感知不到數據是否發往服務端,只能感知數據已經寫成功。同步掛載要求每個請求立即發到服務端,增加了請求連接、發送次數,對於小io場景性能差異很明顯(io越小,差異越大,一般都能達到幾倍甚至更大的差異)。
注:對於異步掛載,可能在查看io性能顯現為性能波動。在客戶端寫入緩存期間iops可能就低,因為數據還未發到服務端。但是性能是完全正常的,應該說比同步更好。如果是要要追求界面上的平穩,那就建議改為同步掛載。(補充:追求一次小io的數據全部刷到服務端穩定存儲時間小,不僅要求客戶端同步掛載,還需要服務端共享也是同步導出,否則需要加上手動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方式將立刻退出返回錯誤狀態,bg方式是退出前將產生一個子進程在后台繼續嘗試掛載。
sharecache/nosharecache
【參數說明】設置客戶端並發掛載同一文件系統時數據緩存和屬性緩存的共享方式。設置為sharecache時,多個掛載共享共享同一緩存。設為nosharecache時,每個掛載各有一個緩存。默認為sharecache。
使用建議:該參數用於客戶端多次掛載同一共享目錄的情況,建議使用默認的sharecache選項。
resvport/noresvport
【參數說明】設置連接服務器是否使用保密源端口。默認的resvport設置保密端口,noresvport設置為非保密端口。內核2.6.28及以后版本支持。
lookupcache=mode
【參數說明】設置內核管理給定掛載點的目錄項緩存方式。其中包括all/none/pos幾種方式。客戶端緩存LOOKUP命令字請求結果。如果請求的目錄項在服務器上,則返回結果為正,否則為負。all的管理方式是在父目錄緩存的屬性失效前客戶端緩存這兩種目錄項;pos是在父目錄緩存的屬性失效前客戶端緩存結果為正的查詢結果,總是重新驗證結果為負的查詢結果。none總是重新驗證目錄緩存項。默認為all管理方式,內核2.6.28及以后版本支持。
【使用建議】LOOKUP命令字的作用是將文件名轉換文件句柄。對於多個客戶端經常創建或刪除文件的情況,建議使用none。其它情況選用all或者pos。
intr/nointr
【參數說明】設置是否允許信號中斷掛載點的文件操作。如果指定intr,當NFS操作被信號中斷時系統返回EINTR。指定nointr,信號不會中斷NFS文件操作。默認為nointr。指定intr時,通常同時使用soft選項,防止數據損壞。內核2.6.25及以后不再支持。
cto/nocto
【參數說明】設置是否使用“關閉打開”緩存一致的特性。通常客戶端打開文件時檢查是否存在以及是否有權限,當關閉文件時刷新更改。當設置為nocto時,客戶端使用非標准的試探來檢查服務器上文件是否改變,對於只讀和文件更改較少時情形有助於提高性能。
【使用建議】對於文件內容改變很少的情況,如服務器提供只讀共享權限(文件系統以RO權限導出)給客戶使用,建議使用nocto選項,這樣可以提高性能。對於文件內容經常改變,客戶端對文件緩存一致性要求較高,建議使用cto參數。
2 、對NFS(NFS2/NFS3)有效的選項
proto=transport
【參數說明】客戶端向服務器發起傳輸請求使用的協議,可以為UDP或者TCP。未指定時,mount命令選擇服務器支持的協議。
tcp/udp
【參數說明】等價於proto=tcp和proto=udp選項。
【使用建議】在不穩定的復雜網絡環境中建議使用tcp參數,在穩定的網絡下可以使用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協議也能正常mount到服務器。
mountproto=transport
【參數說明】客戶端向服務器發起MNT請求時和UMNT使用的協議,可以為udp或者tcp。該參數用於防火牆屏蔽特定的協議也能正常mount到服務器。
mounthost=name
【參數說明】設置開啟mountd主機名。未指定時,mount命令認為mountd服務和NFS服務在同一主機上。
mountvers=n
【參數說明】設置連接服務器mountd時的RPC版本號。未指定時使用與請求的NFS版本相適應的版本號。該參數用於多個NFS服務運行於同一遠程主機上。
namlen=n
【參數說明】設置掛載路徑名的最大長度。未指定時,通過與服務器協商設定。大多數情況為255字節。
nfsvers/vers=n
【參數說明】設置使用NFS服務的NFS協議版本號。當文件系統為nfs時,Linux客戶端支持NFS2和NFS3。如果不支持請求的版本,mount失敗。未指定時,客戶端先嘗試使用NFS3,若失敗再與服務器進行協商。
lock/nolock
【參數說明】選擇是否使用NLM協議在服務器上鎖文件。當選擇nolock選項時,鎖對於同一主機的應用有效,對不同主機不受鎖的影響。默認為lock。
acl/noacl
【參數說明】設置是否在掛載時使用NFSACL協議。NFSACL協議不屬於標准NFS協議,而是Solaris上的實現。未指定時,客戶端與服務器協商檢查服務器是否支持,如果支持則使用NFSACL。
rdirplus/nordirplus
【參數說明】設置是否使用NFS3的REAADDIRPLUS請求。默認為readdirplus。
3、 對NFS4有效的選項:
proto=transpro
【參數說明】客戶端向服務器發起傳輸請求使用的協議,可以為UDP或者TCP。未指定時,選用TCP。
port=n
【參數說明】指定服務器NFS服務端口。如果NFS服務端口不在port上,則mount請求失敗。未指定時,客戶端使用NFS標准的2049號端口。指定為0時,客戶端選用服務器rpcbind服務支持的端口。
clientaddr=n.n.n.n
【參數說明】指定一個IPv4的主機地址使服務器能執行NFS4的回調請求。未指定時,mount命令嘗試自己發現一個合適的回調地址。
——注1:所有的參數說明都可以在linux系統用man nfs參看含義,對於有差異的客戶端,請用此確認。
——注2:為了描述簡單明了,可能轉義有差異,具體參見系統標准描述。
——注3:沒有“使用建議”的參數推薦使用默認參數。
轉自https://www.cnblogs.com/yanling-coder/p/13028552.html