All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tijs Van Buggenhout <tvb@able.be>
To: drbd-dev@lists.linbit.com
Subject: [Drbd-dev] DRBD 8.4.3 : create-md possibly broken for fixed sized (shared) meta devices
Date: Wed, 06 Mar 2013 15:24:36 +0100	[thread overview]
Message-ID: <1963827.4HPAHhzfUk@itsj> (raw)

Hi,

I recently installed drbd 8.4.3 packages and ran into problems when trying to 
create a drbd resource using fixed size drbd meta device ided by an index. 
Investigating further, it seems that when using a flexible meta disk, there is 
no problem whatsoever.
I also used the same configuration file/set of commands on the previous 
version (8.4.2) for fixed size meta-disk, which worked without problems.

The following excerpt from the console log shows how I first create a drbd 
resource (drbd0) with flexible meta disk (/dev/lv/drbd-meta-84). Afterwards I 
undo the configuration, and try to do the same for fixed drbd meta disk, which 
fails (every time). Then I roll back to the previous version of drbd 
utils/module, and try the setup with fixed drbd meta disk again, which 
succeeds.

(master.domain.com):~# lvdisplay lv
  --- Logical volume ---
  LV Path                /dev/lv/data
  LV Name                data
  VG Name                lv
  LV UUID                A1WAT3-uWDN-6ch5-BCnc-KTyJ-7ZiT-FdKhDZ
  LV Write Access        read/write
  LV Creation host, time master.domain.com, 2013-03-07 01:18:00 +0100
  LV Status              available
  # open                 0
  LV Size                512.00 MiB
  Current LE             128
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
  --- Logical volume ---
  LV Path                /dev/lv/drbd-meta-84
  LV Name                drbd-meta-84
  VG Name                lv
  LV UUID                6fW32r-94t8-G8vZ-I0ME-ElJi-LeWC-u4Hdik
  LV Write Access        read/write
  LV Creation host, time master.domain.com, 2013-03-07 01:18:35 +0100
  LV Status              available
  # open                 0
  LV Size                128.00 MiB
  Current LE             32
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1
   
(master.domain.com):~# cat /etc/drbd.conf 
#
# drbd.conf (generated, do not modify)
#

global {
        # minor-count 32;
        # dialog-refresh 5; # 5 seconds
        # disable-ip-verification;

        # Participate in DRBD's online usage counter at http://usage.drbd.org
        usage-count no;
}

common {
        disk { resync-rate 10M; }
}

resource drbd0 {
        protocol C;

        handlers {
                # pri-on-incon-degr "echo o > /proc/sysrq-trigger; halt -f";
                # pri-lost-after-sb "echo o > /proc/sysrq-trigger; halt -f";
                # local-io-error "echo o > /proc/sysrq-trigger; halt -f";
        }

        startup {
                # wfc-timeout  0;
                # degr-wfc-timeout 60;
                # outdated-wfc-timeout 0;
                # wait-after-sb no;
                # stacked-timeouts no;
                # become-primary-on master.domain.com;
        }

        disk {
                fencing dont-care;
                on-io-error detach;
                al-extents 1237;
                al-updates yes;
                resync-rate 700K;
        }

        net {
                after-sb-0pri discard-younger-primary;
                after-sb-1pri consensus;
                after-sb-2pri disconnect;
                rr-conflict disconnect;
        }

        on master.domain.com {
                device /dev/drbd0;
                disk /dev/lv/data;
                address 172.16.1.179:7788;
                flexible-meta-disk /dev/lv/drbd-meta-84;
        }

        on master.domain.com {
                device /dev/drbd0;
                disk /dev/lv/data;
                address 172.16.1.180:7788;
                flexible-meta-disk /dev/lv/drbd-meta-84;
        }
}
(master.domain.com):~# dd if=/dev/zero of=/dev/lv/drbd-meta-84 bs=$[1024*1024] 
count=128
128+0 records in
128+0 records out
134217728 bytes (134 MB) copied, 10.7637 s, 12.5 MB/s
(master.domain.com):~# modprobe drbd
(master.domain.com):~# cat /proc/drbd 
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@build, 
2013-03-05 15:10:01
(master.domain.com):~# drbdsetup new-resource drbd0
(master.domain.com):~# drbdsetup new-minor drbd0 /dev/drbd0 0
(master.domain.com):~# drbdadm create-md drbd0 -vvvvvvvvvv
drbdmeta 0 v08 /dev/lv/drbd-meta-84 flex-external create-md 
Writing meta data...
initializing activity log
NOT initializing bitmap
New drbd meta data block successfully created.
drbdmeta 0 v08 /dev/lv/drbd-meta-84 flex-external write-dev-uuid 
000000000000000D
(master.domain.com):~# drbdmeta /dev/drbd0 v08 /dev/lv/drbd-meta-84 0 dump-md 
-vvvvvvvvvv
hard_sect_size is 512 Byte
 v08_md_disk_to_cpu        : pread(4, ...,  4096,           0)
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 04  |................|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 0d  |................|
00000030  00 00 00 00 00 00 00 00  00 00 00 80 83 74 02 6b  |.............t.k|
00000040  00 04 00 00 00 00 00 08  00 00 01 01 00 00 00 48  |...............H|
00000050  00 00 10 00 00 00 00 00  00 00 00 01 00 00 00 08  |................|
00000060  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000ff0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00001000
# DRBD meta data dump
# 2013-03-07 07:17:01 +0100 [1362637021]
# master.domain.com> drbdmeta -vvvvvvvvvv /dev/drbd0 v08 /dev/lv/drbd-meta-84 
0 dump-md
#

version "v08";

# md_size_sect 262144
# md_offset 0
# al_offset 4096
# bm_offset 36864

uuid {
    0x0000000000000004; 0x0000000000000000; 0x0000000000000000; 
0x0000000000000000;
    flags 0x00000080;
}
# al-extents 257;
la-size-sect 0;
bm-byte-per-bit 4096;
device-uuid 0x000000000000000D;
la-peer-max-bio-size 0;
# bm-bytes 0;
bm {
}
# bits-set 0;
# al {
 printf_al                 : pread(4, ..., 32768,        4096)
#     block  0 { INITIALIZED }
#     block  1 { INITIALIZED }
#     block  2 { INITIALIZED }
#     block  3 { INITIALIZED }
#     block  4 { INITIALIZED }
#     block  5 { INITIALIZED }
#     block  6 { INITIALIZED }
#     block  7 { INITIALIZED }
# }
(master.domain.com):~# drbdadm attach drbd0
(master.domain.com):~# cat /proc/drbd 
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@build, 
2013-03-05 15:10:01
 0: cs:StandAlone ro:Secondary/Unknown ds:Inconsistent/DUnknown   r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:524160
(master.domain.com):~# drbdadm detach drbd0
(master.domain.com):~# drbdadm down drbd0
(master.domain.com):~# cat /proc/drbd 
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@build, 
2013-03-05 15:10:01
(master.domain.com):~# rmmod drbd
(master.domain.com):~# cat /etc/drbd.conf 
#
# drbd.conf (generated, do not modify)
#

global {
        # minor-count 32;
        # dialog-refresh 5; # 5 seconds
        # disable-ip-verification;

        # Participate in DRBD's online usage counter at http://usage.drbd.org
        usage-count no;
}

common {
        disk { resync-rate 10M; }
}

