差異處
這裏顯示兩個版本的差異處。
| 兩邊的前次修訂版 前次修改 下次修改 | 前次修改 | ||
| tech:nfs_ganesha [2024/01/03 15:11] – 只允許10.20.0.0/22網段的IP存取 jonathan | tech:nfs_ganesha [2025/03/27 18:22] (目前版本) – [常見問題] jonathan | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| ====== 在 Ubuntu/ | ====== 在 Ubuntu/ | ||
| - | * 因為詢問 ChatGPT | + | * 因為詢問 ChatGPT 是否有提升 NFS 服務效能的輔助軟體, |
| * 也看到預設 Ubuntu/ | * 也看到預設 Ubuntu/ | ||
| 行 13: | 行 13: | ||
| { | { | ||
| Export_ID = 1; | Export_ID = 1; | ||
| - | Path = /nfsshare; | + | Path = / |
| Pseudo = /nfsshare; | Pseudo = /nfsshare; | ||
| Access_Type = RW; | Access_Type = RW; | ||
| Squash = No_Root_Squash; | Squash = No_Root_Squash; | ||
| - | FSAL | + | FSAL { |
| - | | + | |
| Name = VFS; | Name = VFS; | ||
| } | } | ||
| - | Clients = 10.20.0.0/ | + | |
| + | CLIENT { | ||
| + | | ||
| + | Access_Type = RW; | ||
| + | } | ||
| } | } | ||
| </ | </ | ||
| * 設定啟動 nfs-ganesha 服務 <cli> | * 設定啟動 nfs-ganesha 服務 <cli> | ||
| - | sudo systemctl | + | sudo systemctl |
| sudo systemctl enable nfs-ganesha | sudo systemctl enable nfs-ganesha | ||
| </ | </ | ||
| 行 72: | 行 75: | ||
| </ | </ | ||
| + | |||
| + | ===== 進階調教 ===== | ||
| + | * 調整自訂記憶體當 Cache | ||
| + | * Mem_Max 預設可能是 64 MB 調高至 2048 MB -> Mem_Max = 2147483648 | ||
| + | * Mem_Cache_Size 預設可能是 32 MB 調高至 512 MB -> Mem_Cache_Size = 536870912 | ||
| + | * Dir_MaxCacheSize 預設可能是 512 KB 調高至 4096 KB -> Dir_MaxCacheSize = 4194304 | ||
| + | * 將設定加入 ganesha.conf 內< | ||
| + | NFS_Core_Param | ||
| + | { | ||
| + | MNT_Port = 20048; | ||
| + | NLM_Port = 32803; | ||
| + | Bind_Addr = 0.0.0.0; | ||
| + | Protocols = 3,4; # 支持 NFSv3 和 NFSv4 | ||
| + | } | ||
| + | |||
| + | _9P { | ||
| + | Nb_Worker = 16; # 工作線程現在在這裡 | ||
| + | } | ||
| + | |||
| + | MDCACHE { | ||
| + | Cache_Size = 536870912; | ||
| + | Dir_Chunk = 4194304; | ||
| + | } | ||
| + | |||
| + | TIRPC { | ||
| + | Max_Connections = 1024; # 替代 RPC_Max_Connections | ||
| + | Idle_Timeout_S = 300; # 替代 RPC_Idle_Timeout_S | ||
| + | Default_Buffer_Size = 1048576; | ||
| + | } | ||
| + | |||
| + | Cache_Parameters { | ||
| + | Entries_HWMark = 100000; | ||
| + | NParts = 32; # 增加分區數量以減少鎖競爭 | ||
| + | Cache_Size = 1000; # 緩存大小 | ||
| + | Use_Getattr_Directory_Invalidation = true; | ||
| + | } | ||
| + | |||
| + | # 關閉 Kerberos 以避免那些錯誤 | ||
| + | NFS_KRB5 { | ||
| + | Active_krb5 = false; | ||
| + | KeytabPath = "/ | ||
| + | PrincipalName = ""; | ||
| + | CCacheDir = ""; | ||
| + | } | ||
| + | |||
| + | LOG { | ||
| + | Default_Log_Level = EVENT; | ||
| + | RPC_Debug_Flags = 0; # 減少 RPC 調試信息 | ||
| + | } | ||
| + | |||
| + | EXPORT | ||
| + | : | ||
| + | </ | ||
| + | * 重啟 nfs-ganesha 服務讓設定生效< | ||
| + | systemctl restart nfs-ganesha | ||
| + | </ | ||
| + | * 使用 fio 來驗證調教後效能提升大概 18% | ||
| + | * 調教前 [[tech/ | ||
| + | Run status group 0 (all jobs): | ||
| + | READ: bw=1637KiB/ | ||
| + | WRITE: bw=1637KiB/ | ||
| + | </ | ||
| + | * 調教後 [[tech/ | ||
| + | Run status group 0 (all jobs): | ||
| + | READ: bw=1935KiB/ | ||
| + | WRITE: bw=1953KiB/ | ||
| + | </ | ||
| + | |||
| + | ===== 常見問題 ===== | ||
| + | * 關閉 Ganasha 的作法 <cli> | ||
| + | systemctl stop nfs-ganesha | ||
| + | systemctl disable nfs-ganesha | ||
| + | </ | ||
| {{tag> | {{tag> | ||