[prev in list] [next in list] [prev in thread] [next in thread]
List: fuse-devel
Subject: Re: [fuse-devel] File System Replication with FUSE
From: Anand Avati <anand.avati () gmail ! com>
Date: 2011-06-17 4:46:47
Message-ID: BANLkTi=PvMx=R9nHNm+orZ2UnPJya9yJWA () mail ! gmail ! com
[Download RAW message or body]
On Thu, Jun 9, 2011 at 10:09 PM, Douglas G. Hanley <douglas.hanley@gmail.com
> wrote:
> Hi FUSE Experts,
>
> I am thinking about developing a Linux file system replication engine using
> FUSE. The general idea is this:
>
>
> - Assume a starting point of two Linux filesystems (let's say ext3) which
> have been magically synchronised between two servers (source and target).
> - Based on a specification of the directories and files one wishes
> replicate (let's say a regular expression) use FUSE to mount the required
> parent directories on the source file system and start to intercept file
> updates and modifications
> - Ship these intercepted file updates and modifications to the target
> server to apply the same updates and modifications to that filesystem to
> keep them perfectly in sync
> - Of course, the intercepted updates are passed though to the source file
> system as well (either before sending to the target server (asynchronous
> replication) or after sending to the target server (synchronous
> replication)
> - This needs to work for all possible IO update operations that might be
> exercised on the source server
>
> I done some research and FUSE seems like an excellent platform to achieve
> this but I have a few newbie questions that I would appreciate some help
> with:
>
>
> - Will FUSE support interception of memory mapped IO? I suspect this is
> handled but I don't see any hooks for this in the API. Is support hidden
> behind the API somehow?
> - Will FUSE support interception of direct IO? I suspect the answer is
> yes but was wondering if there are any caveats I need to be aware of?
> - Programmatically, can I mount more than one point in the source
> filesystem from a single executable. I believe I can, but do I
> definately
> need to have a thread for each mount?
> - I am pretty sure that all of my code in the FUSE callbacks needs to be
> reentrant, can you confirm that this is the case i.e. is there any
> serialisation built into the API somewhere, on some callbacks?
> - I plan to be able to replicate updates synchronously and
> asynchronously, I don't foresee any issues with this, do you?
> - Are there any other IO update operations (I have not mentioned) that
> FUSE definitely can't see
> - Are there any implementation restrictions within FUSE which would
> compromise my ability to intercept absolutely all updates of any nature
> and/or size.
>
>
> Thanks very much for any help you can provide on these questions.
>
>
Have you considered GlusterFS? Among many other features, it offers both
synchronous and asynchronous replication across servers or disks, and covers
pretty much everything you mention above.
Avati
------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
fuse-devel mailing list
fuse-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fuse-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic