[发明专利]并行文件系统发生故障后的恢复方法有效
| 申请号: | 200910085483.9 | 申请日: | 2009-05-22 |
| 公开(公告)号: | CN101567805A | 公开(公告)日: | 2009-10-28 |
| 发明(设计)人: | 舒继武;刘洋;易乐天;薛巍 | 申请(专利权)人: | 清华大学 |
| 主分类号: | H04L12/24 | 分类号: | H04L12/24;H04L29/08;H04L29/06;G06F11/14 |
| 代理公司: | 北京众合诚成知识产权代理有限公司 | 代理人: | 朱 琨 |
| 地址: | 100084北*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 并行 文件系统 发生 故障 恢复 方法 | ||
1.并行文件系统发生故障后的恢复方法,其特征在于所述方法是在存储区域网络SAN环境并行文件系统中依次按照以下步骤实现的:
步骤(1).构造一个包括客户机、元数据服务器和磁盘阵列在内的所述SAN环境并行文件系统,其中:
客户机,至少一台,实现各种文件操作以及从所述元数据服务器获取相关文件的元数据,
元数据服务器,至少一台,通过以太网与所述客户机相连,同时通过光纤交换机访问磁盘阵列,把分布在磁盘阵列上的文件数据组织成统一的并行文件系统视图,并为所述客户机提供元数据操作服务,在所述并行文件系统中包括不同类型的锁和文件布局,不同类型的锁包括字节锁byte-range lock、共享保留锁share reservation、文件授权锁file delegation、目录授权锁directory delegation,其中:
字节锁,用于对文件提供字节级别的访问控制,
共享保留锁,用于控制对文件访问的机制,由OPEN操作建立,说明
所需的访问类型以及拒绝的访问类型,
文件授权锁,是可撤销的锁,其确保对所述文件授权锁的持有者不会发生不一致的OPEN操作和文件变更,以便在多个客户机之间没有对文件的冲突请求时,减少不断向所述元数据服务器发送请求所造成的开销,只有当有其它客户机对该文件提出访问请求时,才把该文件授权锁撤销,另外,即使当前不存在对该文件的相互冲突的访问请求,该元数据服务器也可以在任何时候撤销该文件授权锁,
目录授权锁,是可撤销的锁,其确保对所述目录授权锁的持有者不会发 生不一致的目录修改,以便在多个客户机之间没有对目录的冲突请求时,减少不断向所述元数据服务器发送请求所造成的开销,只有当有其它客户机对该目录提出访问请求时,才把该目录授权锁撤销,另外,即使当前不存在对该目录的相互冲突的访问请求,该元数据服务器也可以在任何时候撤销该目录授权锁,
文件布局,描述文件数据到保存该数据的磁盘阵列之间的对应关系,确保作为所述布局持有者的客户机可以对文件数据进行访问,并且在访问过程中不会发生对数据的不一致变更,
所述元数据服务器定义一个“状态有效期”,这是所述客户机所获得的所有锁的锁状态有效期,在此时间区间内,该客户机获得的所述元数据服务器授予的锁有效,在该状态有效期结束前,该客户机向该元数据服务器提交的每个请求都要更新该状态有效期,如果未及时更新,则该状态有效期结束时该客户机所获得的所有锁都会失效,若在该状态有效期结束后,所述元数据服务器准予了其它客户机发出的与该客户机当前持有的锁冲突的锁请求,则当前锁必须被撤销,若该元数据服务器发生故障,在其重启以后,该客户机能在设定的状态有效期内对重启后的该元数据服务器发出重新获得之前持有的锁状态的请求,对于同一个所述元数据服务器,所有的状态有效期都有一个设定的长度,而该元数据服务器通过唯一设定的客户机标识在该客户机重启后辨识出是同一台客户机的不同运行实例,进行相应的恢复,反之,该客户机也能通过唯一设定的元数据服务器标识辨识出是同一台元数据服务器的不同运行实例,进行相应的恢复,
另外,所述元数据包括:用来管理存储空间的B+树信息,以及并行文件系统的文件布局layout和目录信息;
磁盘阵列,至少一个,通过所述光纤交换机为所述客户机提供存储;
步骤(2).元数据服务器按以下步骤在发生故障的客户机重启后,对其进行锁状态的恢复:
步骤(2.1).该元数据服务器获知所述客户机处于非活动状态:
步骤(2.1.1).判断是否有新建立的客户机连接:
步骤(2.1.1.1).若无,转步骤(2.1.2);
步骤(2.1.1.2).若有,判断客户机标识:
步骤(2.1.1.2.1).该元数据服务器将该客户机的owner ID与该元数据服务器上保存的owner ID进行比较:若两个owner ID相同,则该客户机是曾经与该元数据服务器建立过连接的机器,转步骤(2.1.1.2.2);否则,该客户机是新建立连接的机器,转步骤(2.3);
步骤(2.1.1.2.2).该元数据服务器将该客户机的版本号与该元数据服务器上保存的版本号进行比较:若两个版本号不同,则该客户机是同一台机器的不同实例,转步骤(2.2);否则,转步骤(2.3);
步骤(2.1.2).判断该客户机状态有效期是否结束:
如果在状态有效期结束之前该客户机没有及时更新状态有效期,则该元数据服务器可默认该客户机处于非活跃状态,从而发现客户机故障;否则,转步骤(2.3);
步骤(2.2).该元数据服务器根据步骤(2.1)的结果,分别对故障客户机所持有的所有类型的锁状态进行恢复:
步骤(2.2.1).撤销字节锁byte-range lock:
根据状态有效期结束,该元数据服务器撤销该客户机所获得的字节锁byte-range lock;
步骤(2.2.2).撤销共享保留锁share reservation:
根据状态有效期结束,元数据服务器撤销该客户机所获得的共享保留锁share reservation;
步骤(2.2.3).撤销文件布局layout:
当该客户机重启时,会失去所有之前所获得的有关文件布局layout;
步骤(2.2.3.1).若状态有效期结束而未被更新,则对于文件布局layout,该元数据服务器根据配置文件,选择在状态有效期过期后将文件布局layout立即释放,或允许文件布局layout一直等待可能的状态有效期更新,只要没有其它文件布局layout请求与当前文件布局layout冲突;否则,转步骤(2.2.3.2);
步骤(2.2.3.2).若该客户机在状态有效期结束前重启,并与该元数据服务器重新建立连接,则该元数据服务器据此释放与该客户机前一实例相关联的所有文件布局layout状态;
步骤(2.2.4).恢复文件及目录授权锁delegation:
由于该客户机在故障前可能已经在本地存储了一些文件数据,并且这些数据与该客户机之前所持有的授权锁delegation相关联,则该客户机就需要向元数据服务器重新建立相应的文件状态;
步骤(2.2.4.1).若状态有效期结束而未被更新,该元数据服务器撤销该客户机所获得的授权锁delegation;
步骤(2.2.4.2).若该客户机在状态有效期结束前重启,并与该元数据服务器重新建立连接:
步骤(2.2.4.2.1).该客户机首先对授权锁delegation进行恢复,并将本地存储的一些文件数据刷新到该元数据服务器上,该元数据服务器会延长授权锁delegation的恢复时期,允许超过所定义的状态有效期长度;
步骤(2.2.4.2.2).该元数据服务器撤销该客户机所持有的授权锁delegation;
步骤(2.3).恢复结束;
步骤(3).客户机在重启发生故障的元数据服务器后按以下步骤,对自己曾经获得的锁状态进行恢复:
步骤(3.1).该客户机发现该元数据服务器重启:
该客户机进行向该元数据服务器发送操作请求,却返回相应的错误;或者状态有效期即将结束,该客户机试图更新状态有效期却发现无法更新;
步骤(3.2).该客户机与该重启后的元数据服务器重新建立连接,并获取该元数据服务器重新设置的状态有效期长度;
步骤(3.3).该客户机判断该元数据服务器是否为之前该客户机与之建立连接的元数据服务器;
步骤(3.4).若该元数据服务器为客户机之前曾经建立过连接的元数据服务器,并且若客户机持有锁状态,则客户机分别对其所持有的所有类型的锁状态进行恢复;若该元数据服务器不是客户机之前曾经建立过连接的元数据服务器,则转步骤(3.4.6);若该元数据服务器虽然为客户机之前曾经建立过连接的元数据服务器,但是客户机并未持有锁状态,则转步骤(3.4.5);
步骤(3.4.1).恢复字节锁byte-range 1ock:
步骤(3.4.1.1).该客户机向该元数据服务器发送撤销类型rediv-type的字节锁byte-range lock请求;
步骤(3.4.1.2).该元数据服务器重建该锁状态;
步骤(3.4.2).恢复共享保留锁share reservation:
步骤(3.4.2.1).该客户机向该元数据服务器发送撤销类型rediv-type的保留锁share reservation请求;
步骤(3.4.2.2).该元数据服务器重建该锁状态;
步骤(3.4.3).恢复授权锁delegation:
步骤(3.4.3.1).该客户机向该元数据服务器声明所拥有的授权锁delegation;
步骤(3.4.3.2).该元数据服务器授予该客户机加了特殊名称的授权锁delegation;
步骤(3.4.3.3).该客户机将所修改的状态写回到该元数据服务器;
步骤(3.4.3.4).该元数据服务器撤销该授权锁delegation;
步骤(3.4.4).恢复文件布局layout:
步骤(3.4.4.1).该客户机停止使用所有文件布局layout,并删除之前从元数据服务器收到的device ID到device address的映射;
步骤(3.4.4.2).该客户机检查是否有尚未提交的文件布局layout,若无,转步骤(3.4.5);
步骤(3.4.4.3).该客户机采取措施保护该客户机、该元数据服务器和磁盘阵列在数据状态上的同步:
步骤(3.4.4.3.1).判断该客户机内存是否仍有被修改的但尚未被同步的数据;若有:该客户机等待该元数据服务器状态恢复期结束之后获取文件布局layout,并将数据写到磁盘阵列上;
步骤(3.4.4.3.2).判断该客户机是否异步将数据写到磁盘阵列上,但是在其内存中仍有一份数据副本;若是:则采用步骤(3.4.4.3.1)的恢复方法进行恢复;
步骤(3.4.4.3.3).判断该客户机是否在内存中没有数据的副本,并且该元数据服务器仍处于其状态恢复期;若是,则当前文件布局layout不可用;
步骤(3.4.4.3.4).判断该客户机是否在内存中没有数据的副本,并且该元数据服务器已经结束了状态恢复期;若是,该客户机需要缓存所有的数据,直到成功的提交文件布局layout;
步骤(3.4.5).该客户机向该元数据服务器发送锁状态重建过程结束的通知;
步骤(3.4.6).元数据服务器结束状态恢复期:
元数据服务器在磁盘阵列上保存一个所有具有需要恢复的锁状态的客户机列表,从而获知是否所有这样的客户机都已经完成了锁状态的恢复;服务器也可以选择随时提前结束状态恢复期;
步骤(4).按以下步骤对发生网络分区(network partition)后锁状态的恢复:在客户机端,其步骤如下:
步骤(4.1).一旦在状态有效期尚未结束时该客户机与该元数据服务器恢复通信,或者在状态有效期已经结束后,该客户机与该元数据服务器重新建立连接,该客户机对由主id和从id组成的该元数据服务器标识与缓存在该客户机上之前连接的元数据服务器标识进行比较,若两者主id相同且从id也相同,则可见该元数据服务器并未重启,从而判明发生了网络分区network partition;
步骤(4.2).客户机判断状态有效期是否结束:若未结束,其锁状态继续有效;否则释放所有锁状态;
在元数据服务器端其恢复步骤如下:
步骤(4.1).该元数据服务器在自己保存的客户机列表中发现该客户机状态有效期结束;
步骤(4.2).该元数据服务器撤销该客户机所持有的除授权锁delegation之外的所有锁状态;
步骤(4.3).该元数据服务器直到有其它与当前授权锁delegation冲突的锁请求发生时,才撤销授权锁delegation;在撤销授权锁delegation的时候,该元数据服务器将被撤销的授权锁delegation的相关信息写到磁盘阵列上;
步骤(5).元数据服务器上元数据一致性的恢复:
步骤(5.1).元数据服务器重启;
步骤(5.2).元数据服务器从上次同步点checkpoint起向后依次从磁盘阵列上读入日志事务,并对磁盘日志中每条标记为成功同步的事务重新执行;
步骤(5.3).元数据服务器修改上次同步点checkpoint指向当前最后同步的记录;
步骤(5.4).元数据服务器正常运行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910085483.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:对网络攻击进行检测的方法和装置
- 下一篇:PCC规则更新的方法、装置及系统





