[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