[Gluster-users] does Gluster support O_DIRECT ?

Adam Tygart mozes at k-state.edu
Wed Mar 14 14:03:39 UTC 2012


Currently, FUSE doesn't support O_DIRECT, If you need to use O_DIRECT
with a FUSE mounted volume, you should check out liboindirect.
https://github.com/avati/liboindirect

There have been patches submitted to the FUSE project to properly
support O_DIRECT, but they have not been accepted yet.

--
Adam Tygart
Beocat Sysadmin

On Tue, Mar 13, 2012 at 20:59, Bill Bao <bill at uit.com.cn> wrote:
> This might be a question asked before, but I just couldn’t effectively
> search the whole archives,
>
> So please bear me and kindly advise.
>
>
>
> We have a 3rd party application (video streaming kind of) which uses
> directIO (O_DIRECT).
>
> On the server side, in the posix translator, we added the “option o-direct
> enable”
>
> On the client side, we mounted as “mount -t glusterfs -o
> direct-io-mode=enable server1:/test-volume /mnt/glusterfs”
>
>
>
> But the application still fails with error (cannot create/open file with
> O_DIRECT).
>
>
>
> Then we trace to the fuse module in the kernel, which has following
> checking:
>
>
>
> int fuse_open_common(struct inode *inode, struct file *file, bool isdir)
>
> {
>
>         struct fuse_conn *fc = get_fuse_conn(inode);
>
>         int err;
>
>         /* VFS checks this, but only _after_ ->open() */
>
>         if (file->f_flags & O_DIRECT)
>
>                 return -EINVAL;
>
>         err = generic_file_open(inode, file);
>
>
>
> looks like regardless what we configure on the gluster side, the FUSE still
> rejects the O_DIRECT.
>
> Could someone shed light ? we’re also trying to take out the O_DIRECT
> checking in FUSE module,
>
> to see what will happen, will report soon.
>
>
>
> Bill Bao
>
>
>
>
>
>
>
>
>
>
>
>
> _______________________________________________
> Gluster-users mailing list
> Gluster-users at gluster.org
> http://gluster.org/cgi-bin/mailman/listinfo/gluster-users
>



More information about the Gluster-users mailing list