Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
Hello, Please pardon any mistakes, as I am relatively new to DRBD. I've recently started to use DRBD to synchronize a 2TB volume over a low-speed (10-14 megabit) wireless link to an offsite location. I initialized the original volume using ocfs2 and drbd and copied to the second volume using dd, so the data sets should have started out identical. I installed the disks at the remote location and brought up the array in active-active synchronous mode. Writes on either volume would show up instantly and everything seemed to be alright, but I wanted to verify that the data sets were actually in sync, so I did an invalidate-remote from the local node and watched in horror as it tried to re-sync the entire array. The operation was set to take 2-3 weeks, and everytime one or other node went down the operation started again from 0%! Reading the mailing lists, it appeared that their was an assumption that the disk was always the performance bottleneck, and the case of slow links was not really considered by the developers. Seeing as I contribute to reasonably large OSS projects, I am interested in trying to add some functionality to DRBD to help people out in situations similar to my own (as well as help with my own dilemma). My question is this: is the code functionally separated to the point that it would be possible to add a second code path for the synchronization algorithm? I would be interested in adding support for synchronizing devices using a binary diffing library like librsync to trade CPU cycles for bandwidth. Please let me know if this is theoretically possible given the current architecture of DRBD, and if so, any starting tips you might be able to think of. I couldn't find a developers guide, so I'll be jumping into this cold. Also let me know if I'm being terribly naive in thinking that there is some way I'll be able to implement something workable in less that the 3 weeks it will take for the array to sync naturally. Thanks! -Brian Marshall