[DRBD-user] block drbd0: bio would need to, but cannot, be split error on physical device

Lars Ellenberg lars.ellenberg at linbit.com
Mon Dec 7 21:50:39 CET 2009

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


On Mon, Dec 07, 2009 at 09:21:04AM -0800, Vadym Chepkov wrote:
> Hi,
> 
> I am having problem to utilize drbd on a Linux PowerPC server
> 
> These is my environment:
> 
> # uname -a
> Linux ashlin01 2.6.18-164.el5 #1 SMP Tue Aug 18 15:58:09 EDT 2009 ppc64 ppc64 ppc64 GNU/Linux
> 
> # fdisk -l /dev/sdc
> 
> Disk /dev/sdc: 73.4 GB, 73407488000 bytes
> 128 heads, 32 sectors/track, 35003 cylinders
> Units = cylinders of 4096 * 512 = 2097152 bytes
> 
>    Device Boot      Start         End      Blocks   Id  System
> /dev/sdc1               1       35003    71686128   83  Linux
> 
> # cat /etc/drbd.conf
> global {
>   usage-count no;
> }
> 
> common {
>   protocol C;
>   startup {
>     wfc-timeout 15;
>   }
>   syncer {
>     rate 4M;
>     verify-alg sha1;
>   }
>   disk {
>     on-io-error detach;
>   }
>   handlers {
>     split-brain "/usr/lib/drbd/notify-split-brain.sh root";
>     out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root";
>   }
> }
> 
> resource u00 {
>   on ashlin01 {
>     device     /dev/drbd0;
>     disk       /dev/sdc1;
>     address    10.10.10.10:7788;
>     flexible-meta-disk  internal;
>   }
>   on ashlin02 {
>     device     /dev/drbd0;
>     disk       /dev/sdc1;
>     address    10.10.10.11:7788;
>     flexible-meta-disk  internal;
>   }
> }
> 
> # cat /proc/drbd 
> version: 8.3.5 (api:88/proto:86-91)
> GIT-hash: ded8cdf09b0efa1460e8ce7a72327c60ff2210fb build by vchepkov at ashlin02, 2009-12-05 19:33:37
>  0: cs:Connected ro:Primary/Secondary 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 ep:1 wo:b oos:0
> 
> 
> Now, when I try to create a fs on the device I get this:
> # mkfs -j -T small /dev/drbd/by-res/u00
> mke2fs 1.39 (29-May-2006)
> Warning: could not erase sector 2: Attempt to write block from filesystem resulted in short write
> Filesystem label=
> OS type: Linux
> Block size=1024 (log=0)
> Fragment size=1024 (log=0)
> 17922048 inodes, 71683904 blocks
> 3584195 blocks (5.00%) reserved for the super user
> First data block=1
> Maximum filesystem blocks=138936320
> 8751 block groups
> 8192 blocks per group, 8192 fragments per group
> 2048 inodes per group
> Superblock backups stored on blocks: 
>         8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409, 663553, 
>         1024001, 1990657, 2809857, 5120001, 5971969, 17915905, 19668993, 
>         25600001, 53747713
> 
> Warning: could not read block 0: Attempt to read block from filesystem resulted in short read
> Warning: could not erase sector 0: Attempt to write block from filesystem resulted in short write
> mkfs.ext2: Attempt to write block from filesystem resulted in short write while zeroing block 71683840 at end of filesystem
> Writing inode tables:    0/8751
> Could not write 8 blocks in inode table starting at 534: Attempt to write block from filesystem resulted in short write
> 
> And on the server console I get these errors:
> 
>  block drbd0: bio would need to, but cannot, be split: (vcnt=1,idx=0,size=65536,sector=0)
> block drbd0: bio would need to, but cannot, be split: (vcnt=1,idx=0,size=65536,sector=128)
> Buffer I/O error on device drbd0, logical block 1
> block drbd0: bio would need to, but cannot, be split: (vcnt=1,idx=0,size=65536,sector=0)
> Buffer I/O error on device drbd0, logical block 0
> block drbd0: bio would need to, but cannot, be split: (vcnt=1,idx=0,size=65536,sector=0)
> block drbd0: bio would need to, but cannot, be split: (vcnt=1,idx=0,size=65536,sector=143367680)
> block drbd0: bio would need to, but cannot, be split: (vcnt=1,idx=0,size=65536,sector=1024)

hm. ugly.
no one should not submit 64k bios to DRBD, as we unfortunately have a
stupid badly chosen and someday to be fixed limit at 32k per bio.
and we _do_ announce this limit.

> I am lost. drbd 8.2.6 was working on this server, by the way, but I
> can't make 8.3 to work, no matter what. Could anybody help, please?

interessting.

may I have the kernel log from modprobe to first attach of drbd?
specifically I'm looking for "drbd0: max_segment_size",
which may be adjusted while attaching,
as well as during connection handshake.

-- 
: Lars Ellenberg
: LINBIT | Your Way to High Availability
: DRBD/HA support and consulting http://www.linbit.com

DRBD® and LINBIT® are registered trademarks of LINBIT, Austria.
__
please don't Cc me, but send to list   --   I'm subscribed



More information about the drbd-user mailing list