在Linux中使用Stratis配置本地存儲
關注于易用性,Stratis 為桌面用戶提供了一套強力的高級存儲功能。
對桌面 Linux 用戶而言,極少或僅在安裝系統(tǒng)時配置本地存儲。Linux 存儲技術進展比較慢,以至于 20 年前的很多存儲工具仍在今天廣泛使用。但從那之后,存儲技術已經提升了不少,我們?yōu)楹尾幌硎苄绿匦詭淼暮锰幠兀?/p>
本文介紹 Startis,這是一個新項目,試圖讓所有 Linux 用戶從存儲技術進步中受益,適用場景可以是僅有一塊 SSD 的單臺筆記本,也可以是包含上百塊硬盤的存儲陣列。Linux 支持新特性,但由于缺乏易于使用的解決方案,使其沒有被廣泛采用。Stratis 的目標就是讓 Linux 的高級存儲特性更加可用。
簡單可靠地使用高級存儲特性
Stratis 希望讓如下三件事變得更加容易:存儲初始化配置;后續(xù)變更;使用高級存儲特性,包括快照、精簡配置,甚至分層。
Stratis:一個卷管理文件系統(tǒng)
Stratis 是一個卷管理文件系統(tǒng)(VMF),類似于 ZFS 和 Btrfs。它使用了存儲“池”的核心思想,該思想被各種 VMF 和 形如 LVM 的獨立卷管理器采用。使用一個或多個硬盤(或分區(qū))創(chuàng)建存儲池,然后在存儲池中創(chuàng)建卷。與使用 fdisk 或 GParted 執(zhí)行的傳統(tǒng)硬盤分區(qū)不同,存儲池中的卷分布無需用戶指定。
VMF 更進一步與文件系統(tǒng)層結合起來。用戶無需在卷上部署選取的文件系統(tǒng),因為文件系統(tǒng)和卷已經被合并在一起,成為一個概念上的文件樹(ZFS 稱之為數(shù)據(jù)集,Brtfs 稱之為子卷,Stratis 稱之為文件系統(tǒng)),文件數(shù)據(jù)位于存儲池中,但文件大小僅受存儲池整體容量限制。
換一個角度來看:正如文件系統(tǒng)對其中單個文件的真實存儲塊的實際位置做了一層抽象,而 VMF 對存儲池中單個文件系統(tǒng)的真實存儲塊的實際位置做了一層抽象。
基于存儲池,我們可以啟用其它有用的特性。特性中的一部分理所當然地來自典型的 VMF 實現(xiàn),例如文件系統(tǒng)快照,畢竟存儲池中的多個文件系統(tǒng)可以共享物理數(shù)據(jù)塊;冗余,分層,完整性等其它特性也很符合邏輯,因為存儲池是操作系統(tǒng)中管理所有文件系統(tǒng)上述特性的重要場所。
上述結果表明,相比獨立的卷管理器和文件系統(tǒng)層,VMF 的搭建和管理更簡單,啟用高級存儲特性也更容易。
Stratis 與 ZFS 和 Btrfs 有哪些不同?
作為新項目,Stratis 可以從已有項目中吸取經驗,我們將在第二部分深入介紹 Stratis 采用了 ZFS、Brtfs 和 LVM 的哪些設計。總結一下,Stratis 與其不同之處來自于對功能特性支持的觀察,來自于個人使用及計算機自動化運行方式的改變,以及來自于底層硬件的改變。
首先,Stratis 強調易用性和安全性。對個人用戶而言,這很重要,畢竟他們與 Stratis 交互的時間間隔可能很長。如果交互不那么友好,尤其是有丟數(shù)據(jù)的可能性,大部分人寧愿放棄使用新特性,繼續(xù)使用功能比較基礎的文件系統(tǒng)。
第二,當前 API 和 DevOps 式自動化的重要性遠高于早些年。Stratis 提供了支持自動化的*** API,這樣人們可以直接通過自動化工具使用 Stratis。
第三,SSD 的容量和市場份額都已經顯著提升。早期的文件系統(tǒng)中很多代碼用于優(yōu)化機械介質訪問速度慢的問題,但對于基于閃存的介質,這些優(yōu)化變得不那么重要。即使當存儲池過大而不適合使用 SSD 的情況,仍可以考慮使用 SSD 充當緩存層,可以提供不錯的性能提升。考慮到 SSD 的優(yōu)良性能,Stratis 主要聚焦存儲池設計方面的靈活性和可靠性。
***,與 ZFS 和 Btrfs 相比,Stratis 具有明顯不一樣的實現(xiàn)模型(我會在第二部分進一步分析)。這意味著對 Stratis 而言,雖然一些功能較難實現(xiàn),但一些功能較容易實現(xiàn)。這也加快了 Stratis 的開發(fā)進度。
了解更多
如果希望更多了解 Stratis,可以查看本系列的第二部分。你還可以在 Stratis 官網(wǎng) 找到詳細的設計文檔。