Re: [PATCH 2.6] md: persistent (file-backed) bitmap and async writes

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

 



looks good
i'd like to see the 2.4 kernel patches as well

Could you post them at parisc-linux.org ?

On Fri, 2003-08-29 at 08:41, Paul Clements wrote:
> At long last... I've finally got my additions to Peter T. Breuer's raid1
> bitmap code (fr1 v2.14, ftp://oboe.it.uc3m.es/pub/Programs/fr1-2.14.tgz)
> in decent shape and fairly well tested.
> 
> The bitmap and asynchronous write capability are primarily useful when
> raid1 is employed in data replication (e.g., with a remote disk served
> over nbd as the secondary device). However, the bitmap is also useful
> for reducing resync times with ordinary (local) raid1 and raid5 arrays.
> 
> The additions, above and beyond the original fr1 code, are basically:
> 
> * disk storage for the bitmap (makes the bitmap persistent, so that a
> full resync is never needed, even after a failure or reboot of the
> primary server)
> 
> * a kernel daemon to periodically (lazily) clear bits in the bitmap file
> (this reduces the number and frequency of disk writes to the bitmap
> file)
> 
> * changing bits in the bitmap to 16-bit counters (this ensures that a
> bit won't be cleared prematurely when there are multiple outstanding
> I/Os to a block, which could result in data loss on the backup system if
> a failure coincided)
> 
> * allowing the bitmap to be rescaled -- i.e., changing the amount of
> data that each bit represents (currently, the 2.6 code can handle a
> chunk size up to 64k)
> 
> * modifying the code so that it can be more easily leveraged by other
> raid drivers (namely raid5)
> 
> I originally wrote this code for 2.4 (I have a patch vs. 2.4.19 SuSE
> kernel, if anyone is interested) and recently ported it to 2.6. The code
> currently allows the use of a bitmap with raid1 arrays (this could also
> be extended to raid5, but I haven't put the bitmap calls into raid5.c --
> if anyone would like to do that, I'd love to see it happen -- it
> shouldn't be hard if you're familiar with raid5 (...I'm not :/).
> 
> 
> I have also modified Neil's mdadm tool to allow it to configure the
> additional bitmap and async parameters. The attached patch is against
> the 1.2 mdadm release. Briefly, the new options are:
> 
> Creation:
> 
> mdadm -C /dev/md0 -l 1 --persistent
> --bitmap=/tmp/bitmap_md0_file,65536,15 --async=512 -n 2 /dev/xxx
> /dev/yyy
> 
> This creates a raid1 array with:
> 
> two disks
> a persistent superblock
> asynchronous writes enabled (maximum of 512 outstanding writes)
> bitmap enabled (using the file /tmp/bitmap_md0_file)
> a bitmap chunksize of 64k (bitmap chunksize determines how much data
> each bitmap bit represents)
> the bitmap daemon set to wake up every 15 seconds to clear bits in the
> bitmap file (if needed)
> /dev/xxx as the primary disk
> /dev/yyy as the backup disk (when asynchronous writes are enabled, the
> second disk in the array is labelled as a "backup", indicating that it
> is remote, and thus no reads will be issued to the device)
> 
> 
> Assembling:
> 
> mdadm -A /dev/md0 --bitmap=/tmp/bitmap_md0_file /dev/xxx /dev/yyy
> 
> This assembles an existing array and configures it to use a bitmap file.
> The bitmap file pathname is not stored in the array superblock, and so
> must be specified every time the array is assembled.
> 
> 
> Details:
> 
> mdadm -D /dev/md0
> 
> This will display information about /dev/md0, including some additional
> information about the bitmap and async parameters.
> 
> 
> I've also added some information to the /proc/mdstat file:
> 
> # cat /proc/mdstat
> Personalities : [raid1] 
> md1 : active raid1 loop0[0] loop1[1](B)
>       39936 blocks [2/2] [UU]
>       async: 0/256 outstanding writes
>       bitmap: 1/1 pages (15 cached) [64KB], 64KB chunk, file:
> /tmp/bitmap_md1
> 
> unused devices: <none>
> 
> 
> Finally, the patches are available here:
> 
> kernel patch vs. 2.6.0-test3:
> 
> 	http://parisc-linux.org/~jejb/md_bitmap/md_bitmap_2_28_2_6_0_TEST3.diff
> 
> mdadm patch vs. 1.2.0:
> 
> 	http://parisc-linux.org/~jejb/md_bitmap/mdadm_1_2_0.diff
> 
> 
> So if you have any interest, please review, test, ask questions, etc.
> 
> (And if you're really a glutton, the gory details of the design and
> implementation can be found in Section 3 of my OLS Paper:
> http://archive.linuxsymposium.org/ols2003/Proceedings/All-Reprints/Reprint-Clements-OLS2003.pdf)
> 
> 
> Thanks,
> Paul
> -
> To unsubscribe from this list: send the line "unsubscribe linux-raid" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> 

-
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
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