[Gluster-devel] Re: Current FUSE requirements to support flock()

David Sickmiller david at careerliaison.com
Sun Jan 18 07:46:18 UTC 2009


To follow up on my earlier post, this is what I found regarding the 
kernel FUSE's support for flock() and also MySQL:

    * 2.6.18.8 - flock() doesn't work, MySQL doesn't work
    * 2.6.27.4 - flock() works, MySQL doesn't work
    * 2.6.28 - flock() works, MySQL doesn't work

I performed these tests with the 2.7.4-1.el5.rf version of the FUSE 
userspace tools, in case that matters.

I'm guessing the MySQL issue is the one resolved with a custom patch 
last year: 
http://www.mail-archive.com/gluster-devel@nongnu.org/msg02947.html

Is there much hope of getting the MySQL FUSE patch into the main 
kernel?  Is the only necessary change the one to dev.c?

Thanks,
David


David Sickmiller wrote:
> Hi,
>
> The short version of my question is "What is the minimum kernel FUSE 
> version needed for flock() support?"  If that question is unclear or a 
> sign that I don't know I'm doing, the long version is below.
>
> I'm new to GlusterFS, and I'm interested in using 1.4 to setup a 
> mirrored filesystem on a couple Xen virtual servers.  Among other 
> things, I want to store PHP session files on here, which are locked 
> using flock(), so I need to pay attention to whether my installation 
> of FUSE supports this.  Complicating this, my Xen hosting provider 
> recommends using their pre-compiled kernels that have FUSE built-in.  
> Currently 2.6.18.8, 2.6.27.4, and 2.6.28 are available (for 64-bit).  
> While not impossible, it's difficult to add custom modules or use 
> custom kernels.
>
> I know the Technical FAQ says "Custom FUSE release (2.7.3) doesn't 
> support flock() calls."  I'm not sure I understand what "custom FUSE" 
> is... is this what you call it when you build the kernel module from 
> the Sourceforge source instead of the kernel source?  I can see that, 
> prior to Dec 08, the Install_GlusterFS_from_Source wiki page said 
> things like "Any new kernel (>2.6.25), please use custom fuse only" 
> and "For kernel version greater than or equal to 2.6.25, the fuse 
> kernel module won't compile."  These two sentences don't make sense to 
> me.  The latest version of that page says nothing about the FUSE version.
>
> I looked at fuse-2.7.3glfs10.diff, and there are some obvious 
> flock-related changes that are not present in the 2.6.18 kernel 
> driver.  However, the 2.6.27 kernel FUSE driver seems to include some 
> of this flock-related code, so I'm hopeful about it working with no 
> additional patching.  I'm plugging forward and will eventually be able 
> to do a simple test of my own, but I'm not prepared to do a thorough 
> test of FUSE compatibility, so I would much appreciate a knowledgeable 
> opinion about how to get flock() support with the kernel FUSE... or 
> any general warnings about the road I'm going down.
>
> Thank you,
> David
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://supercolony.gluster.org/pipermail/gluster-devel/attachments/20090118/98021be1/attachment-0003.html>


More information about the Gluster-devel mailing list