AFR整体机制
http://review.gluster.org/#/c/6574/
注:对于自愈/复杂操作/复制一致性,采用了事务,二阶段锁机制。
AFR内部采用的entrylk/inodelk,属于内部锁机制,这个锁操作不会从fuse内核发出。
而glusterfs文件系统自身对外实现了fnctl和flock锁等posix锁机制,fuse内核的用户空间接口就是fuse_getlk,fuse_setlk,在fuse translator(缩写xl)层就如此实现,然后下层xl统一实现为lk函数。
以上两种锁机制都在glusterfsd的lock xl来具体实现。posix层的实现其实是空的。
脑裂问题根因
[Gluster-devel] Split-brain present and future in afr