[vSAN] VMware vSAN OSA & ESA 技術簡介

隨著 VMware vSAN 的演進,最新的 vSAN 版本分為兩種架構:原生的 vSAN Original Storage Architecture (OSA) 和全新的 vSAN Express Storage Architecture (ESA)。這兩者在架構上的差異,不僅影響了儲存效能和資源配置,也改變了 vSAN 的未來發展方向。在這篇文章中,我們將深入探討 OSA 與 ESA 的架構差異,並簡單提及配置上的不同之處,同時也會介紹一下 LFS、B-tree 的原理與應用。

架構上的關鍵差異

vSAN OSA 是在 vSAN 8 之前的 vSAN 版本架构基础上更新发展而来的,它同样使用双层架构,使用市场上广为存在,且通过兼容性验证的高速 SSD 作为寫入Cache层,加上 HDD 或 SSD 作为容量层的架构提供 HCI 集群儲存资源。ESA 則是完全為 NVMe 設計的單層儲存架構,整個就是為高效能而生,SSD 不再只是快取,而是主力。資料處理變得更快、更直接,少了中間的拖泥帶水,讀寫效率自然大幅提升。之所以有這樣的改變是因為舊有的儲存架構沒辦法再透過替換更快的硬碟來達到等比例的性能提升了。

打造順暢資料流:LFS 和 B-tree

在 ESA 中,資料的寫入更像是一條高速公路,完全就是為了速度而設計的!這全都得感謝 Log-Structured File System (LFS) 的功勞。LFS 就像個神奇的小幫手,把資料先寫進一個大筆記本裡,再一次性寫入儲存設備,不用一直來回重複地寫。LFS不像傳統檔案系統那樣隨機寫入到各處。這種順序寫入的方式能大幅減少硬碟尋址時間,特別適合 SSD 和 NVMe 這類依賴順序寫入性能的儲存設備。這種順序寫入的方式大大減少了隨機 I/O 的時間,讓資料處理變得飛快!

LFS 的工作原理

LFS 將所有的寫入操作都視為是日誌的一部分,當有新資料寫入時,LFS 並不會直接覆蓋舊資料,而是將新的資料寫入到日誌的末端。系統定期會進行「清理」操作,將不再需要的舊資料移除,這個過程稱為「日誌清理 (log cleaning)」。

LFS 的優勢

  1. 寫入效能優化
    透過順序寫入,LFS 能夠顯著提高寫入速度,因為它不需要頻繁的隨機寫入操作,這特別適合現代 SSD 的設計。
  2. 延長 SSD 壽命
    LFS 減少了隨機寫入和擦除操作的頻率,從而延長了 SSD 的使用壽命。這對於需要大量寫入操作的系統尤為重要。
  3. 簡化的寫入流程
    因為 LFS 將資料順序寫入,寫入操作變得簡單而高效,且系統不需要過多的寫入邏輯處理,這樣的設計減少了系統的運行負擔。

LFS 的其他應用

  1. NoSQL 資料庫
    很多 NoSQL 資料庫,如 Cassandra 和 InfluxDB,採用了 LFS 的概念進行資料寫入,這讓資料庫的寫入速度大幅提升,適合高速資料流入的場景,如物聯網數據、金融交易數據等。
  2. 快取系統
    LFS 的順序寫入特性非常適合快取系統的需求,如 Redis 的快取磁碟後端。LFS 讓快取系統能快速持久化大量資料而不影響效能。
  3. 日誌儲存
    LFS 非常適合用於日誌檔案的儲存,因為日誌本身就是順序的資料流。在需要大規模日誌記錄的系統中,LFS 提供了一個簡單且高效的解決方案。

B-tree (Balanced Tree) 也是 ESA 的得力助手,它負責管理大量的metadata,像是資料庫的Index,幫助系統快速定位資料。這種結構特別適合需要大量查找和更新的情況,不僅穩定而且高效。B-tree 是一種自平衡樹結構,廣泛應用於資料庫和檔案系統中。它的主要特點是保持資料的排序結構,並允許快速的查找、插入、刪除和更新操作(均為Log(n))。B-tree 的節點包含多個資料項和指向子節點的指標,這使得它在處理大規模數據時非常高效。

B-tree 的工作原理

B-tree 的結構類似於一顆多節點樹,每個節點可以有多個子節點,而非像二元樹那樣僅有兩個子節點。這樣的設計有助於降低樹的高度,從而減少資料查找的深度,增強查找效率。當你在 B-tree 中插入或刪除資料時,樹會自動進行重排和分裂,保持平衡,確保所有的操作都能在對數時間內完成。

B-tree 的優勢

  1. 高效查找
    B-tree 在處理大資料集時,能保持穩定的查找性能,因為它的結構能有效降低樹的高度。
  2. I/O友善
    由於 B-tree 的節點可以存儲多筆資料,這減少了資料讀取時磁碟的 I/O 操作次數,尤其適合硬碟驅動器這類讀寫速度較慢的存儲設備。
  3. 高穩定性
    B-tree 自平衡的特性保證了查找、插入、刪除的時間複雜度始終保持在 O(log n),適合高頻率資料操作的場景。

B-tree 的其他應用

  1. 資料庫索引
    幾乎所有的關聯式資料庫,如 MySQL、PostgreSQL、Oracle,都使用 B-tree 作為索引結構。這讓資料查詢變得快捷而高效,即便是在數億條資料的情況下,查找速度依然相當快。
  2. 檔案系統
    B-tree 被用於許多檔案系統中,如 NTFS、HFS+ 等,負責管理文件的元資料,這些元資料包括文件名稱、大小、位置等。透過 B-tree,檔案系統能更迅速地定位文件並執行操作。
  3. 儲存引擎
    B-tree 還常用於儲存引擎的內部結構,如 RocksDB 和 LevelDB,這些儲存引擎廣泛應用於大數據和物聯網的情境中,用於高效管理龐大的 Key-Value 資料。

為何 ESA 比 OSA 性能更好?

  1. 全 NVMe SSD的效能爆發
    ESA 不再使用傳統的 HDD,而是全數改採 NVMe SSD,這個改變就像把你的老牛車換成了超跑!NVMe 的速度幾乎是傳統 SSD 的 10 倍,再加上 ESA 精簡的資料處理路徑,把很多小寫入搜集起來一次大寫入,資料傳輸和存取效率更上一層樓。
  2. 分散式metadata管理
    OSA 的metadata是集中管理的,這就像塞車一樣,所有車子都擠在一條路上。但 ESA 就聰明多了,採用分散式的metadata管理,每個節點都有自己的快速通道,不用再在metadata的瓶頸上擠破頭,讓系統更流暢。
  3. 資料壓縮與去重的最佳化
    在 ESA 裡頭,資料壓縮和去重是內建的功能,就像有個會打掃的管家,不但幫你省空間,還能加速資料的寫入和讀取。這讓整個系統的性能不僅提升,也降低了存儲成本,真是一舉兩得!

配置更簡單,管理更輕鬆

在配置方面,OSA 需要花時間在磁碟群組和 RAID 配置上,而 ESA 的配置過程變得簡單多了。全閃存的 ESA 不再區分快取層與容量層,硬體一旦配置完成,系統即可立即運行。運維上,ESA 提供了更直覺化的管理介面,讓系統監控與優化變得輕而易舉。這對於企業的 IT 團隊來說,減少了不少配置和維護的煩惱。

總結 ESA vs. OSA:

  1. 架構革新與效能提升:ESA 採用全閃存和 NVMe 設計,透過分散式metadata管理和高效資料壓縮技術,顯著提升資料讀寫效能和系統穩定性,相較於 OSA 傳統硬碟混合架構更具優勢。
  2. LFS 與 B-tree 的應用:LFS 順序寫入提高了寫入速度並延長儲存壽命;B-tree 則優化了資料查找和管理,讓資料處理更加迅速。
  3. 簡化配置與靈活管理:ESA 精簡了系統配置流程,提供更直觀的管理界面,讓系統擴展和維護更輕鬆,適合現代企業儲存需求。