一种优化RAID全局元数据读写性能的方法技术

技术编号:13449271 阅读:63 留言:0更新日期:2016-08-01 18:41
本发明专利技术涉及一种优化RAID全局元数据读写性能的方法,基于SBB系统中前四关键盘管理全局元数据的方式,添加内存元数据副本,实现全局元数据读写性能的优化;具体为:初始化内存元数据副本;从内存直接读取全局元数据,优化读性能;更新全局元数据,将新的元数据信息写入关键盘中,并备份所述内存元数据副本的元数据。该方法避免了由于关键盘损坏造成的SBB系统无法读写元数据以及系统瘫痪;充分发挥了从内存读取数据远比从磁盘读取速度快的优势,在提高了全局元数据的读写性能的同时,大大减少了系统运行时的负担。

【技术实现步骤摘要】
一种优化RAID全局元数据读写性能的方法
本专利技术一种涉及计算机技术的优化方法,具体涉及一种优化RAID全局元数据读写性能的方法。
技术介绍
作为高性能的存储系统,如今的RAID(RedundantArrayofIndependentDisk,独立冗余磁盘阵列)已经得到了越来越广泛的应用。其中,对于Linux系统的软RAID的全局元数据管理分为两种,一种是默认的super1.x版本元数据管理,另一种是采用ddf方式进行管理。对于super1.x版本的元数据管理,元数据的布局采用的方式如图3所示,每个RAID的成员盘在其开始的位置存放各自的元数据信息。当该RAID的所有成员盘都处于离线状态时,系统无法感知该RAID的存在。为解决该问题,现有技术在SBB磁盘阵列的RAID模块中,采用基于super1.x版本的元数据的全局管理方式。如图4所示,在SBB系统中,使用前四个槽位的磁盘作为系统的关键盘,专门用于存放系统中RAID的元数据信息,即使系统中做RAID的成员盘都离线,系统也能感知该RAID处于离线状态。然而,使用关键盘作为全局元数据存放的媒介,也存在缺陷,主要表现在以下几个方面:1)在磁盘阵列系统中,由于共振等因素的影响,无法避免磁盘的损坏;当前四个槽位的关键盘都损坏时,SBB系统将无法读写元数据,进而造成系统无法正常使用,给用户带来不必要的麻烦和损失。2)采用全局元数据的写入方式,须依次写入四个关键盘中,严重影响了元数据的读写性能;3)在系统中存在多个RAID,使更新元数据的操作更加频繁,加剧了系统运行时的负担。
技术实现思路
为了克服现有技术的缺陷,本专利技术提出一种优化RAID全局元数据读写性能的方法,该方法避免了由于关键盘损坏造成的SBB系统无法读写元数据及系统瘫痪;充分发挥了从内存读取数据远比从磁盘读取速度快的优势,以及延迟更新元数据到前四关键盘,无须依次写入;在提高了全局元数据的读写性能的同时,大大减少了系统运行时的负担。本专利技术的目的是采用下述技术方案实现的:一种优化RAID全局元数据读写性能的方法,所述方法包括,基于SBB系统中前四关键盘管理全局元数据的方式,添加内存元数据副本,实现全局元数据读写性能的优化;优选的,所述优化RAID全局元数据读写性能的方法包括下述步骤:(1)初始化内存元数据副本;其中,所述初始化该内存元数据副本的具体过程包括:步骤1-1,采用预留内存的方式对所述内存元数据副本进行分配;步骤1-2,将所述全局元数据预读到所述内存元数据副本中;(2)直接从内存读取全局元数据,优化读性能;(3)更新全局元数据,并将新的元数据信息延迟更新到前四关键盘中,优化写性能;(4)备份所述内存元数据副本的元数据。优选的,所述步骤1-1包括,当系统crash后,利用该crash现场启动的内核,找到所述内存元数据副本的位置并保存。进一步地,所述步骤1-1还包括,所述内核执行setup_arch函数,并调用该执行过程中的e820_remove_range函数,预留全局元数据总大小的内存。优选的,所述步骤1-2包括,在初始化内存元数据副本过程中,通过执行用户态程序mdadm(管理软RAID的用户态程序),并采用netlink的方式将所述内存元数据副本的初始化信息传递到所述内核;在初始化完成后,所述前四关键盘的元数据相同,所述内核读取任一关键盘中的元数据填充至所述内存元数据副本。优选的,所述步骤(3)中,所述更新全局元数据是将所述新的元数据信息写入所述内存元数据副本中,并将所述新的元数据信息备份到所述SBB系统的前四关键盘中;当全局元数据中的events值更新时,则将最新的内存元数据更新到所述内存元数据副本和所述SBB系统的关键盘中;否则,只将最新的内存元数据更新到内存元数据副本。进一步地,在所述内核中创建一个线程,用于周期性的更新所述内存副本的全局元数据到所述前四关键盘中。优选的,所述步骤(4)包括,在系统重启或关机情况下,先通过调用register_reboot_notifier接口注册一个通知接口,然后进入kernel_restart_prepare函数,调用blocking_notifier_call_chain函数执行注册的回调函数;该回调函数用于将所述内存元数据副本的元数据备份到SSD中。优选的,在断电情况下,用电池的供电将所述内存元数据副本的元数据备份到SSD中。优选的,当系统crash的情况下,启动新内核捕获当时的内存现场,修改/etc/kdump.conf配置文件中的kdump_pre执行自定义的脚本;所述自定义的脚本用于触发所述备份的内存元数据副本。进一步地,通过mount命令挂载根文件系统,设置proc接口触发备份操作,使备份的内存元数据副本保存到SDD中的指定位置。与最接近的现有技术比,本专利技术的优异效果为:通过备份内存元数据副本,避免了由于关键盘损坏造成的SBB系统无法读写元数据以及系统瘫痪;充分利用从内存读取数据远比从磁盘读取速度快的优势,且无须依次将元数据写入前四关键盘,从而提高了全局元数据的读写性能,大大减少了系统运行时的负担;实现了对现有的RAID阵列中元数据的有效管理,从一定程度上提升了用户体验。附图说明如图1所示为本专利技术提供的添加内存元数据副本的全局元数据管理示意图。如图2所示为本专利技术提供的预读全局元数据到内存元数据副本流程图。如图3所示为
技术介绍
提供的super1.x元数据管理示意图。如图4所示为
技术介绍
提供的全局元数据管理示意图。具体实施方式下面结合附图对本专利技术作进一步详细说明。本专利技术提供一种优化RAID全局元数据读写性能的方法,所述方法包括,如图1所示,基于SBB系统中前四关键盘管理全局元数据的方式,添加内存元数据副本;sysuuid用于标示该磁盘是否属于该SBB系统;summary用于标识元数据的版本信息以及存放全局热备盘的元数据信息;specific用于存放RAID成员盘的super1.x元数据信息。如图2所示,所述方法包括下述步骤:(1)初始化内存元数据副本包括如下步骤:步骤1-1,用预留内存方式分配所述内存元数据副本;当系统crash后,利用该crash现场启动的内核,找到所述内存元数据副本的位置并保存。所述内核执行setup_arch函数,并调用该执行过程中的e820_remove_range函数,预留全局元数据总大小的内存。步骤1-2,将所述全局元数据预读到所述内存元数据副本中;在初始化内存元数据副本过程中,通过执行用户态程序mdadm,并采用netlink的方式将所述内存元数据副本的初始化信息传递到所述内核;在初始化完成后,所述前四关键盘的元数据相同,所述内核读取任一关键盘中的元数据填充至所述内存元数据副本。(2)直接从内存读取全局元数据,优化读性能;(3)更新全局元数据,并将新的元数据信息延迟更新到所述前四关键盘中,优化写性能;所述步骤(3)中,所述更新全局元数据是将所述新的元数据信息写入所述内存元数据副本中,并将所述新的元数据信息备份到所述SBB系统的前四关键盘中;当全局元数据中的events值更新时,则将最新的内存元数据更新到所述内存元数据副本和所述SBB系统的关键盘中;否则,只将最新的内存元数据更新到内存元数据副本;在所述内核中创建本文档来自技高网
...

