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,分散式儲存的其他事務由其他組件處理。