resource drbd0 {
        protocol C;

        handlers {
                # pri-on-incon-degr "echo o > /proc/sysrq-trigger; halt -f";
                # pri-lost-after-sb "echo o > /proc/sysrq-trigger; halt -f";
                # local-io-error "echo o > /proc/sysrq-trigger; halt -f";
        }

        startup {
                # wfc-timeout  0;
                # degr-wfc-timeout 60;
                # outdated-wfc-timeout 0;
                # wait-after-sb no;
                # stacked-timeouts no;
                # become-primary-on master.domain.com;
        }

        disk {
                fencing dont-care;
                on-io-error detach;
                al-extents 1237;
                al-updates yes;
                resync-rate 700K;
        }

        net {
                after-sb-0pri discard-younger-primary;
                after-sb-1pri consensus;
                after-sb-2pri disconnect;
                rr-conflict disconnect;
        }

        on master.domain.com {
                device /dev/drbd0;
                disk /dev/lv/data;
                address 172.16.1.179:7788;
                meta-disk /dev/lv/drbd-meta-84 [0];
        }

        on master.domain.com {
                device /dev/drbd0;
                disk /dev/lv/data;
                address 172.16.1.180:7788;
                meta-disk /dev/lv/drbd-meta-84 [0];
        }
}
(master.domain.com):~# dd if=/dev/zero of=/dev/lv/drbd-meta-84 bs=$[1024*1024] 
count=128
128+0 records in
128+0 records out
134217728 bytes (134 MB) copied, 10.6723 s, 12.6 MB/s
(master.domain.com):~# modprobe drbd
(master.domain.com):~# cat /proc/drbd 
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@build, 
2013-03-05 15:10:01
(master.domain.com):~# drbdsetup new-resource drbd0
(master.domain.com):~# drbdsetup new-minor drbd0 /dev/drbd0 0
(master.domain.com):~# drbdadm create-md drbd0 -vvvvvvvvvv
drbdmeta 0 v08 /dev/lv/drbd-meta-84 0 create-md 
Writing meta data...
initializing activity log
NOT initializing bitmap
New drbd meta data block successfully created.
drbdmeta 0 v08 /dev/lv/drbd-meta-84 0 write-dev-uuid 000000000000000D 
(master.domain.com):~# drbdmeta /dev/drbd0 v08 /dev/lv/drbd-meta-84 0 dump-md 
-vvvvvvvvvv
hard_sect_size is 512 Byte
 v08_md_disk_to_cpu        : pread(4, ...,  4096,           0)
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 04  |................|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 0d  |................|
00000030  00 00 00 00 00 00 00 00  00 00 00 80 83 74 02 6b  |.............t.k|
00000040  00 04 00 00 00 00 00 08  00 00 01 01 00 00 00 48  |...............H|
00000050  00 00 10 00 00 00 00 00  00 00 00 01 00 00 00 08  |................|
00000060  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000ff0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00001000
# DRBD meta data dump
# 2013-03-07 07:22:35 +0100 [1362637355]
# master.domain.com> drbdmeta -vvvvvvvvvv /dev/drbd0 v08 /dev/lv/drbd-meta-84 
0 dump-md
#

version "v08";

# md_size_sect 262144
# md_offset 0
# al_offset 4096
# bm_offset 36864

uuid {
    0x0000000000000004; 0x0000000000000000; 0x0000000000000000; 
0x0000000000000000;
    flags 0x00000080;
}
# al-extents 257;
la-size-sect 0;
bm-byte-per-bit 4096;
device-uuid 0x000000000000000D;
la-peer-max-bio-size 0;
# bm-bytes 0;
bm {
}
# bits-set 0;
# al {
 printf_al                 : pread(4, ..., 32768,        4096)
#     block  0 { INITIALIZED }
#     block  1 { INITIALIZED }
#     block  2 { INITIALIZED }
#     block  3 { INITIALIZED }
#     block  4 { INITIALIZED }
#     block  5 { INITIALIZED }
#     block  6 { INITIALIZED }
#     block  7 { INITIALIZED }
# }
(master.domain.com):~# drbdadm attach drbd0
0: Failure: (119) No valid meta-data signature found.

        ==> Use 'drbdadm create-md res' to initialize meta-data area. <==

Command 'drbdsetup attach 0 /dev/lv/data /dev/lv/drbd-meta-84 0 --resync-
rate=700K --al-updates=yes --al-extents=1237 --on-io-error=detach --
fencing=dont-care' terminated with exit code 10
(master.domain.com):~# cat /proc/drbd 
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@build, 
2013-03-05 15:10:01
 0: cs:Unconfigured
(master.domain.com):~# drbdadm down drbd0
(master.domain.com):~# rmmod drbd
.... reinstall drbd 8.4.2 modules/tools ...
(master.domain.com):~# dd if=/dev/zero of=/dev/lv/drbd-meta-84 bs=$[1024*1024] 
count=128
128+0 records in
128+0 records out
134217728 bytes (134 MB) copied, 10.7561 s, 12.5 MB/s
(master.domain.com):~# depmod -a
(master.domain.com):~# modprobe drbd
(master.domain.com):~# cat /proc/drbd 
version: 8.4.2 (api:1/proto:86-101)
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by root@build, 
2013-03-06 10:15:58
(master.domain.com):~# cat /etc/drbd.conf 
#
# drbd.conf (generated, do not modify)
#

global {
        # minor-count 32;
        # dialog-refresh 5; # 5 seconds
        # disable-ip-verification;

        # Participate in DRBD's online usage counter at http://usage.drbd.org
        usage-count no;
}

common {
        disk { resync-rate 10M; }
}

