On 02/28/2014 07:28 AM, Zhang Huan
wrote:
Hello Ravi,
Thanks
for your reply.
Sorry
that I have a typo in my mail. It should by "underlying
corruption" instead of "underlying correction".
I
guess the logic of eliminating zero byte files from all
innocent nodes is working for preventing underlying
corruption to propagate to other brick. Asked in another
way, if the underlying brick finds some file is corrupted,
anything it could do to tell glusterfs to fix it?
Hi Zhang,
If all nodes are innocent (from AFR's point of view) ,then AFR
cannot use the changelog attributes to determine which is source.
In this case, the safest bet is to mark all zero byte files as sink,
so that we don't end up healing in the wrong direction. Like I said
earlier, AFR can only use the changelog attributes (xattrs) to
determine the source/sinks. It cannot detect underlying on disk file
system corruptions outside the scope of the xattrs.
If you are sure that a particular brick is the right source despite
the xattrs saying otherwise, you can manually change the attributes
of the file on all bricks so that AFR now sees that brick as the
source and heals in the expected direction.
-Ravi
|