一种磁盘阵列raid的超级块superblock的备份方法

文档序号:8339481阅读:1076来源:国知局
一种磁盘阵列raid的超级块superblock的备份方法
【技术领域】
[0001]本发明涉及计算机技术领域,尤其涉及一种磁盘阵列raid的超级块superblock的备份方法。
【背景技术】
[0002]在传统磁盘阵列raid中超级块superblock用于记录磁盘所属的raid信息、raid状态和数据的使用情况,并起到重要的作用。
[0003]在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
[0004]传统的raid的superblock存储磁盘的某个位置一旦此位置的磁盘出现坏道,或者某次写superblock过程出现故障,则整个raid的信息都将受到影响,无法保证raid信息的完整准确。
[0005]现有一般的在关于备份数据的方法,都需要在每次写数据时访问两次存储介质,这种做法不仅降低了访问效率,由于增加不必要的磁盘访问还是存储介质更容易出现坏块。

【发明内容】

[0006]为解决上述技术问题,本发明提出了一种磁盘阵列raid的超级块superblock的备份方法,采取依据版本进行备份的方式,访问存储介质的次数更少,访问效率更高,使得raid信息在磁盘的一组位置出现问题后,仍能准确读出raid信息,使得整个系统更加健壮。
[0007]本发明提供了一种磁盘阵列raid的超级块superblock的备份方法,该方法包括:
[0008]根据磁盘阵列raid的超级块superblock中存放的raid信息的访问频次将所述superblock进行划分,得到低频访问信息区和高频访问信息区,所述低频访问信息区存储有盘组信息、磁盘状态以及raid的初始状态,所述高频访问信息区存储有初始化重建信息;
[0009]将所述superblock进行备份,得到备用superblock,将所述superblock和所述备用superblock分别存储在两个存储区域;
[0010]进行superblock访问时,根据所要访问的raid信息在所述superblock中存放的位置,对所述superblock和备用superblock进行刷新。
[0011]优选的,所述superblock和所述备用superblock均设置有魔术数、校验值以及与刷新次数相对应的版本号。
[0012]优选的,所述superblock的低频访问信息区和所述备用superblock的低频访问信息区,两者的初始版本号相同;
[0013]所述superblock的高频访问信息区和所述备用superblock的高频访问信息区,两者的初始版本号互为奇偶。
[0014]优选的,所述根据所要访问的raid信息在所述superblock中存放的位置,对所述superblock和备用superblock进行刷新,进一步包括:
[0015]当所要访问的raid信息在所述superblock中存放的位置为低频访问信息区时,将superblock发生变化的信息分别写入两个低频访问信息区,对所述superblock和备用superblock进行同步刷新,刷新后版本号递增;
[0016]当所要访问的raid信息在所述superblock中存放的位置为高频访问信息区时,将superblock发生变化的信息轮流写入版本号为偶数或奇数的高频访问信息区,对所述superblock和备用superblock进行轮流刷新,刷新后版本号递增,并保持各自的奇偶性。
[0017]优选的,当写入低频访问信息区时发生断电故障导致信息不可信,则该低频访问信息区内,正在写入的所述superblock或备用superblock将处于无法读取的状态,所述无法读取的状态包括魔术数不正确,校验值不正确或者所述superblock和备用superblock两者的版本号不一致的情况。
[0018]优选的,在控制器状态发生变化时,所述方法还包括:
[0019]当接管对端控制器异常断电的superblock时,将读出的superblock信息再次写入磁盘的另一个存储区域。
[0020]优选的,在重启创建raid过程中,或者接管对端控制器的superblock时,所述方法还包括:
[0021]分别读取所述superblock和备用superblock,并进行校验;
[0022]若只有一个区域校验通过,则选取该区域为新superblock ;若两个区域都校验失败,则superblock失效;若两个区域都生效,则选取版本号大的区域作为新superblock。
[0023]采用本发明提出的一种磁盘阵列raid的超级块superblock的备份方法,增加raid的superblock的备份机制,并能保证若两份信息不同,读取的时候能读取出正确的信息,增加raid的superblock的备份机制后,不会增加对磁盘superblock高频访问的区域写次数,进而不会增加坏块风险,在双控制器系统中,不会因为状态的频繁切换而导致热备功能失效,从而减半了 superblock高频访问在磁盘的位置出现坏块的可能性,解决了 raid在写superblock过程中掉电,丢失superblock信息的问题,增加了系统的稳定性。
【附图说明】
[0024]通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
[0025]图1为本发明实施例一提出的一种磁盘阵列raid的超级块superblock的备份方法流程图;
[0026]图2为本发明实施例中提出的一种读取raid的superblock方法流程图。
【具体实施方式】
[0027]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0028]图1为本发明实施例一提出的一种磁盘阵列raid的超级块superblock的备份方法流程图,如图1所示,该方法包括以下步骤:
[0029]S101,根据磁盘阵列raid的超级块superblock中存放的raid信息的访问频次将所述superblock进行划分,得到低频访问信息区和高频访问信息区,所述低频访问信息区存储有盘组信息、磁盘状态以及raid的初始状态,所述高频访问信息区存储有初始化重建信息;
[0030]S102,将所述superblock进行备份,得到备用superblock,将所述superblock和所述备用superblock分别存储在两个存储区域;
[0031]S103,进行superblock访问时,根据所要访问的raid信息在所述superblock中存放的位置,对所述superblock和备用superblock进行刷新。
[0032]为了对磁盘区块的初始化留有记录,在raid的superblock中保存有整个raid的bitmap信息,除此以外superblock更需要保存盘组状态和盘组在raid中的位置信息以及raid的状态信息等,而这两类信息的访问频次大相径庭,本发明实施例根据磁盘阵列raid的超级块superblock中存放的raid信息的访问频次将所述superblock进行划分,将此两类的信息分别存放在超级块superblock的不同区域。盘组状态和盘组在raid中的位置信息以及raid的状态信息等,改变频次较低,访问次数少,在不发生掉盘,热备盘切换等动作时一般不会发生变化,所以存放在superblock头中进行存放,得到低频访问信息区,至于其他的有关初始化和重建信息的部分则访问频次高,则存在superblock的其他部分,得到高频访问信息区。
[0033]本发明实施例中,为了保证磁盘阵列raid的超级块superblock的完整性,superblock的低频访问信息区和高频访问信息区都是分成两个部分存放,每个一份当中都有一个魔术数magic值,一个与自己刷新次数相对应的版本号和这份superblock的校验值,没完成一次刷新,则版本号加一,这样在superblock读取的过程中,若只需读取到校验正确并且版本号大的那份superblock便可以认为是可信的。
[0034]进一步的,所述superblock和所述备用superblock均设置有魔术数、校验值以及与刷新次数相对应的版本号。
[0035]进一步的,所述superblock的低频访问信息区和所述备用superblock的低频访问信息区,两者的初始版本号相同;
[0036]所述superblock的高频访问信息区和所述备用superblock的高频访问信息区,两者的初始版本号互为奇偶。
[0037]进一步的,所述根据所要访问的raid信息在所述superblock中存放的位置,对所述superblock和备用superblock进行刷新,进一步包括:
[0038]当所要访问的raid信息在所述superblock中存放的位置为低频访问信息区时,将superblock发生变化的信息分别写入两个低频访问信息区,对所述superblock和备用superblock进行同步刷新,刷新后版本号递增;
[0039]当所要访问的raid信息在所述superb
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1