Macrium Reflect Changed Block Tracker (MRCBT) 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 is able to 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 is 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 7.2, MRCBT tracks TRIM events. These events are generated by NTFS when a file is deleted or moved and are used by MRCBT to optimize the image by excluding the relevant blocks from the backup.
When MRCBT 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 MRCBT is enabled and Reflect detects that the Restart attribute correctly sequenced, the subsequent incremental and differential image can be generated by comparing the changed block database (created by MRCBT) 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 (see image below).
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.
A reboot is required after installing Macrium Reflect to enable CBT. You can create images without rebooting but 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.
When MRCBT is being used to generate an Incremental or Differential image of the volume, you will see the following line in the Image log:
CBT Init Success indicates that the Incremental is using the CBT driver. Note that the 'Looking For Changes' operation will be nearly instantaneous with no progress shown.
Macrium CBT Driver 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
Selecting a drive shows performance metrics and tracked block information for the chosen drive. The darker shades indicate a higher percentage of changed blocks.
Note: 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.
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.
Performance Metrics
Metric_Name________________ | Description |
Session Start Time | The date and time that MRCBT 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 MRCBT has monitored since the session started. |
Number of Paged Writes | The total number of write operations on the volume, flagged as PAGING_IO, that MRCBT has monitored since the session started. |
Number of Tracked Writes | The total number of write operations on the volume that MRCBT has tracked since the session started. |
Number of Excluded Writes | The total number of write operations on the volume that MRCBT 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. |
Time Tracking | The total length of time that MRCBT has taken to track writes on the volume since the session started. |
Average Time Per Tracked Write | The average length of time that MRCBT 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 MRCBT tracking file. |
$CBT Ending LCN | The last Logical Cluster Number (LCN) of the MRCBT 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. |
Enabling and disabling CBT
CBT is enabled by default. You can change whether CBT is enabled or disabled by selecting the Enable Changed Block Tracking for Incremental Backups check-box in the Advanced Incrementals page of the Reflect Defaults and settings.
Note: You can enable or disable CBT at any time without affecting your Image sets.
We recommend enabling the Delta Indexes for Incremental Backups option as this will produce the smallest incremental image files in the shortest amount of time. Please see Delta Indexes for Incremental Backups