[发明专利]一种通过软件实现磁盘阵列中的缓存掉电保护方法无效
申请号: | 201110392516.1 | 申请日: | 2011-12-01 |
公开(公告)号: | CN102508727A | 公开(公告)日: | 2012-06-20 |
发明(设计)人: | 吕烁;杨帆 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 250014 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供一种通过软件实现磁盘阵列中的缓存掉电保护方法,是在整个高端盘阵系统掉电时,在UPS持续供电结束前将所有控制器中的缓存数据刷写到指定磁盘上,确保缓存数据不丢失,系统包括:1)脏页搜索模块与数据写入模块相连,用以搜索到内存中的脏页,并调用数据写入模块将数据写入到后端磁盘;2)IO错误处理模块与数据写入模块相连,用于处理将已经递交到后端设备但还没有返回的IO请求的处理;3)并发处理模块,用于屏蔽内核中并发的写请求,使得处于调电状态后数据仅由数据写入模块写入后端磁盘;4)元数据组织模块与数据写入模块相连,用于组织数据,通知数据写入模块将数据写入后端磁盘的固定位置;5)数据写入模块与元数据组织模块相连,用于将数据写入到后端磁盘的固定位置。 | ||
搜索关键词: | 一种 通过 软件 实现 磁盘阵列 中的 缓存 掉电 保护 方法 | ||
【主权项】:
一种通过软件实现磁盘阵列中的缓存掉电保护方法,其特征在于,是在整个高端盘阵系统掉电时,在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标识,则表示需要启动数据刷写过程,首先从描述信息中读取数据块的描述信息,其记录了对应的数据块应该写到后端磁盘上的哪个位置,然后根据描述信息中的索引计算数据块在本地分区中的偏移量(1M+64K+1G+index*512B),由于需要写入的后端磁盘不止一个,需要记录块设备与文件的对应关系链表,以便写入时从查找对应的文件指针,从系统分区盘中读出相应的块数据,然后根据描述符的设备号以及在块设备上的偏移量,将读取的数据写入后端设备的指定位置,当所有的数据往后端JBOD刷写完成后,将超级块标识清除,设置成FINISH_CLEAR;如果是FINISH_CLEAR标识,则不需要做任何处理,直接返回,将从描述信息中读取的索引号经转换计算得到指定分区上的偏移量,然后将读取的数据写入描述信息中记录的后端JBOD上的指定位置。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110392516.1/,转载请声明来源钻瓜专利网。