Return-Path: linux-nfs-owner@vger.kernel.org Received: from natasha.panasas.com ([67.152.220.90]:33206 "EHLO natasha.panasas.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751113Ab1JNRYf (ORCPT ); Fri, 14 Oct 2011 13:24:35 -0400 Message-ID: <4E98703E.7040605@panasas.com> Date: Fri, 14 Oct 2011 19:24:14 +0200 From: Boaz Harrosh MIME-Version: 1.0 To: "Welch, Brent" , open-osd , NFS list , linux-fsdevel Subject: [PATCHSET 0/1 0/6] ore: RAID5 Support Content-Type: text/plain; charset="UTF-8" Sender: linux-nfs-owner@vger.kernel.org List-ID: 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