[Gluster-users] AFR not working

Adrian Revill adrian.revill at shazamteam.com
Wed Dec 23 13:19:44 UTC 2009


Thanks Vikas,

You were right, i commented out the stat-prefetch section and the sync 
now works. Perhaps the glusterfs-volgen should not put it in for raid 1

So it looks like to make a fully redundant system we need to poll the 
client mount points with ls -lR at least at server startup.
For scalability, the servers should run the client mount on itself and 
poll itself.
Surely a feature to trigger a full re-sync should be part of the server 
daemon, perhaps first client to connect gets a please sync me message.

I found a little gotcha with file deletion

2 servers running, create a file, and shut down server2, delete the file 
and shut down server1. Start server2 and the file reappears, which is 
expected, start server1 and the file remains and is synced back to server1.
This means in case of a server failure, server restarts,  the order that 
servers are restarted is very important if the un-deletion of files is 
an issue.

I also found that lsattr does not work with glusterfs
lsattr /mnt/export/
lsattr: Inappropriate ioctl for device While reading flags on /mnt/export/t2


Vikas Gorur wrote:
> Adrian Revill wrote:
>> Hi
>>
>> I am having trouble with AFR, I have two servers set up to mirror, if 
>> I shut down either server and then copy a file into the client mount 
>> then restart the server I get a 0 size file on the newly started 
>> servers backing store. Which I guess is to be expected.
>> But if i do a ls -lR I do not get the servers re-syncing, the only 
>> way I can get the servers to sync is to either touch the file, or 
>> read the contents.
>>
>> Has anyone else had a problem with ls -lR not triggering a sync?
> Adrian,
>
> To answer your questions raised in this and the other message:
>
> 1) You should never see a 0-byte file overwriting a non-zero-byte file.
> You said that you only saw this once. Please report it if you see
> it again.
>
> 2) The self-heal happens when a lookup() on the file is sent. A lookup
> usually happens before any other operation on a file is done.
>
> 3) When you do an ls -lR the sync should happen, since ls will do a
> stat on the file. I see that you have stat-prefetch loaded on the 
> client side. I
> have a hunch that the not-syncing is due to the file's attributes
> being cached either by the stat-prefetch translator or by the kernel
> itself, resulting in lookup() not being sent.
>
> Can you try without stat-prefetch?
>
> Vikas
>
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> For more information please visit http://www.messagelabs.com/email 
> ______________________________________________________________________

______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
______________________________________________________________________



More information about the Gluster-users mailing list