在 Linux 中使用 Stratis 配置本地存儲

在 Linux 中使用 Stratis 配置本地存儲

編譯自: https://opensource.com/article/18/4/stratis-easy-use-local-storage-management-linux

譯者: Andy Song

關注於易用性,Stratis 為桌面用戶提供了一套強力的高級存儲功能。

對桌面 Linux 用戶而言,極少或僅在安裝系統時配置本地存儲。Linux 存儲技術進展比較慢,以至於 20 年前的很多存儲工具仍在今天廣泛使用。但從那之後,存儲技術已經提升了不少,我們為何不享受新特性帶來的好處呢?

本文介紹 Startis,這是一個新項目,試圖讓所有 Linux 用戶從存儲技術進步中受益,適用場景可以是僅有一塊 SSD 的單檯筆記本,也可以是包含上百塊硬盤的存儲陣列。Linux 支持新特性,但由於缺乏易於使用的解決方案,使其沒有被廣泛採用。Stratis 的目標就是讓 Linux 的高級存儲特性更加可用。

簡單可靠地使用高級存儲特性

Stratis 希望讓如下三件事變得更加容易:存儲初始化配置;後續變更;使用高級存儲特性,包括 快照(snapshots)、 精簡配置(thin provisioning),甚至 分層(tiering)。

Stratis:一個卷管理文件系統

Stratis 是一個 卷管理文件系統(volume-managing filesystem)(VMF),類似於 ZFS 和 Btrfs 。它使用了存儲“池”的核心思想,該思想被各種 VMF 和 形如 LVM 的獨立卷管理器採用。使用一個或多個硬盤(或分區)創建存儲池,然後在存儲池中創建 卷(volume)。與使用 fdisk 或 GParted 執行的傳統硬盤分區不同,存儲池中的卷分佈無需用戶指定。

VMF 更進一步與文件系統層結合起來。用戶無需在捲上部署選取的文件系統,因為文件系統和卷已經被合併在一起,成為一個概念上的文件樹(ZFS 稱之為 數據集(dataset),Brtfs 稱之為 子卷(subvolume),Stratis 稱之為文件系統),文件數據位於存儲池中,但文件大小僅受存儲池整體容量限制。

換一個角度來看:正如文件系統對其中單個文件的真實存儲塊的實際位置做了一層 抽象(abstract),而 VMF 對存儲池中單個文件系統的真實存儲塊的實際位置做了一層抽象。

基於存儲池,我們可以啟用其它有用的特性。特性中的一部分理所當然地來自典型的 VMF 實現(implementation),例如文件系統快照,畢竟存儲池中的多個文件系統可以共享 物理數據塊(physical data block); 冗餘(redundancy),分層, 完整性(integrity)等其它特性也很符合邏輯,因為存儲池是操作系統中管理所有文件系統上述特性的重要場所。

上述結果表明,相比獨立的卷管理器和文件系統層,VMF 的搭建和管理更簡單,啟用高級存儲特性也更容易。

Stratis 與 ZFS 和 Btrfs 有哪些不同?

作為新項目,Stratis 可以從已有項目中吸取經驗,我們將在 第二部分 深入介紹 Stratis 採用了 ZFS、Brtfs 和 LVM 的哪些設計。總結一下,Stratis 與其不同之處來自於對功能特性支持的觀察,來自於個人使用及計算機自動化運行方式的改變,以及來自於底層硬件的改變。

首先,Stratis 強調易用性和安全性。對個人用戶而言,這很重要,畢竟他們與 Stratis 交互的時間間隔可能很長。如果交互不那麼友好,尤其是有丟數據的可能性,大部分人寧願放棄使用新特性,繼續使用功能比較基礎的文件系統。

第二,當前 API 和 DevOps 式(Devops-style)自動化的重要性遠高於早些年。Stratis 提供了支持自動化的一流 API,這樣人們可以直接通過自動化工具使用 Stratis。

第三,SSD 的容量和市場份額都已經顯著提升。早期的文件系統中很多代碼用於優化機械介質訪問速度慢的問題,但對於基於閃存的介質,這些優化變得不那麼重要。即使當存儲池過大而不適合使用 SSD 的情況,仍可以考慮使用 SSD 充當 緩存層(caching tier),可以提供不錯的性能提升。考慮到 SSD 的優良性能,Stratis 主要聚焦存儲池設計方面的 靈活性(flexibility)和 可靠性(reliability)。

最後,與 ZFS 和 Btrfs 相比,Stratis 具有明顯不一樣的 實現模型(implementation model)(我會在 第二部分 進一步分析)。這意味著對 Stratis 而言,雖然一些功能較難實現,但一些功能較容易實現。這也加快了 Stratis 的開發進度。

如果希望更多瞭解 Stratis,可以查看本系列的 第二部分 。你還可以在 Stratis 官網 找到詳細的 設計文檔 。

如何參與

如果希望參與開發、測試 Stratis 或給出反饋,請訂閱我們的 郵件列表 。

GitHub 上的開發項目包括 守護進程 (使用 Rust 開發)和 命令行工具 (使用 Python 開發)兩部分。

可以在 Freenode IRC 網絡的 #stratis-storage 頻道加入我們。

Andy Grover 將在今年的 LinuxFest Northwest 會議上演講。查看 會議安排 或 註冊參會 。


via: https://opensource.com/article/18/4/stratis-easy-use-local-storage-management-linux


分享到:


相關文章: