一种通过软件实现磁盘阵列中的缓存掉电保护方法技术

技术编号:7464258 阅读:278 留言:0更新日期:2012-06-26 17:36
本发明专利技术提供一种通过软件实现磁盘阵列中的缓存掉电保护方法,是在整个高端盘阵系统掉电时,在UPS持续供电结束前将所有控制器中的缓存数据刷写到指定磁盘上,确保缓存数据不丢失,系统包括:1)脏页搜索模块与数据写入模块相连,用以搜索到内存中的脏页,并调用数据写入模块将数据写入到后端磁盘;2)IO错误处理模块与数据写入模块相连,用于处理将已经递交到后端设备但还没有返回的IO请求的处理;3)并发处理模块,用于屏蔽内核中并发的写请求,使得处于调电状态后数据仅由数据写入模块写入后端磁盘;4)元数据组织模块与数据写入模块相连,用于组织数据,通知数据写入模块将数据写入后端磁盘的固定位置;5)数据写入模块与元数据组织模块相连,用于将数据写入到后端磁盘的固定位置。

【技术实现步骤摘要】

本专利技术涉及计算机
,具体地说是。
技术介绍
在实际应用中对大容量存储的需求促使了 RAID技术的诞生,并形成了磁盘阵列。 磁盘阵列作为一种共享资源需要向外提供不同的服务,对一些关键应用而言,数据的完整性关系到企业的生死存亡。如何在整个系统掉电时确保数据不丢失是一个重要和急需解决的问题。比如计算机由UPS持续供电,但UPS只能给控制器供电,不能给后端JBOD供电,而 UPS供电时间有限,不能长时间保存缓存中的数据。
技术实现思路
本专利技术的目的是提供一种本专利技术涉及磁盘阵列中一种软件实现的缓存掉电保护技术,通过软件实现磁盘阵列中的缓存掉电保护方法。本专利技术的目的是按以下方式实现的,是在整个高端盘阵系统掉电时,在UPS持续供电结束前将所有控制器中的缓存数据刷写到指定磁盘上,确保缓存数据不丢失,系统包括1)脏页搜索模块、2) IO错误处理模块、3)并发处理模块、4)元数据组织模块和5)数据写入模块,其中所述1)脏页搜索模块与所述数据写入模块相连,用以搜索到内存中的脏页,并调用数据写入模块将数据写入到后端磁盘;所述2) IO错误处理模块与所述数据写入模块相连,用于处理将已经递交到后端设备但还没有返回的IO请求的处理;所述3)并发处理模块,用于屏蔽内核中并发的写请求,使得处于调电状态后数据仅由数据写入模块写入后端磁盘;所述4)元数据组织模块与数据写入模块相连,用于组织数据,通知数据写入模块将数据写入后端磁盘的固定位置;所述5)数据写入模块与元数据组织模块相连,用于将数据写入到后端磁盘的固定位置;缓存掉电数据保护步骤如下1)在UPS断电时,由控制器管理进行检测,通过在内核中新增加/proc/sys/vm/upsup 接口来通知内核此时系统已经在UPS供电方式下,缓存中的数据需要保护;2)为了处理正在往JBOD上递交写请求但还没有返回给内核的这种情况,包括如下步骤(1)此时系统掉电,需要在IO处理回调函数中进行错误识别,将写到JBOD后端出错的页加入到指定的脏链表中页,写到后端JBOD的出错处理触发脏页搜索模块中,在检测到系统掉电时,启动脏页搜索线程,将缓存内的脏页搜索出来,并将脏页写到指定的磁盘上元数据与数据处理模块(2)除了需要将数据块写到分区设备上外,还需要将数据块的描述信息写到分区设备上,如数据块在后端存储设备上的设备号,逻辑块地址,长度数据恢复模块(3)系统重新启动后,需要判断后端的JBOD是否可以访问,如果是FINISH_FLUSHED标识,则表示需要启动数据刷写过程,首先从描述信息中读取数据块的描述信息,其记录了对应的数据块应该写到后端磁盘上的哪个位置,然后根据描述信息中的索引计算数据块在本地分区中的偏移量(lM+64K+lG+indeX*512B),由于需要写入的后端磁盘不止一个,需要记录块设备与文件的对应关系链表,以便写入时从查找对应的文件指针,从系统分区盘中读出相应的块数据,然后根据描述符的设备号以及在块设备上的偏移量,将读取的数据写入后端设备的指定位置,当所有的数据往后端JBOD刷写完成后,将超级块标识清除,设置成 FINISH_CLEAR;如果是FINISH_CLEAR标识,则不需要做任何处理,直接返回,将从描述信息中读取的索引号经转换计算得到指定分区上的偏移量,然后将读取的数据写入描述信息中记录的后端JBOD上的指定位置。本专利技术的有益效果是具有设计合理、结构简单、易于加工、体积小、使用方便、 一物多用等特点,因而,具有很好的推广使用价值。附图说明图1是调电保护设计思路示意图; 图2是掉电保护功能模块结构图图3是IO出错处理流程示意图。具体实施例方式参照说明书附图对本专利技术的方法作以下详细地说明。如图2所示,本专利技术的缓存掉电保护方法,包括1)脏页搜索模块,2) IO错误处理模块、3)并发处理模块,4)元数据组织模块,5)数据写入模块,其中所述1)脏页搜索模块,与所述数据写入模块相连,用以搜索到内存中的脏页,并调用数据写入模块将数据写入到后端磁盘;所述2) IO错误处理模块,与所述数据写入模块相连,用于处理将已经递交到后端设备但还没有返回的IO请求的处理;所述3)并发处理模块,用于屏蔽内核中并发的写请求,使得处于调电状态后数据仅由数据写入模块写入后端磁盘;所述4)元数据组织模块,与数据写入模块相连,用于组织数据,通知数据写入模块将数据写入后端磁盘的固定位置。所述数据写入模块,元数据组织模块相连,用于将数据写入到后端磁盘的固定位置。本专利技术的,步骤如下1)在UPS断电时,由控制器管理进行检测,通过在内核中新增加/proc/sys/vm/upsup 接口来通知内核此时系统已经在UPS供电方式下,缓存中的数据需要保护;2)为了处理正在往JBOD上递交写请求但还没有返回给内核这种情况,此时系统掉电,需要在IO处理回调函数中进行错误识别,将写到JBOD后端出错的页加入到指定的脏链表中页写到后端JBOD的出错处理触发脏页搜索模块,在检测到系统掉电时,启动脏页搜索线程,将缓存内的脏页搜索出来,并将脏页写到指定的磁盘上元数据与数据处理模块除了需要将数据块写到分区设备上外,还需要将数据块的描述信息写到分区设备上, 如数据块在后端存储设备上的设备号,逻辑块地址,长度数据恢复模块系统重新启动后, 需要判断后端的JBOD是否可以访问。如果是FINISH_FLUSHED标识,则表示需要启动数据刷写过程,首先从描述信息中读取数据块的描述信息,其记录了对应的数据块应该写到后端磁盘上的哪个位置,然后根据描述信息中的索引计算数据块在本地分区中的偏移量 (lM+64K+lG+index*512B),由于需要写入的后端磁盘不止一个,需要记录块设备与文件的对应关系链表,以便写入时从查找对应的文件指针。从系统分区盘中读出相应的块数据, 然后根据描述符的设备号以及在块设备上的偏移量,将读取的数据写入后端设备的指定位置,当所有的数据往后端JBOD刷写完成后,将超级块标识清除,设置成FINISH_CLEAR;如果是FINISH_CLEAR标识,则不需要做任何处理,直接返回。在这里主要进行一个转换关系,将从描述信息中读取的索引号经转换计算得到指定分区上的偏移量,然后将读取的数据写入描述信息中记录的后端JBOD上的指定位置。 除说明书所述的技术特征外,均为本专业技术人员的已知技术。权利要求1. ,其特征在于,是在整个高端盘阵系统掉电时,在UPS持续供电结束前将所有控制器中的缓存数据刷写到指定磁盘上,确保缓存数据不丢失,系统包括1)脏页搜索模块、2) IO错误处理模块、3)并发处理模块、4) 元数据组织模块和5)数据写入模块,其中所述1)脏页搜索模块与所述数据写入模块相连,用以搜索到内存中的脏页,并调用数据写入模块将数据写入到后端磁盘;所述2) IO错误处理模块与所述数据写入模块相连,用于处理将已经递交到后端设备但还没有返回的IO请求的处理;所述3)并发处理模块,用于屏蔽内核中并发的写请求,使得处于调电状态后数据仅由数据写入模块写入后端磁盘;所述4)元数据组织模块与数据写入模块相连,用于组织数据,通知数据写入模块将数据写入后端磁盘的固定位置;所述5)数据写入模块与元数据组织模块相连,用于将数据写入到后端磁盘的固定位置;缓存掉电数据保护步骤本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:吕烁杨帆
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:

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

1
相关领域技术