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 use drbd 0.7 for some years and want to upgrade to drbd 8.2.
My setup:
ext3->lvm2->drbd->md->sd
On a test machine i get this error when i try to convert the 0.7
metadata to 8.2 format:
#drbdadm create-md fthdisk2
v08 Magic number not found
md_offset 1069150208
al_offset 1069117440
bm_offset 1069084672
Found LVM2 physical volume signature
Device size would be truncated, which
would corrupt data and result in
'access beyond end of device' errors.
If you want me to do this, you need to zero out the first part
of the device (destroy the content).
You should be very sure that you mean it.
Operation refused.
Command 'drbdmeta /dev/drbd0 v08 /dev/md7 internal create-md' terminated
with exit code 40
drbdadm aborting
I do not have this probem when not using LVM!!!
What have i done wrong?
Or is something so evil about LVM, that DRBD metadata cannot be converted?
How can i convert the metadata?
Do i have to destroy and rebuild the whole DRBD setup?
Here is the rest what i have done on my testing box. I currently use
Centos4 and the DRBD-RPMs from Centos.
(The testing box is currently standalone, but i have the same problem,
if it is connected).
First create a new drbd 0.7 config. /dev/md7 is 1GB.
# cat /proc/mdstat
Personalities : [raid1]
md7 : active raid1 sdc1[0]
1044096 blocks [1/1] [U]
# dd if=/dev/zero of=/dev/md7
# drbdadm up all
# cat /proc/drbd
version: 0.7.25 (api:79/proto:74)
GIT-hash: 3a9c7c136a9af8df921b3628129dafbe212ace9f build by
buildcentos at v20z-c4i386, 2008-07-24 10:51:01
0: cs:WFConnection st:Secondary/Unknown ld:Inconsistent
ns:0 nr:0 dw:0 dr:0 al:0 bm:112 lo:0 pe:0 ua:0 ap:0
1: cs:Unconfigured
# drbdadm -- --do-what-I-say primary all
# cat /proc/drbd
version: 0.7.25 (api:79/proto:74)
GIT-hash: 3a9c7c136a9af8df921b3628129dafbe212ace9f build by
buildcentos at v20z-c4i386, 2008-07-24 10:51:01
0: cs:WFConnection st:Primary/Unknown ld:Consistent
ns:0 nr:0 dw:0 dr:0 al:0 bm:112 lo:0 pe:0 ua:0 ap:0
1: cs:Unconfigured
#pvcreate /dev/drbd0
Physical volume "/dev/drbd0" successfully created
#pvscan
PV /dev/drbd0 lvm2 [891.44 MB]
Total: 1 [891.44 MB] / in use: 0 [0 ] / in no VG: 1 [891.44 MB]
#pvdisplay
--- NEW Physical volume ---
PV Name /dev/drbd0
VG Name
PV Size 891.44 MB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID p8lPYo-LT00-JYtt-kGBC-NNr3-RpSU-zxLj0T
#vgcreate fth /dev/drbd0
Volume group "fth" successfully created
#lvcreate -L100M -nfailover fth
Logical volume "failover" created
#lvdisplay
--- Logical volume ---
LV Name /dev/fth/failover
VG Name fth
LV UUID L9sEWW-HeaK-8UoV-l2Cn-7XSw-MBSR-pqGs8e
LV Write Access read/write
LV Status available
# open 0
LV Size 100.00 MB
Current LE 25
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:0
#mke2fs /dev/fth/failover
mke2fs 1.35 (28-Feb-2004)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
25688 inodes, 102400 blocks
5120 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
13 block groups
8192 blocks per group, 8192 fragments per group
1976 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 24 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
#tune2fs -j -c0 -i0 /dev/fth/failover
tune2fs 1.35 (28-Feb-2004)
Setting maximal mount count to -1
Setting interval between check 0 seconds
Creating journal inode: done
This filesystem will be automatically checked every -1 mounts or
0 days, whichever comes first. Use tune2fs -c or -i to override.
#mount /dev/fth/failover /mnt
#df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 3510364 2206504 1125540 67% /
/dev/sda1 101086 11696 84171 13% /boot
none 257740 0 257740 0% /dev/shm
/dev/mapper/fth-failover
99150 5664 88366 7% /mnt
Now i have a working lvm on top of DRBD 0.7 setup.
Lets upgrade to DRBD 8.2. I used
http://fghaas.wordpress.com/2007/10/03/step-by-step-upgrade-from-drbd-07-to-drbd-8/
as a guide.
#umount /mnt
#vgchange -a n fth
0 logical volume(s) in volume group "fth" now active
#drbdadm down all
#rmmod drbd
#rpm -e kmod-drbd-0.7.25-2.2.6.9_67.0.22.EL drbd-0.7.25-1.el4.centos
#rpm -i drbd82-8.2.6-1.el4.centos.i386.rpm
kmod-drbd82-8.2.6-2.2.6.9_67.0.22.EL.i686.rpm
#depmod -a
fixup/change drbd.conf
#drbdadm create-md fthdisk2
v08 Magic number not found
md_offset 1069150208
al_offset 1069117440
bm_offset 1069084672
Found LVM2 physical volume signature
Device size would be truncated, which
would corrupt data and result in
'access beyond end of device' errors.
If you want me to do this, you need to zero out the first part
of the device (destroy the content).
You should be very sure that you mean it.
Operation refused.
Command 'drbdmeta /dev/drbd0 v08 /dev/md7 internal create-md' terminated
with exit code 40
drbdadm aborting
My V0.7 drbd.conf:
resource fthdisk2 {
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;
# connect-int 10;
# ping-int 10;
# max-buffers 2048;
# max-epoch-size 2048;
}
syncer {
rate 4M;
group 1;
}
on fth1.maweos.de {
device /dev/drbd0;
disk /dev/md7;
address 192.168.208.51:7789;
meta-disk internal;
}
on fth2.maweos.de {
device /dev/drbd0;
disk /dev/md7;
address 192.168.208.52:7789;
meta-disk internal;
}
}
My V82 drbd.conf:
common {
protocol C;
startup {
wfc-timeout 0; ## Infinite!
degr-wfc-timeout 120; ## 2 minutes.
}
disk {
on-io-error detach;
# ONLY USE THIS OPTION IF YOU KNOW WHAT YOU ARE DOING.
# no-disk-flushes;
# no-md-flushes;
}
net {
# timeout 60;
# connect-int 10;
# ping-int 10;
# max-buffers 2048;
# max-epoch-size 2048;
}
syncer {
rate 10M;
}
handlers {
[.....]
}
}
resource fthdisk2 {
on fth1.maweos.de {
device /dev/drbd0;
disk /dev/md7;
address 192.168.208.51:7789;
meta-disk internal;
}
on fth2.maweos.de {
device /dev/drbd0;
disk /dev/md7;
address 192.168.208.52:7789;
meta-disk internal;
}
}
Best Regards
Matthias Weigel