Bug 1190058
Summary: | folder "trusted.ec.version" can't be healed after lookup | ||
---|---|---|---|
Product: | [Community] GlusterFS | Reporter: | SuperGC <download007> |
Component: | disperse | Assignee: | Xavi Hernandez <jahernan> |
Status: | CLOSED NOTABUG | QA Contact: | |
Severity: | medium | Docs Contact: | |
Priority: | unspecified | ||
Version: | mainline | CC: | bugs, gluster-bugs |
Target Milestone: | --- | Keywords: | Triaged |
Target Release: | --- | ||
Hardware: | x86_64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2015-02-11 07:18:27 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
SuperGC
2015-02-06 08:21:54 UTC
This is not a bug. It's how it works. If you have a 2 + 1 dispersed volume, and one of the bricks is damaged (brick2 has been manually damaged), another failure on another brick (in this case brick3) makes the file or directory inaccessible (you see an Input/Output error). If you need to support more than one brick failure, you should use a bigger configuration, like a 4 + 2. Regarding the healing problem, current version of dispersed volumes do not automatically heal its files and directories. They must be manually healed. The recommended way to do a full volume heal is this: find <mount point> -d -exec getfattr -h -n trusted.ec.heal {} \; It's expected that version 3.7 will integrate automatic self-healing for dispersed volumes. (In reply to Xavier Hernandez from comment #1) > This is not a bug. It's how it works. > > If you have a 2 + 1 dispersed volume, and one of the bricks is damaged > (brick2 has been manually damaged), another failure on another brick (in > this case brick3) makes the file or directory inaccessible (you see an > Input/Output error). > > If you need to support more than one brick failure, you should use a bigger > configuration, like a 4 + 2. > > Regarding the healing problem, current version of dispersed volumes do not > automatically heal its files and directories. They must be manually healed. > The recommended way to do a full volume heal is this: > > find <mount point> -d -exec getfattr -h -n trusted.ec.heal {} \; > > It's expected that version 3.7 will integrate automatic self-healing for > dispersed volumes. Thanks, it solve my problems! In 3.6.2, the files can integrate automatic self-healing but folder can not, so I thought it was a bug. Files are automatically healed on first access, however directories are a bit more complex because they need to be recursively healed, otherwise there was occasions where an 'ls' did return old or invalid contents. It's for this reason that the preferred way to heal directories is using the 'find' command in a post-order or depth-first mode (-d flag). This heals directory contents first and then the directory itself. Sorry for the inconveniences. |