Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
Hi,
I have two nodes running DRBD v0.7.25 on Fedora 7 with kernel 2.6.22.9-91.fc7.
DRBD has two resources: "data1" (/dev/drbd0 on /dev/md2) and "data2" (/dev/drbd1
on /dev/md3) both running on software RAID. In order to use a 2.6.23 kernel it
appears that I need to upgrade to DRBD 8. I read the step by step guide from
Florian's blog for info on how to perform a DRBD 0.7 to DRBD 8 upgrade.
The procedure I used to upgrade DRBD from 0.7 to 8 was as follows:
1. Stop heartbeat on both nodes
2. Ensure that DRBD is secondary on both nodes with consistent data.
3. Stop DRBD on both nodes
4. Install DRBD 8.0.8 on first node. I compiled DRBD myself.
5. Upgrade the metadata on the first node. This is where I hit a snag as
drbdmeta did not detect that the existing metadata was v07. Here's the output
plus a few other commands I used that may be helpful to anyone reading this.
# drbdadm create-md data1
v08 Magic number not found
v07 Magic number not found
About to create a new drbd meta data block
on /dev/md2.
==> This might destroy existing data! <==
Do you want to proceed?
[need to type 'yes' to confirm] no
Operation cancelled.
# drbdadm dump-md data1
v08 Magic number not found
Command 'drbdmeta /dev/drbd0 v08 /dev/md2 internal dump-md' terminated with exit
code 255
drbdadm aborting
# drbdmeta /dev/drbd0 v07 /dev/md2 internal dump-md
version "v07";
gc {
5; 8; 11; 223; 647;
}
la-size-sect 39755520;
# bm-bytes 621184;
# bits-set 0;
bm {
# at 0kB
0x0000000000000000; 0x0000000000000000; 0x0000000000000000; 0x0000000000000000;
77644 times 0x0000000000000000;
0x0000000000000000;
}
# drbdmeta /dev/drbd0 v07 /dev/md2 internal show-gi
WantFullSync |
ConnectedInd | |
lastState | | |
ArbitraryCnt | | | |
ConnectedCnt | | | | |
TimeoutCnt | | | | | |
HumanCnt | | | | | | |
Consistent | | | | | | | |
--------+-----+-----+-----+-----+-----+-----+-----+
1/c | 8 | 11 | 223 | 647 | 0/s | 1/c | 0/n
last agreed size: 18 GB
0 bits set in the bitmap [ 0 KB out of sync ]
According to the v07 metadata dump it is v07 metadata. However, I've not used
the dump-md command before so I don't know what the output should look like. I
tried to upgrade the metadata on the resource "data2" and this failed. On the
other node I then tried upgrading to DRBD 8.0.8 and the metadata upgrade also
failed to detect that the resources' metadata were v07. Finally, I installed and
booted into the latest Fedora 7 kernel (2.6.23.12-52.fc7) and attempted to
upgrade with the same issue. I rolled back to kernel 2.6.22.9-91.fc7 and DRBD
0.7.25 and my cluster is running fine again.
Does anyone have any ideas as to why the "drbdadm create-md <resource>" commands
are failing to detect that the existing metadata is v07? Here are my DRBD
configs from both nodes for both DRBD 0.7.25 and DRBD 8.0.8. I think that they
are pretty basic.
Thanks,
Jeff.
DRBD 0.7.25 Config
==================
resource data1 {
protocol C;
incon-degr-cmd "echo '!DRBD! pri on incon-degr' | wall ; sleep 60 ; halt -f";
startup {
wfc-timeout 0; # Infinite!
degr-wfc-timeout 120; # 2 minutes.
}
disk {
on-io-error detach;
}
net {
# timeout 60; # 6 seconds (unit = 0.1 seconds)
# connect-int 10; # 10 seconds (unit = 1 second)
# ping-int 10; # 10 seconds (unit = 1 second)
# max-buffers 2048;
# max-epoch-size 2048;
# ko-count 4;
# on-disconnect reconnect;
}
syncer {
rate 20M; # 20 Mbit/s
group 1;
# al-extents 257;
}
on sauron.whiterabbit.com.au {
device /dev/drbd0;
disk /dev/md2;
address 172.16.0.10:7788;
meta-disk internal;
}
on shelob.whiterabbit.com.au {
device /dev/drbd0;
disk /dev/md2;
address 172.16.0.11:7788;
meta-disk internal;
}
}
resource data2 {
protocol C;
incon-degr-cmd "echo '!DRBD! pri on incon-degr' | wall ; sleep 60 ; halt -f";
startup {
wfc-timeout 0; # Infinite!
degr-wfc-timeout 120; # 2 minutes.
}
disk {
on-io-error detach;
}
net {
# timeout 60; # 6 seconds (unit = 0.1 seconds)
# connect-int 10; # 10 seconds (unit = 1 second)
# ping-int 10; # 10 seconds (unit = 1 second)
# max-buffers 2048;
# max-epoch-size 2048;
# ko-count 4;
# on-disconnect reconnect;
}
syncer {
rate 20M; # 20 Mbit/s
group 2;
# al-extents 257;
}
on sauron.whiterabbit.com.au {
device /dev/drbd1;
disk /dev/md3;
address 172.16.0.10:7789;
meta-disk internal;
}
on shelob.whiterabbit.com.au {
device /dev/drbd1;
disk /dev/md3;
address 172.16.0.11:7789;
meta-disk internal;
}
}
DRBD 8.0.8 Config
=================
resource data1 {
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";
# outdate-peer "/usr/lib/heartbeat/drbd-peer-outdater -t 5";
#}
startup {
wfc-timeout 0; # Infinite!
degr-wfc-timeout 120; # 2 minutes.
}
disk {
on-io-error detach;
}
net {
# timeout 60; # 6 seconds (unit = 0.1 seconds)
# connect-int 10; # 10 seconds (unit = 1 second)
# ping-int 10; # 10 seconds (unit = 1 second)
# max-buffers 2048;
# max-epoch-size 2048;
# ko-count 4;
# on-disconnect reconnect;
}
syncer {
rate 20M; # 20 Mbit/s
# al-extents 257;
}
on sauron.whiterabbit.com.au {
device /dev/drbd0;
disk /dev/md2;
address 172.16.0.10:7788;
meta-disk internal;
}
on shelob.whiterabbit.com.au {
device /dev/drbd0;
disk /dev/md2;
address 172.16.0.11:7788;
meta-disk internal;
}
}
resource data2 {
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";
# outdate-peer "/usr/lib/heartbeat/drbd-peer-outdater -t 5";
#}
startup {
wfc-timeout 0; # Infinite!
degr-wfc-timeout 120; # 2 minutes.
}
disk {
on-io-error detach;
}
net {
# timeout 60; # 6 seconds (unit = 0.1 seconds)
# connect-int 10; # 10 seconds (unit = 1 second)
# ping-int 10; # 10 seconds (unit = 1 second)
# max-buffers 2048;
# max-epoch-size 2048;
# ko-count 4;
# on-disconnect reconnect;
}
syncer {
rate 20M; # 20 Mbit/s
after "data1";
# al-extents 257;
}
on sauron.whiterabbit.com.au {
device /dev/drbd1;
disk /dev/md3;
address 172.16.0.10:7789;
meta-disk internal;
}
on shelob.whiterabbit.com.au {
device /dev/drbd1;
disk /dev/md3;
address 172.16.0.11:7789;
meta-disk internal;
}
}