什麼是 VMware 變更區塊追蹤 (CBT),它是如何運作的?
VMware 提供 API,藉此簡化企業虛擬環境中的資料保護,其特點可實現無代理程式備份,並提升虛擬機器增量備份的效率。相較於完整備份,增量備份能節省大量儲存空間
談到現代 VMware 備份解決方案,其中多數仰賴 VMware 的 API,並採用"變更區塊追蹤"(CBT)技術,以協助並加速建立虛擬機器的增量備份。在這篇部落格文章中,我們將說明"變更區塊追蹤"的相關內容,包括其運作原理與實際應用。
什麼是"變更區塊追蹤"?
變更區塊追蹤(CBT)是 VMware 的原生特點,會將變更過的區塊記錄在追蹤檔案中。CBT 屬於 VMware vSphere 儲存 API – 資料保護框架的一部分,該框架首次於 4.0 版本發布,可讓第三方資料保護應用程式利用 CBT 執行更高效的備份與複製。
CBT 在 ESXi 儲存堆疊層級運作,並允許第三方備份解決方案僅備份自上次備份以來已變更的資料區塊,也就是說,可建立增量備份,或是僅備份正在使用的區塊,而非整個虛擬機器。這使您能夠大幅減少備份資料量(特別是在擁有數百台虛擬機器的龐大環境中),並加速備份流程。
VMware CBT 透過在特殊日誌檔案中追蹤變更,顯著縮短了備份軟體執行增量備份所需的時間。若第三方備份解決方案未採用 CBT 而使用其他方法追蹤變更,將對 ESXi 伺服器造成較高的 CPU 負載。因此,CBT 亦能在備份資料時優化 ESXi 伺服器的效能。
CBT 亦被 VMware 的 儲存 vMotion 一種可在虛擬機器運行期間,將其磁碟檔案從一個資料存放區移至另一個資料存放區的流程。
VMware 如何改變區塊追蹤的運作方式
CBT 特點的運作原理是比較最後一個與當前的變更集 ID,並找出這兩組變更集 ID 之間被修改的磁碟磁區。VMware CBT 還會識別虛擬磁碟上所有正在使用的虛擬機器檔案系統 (VMFS) 區塊。此追蹤作業由超管理程式本身執行,且在虛擬機器外部進行。
CBT 需求
"變更區塊追蹤"的需求如下:
- VMware vSphere(ESXi 4.0 或更高版本)
- 第 7 版或更高版本的虛擬硬體
- 本地 VMFS 資料存放區, NFS 或 iSCSI 資料存放區
- 厚配置或薄配置
- 不支援 RAW 磁碟映射。不支援以"實體相容模式"運作的原始裝置映射 (RDM)。
- 虛擬機器不得具有 快照 開始使用 VMware CBT
如何啟用"變更區塊追蹤"功能
預設情況下,CBT 處於停用狀態,因為它會消耗少量主機 CPU 時間。但對於像 NAKIVO Backup & Replication, 必須啟用 CBT,才能讓產品執行快速且可靠的增量備份。
CBT 可在虛擬機的高級設定中啟用:
- 開啟虛擬機器設定。您可以在 VMware vSphere Client 中,透過右鍵點擊虛擬機器並選擇 編輯設定.
- 在 編輯設定 視窗中,按一下 虛擬機器選項 tab.
- 點擊 進階 選項類別以展開設定,然後點擊 編輯設定 在 設定參數 行。該 設定參數 虛擬機器的視窗開啟後,其中顯示多行內容,每行皆包含一個參數名稱及其對應的值。
- CBT 的啟用取決於以下這行代碼: .vmx 設定:
ctkEnabled = "TRUE"
此外,對於每個已啟用 CBT 的磁碟,都會包含一個項目:
scsix:x.ctkEnabled = "TRUE"
必須設定這些參數,才能啟用"變更區塊追蹤"功能。
注意!!!: 若要停用 CBT,請變更 TRUE 至 FALSE 在 ctkEnabled 以及 scsi0:0.ctkEnabled 行(請使用相應的 SCSI 裝置編號)。
當在虛擬機器上啟用 CBT 時,VMkernel 會建立一個額外的檔案,其中包含 -ctk.vmdk 位於用於儲存虛擬磁碟區塊映射的 VM 目錄中。此檔案與相應的 . 相關。vmdk 磁碟,並包含自最後一個變更集 ID 所標示的特定時間點起,至當前狀態之間,此虛擬磁碟中所有變更之區塊清單。所建立的 CTK 檔案大小保持不變,除非虛擬磁碟的大小有所增加,否則不會超過原始大小。CTK 檔案的大小約為 5 MB 對於每個 10 GB 虛擬機器磁碟的大小。
大多數備份解決方案會採用 VMware SDK 方法,透過程式化方式為虛擬機器啟用 CBT,並利用"stun/unstun"週期,該週期包含開機或關機、暫停/恢復,或是建立/刪除快照等操作。在"stun/unstun"週期中,系統會針對該特定虛擬機器,在 VMware 儲存堆疊中插入一個特殊的變更追蹤篩選器,藉此讓 CBT 能在該虛擬機器上實例化。
如何檢查 CBT 是否已啟用
若您未手動啟用 CBT,可檢查備份軟體是否已啟用 CBT 來執行虛擬機器備份。檢查 CBT 設定的步驟與啟用此特點的步驟類似。但在此我們將介紹一種略有不同的方法,使用 .vmx 設定檔。
若要檢查該虛擬機器是否已啟用 CBT,請執行以下操作:
- 開啟 VMware vSphere Client.
- 找到所需的虛擬機器,並確認其已關機。
- 前往資料存放區中的虛擬機器資料夾。
- 尋找一個虛擬機器設定檔 (.vmx).
ctkEnabled 設定項目。該設定項目的值必須為 “TRUE”。若非如此,請將值變更為 “TRUE” ,以啟用虛擬機器的 CBT 功能。啟用 CBT 後,每個虛擬磁碟都會附帶一個 xxx-ctk.vmdk 檔案,其中 “xxx” 為虛擬磁碟名稱。若您看到這些 CTK 檔案,即表示 CBT 特點運作正常。
在某些情況下(例如主機不當關機或停電),當虛擬機器處於開機狀態時,CBT 可能會遺失變更追蹤。這可能會導致 CBT 重置,這意味著先前收集的所有 CBT 資料將會被清除,並從重置的瞬間開始收集新資料。 若在 CBT 重置後執行虛擬機器備份,系統將執行完整備份。完成完整備份並追蹤新變更後,即可再次執行增量備份。
在 NAKIVO Backup & Replication
NAKIVO Backup & Replication 這是一套通用的資料保護解決方案,可對 VMware vSphere 中的虛擬機器進行備份、還原及複製。為了加快使用 NAKIVO 解決方案進行增量備份的速度,任何新的備份工作預設都會啟用 CBT。
在某些情況下, NAKIVO Backup & Replication, 與其他任何 vSphere 備份解決方案一樣,無法使用 VMware CBT:
- 該虛擬機器不支援 VMware CBT: 可能原因 – ESXi 主機版本低於 v4.1,或虛擬硬體版本低於 v7。
- 未提供 VMware CBT 資料: 可能原因 – ESXi 主機斷電,導致 CBT 無法追蹤虛擬機器的增量變更。
在"變更追蹤"的附加功能中 設定, 您可以在此處找到當解決方案在使用 CBT 時遇到錯誤時應採取的動作。
讓我們來仔細看看這些 發生錯誤時 動作:
- 切換至專有方法: NAKIVO Backup & Replication 將採用專屬的變更追蹤方法,其速度較 VMware CBT 慢,且會消耗更多 ESXi 主機的資源。
- 重設 CBT: 若 CBT 失敗,該次 CBT 將被重置。
- 虛擬機器處理失敗: 虛擬機器處理將被停止。
此外,您還可以指定何時套用所選的 發生錯誤時 動作:
- 立即: 發生錯誤時,系統會立即執行對應的動作("重設 CBT"動作除外)。
- 在下一次重試時: 發生錯誤時,該處理動作將於下次重試時生效。
- 在最後一次重試時: 發生錯誤時,將對最後一次重試採取該動作。
您也可以選取 仔細核對 CBT 提供的已變更區塊 核取方塊。在此情況下,VMware CBT 提供的資料將額外與 NAKIVO Backup & Replication 專屬變更追蹤。此方法較為可靠,但速度可能比一般的 VMware CBT 慢。
結論
VMware 的"變更區塊追蹤"(CBT)是一項強大的特點,能讓備份流程在各方面都更加快速且可靠。這項技術經過充分測試,並廣泛應用於 VMware 的原生技術中,例如 Storage vMotion。
VMware CBT 是現代備份解決方案不可或缺的一部分,例如 NAKIVO Backup & Replication 能夠為 VMware 環境提供高效備份,且不會對主機造成額外負載。



