Video Screencast Help

What is so special about DirectRead Registry entry in Flashbackup.

Created: 16 Apr 2009 • Updated: 20 Jul 2009 | 8 comments
Pravs's picture
+11 11 Votes
Login to vote

Yesterday evening, I was just going through one of the customer problem. He was having a problem with Flashbackup backup job that was stalled. Most of the time, It was stalled during the time when NBU was mapping information of the file system or Just the mapping was literally too slow. Interesting enough! But after they formatted the drive, copied the data back on the server, took fresh back-up and wow, the problem was somehow resolved.

No rewards for guessing, how it was resolved. It was the MFT file that was highly internally fragmented and it was causing the problem, but you can’t format your drive daily? Can you?

MFT is master file table. MFT is special file in NTFS which exists per volume and always has inode number zero. MFT file is actually an array of indices. Each MFT index has size of 1K. Each file on NTFS volume has one index entry associated in MFT. Sometimes the MFT file has internal fragmentation. Few MFT indices are unallocated in between allocated indices.

Consider following MFT file
|Allocated Indices | Unallocated Indices |Allocated Indices |
|0 1000 | 1001 2000 |2001 3000|

When standard DeviceIOControl code FSCTL_GET_NTFS_FILE_RECORD is used to retrieve unallocated index say 1500, the API internally goes on reading all indices till allocated index is found. In above case if index 1500 is requested then the API will read all indices between 1000 and 1500 and will eventually return index 1500 and still Unallocated. This produces a performance hit.
In such scenarios reading directly from volume is way more efficient. FlashBackup provides you a Registry hack (another way to read MFT). We call it as “DirectRead” because standard DeviceIOControl code FSCTL_GET_NTFS_FILE_RECORD gets used only once and later all MFT indices are retrieved using pure volume read. Use the smartest way to Back-up your data. Now the question is how to enable it:

Add Following Registry Key:
Add Dword value called DirectRead Give it value of 1.

Other choices: Defragmentation can be a option and may improve the performance. There are lot of scenario where you can see FlashBackup is not doing fast mapping and look like has slowed down from past.

Watch out this space for the discussion!!

Article Filed Under:

Comments 8 CommentsJump to latest comment

CY's picture

Hi Pravs,

This is an excellent article!  Thanks for such detailed explanation!

Login to vote
cJ_Symantec's picture

These reg changes need to be applied where? On the guest machine? Proxy? or Master server?



Login to vote
Pravs's picture

if it's a flashBack for Windows : apply at actual client
for VCB Backups : apply at proxy server.


Just one person saying to me, “You’ve made my day!” makes my day.

Login to vote
Pravs's picture

Thanks Guy! keep pouring your comments so I will be more motivated.

Just one person saying to me, “You’ve made my day!” makes my day.

Login to vote
PrafulPatel's picture

What % of benefit I can see after using this registry entry? do you have any stats?

Login to vote
Twinkle Sapra's picture

We are facing an issue with Flash-Backup.

Flash-backup is completing perfectly but skipping one of the folder in FULL backup but error code is 0. Incremental backup is including that folder where incremental backup of that folder is very less means there are very small changes in that folder. I have implemented above registery chages for a try but didn't help. Not sure where I have to look to fix the issue?

Login to vote