本頁說明 Linux NFS 掛接選項,這些選項會影響掛接 NetApp Volumes 匯出內容時的效能和行為。您可以在執行 mount 指令時設定這些選項,也可以將這些選項新增至 /etc/fstab。
如要瞭解建議的設定順序,以及掛接選項如何與核心並行和預先讀取互動,請參閱「最佳化 Linux NFS 用戶端」。
如需掛接指令和匯出存取權的範例,請參閱「連線 NFS 用戶端」。
事前準備
掛接 NetApp Volumes 前,請先完成下列必要條件:
除非工作負載需要其他選項,否則請使用 Google Cloud 控制台掛接說明中的掛接指令。
如果使用時段表或工作階段時段設定調整並行,請先設定這些設定,再掛接。詳情請參閱「Linux NFS 並行」。
在非正式環境中測試所有變更。掛接選項的效果可能會因工作負載、Linux 版本和網路延遲而異。
快速參考指引
下表根據工作負載目標,快速列出常見的掛接選項:
| 目標 | 可考慮的選項 | 附註 |
|---|---|---|
| 一般用途 | 使用 Google Cloud 控制台掛接操作說明 | 包含符合通訊協定的預設值 |
| 單一 VM 的處理量或 IOPS 較高 | nconnect=8 到 nconnect=16,調整 rsize 和 wsize |
請先設定時段表,詳情請參閱「Linux NFS 並行」 |
| 資料庫延遲時間更短 | rsize=262144、wsize=262144、hard、timeo=600、vers=4.1 |
測試特定應用程式 |
| 指定 NFS 版本 | vers=3或vers=4.1 |
Linux 預設會掛接可用的最高版本 |
| 不含諮詢鎖的 NFSv3 | vers=3、nolock |
如需防火牆和鎖定管理員指南,請參閱「連線 NFS 用戶端」 |
| Kerberos NFSv4.1 | sec=krb5、krb5i 或 krb5p |
請勿搭配 nconnect 使用 |
| 以讀取為主的資料,且已知一致性取捨 | nocto、actimeo= |
進階;請先瞭解快取行為 |
掛接 NFSv3 時,請務必加入 tcp。雖然 Linux 預設會使用 TCP 處理 NFS 流量,但明確加入 tcp 可確保掛接程序使用 TCP,而非 UDP。這有助於在多個系統嘗試同時掛接時提升效能。加入 noatime 可減少中繼資料作業。
建議的安裝設定檔
下列掛接設定檔會根據您的效能需求、通訊協定版本和用戶端規模,提供建議選項。執行這些指令時,請將 VOLUME_IP 和 /export_path 換成 Google Cloud 控制台中的掛接指令實際值。
設定檔 A:預設 (主機)
在 Google Cloud 控制台中執行掛接指令,不需進行任何變更。
設定檔 B:以效能為導向 (單一 Linux 用戶端)
NFSv3 範例,與效能基準測試設定一致:
sudo mount -t nfs -o hard,tcp,vers=3,rsize=262144,wsize=262144,nconnect=16 \ VOLUME_IP:/export_path /mnt/volume
基準會使用 nconnect=16 和 64 KiB rsize 和 wsize。許多工作負載都能透過 nconnect=8 獲得良好效能。測試這兩個值。
設定檔 C:使用明確版本的 NFSv4.1
sudo mount -t nfs -o vers=4.1,hard,rsize=262144,wsize=262144 \ VOLUME_IP:/export_path /mnt/volume
如要防止在磁碟區上啟用 NFSv4.2 時自動掛接,請指定 vers=4.1。詳情請參閱「連線 NFS 用戶端」。
設定檔 D:適用於運算叢集的 NFSv3
如果將大量用戶端 (例如數百個) 連線至磁碟區,請勿使用 nconnect,以免磁碟區的可用 TCP 工作階段耗盡。
sudo mount -t nfs -o vers=3,nolock,hard,tcp,rsize=262144,wsize=262144 \ VOLUME_IP:/export_path /mnt/volume
在 /etc/fstab 中保留
以下範例顯示 NFSv4.1 的 /etc/fstab 行:
VOLUME_IP:/export_path /mnt/volume nfs vers=4.1,hard,tcp,rsize=262144,wsize=262144,timeo=600,_netdev 0 0
使用 _netdev 選項,讓系統先等待網路連線,再掛接。
nconnect
nconnect 掛接選項可讓您控管 NFS 用戶端開啟至相同儲存端點 (即磁碟區 IP 位址) 的 TCP 連線數量。每個連線可同時處理多個 NFS 作業,但有設定上限。增加連線數量可提升單一用戶端的 I/O 並行和處理量。
建議
設定 nconnect 掛接選項時,請考慮下列建議:
測試
nconnect=8和nconnect=16。最多可支援 16 個值。nconnect僅適用於專用的高效能用戶端。如果許多用戶端 (例如運算叢集) 連線至相同儲存空間,請避免使用nconnect。對特定磁碟區 IP 執行第一次掛接作業,在該用戶端上為該 IP 設定
nconnect值。即使後續掛接作業指定不同的值,掛接到相同 IP 時也會使用相同的值。請先使用選取的nconnect值掛接匯出項目,或對該 IP 的所有掛接作業使用相同選項。請注意,為一個磁碟區 IP 設定
nconnect不會影響掛接至不同磁碟區 IP 的掛接點。使用
nconnect前,請先確認 Linux 發行版本是否支援這項功能。
如要進一步瞭解每個連線的運算單元限制,請參閱「Linux NFS 並行」。
rsize 和 wsize
rsize 和 wsize 掛接選項會為 NFS 讀取和寫入作業設定最大傳輸大小。如果省略這些選項,用戶端和伺服器會協商雙方支援的最大大小,在 Linux 用戶端和 NetApp Volumes 上,最大大小為 1 MiB。
建議
設定 rsize 和 wsize 掛接選項時,請考慮下列建議:
測試
rsize=262144和wsize=262144(256 KiB),調整延遲時間敏感型應用程式的總處理量和延遲時間。請謹慎使用大於 256 KiB 的值,因為這可能會增加延遲時間,或降低某些工作負載的總處理量;部署前請先測量效能。
使用
rsize=65536和wsize=65536(64 KiB) 進行 NFSv3 測試,因為這些值已用於效能基準。
請注意,這些設定對隨機工作負載的影響極小,因為這類工作負載通常使用的作業大小小於 rsize 和 wsize,而透過頁面快取的循序 I/O 通常使用的作業大小則高達 rsize 和 wsize。
rsize 掛接選項會影響預先讀取行為。詳情請參閱「Linux NFS 預先讀取」。
通訊協定版本
下表列出 vers 選項值和對應的通訊協定版本:
| 選項 | 使用 |
|---|---|
vers=3 |
NFSv3 |
vers=4.1 |
NFSv4.1 |
vers=4.2 |
NFSv4.2 |
如未設定 vers,Linux mount 指令會使用用戶端和磁碟區支援的最高 NFS 版本。啟用 NFSv4.1 的 Flex Unified、Standard、Premium 和 Extreme 磁碟區也支援 NFSv4.2。除非指定 vers=4.1,否則可以掛接 NFSv4.2。
如要進一步瞭解 NFSv4.1 身分對應、Kerberos 和數值 ID,請參閱「連線至 NFS 用戶端」。
hard、timeo 和 retrans
hard、timeo 和 retrans 掛接選項可管理用戶端行為,並在發生連線問題時設定逾時重試邏輯:
hard:重試 NFS 要求,直到成功為止。這個選項通常用於實際工作負載的資料完整性。timeo:指定要求重試前的逾時時間 (以十分之一秒為單位)。以資料庫為導向的工作負載通常會使用timeo=600(60 秒)。retrans:指定重試次數。除非 Runbook 另有指定,否則控制台預設值通常就已足夠。 Google Cloud
NFSv3 nolock 選項
NFSv3 諮詢鎖定功能會使用網路鎖定管理員 (NLM),且需要用戶端 rpc.statd 和回呼通訊埠的防火牆規則。如果您未使用諮詢鎖,請使用 nolock 掛接,以免鎖定管理員流量。
NFSv4.1 會在通訊協定中實作通訊埠 2049 的鎖定功能,因此用戶端不需要個別的鎖定管理員輸入規則。
如要進一步瞭解如何搭配使用諮詢鎖定與 NFSv3,以及存取 NFS 磁碟區的防火牆規則,請參閱「連線 NFS 用戶端」。
使用 nocto 和 actimeo 進行快取和一致性作業
NFS 用戶端使用寬鬆一致性模型。屬性快取計時器會決定用戶端信任檔案和目錄中繼資料的時間長度,之後才會聯絡伺服器。預設的「關閉時一致性」設定 (cto) 會在您開啟檔案時重新整理檔案資料。
nocto:用戶端不會在開啟時強制執行伺服器一致性。這會減少getattr呼叫,但會增加資料過時的風險。actimeo=N:將所有屬性快取計時器設為N秒 (acregmin、acregmax、acdirmin和acdirmax)。
建議您在下列情況下使用 nocto 和較高的 actimeo 值:
單一寫入者,或透過其他路徑接收更新的唯讀消費者。
大型靜態資料集,例如 EDA 程式庫、網頁內容或算繪紋理 (如果可接受短暫的過時狀態)。
在大多數情況下,請使用建議的 Linux 預設值進行屬性快取:
一般檔案的最低和最高時間長度:
acregmin=3秒和acregmax=60秒目錄時間下限和上限:
acdirmin=30秒和acdirmax=60秒
降低這些值會增加 NFS 伺服器的負載,並可能降低效能。除非您瞭解影響,否則請避免使用 actimeo=0 (僅限非常具體的用途)。
其他常見選項
NFS 用戶端可使用下列其他常見的掛接選項:
rw或ro:讀寫或唯讀掛接。noatime:請勿在讀取時更新存取時間,因為這樣可減少中繼資料作業,是建議的做法。sec=sys:AUTH_SYS,這是非 Kerberos 匯出作業的預設值。_netdev:在網路可用後,使用此項目在fstab中掛接。