CN102508727A - 一种通过软件实现磁盘阵列中的缓存掉电保护方法 - Google Patents

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

Info

Publication number
CN102508727A
CN102508727A CN2011103925161A CN201110392516A CN102508727A CN 102508727 A CN102508727 A CN 102508727A CN 2011103925161 A CN2011103925161 A CN 2011103925161A CN 201110392516 A CN201110392516 A CN 201110392516A CN 102508727 A CN102508727 A CN 102508727A
Authority
CN
China
Prior art keywords
data
module
write
rear end
disk
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2011103925161A
Other languages
English (en)
Inventor
吕烁
杨帆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN2011103925161A priority Critical patent/CN102508727A/zh
Publication of CN102508727A publication Critical patent/CN102508727A/zh
Pending legal-status Critical Current

Links

Images

Abstract

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

Description

一种通过软件实现磁盘阵列中的缓存掉电保护方法
技术领域
本发明涉及计算机技术领域, 具体地说是一种通过软件实现磁盘阵列中的缓存掉电保护方法。
背景技术
在实际应用中对大容量存储的需求促使了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标识,则表示需要启动数据刷写过程,首先从描述信息中读取数据块的描述信息,其记录了对应的数据块应该写到后端磁盘上的哪个位置,然后根据描述信息中的索引计算数据块在本地分区中的偏移量(1M+64K+1G+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标识,则表示需要启动数据刷写过程,首先从描述信息中读取数据块的描述信息,其记录了对应的数据块应该写到后端磁盘上的哪个位置,然后根据描述信息中的索引计算数据块在本地分区中的偏移量(1M+64K+1G+index*512B),由于需要写入的后端磁盘不止一个,需要记录块设备与文件的对应关系链表,以便写入时从查找对应的文件指针。从系统分区盘中读出相应的块数据,然后根据描述符的设备号以及在块设备上的偏移量,将读取的数据写入后端设备的指定位置,当所有的数据往后端JBOD刷写完成后,将超级块标识清除,设置成FINISH_CLEAR;如果是FINISH_CLEAR标识,则不需要做任何处理,直接返回。在这里主要进行一个转换关系,将从描述信息中读取的索引号经转换计算得到指定分区上的偏移量,然后将读取的数据写入描述信息中记录的后端JBOD上的指定位置。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。

Claims (1)

1.一种通过软件实现磁盘阵列中的缓存掉电保护方法,其特征在于,是在整个高端盘阵系统掉电时,在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上的指定位置。
CN2011103925161A 2011-12-01 2011-12-01 一种通过软件实现磁盘阵列中的缓存掉电保护方法 Pending CN102508727A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011103925161A CN102508727A (zh) 2011-12-01 2011-12-01 一种通过软件实现磁盘阵列中的缓存掉电保护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011103925161A CN102508727A (zh) 2011-12-01 2011-12-01 一种通过软件实现磁盘阵列中的缓存掉电保护方法

Publications (1)

Publication Number Publication Date
CN102508727A true CN102508727A (zh) 2012-06-20

Family

ID=46220819

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011103925161A Pending CN102508727A (zh) 2011-12-01 2011-12-01 一种通过软件实现磁盘阵列中的缓存掉电保护方法

Country Status (1)

Country Link
CN (1) CN102508727A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049221A (zh) * 2012-12-19 2013-04-17 创新科存储技术有限公司 磁盘阵列缓存刷写处理方法和装置
CN105677588A (zh) * 2016-01-06 2016-06-15 浪潮(北京)电子信息产业有限公司 一种数据保护方法及装置
CN106326061A (zh) * 2015-06-26 2017-01-11 伊姆西公司 高速缓存数据处理方法及设备
CN106775684A (zh) * 2016-12-02 2017-05-31 北京航空航天大学 一种基于新型非易失性存储器的磁盘缓存掉电恢复方法
CN107590287A (zh) * 2017-09-26 2018-01-16 郑州云海信息技术有限公司 一种文件系统页缓存回写方法、系统、装置及存储介质
CN107797946A (zh) * 2016-09-06 2018-03-13 中车株洲电力机车研究所有限公司 一种车载存储装置
CN108874312A (zh) * 2018-05-30 2018-11-23 郑州云海信息技术有限公司 数据存储方法以及存储设备
CN109062393A (zh) * 2018-07-25 2018-12-21 苏州浪潮智能软件有限公司 一种用软件方式实现自带ups终端设备系统联动开关的设计方案
CN110247973A (zh) * 2019-06-17 2019-09-17 无锡华云数据技术服务有限公司 数据读取、写入的方法及文件网关
CN111158599A (zh) * 2019-12-29 2020-05-15 北京浪潮数据技术有限公司 一种写数据的方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101031053A (zh) * 2007-03-30 2007-09-05 杭州华为三康技术有限公司 视频信息存储装置及方法
CN101261768A (zh) * 2007-03-23 2008-09-10 天津市国腾公路咨询监理有限公司 公路网交通调查数据采集与分析应用系统及其工作方法
US7444360B2 (en) * 2004-11-17 2008-10-28 International Business Machines Corporation Method, system, and program for storing and using metadata in multiple storage locations
CN102147773A (zh) * 2011-03-30 2011-08-10 浪潮(北京)电子信息产业有限公司 高端磁盘阵列数据管理方法、装置和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7444360B2 (en) * 2004-11-17 2008-10-28 International Business Machines Corporation Method, system, and program for storing and using metadata in multiple storage locations
CN101261768A (zh) * 2007-03-23 2008-09-10 天津市国腾公路咨询监理有限公司 公路网交通调查数据采集与分析应用系统及其工作方法
CN101031053A (zh) * 2007-03-30 2007-09-05 杭州华为三康技术有限公司 视频信息存储装置及方法
CN102147773A (zh) * 2011-03-30 2011-08-10 浪潮(北京)电子信息产业有限公司 高端磁盘阵列数据管理方法、装置和系统

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049221A (zh) * 2012-12-19 2013-04-17 创新科存储技术有限公司 磁盘阵列缓存刷写处理方法和装置
CN106326061B (zh) * 2015-06-26 2020-06-23 伊姆西Ip控股有限责任公司 高速缓存数据处理方法及设备
CN106326061A (zh) * 2015-06-26 2017-01-11 伊姆西公司 高速缓存数据处理方法及设备
CN105677588A (zh) * 2016-01-06 2016-06-15 浪潮(北京)电子信息产业有限公司 一种数据保护方法及装置
CN107797946A (zh) * 2016-09-06 2018-03-13 中车株洲电力机车研究所有限公司 一种车载存储装置
CN107797946B (zh) * 2016-09-06 2021-06-29 中车株洲电力机车研究所有限公司 一种车载存储装置
CN106775684A (zh) * 2016-12-02 2017-05-31 北京航空航天大学 一种基于新型非易失性存储器的磁盘缓存掉电恢复方法
CN107590287A (zh) * 2017-09-26 2018-01-16 郑州云海信息技术有限公司 一种文件系统页缓存回写方法、系统、装置及存储介质
CN107590287B (zh) * 2017-09-26 2021-03-02 苏州浪潮智能科技有限公司 一种文件系统页缓存回写方法、系统、装置及存储介质
CN108874312A (zh) * 2018-05-30 2018-11-23 郑州云海信息技术有限公司 数据存储方法以及存储设备
CN109062393A (zh) * 2018-07-25 2018-12-21 苏州浪潮智能软件有限公司 一种用软件方式实现自带ups终端设备系统联动开关的设计方案
CN110247973A (zh) * 2019-06-17 2019-09-17 无锡华云数据技术服务有限公司 数据读取、写入的方法及文件网关
CN110247973B (zh) * 2019-06-17 2021-09-24 华云数据控股集团有限公司 数据读取、写入的方法及文件网关
CN111158599A (zh) * 2019-12-29 2020-05-15 北京浪潮数据技术有限公司 一种写数据的方法、装置、设备及存储介质
CN111158599B (zh) * 2019-12-29 2022-03-22 北京浪潮数据技术有限公司 一种写数据的方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN102508727A (zh) 一种通过软件实现磁盘阵列中的缓存掉电保护方法
CN102047237B (zh) 在虚拟机之间提供对象级输入/输出请求以存取存储子系统
KR100772863B1 (ko) 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치
CN103761053B (zh) 一种数据处理方法和装置
US9323682B1 (en) Non-intrusive automated storage tiering using information of front end storage activities
EP2927779B1 (en) Disk writing method for disk arrays and disk writing device for disk arrays
US10613985B2 (en) Buffer management in a data storage device wherein a bit indicating whether data is in cache is reset after updating forward table with physical address of non-volatile memory and jettisoning the data from the cache
CN103999060A (zh) 固态存储管理
CN109800185B (zh) 一种数据存储系统中的数据缓存方法
CN104903872A (zh) 用于自适应持久化的系统、方法和接口
CN102906714A (zh) 缓存存储适配器架构
US20180107601A1 (en) Cache architecture and algorithms for hybrid object storage devices
CN104025059A (zh) 用于采用热度和重新定位度量的数据存储存储器的选择性空间收回的方法和系统
CN103037004A (zh) 云存储系统操作的实现方法和装置
CN112632069B (zh) 哈希表数据存储管理方法、装置、介质和电子设备
CN102637147A (zh) 利用固态硬盘作为计算机写缓存的存储系统以及相应的管理调度方法
US9817754B2 (en) Flash memory management
US8583890B2 (en) Disposition instructions for extended access commands
US9946496B2 (en) SSD with non-blocking flush command
CN106919339B (zh) 一种硬盘阵列及硬盘阵列处理操作请求的方法
US20110106815A1 (en) Method and Apparatus for Selectively Re-Indexing a File System
Xiang et al. A reliable B-tree implementation over flash memory
CN103488582A (zh) 写高速缓冲存储器的方法及装置
CN104598166B (zh) 系统管理方法和装置
WO2016060700A1 (en) File system journaling

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20120620