/usr/share/doc/drbd-doc/users-guide/s-resync.html is in drbd-doc 8.4~20151102-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>2.5. Efficient synchronization</title><link rel="stylesheet" type="text/css" href="default.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="home" href="drbd-users-guide.html" title="The DRBD User’s Guide" /><link rel="up" href="ch-features.html" title="Chapter 2. DRBD Features" /><link rel="prev" href="s-replication-transports.html" title="2.4. Multiple replication transports" /><link rel="next" href="s-suspended-replication.html" title="2.6. Suspended replication" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">2.5. Efficient synchronization</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="s-replication-transports.html">Prev</a> </td><th width="60%" align="center">Chapter 2. DRBD Features</th><td width="20%" align="right"> <a accesskey="n" href="s-suspended-replication.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="s-resync"></a>2.5. Efficient synchronization</h2></div></div></div><p>(Re-)synchronization is distinct from device replication. While
replication occurs on any write event to a resource in the primary
role, synchronization is decoupled from incoming writes. Rather, it
affects the device as a whole.</p><p>Synchronization is necessary if the replication link has been
interrupted for any reason, be it due to failure of the primary node,
failure of the secondary node, or interruption of the replication
link. Synchronization is efficient in the sense that DRBD does not
synchronize modified blocks in the order they were originally written,
but in linear order, which has the following consequences:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Synchronization is fast, since blocks in which several successive
write operations occurred are only synchronized once.
</li><li class="listitem">
Synchronization is also associated with few disk seeks, as blocks
are synchronized according to the natural on-disk block layout.
</li><li class="listitem">
During synchronization, the data set on the standby node is partly
obsolete and partly already updated. This state of data is called
<span class="emphasis"><em>inconsistent</em></span>.
</li></ul></div><p>The service continues to run uninterrupted on the active node, while
background synchronization is in progress.</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.png" /></td><th align="left">Important</th></tr><tr><td align="left" valign="top"><p>A node with inconsistent data generally cannot be put into
operation, thus it is desirable to keep the time period during which a
node is inconsistent as short as possible. DRBD does, however, ship
with an LVM integration facility that automates the creation of LVM
snapshots immediately before synchronization. This ensures that a
<span class="emphasis"><em>consistent</em></span> copy of the data is always available on the peer, even
while synchronization is running. See <a class="xref" href="s-lvm-snapshots.html" title="10.3. Using automated LVM snapshots during DRBD synchronization">Section 10.3, “Using automated LVM snapshots during DRBD synchronization”</a> for details
on using this facility.</p></td></tr></table></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="s-variable-rate-sync"></a>2.5.1. Variable-rate synchronization</h3></div></div></div><p>In variable-rate synchronization (the default), DRBD detects the
available bandwidth on the synchronization network, compares it to
incoming foreground application I/O, and selects an appropriate
synchronization rate based on a fully automatic control loop.</p><p>See <a class="xref" href="s-configure-sync-rate.html#s-configure-sync-rate-variable" title="6.10.3. Variable sync rate configuration">Section 6.10.3, “Variable sync rate configuration”</a> for configuration suggestions with
regard to variable-rate synchronization.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_fixed_rate_synchronization"></a>2.5.2. Fixed-rate synchronization</h3></div></div></div><p>In fixed-rate synchronization, the amount of data shipped to the
synchronizing peer per second (the <span class="emphasis"><em>synchronization rate</em></span>) has a
configurable, static upper limit. Based on this limit, you may
estimate the expected sync time based on the following simple formula:</p><div class="figure"><a id="eq-resync-time"></a><p class="title"><strong>Figure 2.1. Synchronization time</strong></p><div class="figure-contents"><div class="mediaobject"><img src="resync-time.png" alt="equation" /></div></div></div><br class="figure-break" /><p><span class="emphasis"><em>t<sub>sync</sub></em></span> is the expected sync time. <span class="emphasis"><em>D</em></span> is the amount of data to be
synchronized, which you are unlikely to have any influence over (this
is the amount of data that was modified by your application while the
replication link was broken). <span class="emphasis"><em>R</em></span> is the rate of synchronization,
which is configurable — bounded by the throughput limitations of the
replication network and I/O subsystem.</p><p>See <a class="xref" href="s-configure-sync-rate.html" title="6.10. Configuring the rate of synchronization">Section 6.10, “Configuring the rate of synchronization”</a> for configuration suggestions with
regard to fixed-rate synchronization.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="s-checksum-sync"></a>2.5.3. Checksum-based synchronization</h3></div></div></div><p><a id="p-checksum-sync"></a>The efficiency of DRBD’s synchronization algorithm may be further
enhanced by using data digests, also known as checksums. When using
checksum-based synchronization, then rather than performing a
brute-force overwrite of blocks marked out of sync, DRBD <span class="emphasis"><em>reads</em></span>
blocks before synchronizing them and computes a hash of the contents
currently found on disk. It then compares this hash with one computed
from the same sector on the peer, and omits re-writing this block if
the hashes match. This can dramatically cut down synchronization times
in situation where a filesystem re-writes a sector with identical
contents while DRBD is in disconnected mode.</p><p>See <a class="xref" href="s-configure-checksum-sync.html" title="6.11. Configuring checksum-based synchronization">Section 6.11, “Configuring checksum-based synchronization”</a> for configuration suggestions with
regard to synchronization.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="s-replication-transports.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch-features.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="s-suspended-replication.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">2.4. Multiple replication transports </td><td width="20%" align="center"><a accesskey="h" href="drbd-users-guide.html">Home</a></td><td width="40%" align="right" valign="top"> 2.6. Suspended replication</td></tr></table></div></body></html>
|