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@xxxxxxxxxx/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
|