Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
/ 2006-09-05 14:29:50 +0300 \ Cyril Bouthors: > On 5 Sep 2006, Lars Ellenberg wrote: > > >> Sep 4 22:35:14 nfsb2 kernel: No module symbols loaded - kernel modules not enabled. > > > > monolithic? > > well, a matter of taste, anyways... > > I've seen this too, this is weird because I'm using modules a lot. maybe it is just a misleading error message from klogd, when it does not find the symbols... > > well, what _is_ the size of md0 ? > > md0 is 480GB large, which is larger than the currently running DRBD > primary. > > After a good night of sleep, I realized that : > > - This md0 RAID array has previously been running DRBD on another > setup and it seems that DRBD is re-using the old metadata, which > stores a invalid 'agreed size'. > > - my 'dd if=/dev/zero ...' did not erase the metadata because I > thought it was at the beginning of the device, I only erased the > 128MB at the beginning (bs=1M count=128). > > - DRBD stores the 'last agreed size' in the metadata and never > reconnects to the primary to refresh it > > I fixed the problem by zeroing the 128MB at the end of the device and > restarting DRBD. > > Is there a smart way to tell DRBD to refresh the 'agreed size' from > the other DRBD node without destroying the metadata? if you have unrelated meta data from a previous setup, you should re-initialize it anyways. > Is there another way than 'dd' to destroy the metadata of a previously > used DRBD device? > > Is there a way to dump the metadata information like 'agreed size'? there are "read_gc.pl" and "write_gc.pl" in the testing/ directory of the drbd tarball. gc == generation counters, but it also displays / can write the "agreed-size") drbd 8 has a drbdmeta subcommand, which is much more powerfull, and does support the older meta data formats, too. but its commandline parameter usage needs some time to get used to. > <offtopic> > > AFAIK, the 'seek' option of 'dd' does not really fseek() at the end of > the device, it sequentially reads it from the beginning and because of > that, it's really slow. The following command takes approx one hour: actually, the seek option to seek into the output _does_ seek. the "skip" option to skip input does not. > size_of_md0=481708800 > dd if=/dev/zero of=/dev/md0 seek=`expr $size_of_md0 - 128000` well. did you specify the bs=1M ? otherwise, you'd just seeked into the device a couple of K, then had to zero out the other 479.x GB > Is there a way to do it faster? obviously, in case your dd does indeed not seek (which I doubt), you could use exec... # extra 1MB, because I'm lazy, for correct calculation see write_gc.pl perl -e 'sysseek STDOUT,-129*1024*1024,2 or die "$!"; exec qw(dd if=...)' or just plain perl: # only correct if device size is a multiple of 4K perl -e 'seek STDOUT,-128*1024*1024,2 or die "$!"; print "\x0" x 512' > /dev/md0 -- : Lars Ellenberg Tel +43-1-8178292-0 : : LINBIT Information Technologies GmbH Fax +43-1-8178292-82 : : Schoenbrunner Str. 244, A-1120 Vienna/Europe http://www.linbit.com : __ please use the "List-Reply" function of your email client.