什麼是 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 Options分頁。 - 點擊
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無法追蹤虛擬機的增量變更。
在"變更追蹤"的附加功能中 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 環境提供高效備份,且不會對主機造成額外負擔。



