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



