[Drbd-dev] [Patch v2 00/10] Zero out devices instead of initial full sync
nwang at suse.com
Mon Jul 13 10:38:54 CEST 2015
Patch set is based on drbd-8.4 859e34a9, have
already compiled/tested against SLES12.
If this feature can be merged into upstream, please
ignore v1, since v1 may caused pingACK timeout when
zeroing out large device.
Compare to v1, changes are as follow:
1. Using drbd_device_post_work to zero out device as background
task, so that it won't block pingACK when zeroing out
2. Fix bug of won't update peer node status if it finished
zeroing out earier.
3. Change some functions from file drbd_receive.c to
drbd_worker.c and reorder the patch set.
Full sync for drbd initial usually take a long time, especically
when network become the bottleneck of the syncing. Simply skip
the full sync with "--clear-bitmap" may not the perfect solution
for all the cases, like using the bare device(no filesystem) to
work,etc database,vm... This patche set can be used to zero out
devices locally instead of a full sync to make the consistent
block device. This approach can be useful when lack of network
bandwidth to sync.
The patches add one new option "--zap-devices" to "new-current-uuid"
to zero out devices. It will start zeroing out devices of both
Nick Wang (10):
drbd: Fix the wrong logic of move history.
drbd: Add options zap_devices to new-current-uuid
drbd: Add a function to zero out drbd backing device.
drbd: New packet P_ZERO_OUT.
drbd: Functions to notify peer node to start
zeroing out and zero out finished.
drbd: Wapper for zeroing out device by worker.
drbd: Add flag for drbd device work.
drbd: Function to work with packet P_ZERO_OUT.
drbd: Receive zero out command from peer node.
drbd: Handle new-current-uuid --zap-devices.
Signed-off-by: Nick Wang <nwang at suse.com>
CC: Philipp Reisner <philipp.reisner at linbit.com>
CC: Lars Ellenberg <lars.ellenberg at linbit.com>
CC: drbd-dev at lists.linbit.com
CC: linux-kernel at vger.kernel.org
drbd/drbd_int.h | 13 ++++++++
drbd/drbd_main.c | 51 ++++++++++++++++++++++++++--
drbd/drbd_nl.c | 21 +++++++++++-
drbd/drbd_protocol.h | 1 +
drbd/drbd_receiver.c | 69 ++++++++++++++++++++++++++++++++++++++
drbd/drbd_worker.c | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++
drbd/linux/drbd_genl.h | 1 +
7 files changed, 243 insertions(+), 3 deletions(-)
More information about the drbd-dev