建置虛擬桌面環境時,為避免使用者體驗不佳,虛擬桌面管理伺服器勢必要進行優化,以加速系統反應並降低工作負載,但市面上具備硬體快取機制的設備十分昂貴,所以直接利用VMware內建的View Storage Accelerator機制來提升整體的使用操作體驗,將是最好的解決辦法。
如果Requested Block符合,就直接導向到RAM Buffer Cahce取用快取資料;倘若不符合(或不存在),則把資料區塊複製到RAM Buffer Cache內;若是無效(Invalid),就會重新導向到Back-End Storage Layer後,最後再回給VM虛擬桌面。
TOP 3:CBRC讀取快取機制如何運作?當有資料寫入需求時又如何運作?
開啟VMware內建的CBRC讀取快取機制,就可以有效降低儲存設備在讀取資料方面的IOPS工作負載,那麼它是怎麼與儲存設備協同運作的呢?此外,CBRC僅僅是讀取方面的快取機制,若VM虛擬桌面有資料寫入需求時,又是如何運作的呢?
圖6所示為CBRC讀取快取機制中VM虛擬桌面發生資料存取行為時的工作流程圖,在此圖中也說明了當VM虛擬桌面有資料寫入需求時又是如何運作的。
|
▲圖6 CBRC讀取快取機制工作流程圖。(圖片來源:VMware Technical Papers – View Storage Accelerator in VMware View 5.1) |
以下就以運作時各個階段為分類,說明其中的工作流程狀態。
初始設定階段
工作流程A—Digest Caching
當ESXi Host啟動CBRC讀取快取機制後,CBRC Filter模組將連接到Boot VMDK,並且建立4KB大小的摘要檔案(Digest File),同時為每個資料區塊產生雜湊數值。
當VM虛擬主機在已啟動CBRC快取機制的ESXi Host上開機時,VM虛擬主機的核心模組將會收到摘要檔案資料,同時更新Hash Contents中的VMDK Metadata Cache內容(又稱之為Digest In-Memory Copy或Digest Cache)。
VM虛擬主機資料讀取請求階段
工作流程B—Read I/O Requests
當VM虛擬主機開機後,便會發出存取資料的「讀取請求(Read Requests)」,此時因為ESXi Host已經啟用CBRC讀取快取機制,因此便會檢查Metadata Cache(Digest In-Memory Copy)內是否有符合讀取請求內容的雜湊數值資料區塊。
工作流程C—Online Caching
若讀取請求內容並沒有找到符合的雜湊數值資料區塊,此時讀取請求將會導向到儲存設備進行資料讀取,並且將讀取後的資料區塊存入到「記憶體緩衝(RAM Buffer)」中,也就是ESXi Host的Shared Block Cache當中。
工作流程D—De-duped Read I/Os
之後有VM虛擬主機送出相同的讀取請求內容時(相同的雜湊數值資料區塊),便會從Shared Block Cache(RAM Buffer)內直接回應給送出讀取請求的VM虛擬主機,而不需要再到儲存設備進行資料的I/O存取(降低儲存設備工作負載),如圖7所示。
|
▲圖7 CBRC讀取快取機制中Read I/O工作流程圖。(圖片來源:VMware Technical Papers – View Storage Accelerator in VMware View 5.1) |
VM虛擬主機資料寫入請求階段
工作流程E—Write I/O Requests
當VM虛擬主機送出資料寫入請求的時候,會先進行Metadata Cache(Digest In-Memory Copy)的內容更新。
工作流程F—Invalidate Hashes
將Metadata Cache內容內對應不到的雜湊數值資料區塊標示為無效(Invalid)。
工作流程G—Update Journal
接著在Digest VMDK內容中更新Journal Header內容,以準備更新資料區塊。
工作流程H—Write to Disk
最後再將資料寫入到Boot VMDK之中,如圖8所示。
|
▲圖8 CBRC讀取快取機制中Write I/O工作流程圖。(圖片來源:VMware Technical Papers – View Storage Accelerator in VMware View 5.1) |
沒有快取內容的資料讀取請求階段
工作流程I—Non Cached Read I/Os
當VM虛擬主機的資料讀取未包含在快取內容時,便只能回到傳統的資料存取方式,也就是直接讀取Boot VMDK內容。
摘要檔案內容更新階段
工作流程J—Digest Update
摘要檔案的內容會在特定時間週期內自動進行更新(VMware Horizon View管理介面中可設定)。或者,當VM虛擬主機關機以後,將會執行摘要檔案內容清除(Flush),以及Journal Area歸零(Zero)的動作。
若在摘要檔案更新時間週期之內發生大量的無效內容情況,「重新計算(Recompute)」機制便會被觸發(Triggered),也就是重新計算磁碟內容之後所產生新的摘要檔案,以更換掉那些無效的快取內容。
TOP 4:如何為ESXi Host啟用CBRC讀取快取機制?
該如何為VMware vSphere ESXi Host啟用CBRC讀取快取機制?如何設定CBRC讀取快取的空間大小?如何調整摘要檔案的相關參數值?
先開啟vSphere Client連接到ESXi Host或vCenter Server,然後依序點選「ESXi Host > Configuration > Software > Advanced Settings > CBRC」項目,便可以進行CBRC讀取快取機制的設定,如圖9所示。