• Recent Posts

  • Browse Categories

  • Archives

Double-Take Settings “Block-Checksum All Files on a Difference Mirror”

One of the most confusing settings inside the Double-Take Management Console is the option to choose “Block-Checksum All Files on a Difference Mirror.” The setting is designed to offer the user the option to speed up mirrors, but only if the data in question does not write in a block-level format. Before we dig into that particular conundrum, let’s first discuss how Double-Take mirrors occur.

As many of you know, a mirror (or sync) operation is not the normal data protection methodology used by Double-Take products to move data from a Source to a Target. Generally we’re using byte-level, write order protected, asynchronous replication to perform that task. However, there are times when the two servers become divergent, even in normal operational situations. The servers may be disconnected manually to perform testing or maintenance, or there could be a non-failover emergency like a bandwidth outage that causes an auto-disconnect to occur. There is also the most common reason for a mirror, when you first connect a Source to a Target and we need to establish a baseline. When divergence happens, we need to force-verify that the data on the Source and the data on the Target match. Mirror operations perform exactly that task.

By default, the later versions of Double-Take products (including the current version, 5.1) will perform a difference mirror to whenever possible to ensure we use the least amount of resources (time and bandwidth are just two) to guarantee that the two datasets are identical. This means running through each file system block being protected on the Source (not disk blocks) and then comparing that checksum to the same block on the Target system. If they match, we skip that block and move on; if they are different, then we copy that block over to the Target and then move on.

This system is safe and effective for all types of data that can exist on Windows and most Linux servers, so why would we expose the setting at all in the Management Console? The answer is that while this is safe for everything and usually quite fast, there is a faster way to mirror if the data is only flat files and nothing else.

Note: This is a critical point, if there is any block-write data in the Replication Set (such as data-types used by SQL, Exchange, SharePoint, Oracle, Sybase, Outlook, etc) then you must use the default settings for Block-Checksum All Files. The following solution only applied to flat file data (like other Office documents, PDF files, JPG and GIF files, etc).

If you are protecting only flat file data, then each time a file is changed, the date/time stamp and/or the file size attributes will change as well. Unlike SQL or Exchange that can write to a file without changing these attributes, flat files will always update on file changes. Because of this, block-checksum operations are only required on files that have different attributes between Source and Target, and therefore we can skip more files faster by confirming they are identical via attribute comparison. If the files have different attributes, then we still perform a block-checksum differential by default, but we only do so for files that appear different to the file system, instead of forcing block-checksum on every file regardless of appearances. The result can be a dramatically faster mirror (upwards of 50% faster), and is quite safe to use this method on any flat-file data.

Since this setting is turned on by default (forcing block-checksum on all files), you will need to make settings changes to implement the “zippy mirror,” as many of my colleagues here have been referring to it. The change is rather easy to implement, and can be undone later on if necessary. In the Management Console, log into each of the servers you wish to make the settings change on. To facilitate faster restore times, you should perform this action on both the Source and Target machines that are part of a pair protecting flat file data. Right-click the server name, go to Properties, and then go to the Source tab. You will see the setting there, labeled “Block Checksum All Files on a Difference Mirror,” and it should be selected by default. Un-select it and you will enable the attribute differential mirroring described above. Please note that if you change this, you should initiate a re-mirror for any open connections between that server and any other.

Manipulating this setting can cause problems with anything but flat file data, and that cannot be stressed enough. If you are unsure, stick with the default to block-checksum all files, as that is always safe no matter what kind of data you’re dealing with.


Leave a Reply