管理就地部署的儲存傳統上是一個繁瑣的手動流程,詢問系統指標、監控效能,以及執行動作,通常需要複雜的指令碼或專門工具。但如果您可以簡單地以英文索取所需的資訊,並立即取得可行的深度資訊,該怎麼辦?
這就是模型內容協定 (MCP) 的源頭。MCP 是一種開放式協定,能讓大型語言模型 (LLM) 與應用程式進行智慧互動,為儲存管理帶來自然語言功能。在本部落格中,我們將示範如何建立與 Pure Storage® FlashBlade® 整合的 MCP 伺服器,讓您查詢系統資料,甚至直接採取行動,所有操作皆透過直覺式 AI 介面進行。
透過將我們的方法模組化,我們正在開啟代理式儲存管理的新領域,自動化不僅有效率,而且還能進行對話和適應性。讓我們深入探討。
我們的目標是 Pure Storage 陣列,特別是 FlashBlade 系統,但主要的原則也適用於 FlashArray 系統。使用 Claude 桌面應用程式,我們的查詢將使用此 MCP 伺服器提供的工具與指定的 Pure Storage 陣列進行互動,如以下螢幕截圖所示:
建立 MCP 伺服器
第一步是安裝 uv Python 封裝管理員。有關安裝說明,請參閱官方指南。
接下來,我們需要建立 MCP 伺服器結構。為此,我們將使用 uv 套件中提供的工具:
[crayon-67f17b78db2a9909610757/]
繼續執行最後指示的步驟以安裝相依性,我們的 skeleton MCP 伺服器已準備就緒。我們需要修改的原始程式碼位於 pure-mcp-server/src/pure-mcp-server 之下。此時,代碼適用於範本附加備註工具。我們將修改,以便與就地部署的 Pure Storage FlashBlade 陣列進行互動。
從專案資料夾中,我們進入了由 uv 自動建立的 Python 虛擬環境,並安裝 Pure Storage Python SDK,因為我們會利用此工具與 FlashBlade REST API 進行互動。
[crayon-67f17b78db2b6633947623/]
然後,我們新增相關程式碼,建立兩個 MCP 工具,針對指定的 FlashBlade 陣列端點執行查詢:
- get_arrays
- get_arrays 和 get_arrays_performance
MCP 伺服器在初始化階段自動新增至 Claude 桌面。若要驗證,請開啟下列檔案,並檢查項目是否正確:
[crayon-67f17b78db2ba494514000/]
除了 MCP 檢查員之外,我們還使用下列腳本來驗證:
[crayon-67f17b78db2bd370063159/]
此代碼正確列出我的 MCP 伺服器工具。它還能連接至遠端陣列,執行必要的 API 呼叫,並傳回相關的 JSON 字串。
現在,我們可以透過 Claude 桌面應用程式,針對指定的 Pure Storage FlashBlade 使用 MCP 伺服器工具來執行查詢:
使用全功能工具,詢問儲存空間:
請注意,這是一個相當閒置的實驗室陣列,但可以詢問後續問題,例如:
「建立圖表,根據每公制 Epoch 時間值顯示過去 7 天的表現。每天轉換 epoch 和團隊績效結果。”
運行模組化 MCP 工具
目前為止,該代碼根據 MCP 伺服器工具定義,為硬式編碼通話提供基本整合,但我們可能要提交行動和擷取資訊。每個請求只有一個 MCP 工具不是一個理想的方法,我們必須從硬式編碼 REST API 調用get_arrays變成模組化方法,它透過單一的 pure-fb 工具接受任何端點調用作為參數,以用於任何端點。
完整的程式碼可在 GitHub 儲存庫中找到。
使用方式
有了我們新的 MCP 伺服器,我們就能執行資訊查詢,例如:
「在主機上使用 pure-fb: 1.2.3.4 with api-token:T-7c7a*****f23e 執行指令:get_file_systems然後執行指令: get_buckets.依使用大小排序項目,並針對每個項目標示為 ‘s3’ 或檔案系統,標示為 ‘fs’。確保根據使用的大小以遞減順序正確排序,並按使用的空間列出前 5 名。”
這會產生以下輸出:
[crayon-67f17b78db2c0541535040/]
透過這種模組化方法,我們可以查詢任何端點(取得陣列、儲存桶、檔案系統等),以擷取資訊並對陣列採取行動。例如,我們將使用以下查詢運行簡單的建立儲存區指令:
「在主機上使用 pure-fb: 1.2.3.4 with api-token:T-7c7a*****f23e 以及post_buckets參數為: names=[“jbtmcptest”], bucket=BucketPost(account=Reference(name=’jbt’))) ”
在 Pure Storage FlashBlade 陣列上,我們可以看到相關儲存桶現在已經存在:
我們利用這個查詢建立檔案系統。請注意,在此範例中,我們不會提供特定端點。我們交給 LLM 來了解:
「使用以下參數建立檔案系統:Name=[“jbt-myfs”], file_system=FileSystemPost(provisioned=5000, hard_limit_enabled=True, nfs=Nfs(v4_1_enabled=True), smb=Smb(啟用=True), multi_protocol=MultiProtocolPost(access_control_style=”nfs”))”
我們可以看到 ClaudeAI 能夠提供正確的指令post_file_system來執行這項請求。
設定提示以扮演客服人員
現在,我們將在聊天中添加一些背景,並定義儲存代理的行為和能力,該儲存代理有兩個陣列要控制:
「您是一位智慧型儲存管理代理,可透過 pure-fb 工具管理以下兩個陣列:
array01 at host: 1.2.3.4 with api-token:T-7c7a*****f23e
陣列02 主機:1.2.3.5,帶 api-token:T-f2e0*****3b8d”
定義儲存代理後,我們就可以針對兩個陣列執行查詢,例如:
「將兩個陣列的所有儲存桶、擷取名稱、原始total_used空間和來源陣列都納入單一清單。嚴格根據原始total_used值排序,不需任何轉換。提供清單中的前 15 名,並將使用的空間轉換成適當的單位進行顯示。」
我們的代理從使用get_buckets及get_file_systems對照兩個陣列收集相關資料開始:
值機員會繼續依要求使用的空間排序貯體。請注意,需要數次嘗試才能得到正確排序的提示。
從 CLI 驅動到 AI 輔助儲存管理
借助 MCP 伺服器,我們將就地部署儲存管理從嚴格的命令行驅動流程轉變為 AI 輔助的自然語言體驗。透過將 LLM 與企業級儲存裝置連結,我們不再只是擷取資料,而是動態地命令基礎架構,降低複雜性,並為更智慧、更有效率的工作流程開啟大門。
但這只是個開端。代理自動化正在重塑企業技術,儲存也不例外。隨著這些功能的發展,我們正邁向 AI AI 驅動的儲存管理不僅方便,而且具有競爭優勢的未來。問題不在於這是否會成為新的標準,而是多快。
您準備好採取下一步了嗎?