[DRBD-user] ProtocollError using on-congestion pull-ahead

Holger Steinhaus hsteinhaus at gmx.de
Thu Feb 7 20:58:55 CET 2013

Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.


I am playing around with an asynchronous setup of drbd. In my 
application there are mostly reads, but from time to time large batches 
of data (10-100s GB) will be written. Write performance is very 
important here - the loss of the current batch of data or parts of it is 
acceptable on primary node failure, as long as the fs stays alive in 
general.

My frist idea was to switch to protocol A without touching any other 
parameters. The write performance of this setup was quite disapointing 
with about 30MB/s. Thats less than 50% of the sustained write rate of 
each node (simple dual core PCs with desktop hdds, writing between 130 
and 70 MB/s). The link between the nodes is an exclusive Gigabit cable, 
iperf'd with about 900MBit.

So I tried to tune some parameters:
----------------------------------------------------------------------------------------- 

global {
     usage-count yes;
}

common {

     disk {
         # size max-bio-bvecs on-io-error fencing disk-barrier disk-flushes
         # disk-drain md-flushes resync-rate resync-after al-extents
                 # c-plan-ahead c-delay-target c-fill-target c-max-rate
                 # c-min-rate disk-timeout
         resync-rate 200M;
         al-extents 389;
     }

     net {
         protocol A;
         sndbuf-size 1M;
         on-congestion pull-ahead;
         congestion-fill 800k;
         congestion-extents 300;
     }
}

resource main_disk {
         device    /dev/drbd0;
         meta-disk internal;
         on nas2 {
                 address   10.1.0.2:7789;
                 disk      /dev/sdb1;
         }
         on nas3 {
                 address   10.1.0.3:7789;
                 disk      /dev/sdb1;
         }
}
----------------------------------------------------------------------------------------- 


Unfortunately, everything got worse: this configuration shows a very 
inconsistent performance, from 10..60MB/s of the capabilities of the 
harddisks. I monitored /proc/drbd therefore:

dd if=/dev/zero of=/dev/drbd0 bs=1M count=20000&
while true; do cat /proc/drbd; sleep 0.2; done

GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by 
dag at Build64R6, 2012-09-06 08:16:10
  0: cs:Ahead ro:Primary/Secondary ds:UpToDate/Inconsistent A r-----
     ns:38436460 nr:0 dw:39806236 dr:16508544 al:9720 bm:875 lo:1470 
pe:0 ua:1 ap:1466 ep:1 wo:d oos:1645552
version: 8.4.2 (api:1/proto:86-101)
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by 
dag at Build64R6, 2012-09-06 08:16:10
  0: cs:Ahead ro:Primary/Secondary ds:UpToDate/Inconsistent A r-----
     ns:38436460 nr:0 dw:39812380 dr:16511616 al:9722 bm:875 lo:1981 
pe:0 ua:1 ap:1978 ep:1 wo:d oos:1653744
version: 8.4.2 (api:1/proto:86-101)
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by 
dag at Build64R6, 2012-09-06 08:16:10
  0: cs:ProtocolError ro:Primary/Unknown ds:UpToDate/Inconsistent A r-----
     ns:38437996 nr:0 dw:39817500 dr:16513664 al:9723 bm:875 lo:1725 
pe:0 ua:0 ap:1722 ep:1 wo:d oos:1656304
version: 8.4.2 (api:1/proto:86-101)
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by 
dag at Build64R6, 2012-09-06 08:16:10
  0: cs:ProtocolError ro:Primary/Unknown ds:UpToDate/Inconsistent A r---d-
     ns:38437996 nr:0 dw:39824388 dr:16513680 al:9724 bm:875 lo:2 pe:0 
ua:0 ap:0 ep:1 wo:d oos:1657844
version: 8.4.2 (api:1/proto:86-101)
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by 
dag at Build64R6, 2012-09-06 08:16:10
  0: cs:WFConnection ro:Primary/Unknown ds:UpToDate/Inconsistent A r-----
     ns:38437996 nr:0 dw:39829504 dr:16513680 al:9725 bm:875 lo:771 pe:0 
ua:0 ap:769 ep:1 wo:d oos:1662960
version: 8.4.2 (api:1/proto:86-101)
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by 
dag at Build64R6, 2012-09-06 08:16:10
  0: cs:WFConnection ro:Primary/Unknown ds:UpToDate/Inconsistent A r-----
     ns:38437996 nr:0 dw:39834624 dr:16513680 al:9726 bm:875 lo:515 pe:0 
