glusterFS: self-heal 的触发条件

从代码中看,有如下四种情况可以出发afr_launch_self_heal,从而导致afr_self_heal的执行:

reason = "lookup detected pending operations";                      ======就是afr_lookup

在afr模块中的调用先后关系是 afr_lookup ->afr_lookup_cbk -> afr_lookup_done -> afr_lookup_perform_self_heal  -> afr_launch_self_heal

reason = "checksums of directory differ";                                    ======afr_opendir

afr_opendir -> afr_opendir_cbk -> afr_examine_dir -> afr_examine_dir_readdir_cbk -> afr_launch_self_heal.

reason = "subvolume came online";  

snprintf (reason, sizeof (reason), "stale subvolume %d detected", st_child); 


主要的修复都是在afr_self_heal去调用的


还有从其他网站看见的文章


你可能感兴趣的:(glusterFS: self-heal 的触发条件)