[DRBD-user] cannot mount device on secondary node

David Lütolf david at adbin.ch
Mon Sep 8 20:27:20 CEST 2008

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

Hello all!

I am trying to get DRDB running on two machines, each running Gentoo
2008.0 (server) with 2.6.25-gentoo-r7 kernel.

first issue I was faced to was

'unknown symbol crypto_alloc_base'

(and some others which I don't remember) when loading the drbd module. I
quickly fixed it by adding all crypto* items as modules in the kernel,
as well as those found in the netfilter section. my question is the
following: which options are _required_ for the drbd module to load
properly? it seems only the 'cn' module gets loaded... 

and now comes the real question:

I followed the instructions on
http://gentoo-wiki.com/HOWTO_Heartbeat_and_DRBD and
http://www.drbd.org/docs/install/ but after starting the initial sync I
cannot mount the drbd drives on the Secondary host:

back2 / # mount /mnt/drbd
mount: block device /dev/drbd0 is write-protected, mounting read-only
mount: Wrong medium type

if I check the status, this is what I get:

back2 ~ # cat /proc/drbd 
version: 8.0.13 (api:86/proto:86)
GIT-hash: ee3ad77563d2e87171a3da17cc002ddfd1677dbe build by root at back2,
2008-09-08 21:10:42
 0: cs:Connected st:Secondary/Primary ds:UpToDate/UpToDate C r---
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0
        resync: used:0/61 hits:0 misses:0 starving:0 dirty:0 changed:0
        act_log: used:0/257 hits:0 misses:0 starving:0 dirty:0 changed:0
 1: cs:SyncTarget st:Secondary/Primary ds:Inconsistent/UpToDate C r---
    ns:0 nr:946928 dw:946928 dr:0 al:0 bm:57 lo:0 pe:0 ua:0 ap:0
        [>....................] sync'ed:  0.9% (101491/102403)M
        finish: 81:11:34 speed: 320 (328) K/sec
        resync: used:0/61 hits:64458 misses:59 starving:0 dirty:0
        act_log: used:0/257 hits:0 misses:0 starving:0 dirty:0 changed:0

back1 ~ # drbdadm state all 
back1 ~ # drbdadm cstate all

back2 / # drbdadm state all
back2 / # drbdadm cstate all

I can issue a `drbdadm down drbd0` command on the secondary host, but
not on the Primary (even after is has been downed on the secondary): I
get this:

output of dmesg for 'back2' (secondary):
drbd0: peer( Primary -> Unknown ) conn( Connected -> Disconnecting )
pdsk( UpToDate -> DUnknown )
drbd0: Writing meta data super block now.
drbd0: short read expecting header on sock: r=-512
drbd0: asender terminated
drbd0: Terminating asender thread
drbd0: tl_clear()
drbd0: Connection closed
drbd0: conn( Disconnecting -> StandAlone )
drbd0: receiver terminated
drbd0: Terminating receiver thread
drbd0: disk( UpToDate -> Diskless )
drbd0: drbd_bm_resize called with capacity == 0
drbd0: worker terminated
drbd0: Terminating worker thread

back1 ~ # drbdadm down drbd0
/dev/drbd0: State change failed: (-12) Device is held open by someone
Command 'drbdsetup /dev/drbd0 down' terminated with exit code 11
drbdsetup exited with code 11


drbd0: State change failed: Device is held open by someone
drbd0:   state = { cs:WFConnection st:Primary/Unknown
ds:UpToDate/DUnknown r--- }
drbd0:  wanted = { cs:WFConnection st:Secondary/Unknown
ds:UpToDate/DUnknown r--- }


a clue on what I could be missing?

Good evening to you all


More information about the drbd-user mailing list