1. Macrium Reflect X
  2. Imaging, Cloning, & File and Folder Backups

Macrium Changed Block Tracker


- Overview

- Installing Changed Block Tracker for New Installations

- Adding Changed Block Tracker to Existing Installations

- Macrium Reflect Changed Block Tracker Tools

- Performance Metrics

- Viewing Files Using Particular Blocks

- Enabling and Disabling CBT

- Has CBT Been Used to Create My Image?


Overview

Macrium Reflect Changed Block Tracker (CBT) reduces the amount of time it takes to perform incremental and differential images by monitoring the changes to an NTFS formatted volume in real-time. This is especially relevant when a file system contains very large files, such as virtual hard disk (VHD) files, where speed improvements are significant and can reduce the Incremental image time from hours to minutes or even seconds. 

Implemented as a kernel-mode filter driver, sitting below the NTFS file system driver, MRCBT can intercept all I/O requests to the logical volume and maintain a record of which blocks have changed.

Traditionally, Macrium Reflect has detected changes to the file system by comparing the NTFS Master File Table (MFT) on the source volume with the MFT of the most recent image in the backup set. While this method is one of the quickest solutions available, we do not consider it an optimal solution when used in a continuous incremental scenario, especially if multi-GB files are present in the file system.

In addition to numerous performance improvements, starting with version Macrium Reflect 7.2, CBT tracks TRIM events. These events are generated by NTFS when a file is deleted or moved and are used by CBT to optimize the image by excluding the relevant blocks from the backup.

When CBT is first enabled, it captures an internal NTFS attribute that represents the number of times that the file system has been restarted. By tracking changes to this value, MRCBT can detect if a volume has been modified in any environment where MRCBT is not operating (e.g., on another computer or operating system).

When CBT is enabled and Reflect detects that the 'Restart' attribute is correctly sequenced, the subsequent incremental and differential image can be generated by comparing the changed block database (created by CBT) on the logical volume with that stored in the previous image in the chain. This is indicated by a blue running-man icon displayed in the Reflect UI.

If Reflect detects that the 'Restart' attribute is not correctly sequenced, the subsequent incremental or differential image will be generated using the traditional method. This is indicated by a grey running-man icon displayed in the Reflect UI.


Installing Changed Block Tracker for New Installations

When Macrium Reflect is installed for the first time, the 'Custom Setup' page can be used to install Changed Block Tracker:

If Macrium Reflect is being installed via the command line, the '-cbt' switch can be used to install Changed Block Tracker:

C:\Users\Admin\Downloads> reflect_wkstn_setup_x64.exe -cbt

Once CBT has been installed, the computer will need to be rebooted before the CBT driver is loaded and CBT can begin monitoring volumes for changes.

A reboot is required after installing Macrium Reflect to enable CBT.  Images can still be created without rebooting; however, CBT will only be enabled after a restart.

The NTFS 'Restart' attribute is a fundamental component of the NTFS file system and has been supported by all Linux and Apple operating systems dating back several years.

Due to technical limitations with Windows XP, Macrium Reflect Changed Block Tracker will only work on Windows Vista and higher operating systems.


Adding Changed Block Tracker to Existing Installations

If Macrium Reflect has already been installed without Changed Block Tracker, Macrium Changed Block Tracker can be installed by navigating to the control panel and then selecting ‘Programs and Features’. Select ‘Macrium Reflect <Edition>’ from the list of installed programs, then select ‘Modify’.  

In the wizard that opens, select ‘Next’ then ‘Modify’. On the next page of the wizard, you can specify additional installation options. Ensure that ‘Install CBT’ is selected, select ‘Next’, and then ‘Install’. 


Macrium Reflect Changed Block Tracker Tools

Macrium CBT Driver Tools is a small Windows utility to install and monitor the Macrium CBT driver. Macrium CBT Driver Tools provides the user with a visual representation of the changed blocks and of the various performance metrics reported by the kernel-mode driver.  Macrium Driver Tools can be found here: C:\Program Files\Macrium\Reflect\MrCBTTools.exe

image2018-10-29_11-0-11.png

Selecting a drive shows performance metrics and tracked block information for the chosen drive. The darker shades indicate a higher percentage of changed blocks.

The red blocks indicate the physical location of the MRCBT tracking file on the volume. This view will be reset when a Macrium Reflect backup of the volume is started.

Performance Metrics

The following performance metrics will be displayed when a drive is selected on the left-hand side of the page:

Metric Name Description
Session Start Time The date and time at which CBT started monitoring the volume. This value will be reset when the volume is mounted, normally when Windows is restarted.
Number of Writes The total number of write operations on the volume that CBT has monitored since the session started.
Number of Paged Writes The total number of write operations on the volume, flagged as PAGING_IO, that CBT has monitored since the session started. 
Number of Queued Writes  
Number of Tracked Writes The total number of write operations on the volume that CBT has tracked since the session started.
Number of Excluded Writes The total number of write operations on the volume that CBT has excluded, due to already having a record of a change to that disk area, since the session started.
Number of Failed Writes

The total number of write operations on the volume that MRCBT has failed to track since the session started.

Note: If this value is anything other than zero. Macrium Reflect will fall back to the normal method of generating an incremental backup. 

Total Time Tracking The total length of time that CBT has taken to track writes on the volume since the session started. 
Average Time Per Tracked Write The average length of time that CBT is taking to track each write operation on the volume since the session started. 
Number of Changed Blocks The total number of changed blocks on the volume since the session started. 
Number of Changed Bytes The total number of changed bytes on the volume since the session started. 
$CBT Starting LCN The first Logical Cluster Number (LCN) of the CBT tracking file.
$CBT Ending LCN The last Logical Cluster Number (LCN) of the CBT tracking file.
Bytes Per Logical Cluster The number of bytes per logical cluster for the volume, as reported by NTFS.
Bytes Per Block The number of bytes per block, as reported by Macrium Reflect.
$LogFile Restart Count The current value of the NTFS $LogFile Restart Count.
Number of TRIM/UNMAP Bytes The number of bytes that have been affected by a TRIM or UNMAP event.

Viewing Files Using Particular Blocks

Clicking on one of the shaded blocks will cause Macrium Driver Tools to display a list of files that are currently using the clusters within the block.


Enabling and Disabling CBT

Once CBT has been installed, it will be enabled by default. This is shown in the 'Advanced Incrementals' section of the 'Advanced Settings':


Has CBT Been Used to Create My Image?

If CBT has been used to create an incremental or differential image, 'CBT Init Success' will be displayed under NTFS partitions in the backup log file:

More information about reading and understanding log files can be found here.