ua:0 ap:513 ep:1 wo:d oos:1668080
version: 8.4.2 (api:1/proto:86-101)
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by 
dag at Build64R6, 2012-09-06 08:16:10
  0: cs:WFReportParams ro:Primary/Unknown ds:UpToDate/Inconsistent A r---d-
     ns:38437996 nr:0 dw:39840768 dr:16513680 al:9728 bm:875 lo:1028 
pe:0 ua:0 ap:1025 ep:1 wo:d oos:1674224
version: 8.4.2 (api:1/proto:86-101)
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by 
dag at Build64R6, 2012-09-06 08:16:10
  0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent A r-----
     ns:38437996 nr:0 dw:39847120 dr:16513680 al:9729 bm:875 lo:463 pe:0 
ua:0 ap:461 ep:1 wo:d oos:1682416
     [>....................] sync'ed:  0.3% (1682416/1682416)K
     finish: 1:10:06 speed: 0 (0) K/sec
version: 8.4.2 (api:1/proto:86-101)
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by 
dag at Build64R6, 2012-09-06 08:16:10
  0: cs:Ahead ro:Primary/Secondary ds:UpToDate/Inconsistent A r-----
     ns:38438996 nr:0 dw:39854288 dr:16513680 al:9731 bm:875 lo:720 
pe:1074 ua:0 ap:1799 ep:1 wo:d oos:1685312
version: 8.4.2 (api:1/proto:86-101)
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by 
dag at Build64R6, 2012-09-06 08:16:10
  0: cs:Ahead ro:Primary/Secondary ds:UpToDate/Inconsistent A r-----
     ns:38443292 nr:0 dw:39862340 dr:16513728 al:9733 bm:875 lo:755 pe:0 
ua:1 ap:1957 ep:1 wo:d oos:1693504
version: 8.4.2 (api:1/proto:86-101)
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by 
dag at Build64R6, 2012-09-06 08:16:10
  0: cs:Ahead ro:Primary/Secondary ds:UpToDate/Inconsistent A r-----
     ns:38443292 nr:0 dw:39868484 dr:16513792 al:9735 bm:875 lo:1268 
pe:0 ua:1 ap:1264 ep:1 wo:d oos:1701696
version: 8.4.2 (api:1/proto:86-101)
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by 
dag at Build64R6, 2012-09-06 08:16:10
  0: cs:Ahead ro:Primary/Secondary ds:UpToDate/Inconsistent A r-----
     ns:38443292 nr:0 dw:39874628 dr:16516352 al:9737 bm:875 lo:1779 
pe:0 ua:0 ap:1776 ep:1 wo:d oos:1709888
version: 8.4.2 (api:1/proto:86-101)
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by 
dag at Build64R6, 2012-09-06 08:16:10
  0: cs:Ahead ro:Primary/Secondary ds:UpToDate/Inconsistent A r-----
     ns:38443292 nr:0 dw:39881796 dr:16518400 al:9739 bm:875 lo:2035 
pe:0 ua:1 ap:2032 ep:1 wo:d oos:1718080
version: 8.4.2 (api:1/proto:86-101)
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by 
dag at Build64R6, 2012-09-06 08:16:10
  0: cs:Ahead ro:Primary/Secondary ds:UpToDate/Inconsistent A r-----
     ns:38443292 nr:0 dw:39890500 dr:16520448 al:9741 bm:875 lo:1907 
pe:0 ua:0 ap:1904 ep:1 wo:d oos:1726272
version: 8.4.2 (api:1/proto:86-101)
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by 
dag at Build64R6, 2012-09-06 08:16:10
  0: cs:Ahead ro:Primary/Secondary ds:UpToDate/Inconsistent A r-----
     ns:38443292 nr:0 dw:39899204 dr:16522496 al:9743 bm:875 lo:1779 
pe:0 ua:0 ap:1776 ep:1 wo:d oos:1734464
version: 8.4.2 (api:1/proto:86-101)
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by 
dag at Build64R6, 2012-09-06 08:16:10
  0: cs:Ahead ro:Primary/Secondary ds:UpToDate/Inconsistent A r-----
     ns:38443292 nr:0 dw:39903300 dr:16523520 al:9744 bm:875 lo:1780 
pe:0 ua:1 ap:1776 ep:1 wo:d oos:1738560

Any ideas or suggestions?

Regards,
   Holger

-- 
Dipl.-Wirtsch.-Inf. Holger Steinhaus
Softwareentwicklung und Beratung
Straacher Feldstr. 3, 06889 Wittenberg

Festnetz        034929-65950
Fax             034929-65951
mobil           0151-50992485
eMail           holger at steinhaus-home.de





More information about the drbd-user mailing list