在資料儲存領域,除了使用RAID 5/6之外,還可以啟用「重複資料刪除和壓縮」來節省儲存資源。這個功能會針對每個資料區塊進行重複資料刪除,如果vSAN Datastore中已經有相同的資料區塊,系統就不會重複儲存。為了判斷資料區塊是否相同,系統會使用雜湊算法來建立資料索引。
在vSAN架構中,雜湊使用了SHA-1演算法來為每段資料建立Hash value,每段大小為4KB。
壓縮則是使用LZ4演算法。在重複資料刪除的過程中,當系統發現有新資料要寫入時,會進行壓縮,將原本4KB的資料壓縮成大約2KB,然後再寫入容量層。
另外,只有All flash架構才支援重複資料刪除和壓縮功能。
在網路上下載大檔案或機密文件時,網站會提供一個下載連結和md5 Hash來驗證資料來源。這是為了避免中間人攻擊,在下載的文件中植入惡意程式。
vSAN也有類似的功能,預設情況下就會啟用,Hybrid和All flash架構都支援。vSAN使用CRC-32C校驗機制來最佳化性能。如果ESX host上的CPU支援Intel c2c32c指令集,運作會更快。
除了校驗,在傳輸過程中也有檢查碼機制,針對每4KB資料區塊建立一個5字節的總和檢查碼,並與資料分開存放。當vSAN Cluster檢查到I/O路徑有錯誤或資料不一致時,會自動修復。
預設情況下,vSAN每年會自動對所有資料進行檢查碼檢查,若發現錯誤,會立即修正。
我們可以查看各個Object裡的Component/Witness被分配到哪個ESXi host的實體硬碟,並檢查Component是否健康。
不同於前面提到的Skyline Health和Object View,Performance Service主要是收集歷史Cluster/VM的Performance資訊並展示給用戶。我們可以透過Performance View來查看Cluster近一個小時的IOPS、Throughput、Latency和Congestions資訊。
我們也可以細化到單一VM,來觀察虛擬機的Performance使用情況。
更多vSAN相關的文章可以參閱我的部落格: https://kaichiachen.github.io/2023/10/25/vsan/data_compress/