[Gluster-devel] Re: Experience with kernel NFS reexport
Brent A Nelson
brent at phys.ufl.edu
Wed May 13 22:42:53 UTC 2009
Hopefully, this will be enough of a hint for the developers to be able to
tell what's going on with the mtime self-heal issue. I'm guessing that
Gluster writes via NFS are marked as requiring self-healing, even if
they're fine. Self-heal gets triggered and messes up the mtime in
the process. So, that may be two different bugs...
Before self-heal, a file has attributes as follows (on both halves of the
mirror):
# file: disk1/glusterfs/software2/xwin32.bat
trusted.afr.brick4-1a=0sAAAAAQAAAAAAAAAA
trusted.afr.brick4-1b=0sAAAAAQAAAAAAAAAA
The directory has:
trusted.afr.brick4-1a=0sAAAAAAAAAAAAAAAA
trusted.afr.brick4-1b=0sAAAAAAAAAAAAAAAA
trusted.glusterfs.dht=0sAAAAAQAAAAB//////////w==
After the self-heal, there's no change in directory attributes, but the
file attributes change on both nodes to:
# file: disk1/glusterfs/software2/xwin32.bat
trusted.afr.brick4-1a=0sAAAAAAAAAAAAAAAA
trusted.afr.brick4-1b=0sAAAAAAAAAAAAAAAA
Thanks,
Brent
On Wed, 13 May 2009, Brent A Nelson wrote:
> Further insight: the initial mtimes are correct (and probably are for rsync,
> as well); the mtimes are getting modified by self-heal. I'm not sure why
> self-heal did anything at all, as the mirrors should have been in sync, but
> it triggers on ls and quickly changes the mtimes on the second half of the
> mirror.
>
> Thanks,
>
> Brent
>
> On Wed, 13 May 2009, Brent A Nelson wrote:
>
>> I take that back; it doesn't seem to help, at least for the initial rsync.
>> Shouldn't it, though? If a file on 1/2 of the mirror has a different mtime
>> than the file on the other half, shouldn't self-heal fix it?
>>
>> The early indication was that it did seem to help in the case that I
>> manually removed a file from the second half of the mirror. With the
>> metadata-change-log option on, the file self-healed with the correct mtime;
>> without the metadata-change-log option, it did not. I only tried it once,
>> though, so it might have just been coincidence.
>>
>> I also saw the mtime issue with "cp -a". It appeared to occur in one brief
>> burst, and this burst spanned multiple mirrors (a few files created at
>> 4:46pm, all in the same specific directory, for two different mirrors and
>> different server nodes, have bad mtimes on the second half of each mirror).
>> This was far less common than rsync, however.
>>
>> Thanks,
>>
>> Brent
>>
>> On Wed, 13 May 2009, Brent A Nelson wrote:
>>
>>> Early indications are that setting "option metadata-change-log on" for
>>> cluster/replicate is a likely workaround for the mtime issue. I'll start
>>> over, and see if the issue is truly gone with this option in place...
>>>
>>> It might be worth considering defaulting this option to "on".
>>>
>>> Thanks,
>>>
>>> Brent
>>>
>>> On Wed, 13 May 2009, Brent A Nelson wrote:
>>>
>>>> On Wed, 13 May 2009, Brent A Nelson wrote:
>>>>
>>>>> With regards to the incorrect modification time appearing on some files,
>>>>> I note the following:
>>>>>
>>>>> ls -l on Node1 in a mirror:
>>>>>
>>>>> -r--r--r-- 1 root root 40280 2008-03-17 12:03
>>>>> /disk1/glusterfs/tftpboot/hardy64/pool/main/t/tasksel/tasksel-data_2.70ubuntu4_all.deb
>>>>>
>>>>> Node 2 in the same mirror:
>>>>>
>>>>> -r--r--r-- 1 root root 40280 2009-05-12 19:40
>>>>> /disk1/glusterfs/tftpboot/hardy64/pool/main/t/tasksel/tasksel-data_2.70ubuntu4_all.deb
>>>>>
>>>>> It appears that 1/2 of the mirror set the modification time correctly,
>>>>> but the other half did not.
>>>>>
>>>>
>>>> Just a bit of additional info. It appears that the first half of the
>>>> mirror has correct mtimes. The second half of the mirror has wrong
>>>> mtimes on all files, but directory mtimes are fine. When you go to view
>>>> the mtimes on the GlusterFS, sometimes you will get the mtime from one
>>>> node, sometimes the other, hence the seeming randomness.
>>>>
>>>> Also, I see that zero-length files have correct mtimes on both halves of
>>>> a mirror.
>>>>
>>>> Thanks,
>>>>
>>>> Brent
>>>>
>>>
>>
>
More information about the Gluster-devel
mailing list