在 Linux 掛載 OpenStack Swift — NetDrive 實驗性建置版

閱讀時間 6 分鐘 provider-guide openstack linux
Alex
AlexPrincipal Engineer
使用 NetDrive 的 Linux 實驗性建置版,將 OpenStack Swift 容器掛載為 Ubuntu 掛載點。包含 Keystone 憑證、掛載點設定與驗證步驟。

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

NetDrive drive manager showing Google Drive, S3 and pCloud mounted as drive lettersMounted clouds appearing as native drives in Windows File Explorer

在 Ubuntu 掛載 OpenStack Swift

NetDrive 讓 Google Drive、OneDrive、S3、SFTP、WebDAV 等在 Windows 與 macOS 上顯示為原生磁碟機 — 不需同步,也不需完整下載。

  • Swift 容器會出現在一般的 Ubuntu 掛載點
  • 支援 Keystone v2 與 v3 驗證
  • 可與 S3、Wasabi 等 20 多種服務商在同一套安裝中並行運作
WindowsmacOS
下載 NetDrive for Linux →

免費試用。提供終身與訂閱方案。

為什麼掛載 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

NetDrive 將雲端儲存帳號掛載為本機磁碟機——這正是 Linux 建置版在掛載點提供的核心互動方式

在 Ubuntu 安裝 NetDrive

NetDrive 的 Linux 建置版透過 GitHub 發佈,而非 Ubuntu 的套件庫:

  1. 前往 github.com/NetDrive/installer,下載對應你 Ubuntu 版本的發行版。
  2. 依照該儲存庫的發行說明,安裝 NetDrive 掛載前所需的驅動元件。
  3. 安裝 NetDrive 套件本身。
  4. 啟動 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 —— 留白則掛載整個帳號根目錄,並將每個容器列為頂層資料夾;填入名稱則直接掛載該容器。

OpenStack Swift 標誌——OpenStack 平台的物件儲存元件

逐步操作:在 Ubuntu 連線 OpenStack Swift

  1. 開啟 NetDrive 的 Drive Manager,點選 + Add Drive
  2. 從服務商清單中選擇 OpenStack Swift
  3. 輸入 Auth URL、Username、Password 與 Project/Tenant Name,並視需要填入 Region 與 Container Name。
  4. 設定掛載點——例如 /mnt/swift-data 這類路徑,或任何你有寫入權限的空目錄。
  5. 若需要讀寫存取,選擇 Network Drive;若該主機不應對叢集寫回資料,則選擇 Read-only Drive
  6. 點選 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 NetDriveMount OpenStack Swift on macOS with NetDrive。若想了解在 Ubuntu 上執行 NetDrive 的整體概況,請參閱 NetDrive on Ubuntu Linux

— Alex, NetDrive