【技术保护点】
一种优化RAID全局元数据读写性能的方法,其特征在于,所述方法包括,基于SBB系统中前四关键盘管理全局元数据的方式,添加内存元数据副本;所述方法包括下述步骤:(1)初始化内存元数据副本包括如下步骤:步骤1‑1,用预留内存方式分配所述内存元数据副本;步骤1‑2,将所述全局元数据预读到所述内存元数据副本中;(2)直接从内存读取全局元数据,优化读性能;(3)更新全局元数据,并将新的元数据信息延迟更新到所述前四关键盘中,优化写性能;(4)备份所述内存元数据副本的元数据。

【技术特征摘要】
1.一种优化RAID全局元数据读写性能的方法,其特征在于,所述方法包括,基于SBB系统中前四关键盘管理全局元数据的方式,添加内存元数据副本;所述方法包括下述步骤:(1)初始化内存元数据副本包括如下步骤:步骤1-1,用预留内存方式分配所述内存元数据副本;步骤1-2,将所述全局元数据预读到所述内存元数据副本中;(2)直接从内存读取全局元数据,优化读性能;(3)更新全局元数据,并将新的元数据信息延迟更新到所述前四关键盘中,优化写性能;(4)备份所述内存元数据副本的元数据。2.如权利要求1所述的优化RAID全局元数据读写性能的方法,其特征在于,所述步骤1-1包括,当系统crash后,利用该crash现场启动的内核,找到所述内存元数据副本的位置并保存。3.如权利要求2所述的优化RAID全局元数据读写性能的方法,其特征在于,所述步骤1-1包括,所述内核执行setup_arch函数,并调用该执行过程中的e820_remove_range函数,预留全局元数据总大小的内存。4.如权利要求1所述的优化RAID全局元数据读写性能的方法,其特征在于,所述步骤1-2包括,在初始化内存元数据副本过程中,通过执行用户态程序mdadm,并采用netlink的方式将所述内存元数据副本的初始化信息传递到内核;在初始化完成后,所述前四关键盘的元数据相同,所述内核读取任一关键盘中的元数据填充至所述内存元数据副本。5.如权利要求1所述优化RAID全局元数据读写性能的方法,其特征在于,所述更新全局元数据是在内核中创...

【专利技术属性】
技术研发人员:张建斌袁清波苗艳超刘新春邵宗有
申请(专利权)人:曙光云计算技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1