《NetApp 新手筆記(四):如何順利讓 Linux 主機掛載 NetApp NFS 儲存空間》
在上一次的筆記中,我們成功建立起獨立的儲存虛擬機 SVM。有了這個「部門倉庫」後,接下來就是要切出空間(Volume)並讓 Linux 主機透過 NFS 掛載。
《NetApp 新手筆記(四):如何順利讓 Linux 主機掛載 NetApp NFS 儲存空間》
在上一次的筆記中,我們成功建立起獨立的儲存虛擬機 SVM。有了這個「部門倉庫」後,接下來就是要切出空間(Volume)並讓 Linux 主機透過 NFS 掛載。

有一個隱藏的大前提必須先搞定 — — 那就是確認系統有沒有對應的 License,並把服務開起來。
啟動服務」到「前端掛載」的完整流程:
- Step 0:前置作業(匯入 License 與啟動 NFS 服務)
- Step 1:建立 Volume(資料卷)
- Step 2:設定 Export Policy(匯出政策)
- Step 3:從 Linux 主機掛載 NFS 測試
1. 取得與匯入 License(透過 Web GUI)
第一步: 先到 NetApp 官方網站(Support Site),輸入你設備的 SN(Serial Number,序號),並下載對應的 License 檔案或取得授權金鑰(Key)。
第二步: 登入 NetApp 的 Web GUI(System Manager),進到 Cluster > Settings > Licenses 頁面。
第三步: 點選 Add(新增),將剛剛下載的 License 檔案匯入。

回到CLI 去license show 就會出現license 的info
2.啟用服務: 接著我們進到 CLI,在我們指定的 SVM(本例中為 Kevin)上啟用並確認 NFS 服務。
# 在指定的 SVM (Kevin) 上啟用 NFS 服務
Labcluster::*> vserver nfs create -vserver Kevin
# 檢查該 SVM 的 NFS 服務詳細狀態
Labcluster::*> vserver nfs show -vserver Kevin

檢查目前的 Volume 狀態,先看一下該 SVM 底下有哪些空間。
Labcluster::*> volume show -vserver Kevin

此時會發現,目前 Kevin 這個 SVM 底下只有一個 1GB 的 Kevin_root(系統根卷),我們不能拿它來存資料,必須另外建立一個 DATA VOL。
建立全新的 Data Volume
我們預計建立一個 100GB 的空間,指令參數拆解如下:
Labcluster::*> volume create -vserver Kevin -volume kevin01 -aggregate Kevin_Lab -size 100G -state online -type RW
-vserver Kevin:指定這個 Volume 屬於哪一個 SVM-volume kevin01:給它起個名字叫 kevin01-aggregate Kevin_Lab:指定使用哪一個 Aggregate 實體硬碟池-size 100G:分配 100GB 的容量-state online:建好後直接啟用-type RW:設定為可讀寫的 Volume

建立成功後,再次執行 volume show -vserver Kevin,就可以看到 kevin01 囉!
將 Volume 掛載至 SVM 的命名空間(Namespace)
這一步超級重要! 如果 Volume 沒有掛載到 SVM 的命名空間(沒有設定 Junction Path),那這個 Volume 對外「根本找不到路徑」,用戶端就無法存取。這就像是在 SVM 與 Data Vol 之間開一條路。
我們把 kevin01 掛載到路徑 /linuxmnt 上:
Labcluster::*> volume mount -vserver Kevin -volume kevin01 -junction-path /linuxmnt

⚠️ 注意: 敲完指令後系統會跳出一個 Warning:
Warning: The export-policy "default" has no rules in it...。這是因為新蓋好的 Volume 預設套用default政策,而這個政策目前沒有任何規則,會導致無法存取。先輸入y繼續,我們等等馬上來補規則!
我們可以透過以下指令檢查 Namespace 掛載點,確認成功掛進 Namespace:
Labcluster::*> volume show -vserver Kevin -fields junction-path

3.建立與設定匯出政策(Export Policy)。
檢查預設 Policy 我們先用指令檢查目前的 Policy 狀況:
Labcluster::*> export-policy show -vserver Kevin
Labcluster::*> export-policy rule show -vserver Kevin -policyname default

建立新的 Policy 與規則
我們建立一個名為 mntlinux 的新政策,並新增一條規則(Rule Index 1),只允許我們的 Linux 主機 IP(10.10.66.134)連線:
# 建立名為 mntlinux 的 Policy
Labcluster::*> export-policy create -vserver Kevin -policyname mntlinux
# 為 mntlinux 建立規則
Labcluster::*> export-policy rule create -vserver Kevin -policyname mntlinux -ruleindex 1 -clientmatch 10.10.66.134 -rorule any -rwrule any -superuser any -protocol nfs