resource drbd0 {
        protocol C;

        handlers {
                # pri-on-incon-degr "echo o > /proc/sysrq-trigger; halt -f";
                # pri-lost-after-sb "echo o > /proc/sysrq-trigger; halt -f";
                # local-io-error "echo o > /proc/sysrq-trigger; halt -f";
        }

        startup {
                # wfc-timeout  0;
                # degr-wfc-timeout 60;
                # outdated-wfc-timeout 0;
                # wait-after-sb no;
                # stacked-timeouts no;
                # become-primary-on master.domain.com;
        }

        disk {
                fencing dont-care;
                on-io-error detach;
                al-extents 1237;
                #al-updates yes;
                resync-rate 700K;
        }

        net {
                after-sb-0pri discard-younger-primary;
                after-sb-1pri consensus;
                after-sb-2pri disconnect;
                rr-conflict disconnect;
        }

        on master.domain.com {
                device /dev/drbd0;
                disk /dev/lv/data;
                address 172.16.1.179:7788;
                meta-disk /dev/lv/drbd-meta-84 [0];
        }

        on master.domain.com {
                device /dev/drbd0;
                disk /dev/lv/data;
                address 172.16.1.180:7788;
                meta-disk /dev/lv/drbd-meta-84 [0];
        }
}
(master.domain.com):~# drbdsetup new-resource drbd0
(master.domain.com):~# drbdsetup new-minor drbd0 /dev/drbd0 0
(master.domain.com):~# drbdadm create-md drbd0 -vvvvvvvvvv
drbdmeta 0 v08 /dev/lv/drbd-meta-84 0 create-md 
Writing meta data...
initializing activity log
NOT initializing bitmap
New drbd meta data block successfully created.
drbdmeta 0 v08 /dev/lv/drbd-meta-84 0 write-dev-uuid 000000000000000D 
(master.domain.com):~# drbdmeta /dev/drbd0 v08 /dev/lv/drbd-meta-84 0 dump-md 
-vvvvvvvvvv
hard_sect_size is 512 Byte
 v08_md_disk_to_cpu        : pread(4, ...,  4096,           0)
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 04  |................|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 0d  |................|
00000030  00 00 00 00 00 00 00 00  00 00 00 00 83 74 02 6b  |.............t.k|
00000040  00 04 00 00 00 00 00 08  00 00 01 01 00 00 00 48  |...............H|
00000050  00 00 10 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000060  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000ff0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00001000
# DRBD meta data dump
# 2013-03-07 07:32:58 +0100 [1362637978]
# master.domain.com> drbdmeta -vvvvvvvvvv /dev/drbd0 v08 /dev/lv/drbd-meta-84 
0 dump-md
#

version "v08";

# md_size_sect 262144
# md_offset 0
# al_offset 4096
# bm_offset 36864

uuid {
    0x0000000000000004; 0x0000000000000000; 0x0000000000000000; 
0x0000000000000000;
    flags 0x00000000;
}
# al-extents 257;
la-size-sect 0;
bm-byte-per-bit 4096;
device-uuid 0x000000000000000D;
la-peer-max-bio-size 0;
# bm-bytes 0;
bm {
}
# bits-set 0;
# al {
 printf_al                 : pread(4, ..., 32768,        4096)
#     block  0 { INITIALIZED }
#     block  1 { INITIALIZED }
#     block  2 { INITIALIZED }
#     block  3 { INITIALIZED }
#     block  4 { INITIALIZED }
#     block  5 { INITIALIZED }
#     block  6 { INITIALIZED }
#     block  7 { INITIALIZED }
# }
(master.domain.com):~# drbdadm attach drbd0
(master.domain.com):~# cat /proc/drbd 
version: 8.4.2 (api:1/proto:86-101)
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by root@build, 
2013-03-06 10:15:58
 0: cs:StandAlone ro:Secondary/Unknown ds:Inconsistent/DUnknown   r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:524160
(master.domain.com):~# drbdadm detach drbd0
(master.domain.com):~# drbdadm down drbd0
(master.domain.com):~# rmmod drbd

Am I doing something wrong, or did I misconfigure drbd, such that the setup of 
a drbd resource with fixed size meta disk fails in version 8.4.3, or can this 
be some kind of regression problem/bug?

Best regards,
Tijs

             reply	other threads:[~2013-03-06 14:46 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-06 14:24 Tijs Van Buggenhout [this message]
2013-03-07  9:31 ` [Drbd-dev] DRBD 8.4.3 : create-md possibly broken for fixed sized (shared) meta devices Lars Ellenberg
2013-03-07 15:54   ` Tijs Van Buggenhout

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1963827.4HPAHhzfUk@itsj \
    --to=tvb@able.be \
    --cc=drbd-dev@lists.linbit.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.