在 Linux 掛載 OpenStack Swift — NetDrive 實驗性建置版
使用 NetDrive 的 Linux 實驗性建置版,將 OpenStack Swift 容器掛載為 Ubuntu 掛載點。包含 Keystone 憑證、掛載點設定與驗證步驟。
某資料工程團隊自行維運一套 OpenStack 叢集,其 Ubuntu 主機上的分析腳本都預期存取一般的檔案系統路徑——open()、pandas.read_csv()、對某個匯出目錄執行 grep。但資料實際存放在 Swift 容器中,只能透過 Keystone 驗證的 HTTPS 呼叫存取。與其把每支腳本改寫成呼叫 Swift API,不如把容器掛載到一般路徑,讓既有工具原封不動地讀取,更划算。

在 Ubuntu 掛載 OpenStack Swift
NetDrive 讓 Google Drive、OneDrive、S3、SFTP、WebDAV 等在 Windows 與 macOS 上顯示為原生磁碟機 — 不需同步,也不需完整下載。
- Swift 容器會出現在一般的 Ubuntu 掛載點
- 支援 Keystone v2 與 v3 驗證
- 可與 S3、Wasabi 等 20 多種服務商在同一套安裝中並行運作
免費試用。提供終身與訂閱方案。
為什麼掛載 Swift 比呼叫 API 更好
OpenStack Swift 自身的工具——python-swiftclient 或直接呼叫 REST API——在你能掌控讀取程式碼時很適合。但對於你無法掌控的情境就不太合適了:既有的分析流程、tar 工作,或同事那份不會為了物件儲存 SDK 而重寫的筆記本。NetDrive 改為透過掛載點對容器解析檔案操作,因此任何開啟路徑的程序都無需修改即可運作。
NetDrive 自 3.1 版起支援 OpenStack Swift,並於 3.1.234 版加入 HTTPS 支援——Swift 的驗證權杖絕不應以明文 HTTP 傳輸,因此在任何現行安裝上都應採用 HTTPS。目前跨所有平台(包括 Linux)建議使用的版本為 3.19.7。

在 Ubuntu 安裝 NetDrive
NetDrive 的 Linux 建置版透過 GitHub 發佈,而非 Ubuntu 的套件庫:
- 前往 github.com/NetDrive/installer,下載對應你 Ubuntu 版本的發行版。
- 依照該儲存庫的發行說明,安裝 NetDrive 掛載前所需的驅動元件。
- 安裝 NetDrive 套件本身。
- 啟動 NetDrive——首次執行會載入驅動元件,並可能提示輸入
sudo。
最低支援版本為 Ubuntu 16.04,此建置版與 NetDrive 自家比較頁面上標示的其他項目一樣,同樣掛著實驗性標籤。Windows 與 macOS 承擔了 NetDrive 大部分的測試量;在 Linux 上掛載 Swift 很適合開發機或分析節點,但若是未經自行驗證的無人值守正式作業,就不太適合了。
連線前需準備的資訊
請向你的 OpenStack 管理員或叢集的 Horizon 儀表板取得以下資訊:
- Auth URL —— Keystone 身分識別端點,包含版本路徑,例如
https://keystone.example.org:5000/v3。 - Username 與 Password —— 你的 OpenStack 憑證(若你的部署以應用程式憑證與 Horizon 登入分開發放,則使用該憑證)。
- Project / Tenant name —— 擁有該容器的 project(Keystone v3)或 tenant(v2)。
- Region —— 僅在叢集跨多個地區時才需要。
- Container name —— 留白則掛載整個帳號根目錄,並將每個容器列為頂層資料夾;填入名稱則直接掛載該容器。

逐步操作:在 Ubuntu 連線 OpenStack Swift
- 開啟 NetDrive 的 Drive Manager,點選 + Add Drive。
- 從服務商清單中選擇 OpenStack Swift。
- 輸入 Auth URL、Username、Password 與 Project/Tenant Name,並視需要填入 Region 與 Container Name。
- 設定掛載點——例如
/mnt/swift-data這類路徑,或任何你有寫入權限的空目錄。 - 若需要讀寫存取,選擇 Network Drive;若該主機不應對叢集寫回資料,則選擇 Read-only Drive。
- 點選 Connect。 NetDrive 會完成驗證,並將容器掛載至該路徑。
請透過終端機確認掛載狀態,而非僅信任圖形介面——在實驗性建置版上,這是值得做的把關:
mount | grep swift-data
ls /mnt/swift-data

若列表結果為空,先給大型容器一點時間填入根目錄內容,別急著判定出了問題;若過一段時間後仍是空的,優先檢查 Auth URL 與 Project/Tenant name——project 設錯是 Swift 連線在第一次嘗試時悄悄失敗的最常見原因。對於將處理結果寫回容器的高寫入量工作,NetDrive 會在背景將傳輸排入佇列,不會阻塞觸發該動作的程序。

Linux 建置版的差異之處
- 獨立的發佈週期 —— Linux 驅動元件依自己的排程發佈,與 Windows、macOS 建置版無關。
- 沒有
apt整合 —— 更新以 GitHub 發行版形式釋出,而非透過apt upgrade。 - Windows 與 macOS 仍是經過強化的主要目標平台 —— NetDrive 官方指南將這兩者視為正式生產就緒;Linux 在你尚未針對自身硬體與工作負載完成驗證前,都標示為實驗性。
結語
在 Ubuntu 上掛載 OpenStack Swift,能讓 Linux 分析主機獲得與 NetDrive 在 Windows、macOS 上相同的路徑式存取方式,只是安裝程式改以 GitHub 發佈,而非透過 apt。若想了解同一服務商在測試更完整平台上的操作方式,請參閱 Mount OpenStack Swift on Windows with NetDrive 或 Mount OpenStack Swift on macOS with NetDrive。若想了解在 Ubuntu 上執行 NetDrive 的整體概況,請參閱 NetDrive on Ubuntu Linux。
— Alex, NetDrive