public inbox for linux-raid@vger.kernel.org
 help / color / mirror / Atom feed
* User space RAID
@ 2009-11-17 19:37 Piergiorgio Sartor
  2009-11-17 23:14 ` Goswin von Brederlow
  0 siblings, 1 reply; 2+ messages in thread
From: Piergiorgio Sartor @ 2009-11-17 19:37 UTC (permalink / raw)
  To: linux-raid

Hi all,

question for the experts.

It would be possible, excluding performances, to
build an user-space RAID system?

I mean, something like fuse does, with a user space
daemon to perform the math, especially for RAID-6,
and the rest, together with a small kernel module.

Or there are technical limitations which make this
approach impossible with the current architecture?

Just curious,

bye,

-- 

piergiorgio

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: User space RAID
  2009-11-17 19:37 User space RAID Piergiorgio Sartor
@ 2009-11-17 23:14 ` Goswin von Brederlow
  0 siblings, 0 replies; 2+ messages in thread
From: Goswin von Brederlow @ 2009-11-17 23:14 UTC (permalink / raw)
  To: Piergiorgio Sartor; +Cc: linux-raid

Piergiorgio Sartor <piergiorgio.sartor@nexgo.de> writes:

> Hi all,
>
> question for the experts.
>
> It would be possible, excluding performances, to
> build an user-space RAID system?
>
> I mean, something like fuse does, with a user space
> daemon to perform the math, especially for RAID-6,
> and the rest, together with a small kernel module.
>
> Or there are technical limitations which make this
> approach impossible with the current architecture?
>
> Just curious,
>
> bye,

You can use fuse to create a filesystem containing just one file,
which represents your user-raid, and mount that loopback. Since you
can already do it it can't be impossible. It just isn't optimal.


If you are truely interested then look at fuse and cuse and create a
buse along the same lines. I have a few features I would like to see:

1) zero-copy (with splice()?)
   Currently fuse calls read() to get the data for a write
   request. This copies the data into the supplied buffer.
   It would be better if one could splice() the data into a pipe and
   then splice it back onto the actual device/file the data resides
   on.

2) async crypto api support
   Some hardware has support for XOR or AES. The kernel has a nice API
   for this supporting both software and hardware drivers. It would be
   nice if one could interface with that API from userspace. For good
   performance this should be zero-copy again. So one would just
   splice the data into it and splice the result out of it.

3) barrier support
   Currently (last I checked) the loopback device has no barrier
   support and I'm not sure how fuse should act on barriers.
   A buse [Block device in User SpacE] (like fuse and cuse) should
   have a callback for barriers and probably not use the loopback hack.


4) block ioctl support
   Fuse has a callback for ioctls. Not sure if that is sufficient to
   handle block ioctls or if something needs to be added there. But it
   would be nice if one could request the size and geometry and so on.

MfG
        Goswin

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2009-11-17 23:14 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-17 19:37 User space RAID Piergiorgio Sartor
2009-11-17 23:14 ` Goswin von Brederlow

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox