Skip to content

ore: RAID5 Support

Boaz Harrosh linux-fsdevel linux-nfs 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest2 of 6 patches 3 repliesIn review

2 of 6 patches are in this archive. The cover letter announces 6.

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/6ore: Make ore_calc_stripe_info EXPORT_SYMBOLfs/exofs/ore.c include/scsi/osd_ore.h+6 -50 replies
4/6exofs: Support for RAID5 read-4-write interface.fs/exofs/inode.c+59 -20 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCHSET 0/1 0/6] ore: RAID5 Support

I'm proud to present RAID5 support to ORE. Which enables raid5 for both exofs and pnfs-objects-layout driver.

The ORE with raid0/1/5 and soon 6 support has become a compact and abstract library, that with not a lot of effort, can support not only OSD but any type of devices. For example BTRFS, does it have a RAID5 support yet? if not it could use ORE. The ORE gets a bunch of pages at the top and produces bios for each device at the bottom. The libosd API can be easily abstracted and be used for block devices, just the same. The RAID layout supported by ORE is very rich, multi layered striping/mirroring/raid. even reacher then stacked MD. You can read about this layout here:
http://git.open-osd.org/gitweb.cgi?p=ietf-rfc5664.git;a=blob_plain;f=draft-ietf-nfsv4-rfc5664bis.html;hb=boaz2
Start at: 5.3. "Data Mapping Schemes" up to:
5.4.5. "RAID Usage and Implementation Notes"

There where some problems with the previous patchset here are the differences I squashed it to a new patchset at osd/linux-next.

[PATCH 1/1] SQUASHME: into: ore: Only IO one group at a time (API change)

And without farther ado Here is the RAID5 support. This is highly complicated stuff, for humble me at least, and I would appreciate any review and/or comments you guys can give it. Thanks in advance. (Pretty Please? :-))

[PATCH 1/6] ore: Make ore_calc_stripe_info EXPORT_SYMBOL [PATCH 2/6] ore: RAID5 read
[PATCH 3/6] ore: RAID5 Write
[PATCH 4/6] exofs: Support for RAID5 read-4-write interface. [PATCH 5/6] pnfs-obj: Support for RAID5 read-4-write interface. [PATCH 6/6] ore: Enable RAID5 mounts

A tree with above plus all prerequisites is at:

$ git clone git://open-osd.org/linux-open-osd linux-next
[http://git.open-osd.org/gitweb.cgi?p=linux-open-osd.git;a=shortlog;h=refs/heads/merge_and_compile]

The code passes my tests, the highlight of which is git-clone linux and compare to and identical clone on ext4. But there must be month of farther testing done on this to get it better. For example. Aligned on stripe IO write back should be improved on all the way down to the VFS layer.

Thanks
Boaz