[vSAN] LSOM (Local log-structured object manager)

vSAN 的四大 Component - CMMDS、DOM、CLOM、LSOM,從最底層與物理硬碟交互到最上層協同各個 Cluster 裡的 Nodes,彼此各司其職。以下圖為例,本篇將介紹 vSAN CMMDS。

vSAN LSOM(Local log-structured object manager)運作在 ESXi node 裡面,負責將 Object 和 Component 放在 ESXi node 裡面,並在資料發生 I/O 時,管理 cache disk 和 capacity disk 的資料 I/O。

由於 LSOM 負責硬碟層的 I/O,它同時也負責監控硬碟的健康狀態。LSOM 使用 Log 的方式從硬碟讀取 Component 並回傳,支援 SSD 和 HDD 的硬碟。LSOM 處理和硬碟最底層的 I/O 交互,通過 Log 記錄寫的順序。例如在 RAID-1 的情況下,對 Object 寫入代表要對兩個不同的 ESXi Node 的 Component 寫入。如果在 Cluster 發生故障前,只有 Node A 記錄到了寫入,那麼就會用 Log 回溯,Node A 會把 Write log 複製給 Node B,達成最終一致性。

DOM 是實現在 ESXi 的 Kernel 層,負責接收來自 DOM 的 Components 的增刪改查,LSOM 會給予 CMMDS 所有 disk 的 Metadata。

LSOM 具有以下 Components:

  • LSOM Logical Log (LLOG)
    作為 VMFS 與 SSD 互動的橋樑,提供多種 API。

  • Read Cache (RC)
    負責 cache 的 Policy。

  • LSOM Physical Log (PLOG)
    作為 cache tier 和 capacity tier 之間的橋樑。

  • SSD Log
    管理 SSD 的空間和 Read cache,並提供 LLOG、PLOG 和 RC 所需的 log infrastructure。

總結

  • Component 持久化:Object 下的 Component 存在 LSOM 層,確保 Component 持久化在實體 Disk。
  • I/O 處理:接收來自 DOM Owner 的 I/O,完成寫入後通知 DOM。
  • 資源管理:處理 SSD 上的 write buffer、read cache,並將資料寫入 capacity tier。
  • 專責 I/O:LSOM 只負責處理 I/O,分散式儲存的其他事務由其他組件處理。