migrator

金英华
2023-12-01

auth pin:

一是保证数据pin在cache中,一是确保这些数据的auth不会被改变--其实就是不会被迁移走。

ceph中,dentry,inode,dir都有authpin计数器。

注意一点:authpin必定是auth的元数据才具有!这个很明显。

 

freezing:

authpin的另外一个特别用途,就是可以防止子树进入frozen状态!

如果要迁移元数据,必须要先frozen它。

子树的根,初始化标记为freezing,千万注意,freezing的子树不能增加新的authpin!!!只有当子树上所有的authpin都清除掉后,才可以标记为frozen状态。

疑问:1、是先freezing还是先authpin?

            2、authpin后可以update吗?

            3、freezing后可以update吗?

ceph中有句话是这么说的:frozen后所有的update被禁止,此时可以保证元数据信息被打包发送给新的authmds。

 

重要一点:一个frozen的子树,除了子树的root dir外,其他所有的dir都会authpin住它的inode!!!

why?--这样做的目的是防止父目录被冲突frozen!导致对bound的一系列影响!!

疑问:对inode加authpin了,能保证inode所在的dir不被frozen吗?

 

疑问:缓存过期如何处理?

冻结机制如何做?

 

------------------------------分割线-------------------------------------

Normal Migration:

exporter:                                                                                                   importer:

1-做check,看是否满足迁出条件

mds没出故障、子树不是freezing或frozen

必须已经拿到了路径锁(防止rename冲突)

2-把子树根authpin,随后设置子树为freezing

OK!准备就绪!可以迁移了!                                               

                                         

                                     ---------------discover msg----------------->        discover的目的,是保证要迁移的子树的rootdir,dir->pstInode

                                                                                                                   都是在缓存中存在的。不存在的话,要让其存在!

                                                                                                                    对其pin住(?)以防止被trime!                                                                             

 

importer就绪了,我可以清除我的authpin了

以让subtree进入frozen态!

此时发送pre消息------------------------------------------>                           勾画出子树的整体图(包括所有dirs,inodes,dentries直到bound)

                                                                                                                    输入区域已经确定。且你要保证这个区域内的对象都有正确auth的。如何

                                                                                                                    保证?--此时冻结整棵子树,防止新的副本和缓存过期!--what means?

 

**待续**

 类似资料:

相关阅读

相关文章

相关问答