-clientmatch 10.10.66.134:只允許這個 IP 連線。-rorule any / -rwrule any:讀取與寫入權限不限。-superuser any:加上這個參數,NFS client 端的 root 就能夠擁有伺服器端的 root 權限。-protocol nfs:只套用於 NFS 協定。
想看更進階的規則內容,可以輸入:export-policy rule show -vserver Kevin -policyname mntlinux -instance。
3. 將 Policy 套用到 Data Volume
規則寫好後,把它套用到我們剛剛建立的 kevin01 上,並檢查確認:
# 套用 Policy
Labcluster::*> volume modify -vserver Kevin -volume kevin01 -policy mntlinux
# 檢查套用結果
Labcluster::*> volume show -vserver Kevin -fields policy


4.:前端 Linux 掛載測試。
接著我們來到前端 Linux 主機(IP: 10.10.66.134),準備進行掛載。
- 探查儲存設備
首先用 showmount 去探查 NetApp SVM 的 LIF IP(10.10.66.68),確認有沒有釋出空間:
root@commvaultlinux:~# showmount -e 10.10.66.68
Export list for 10.10.66.68:
/linuxmnt (everyone)

有成功查到 /linuxmnt。
2. 執行掛載 — —
我們在 Linux 上建立 testmnt 目錄並執行掛載指令:
root@commvaultlinux:~# mkdir testmnt
root@commvaultlinux:~# mount -t nfs 10.10.66.68:/linuxmnt /root/testmnt
結果竟然跳出報錯: mount.nfs: access denied by server while mounting 10.10.66.68:/linuxmnt

🔍 關鍵原因分析與解法
明明 kevin01 的 policy 已經改好了,為什麼還會被拒絕? 這是因為 NetApp 的 Namespace 是樹狀結構。Linux 主機在掛載 /linuxmnt 時,路徑必須先穿過根目錄 /(也就是 Kevin_root),才能到達 /linuxmnt。
剛剛我們只修改了 kevin01 的 policy,但 Kevin_root 還停留在沒有規則的 default 政策。因此,Linux 主機在第一關(根目錄)就被擋下來了!
【解法】把 Kevin_root(root vol)也修改成一樣的 mntlinux 政策:
Labcluster::*> volume modify -vserver Kevin -volume Kevin_root -policy mntlinux
# 再次檢查
Labcluster::*> volume show -vserver Kevin -fields policy

3. 再次掛載驗證 — — 成功!
回到 Linux 主機重新執行掛載,並用 df -h 檢查:
root@commvaultlinux:~# mount -t nfs 10.10.66.68:/linuxmnt /root/testmnt
root@commvaultlinux:~# df -h


成功了!此時可以看到 10.10.66.68:/linuxmnt 順利掛載上去了,容量也正確顯示為 100GB(系統扣除開銷後顯示 95G)。用 showmount -e 也能看到 / 與 /linuxmnt 都順利開放了。
結語與收穫
這次在實體機 Lab 的連線實戰,雖然在最後一哩路遇到了 Access Denied,但解決它的過程反而讓我徹底搞懂了 ONTAP Namespace(命名空間)的層層遞進邏輯。設定 NFS 時,底層的 Root Vol 權限跟上層的 Data Vol 一樣重要!
這次從 License 啟用、SVM 服務架設、Volume 劃分到成功讓 Linux 掛載存取,一整套流程走完,真的很有成就感。這篇踩坑筆記分享給所有剛入門 NetApp 的工程師朋友們,希望大家未來在佈署 NFS 時,都能少走這段彎路!
SystemEngineer #NetApp #NetAppC800 #SVMDR #DataCenter #EnterpriseStorage #從半導體到IT #CareerGrowth #DataMigration
메타데이터
- post_id
- 7beb25fc884d
- slug
- netapp-新手筆記-四-如何順利讓-linux-主機掛載-netapp-nfs-儲存空間-7beb25fc884d
- url
- https://medium.com/@redman0703/netapp-%E6%96%B0%E6%89%8B%E7%AD%86%E8%A8%98-%E5%9B%9B-%E5%A6%82%E4%BD%95%E9%A0%86%E5%88%A9%E8%AE%93-linux-%E4%B8%BB%E6%A9%9F%E6%8E%9B%E8%BC%89-netapp-nfs-%E5%84%B2%E5%AD%98%E7%A9%BA%E9%96%93-7beb25fc884d
- canonical_url
- https://medium.com/@redman0703/netapp-%E6%96%B0%E6%89%8B%E7%AD%86%E8%A8%98-%E5%9B%9B-%E5%A6%82%E4%BD%95%E9%A0%86%E5%88%A9%E8%AE%93-linux-%E4%B8%BB%E6%A9%9F%E6%8E%9B%E8%BC%89-netapp-nfs-%E5%84%B2%E5%AD%98%E7%A9%BA%E9%96%93-7beb25fc884d
- author_url
- https://medium.com/@redman0703
- status
- ok
- fetched_at
- 2026-06-10 22:22:12