[DRBD-user] Concurrent local writes

Alexander Thieme at at sendemails.com
Thu Apr 22 08:38:19 CEST 2010

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


Hi List,

I am using DRBD 8.3.7 with XenServer 5.5 U2. The drbd device is used by 
3 different operating systems: Win XP, Win 2000 and Linux 
paravirtualized 2.6.18.

I have an issue with concurrent local writes:
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 120076912s +4096; pending: 120076912s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 120076920s +4096; pending: 120076920s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 120076928s +4096; pending: 120076928s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 120076936s +4096; pending: 120076936s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 120076944s +4096; pending: 120076944s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 120076952s +4096; pending: 120076952s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 120076960s +4096; pending: 120076960s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 120076968s +4096; pending: 120076968s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 120076976s +4096; pending: 120076976s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 120076984s +4096; pending: 120076984s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 120076992s +4096; pending: 120076992s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 120077000s +4096; pending: 120077000s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 120077008s +4096; pending: 120077008s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 120077016s +4096; pending: 120077016s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 120077024s +4096; pending: 120077024s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 121884912s +4096; pending: 121884912s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 121884920s +4096; pending: 121884920s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 121884928s +4096; pending: 121884928s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 121884936s +4096; pending: 121884936s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 121884944s +4096; pending: 121884944s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 121884952s +4096; pending: 121884952s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 121884960s +4096; pending: 121884960s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 121884968s +4096; pending: 121884968s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 121884976s +4096; pending: 121884976s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 121884984s +4096; pending: 121884984s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 121884992s +4096; pending: 121884992s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 121885000s +4096; pending: 121885000s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 121885008s +4096; pending: 121885008s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 121885016s +4096; pending: 121885016s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 121885024s +4096; pending: 121885024s +4096
block drbd1: tapdisk[22538] Concurrent local write detected! [DISCARD L] 
new: 121885032s +4096; pending: 121885032s +4096

This event occurred in a period of 3 seconds and hasn't ever occurred 
before or after.

This already has been discussed here:
http://lists.linbit.com/pipermail/drbd-user/2009-April/thread.html#11873

I understand the problem, however I have some questions:
1.) Lars Ellenberger said "DRBD currently _drops_ the later write.". Is 
this behaviour identical to what any other block device would do? I 
would guess that its safer to drop the first write attempt (or, if the 
areas just overlap, create a single "combined" write attempt.)
2.) Why is this actually a problem when write barriers are used?
3.) Can drbd configured in such a way that the last write attempt is not 
lost? I understand the possibility that an incorrect replication is 
created but I prefer this over local data corruption and let a nightly 
online verify take care of the differences.
4.) Is there any known switch in the configuration of windows, which 
might prevent this issue (i.e. disabling the write cache?)?
5.) Before we used a software raid1 setup and noticed bitwise difference 
of the disks when we executed a mdarray check. Maybe linux's software 
raid suffers from the same problems as drbd. It has already been 
discussed on various mailing lists:
http://www.mail-archive.com/gnhlug-discuss@mail.gnhlug.org/msg27126.html

Greetings,
Alexander Thieme




More information about the drbd-user mailing list