mdadm write-behind with --grow

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 08 Jul 2007 18:30:54 -0700, Neil Brown wrote:
On Tuesday July 3, Ian Dall wrote:
> There doesn't seem to be any designated place to send bug reports and
> feature requests to mdadm, so I hope I am doing the right thing by
> sending it here.

Yes. Exactly the right thing, thanks.

I have applied the patch and pushed it out into .git.  It will appear
in the next release of mdadm.

Thank,
NeilBrown

> > I have a small patch to mdamd which allows the write-behind amount to be
> set a array grow time (instead of currently only at grow or create
> time). I have tested this fairly extensively on some arrays built out of
> loop back devices, and once on a real live array. I haven't lot any data
> and it seems to work OK, though it is possible I am missing something.
> > --- mdadm-2.6.1/mdadm.c.writebehind 2006-12-21 16:12:50.000000000 +1030
> +++ mdadm-2.6.1/mdadm.c       2007-06-30 13:16:22.000000000 +0930
> @@ -827,6 +827,7 @@
>                       bitmap_chunk = bitmap_chunk ? bitmap_chunk * 1024 : 512;
>                       continue;
> > + case O(GROW, WriteBehind):
>               case O(BUILD, WriteBehind):
>               case O(CREATE, WriteBehind): /* write-behind mode */
>                       write_behind = DEFAULT_MAX_WRITE_BEHIND;

This change appears to not be enough:

# mdadm --grow /dev/md0 --write-behind
mdadm: no changes to --grow

# mdadm -X /dev/sdb1 | fgrep Write
      Write Mode : Normal

The releavant mdadm code for handling GROW reads:
        case GROW:
	[...]
                else if (bitmap_file) {
                        if (delay == 0) delay = DEFAULT_BITMAP_DELAY;
                        rv = Grow_addbitmap(devlist->devname, mdfd, bitmap_file,
                                            bitmap_chunk, delay, write_behind, force);

So the only way to make use of the newly enabled --write-behind
for --grow is:

# mdadm --grow /dev/md0 -b internal --write-behind
mdadm: failed to set internal bitmap.

# mdadm -X /dev/sdb1 | fgrep Write
      Write Mode : Allow write behind, max 256


However the "-b internal" produces an error message
for devices with persistent superblocks...

Also, mdadm --grow --help doesn't document the use
of --write-behind (also missing for --build --help and
 --create --help).

PS: I'm not subscribed to the mailing list, so please CC: me on replies.

---
ciaoTJ
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux