Bug#598721: mdadm: internal bitmap uses way too large chunks

Neil Brown neilb at suse.de
Fri Oct 1 22:32:49 UTC 2010


On Fri, 01 Oct 2010 13:53:13 +0200
Paul Slootman <paul at debian.org> wrote:

> Package: mdadm
> Version: 3.1.4-1+8efb9d1
> Severity: important
> 
> I noticed that when adding internal bitmaps to md devices,
> that the chunks used were far too large:

That depends on what you mean by 'too large'.
I find that the ideal chunk size relates to how much of the array can be
resynced in about second or a bit less.  I suspect I might be able to do an
IO test and see how fast the devices are, but that is messy and error prone.
So I simply choose a default of 64M as that seems to be the right ball-park
for modern hardware.

Smaller chunk sizes increase write overhead for little appreciable gain.

> 
> root at corky:/home/paul# cat /proc/mdstat 
> Personalities : [raid1] 
> md4 : active raid1 sdb5[0] sdc5[1]
>       587202560 blocks [2/2] [UU]
>       bitmap: 2/5 pages [8KB], 65536KB chunk
> 
> md3 : active raid1 sdc3[2](W) sda3[0] sdb3[1](W)
>       10485696 blocks [3/3] [UUU]
>       bitmap: 1/1 pages [4KB], 65536KB chunk
> 
> md2 : active raid1 sdb2[0] sdc2[1]
>       4194240 blocks [2/2] [UU]
>       bitmap: 0/1 pages [0KB], 65536KB chunk
> 
> md1 : active raid1 sdc1[2](W) sda1[0] sdb1[1](W)
>       213120 blocks [3/3] [UUU]
>       bitmap: 1/1 pages [4KB], 65536KB chunk
> 
> unused devices: <none>
> 
> 
> I mean, using 64M chunks on an md device that's just 208MB is silly.

It might also be said that having a bitmap on a 208MB array is a bit silly as
it would only take about 5 seconds to resync it without a bitmap.
In reality neither are 'silly', but may be non-optimal.


> 
> After downgrading to mdadm 3.0.3:

You don't need to down grade.  If you don't like the default that mdadm
chooses for you, you are free to choose your own and specify it with the
--bitmap-chunk option.

NeilBrown





More information about the pkg-mdadm-devel mailing list