CN1979450A - 高速缓存数据回存方法 - Google Patents
高速缓存数据回存方法 Download PDFInfo
- Publication number
- CN1979450A CN1979450A CNA2005101275638A CN200510127563A CN1979450A CN 1979450 A CN1979450 A CN 1979450A CN A2005101275638 A CNA2005101275638 A CN A2005101275638A CN 200510127563 A CN200510127563 A CN 200510127563A CN 1979450 A CN1979450 A CN 1979450A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- address
- storage unit
- restoration method
- 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.)
- Granted
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种高速缓存数据回存方法,应用在一使用Linux操作系统的计算机设备中,且该计算机设备具有一备援电池,提供备援电力供应高速缓存内的数据续存,无须使用大幅修改Linux系统的存储器管理核心即可进行快速、安全、有效率的暂存数据备援,从而避免计算机设备运作的效率降低、设计制作成本增加与每次开机时Linux将存储器初始化导致高速缓存内容无法保存等问题,也可在不正常断电后进行重新开机的过程中,令该高速缓存内的缓存数据回存在磁盘且不会影响Linux操作系统本身的架构。
Description
技术领域
本发明是关于一种保护缓存资料不因断电而遗失的技术,特别是关于一种通过备援电力供高速缓存内的数据续存的高速缓存数据回存方法。
背景技术
现今信息科技发展迅速,计算机已成为获取信息的重要来源,也是重要的数据储存媒介。在使用计算机设备的过程中,不可或缺的是操作系统,经由操作系统的辅助可为使用者提供操作上的便利,因此,操作系统设计的优劣关系到使用者操作过程中的便利与硬件本身的适用性。操作系统最重要的一部份莫过于数据的存取。当使用者操作计算机时,计算机内部的高速缓存会暂存使用者曾使用的数据以提高计算机的运行效能,同样地,做为服务器的计算机也是如此;正因为如此,正在使用的重要数据因断电遗失时,不论对个人、企业或商业营运者均会造成严重的损失,其中又以金钱损失最为严重,因此如何确保高速缓存单元内的数据不会因为系统的突然断电导致流失,是一项亟待解决的问题。
有鉴于此,为避免上述状况发生时造成数据毁损,就产生了电池备援技术及相关的硬设备产生,这些技术是以重新改写Linux的存储器管理机制为主,再利用电池辅助电力保存该存储器内部的暂存数据,该一存储器管理机制是先针对存储器内所含的一连续区块进行定义,并令所有缓存数据均经由该定义好的区块存取,一旦发生断电状况时,计算机即在开机时到该连续区块读取未写回磁盘的数据、并写回磁盘中,此方式需要更改计算机内部的存储器管理核心,并重新定义存储器区块的地址,倘若变更计算机存储管理的设计上有所缺失,造成的后果不仅是高速缓存数据无法写回,它也可能在一般程序的执行过程中出错,此结果造成的问题远比遗失数据还严重,且使用该方式回存高速缓存的存放数据也须花费更多的人力与时间。
因此,如何提供一种可解决上述现有技术的缺点,令高速缓存数据回存容易实现且无须更改系统存储器管理核心的设计,建立更安全的缓存数据写回磁盘的方法,进而减少其它可能影响系统的因素,是目前亟待解决的问题。
发明内容
为克服上述现有技术的缺点,本发明的主要目的在于提供一种高速缓存数据回存方法,它是应用在一使用Linux操作系统的计算机设备中,且该计算机设备具有一备援电池,提供备援电力供应高速缓存内的数据续存,由备援电力供应暂存存储器中的数据续存与重新开机后检查数据回存的操作步骤。
本发明的另一目的在于提供一种高速缓存数据回存方法,它可借由自动备援存储模块,令计算机设备迅速且安全的自动完成高速缓存内的数据回存。
本发明的又一目的在于提供一种高速缓存数据回存方法,它可实时进行数据备援,设计者无需更改Linux本身系统存储器管理架构,即可达到备援数据回存的功用。
为达上述及其它目的,本发明即提供一种高速缓存数据回存方法,它是应用在一使用Linux操作系统的计算机设备中,且该计算机设备组设有做为存储模块备援电力的电池,由该电池提供的备援电力使高速缓存内的储存数据能够续存,该计算机设备另具有一非挥发性存储单元,记录上次开机时所分配的高速缓存的起始地址,并由串行地址搜寻缓存数据状态及重新开机后数据检查回存的各项操作步骤;本发明的高速缓存数据回存方法包括:(1)该计算机设备组设的非挥发性存储单元记录Linux操作系统核心所分配的Buffer Head地址;(2)该计算机设备在启动过程利用所设的硬件状态缓存器,判断上次是否是不正常的断电,若是,则触发高速缓存数据写回磁盘程序;(3)该计算机设备读取非挥发性存储单元中的Buffer Head地址所记录的分散在存储单元内各高速缓存数据的串行地址;(4)该高速缓存数据写回磁盘程序触发后,到Buffer Head地址后的高速缓存数据串行地址搜寻数据状态元素,并判别数据状态元素标示是否表示上次已写回磁盘,若是,则不执行写回磁盘的动作,并继续判读下一串行的数据状态元素,如否,将该串行地址内状态元素所指向的高速缓存内容区块同步写回磁盘,直到记录有分散在存储单元内各高速缓存数据的串行地址状态元素搜寻完毕;以及(5)同步完成高速缓存数据回存后,开始执行正常的存储单元初始化及高速缓存分配机制,并在分配完成后将Buffer Head地址记录在事先定义的非挥发性存储单元中,供断电后重新启动时利用。
本发明除了可解决Linux系统因不正常断电导致高速缓存数据遗失的问题外,它也可一并解决高速缓存内缓存数据回存磁盘的问题,并能有效减少系统设计的成本负担,且能避免大幅修改Linux系统存储器管理核心可能造成的系统运行效率降低或缓存数据地址对应出错等相关问题,更可因依循Linux系统存储器管理核心的设计,减少高速缓存设计上出错的可能性,且当检查硬件状态缓存器得知上次系统是不正常断电时,也将触发本发明的内存数据回存方法,使高速缓存内的缓存数据可在判别确定高速缓存数据己回存后,将尚未回存的高速缓存数据同步回存到磁盘中。
本发明的高速缓存数据回存方法可避免因不正常断电导致重要数据的遗失,且通过本发明的高速缓存数据回存方法,使用者无须大幅修改Linux系统的存储器管理核心的方式即可快速、安全及有效的备援高速缓存数据,维护高速缓存数据,从而可避免Linux系统运行效率降低、设计成本增加与每次开机后,Linux系统须将存储器初始化导致高速缓存内容无法保存等问题,使用者在不正常断电重新开机后,仍可将该高速缓存数据回存在磁盘中。
附图说明
图1是本发明高速缓存数据回存方法的实施过程流程图。
具体实施方式
实施例
图1是本发明高速缓存数据回存方法的实施过程。如图所示,本发明的高速缓存数据回存方法是首先执行步骤S1,监测计算机设备所含硬件状态缓存器(未标出)所记录的上次供电状况,判断上次是否是不正常的断电,如否,则直接进到步骤S8执行存储器初始化与高速缓存初始化,在步骤S8中重新分配Linux系统内存储器与高速缓存地址的区块,Linux系统存储器管理架构定义有一用以存放各个零散高速缓存数据的串行的存储器区块,其中是记录串行的结构与其对应的存储器区块地址,当系统定义完成一存放高速缓存数据的存储器区块后,使用非挥发性存储单元(未标出)记录其高速缓存管理链接串行(Linked list)的起始地址,用于在不正常断电后供回存存储器内的高速缓存数据,随后进到步骤S9,由Linux系统将存储器与高速缓存地址初始化以重新分配存储区块,将高速缓存起始地址记录在非挥发性存储单元内。反之,若硬件状态缓存器内记录上次是不正常断电,则进到步骤S2,触发本发明高速缓存数据回存方法,读取非挥发性存储单元内记录的上次开机Linux系统存储管理架构定义的高速缓存管理链接串行(Linked list)的起始串行地址(Buffer Head),接着进到步骤S3。
在步骤S3中,计算机设备依序读出非挥发性存储单元内的高速缓存串行地址,接着进到步骤S4。
在步骤S4中,计算机设备检查该非挥发性存储单元内的内的串行数据,其状态元素是否标示为已回存到磁盘中,若是,则重新返回步骤S3,继续判读下一串行数据的状态元素,如尚未回存则读出该状态元素相对应缓存地址内的缓存数据,则进到步骤S5。
在步骤S5中,读取该数据地址内的缓存数据,接着进到步骤S6。
在步骤S6中,将读取的缓存数据同步回存到磁盘,接着进到步骤S7。
在步骤S7中,继续判读下一串行数据并检查是否是最后一串行数据,若已回存缓存器内的所有数据后,则执行步骤S8,进行正常的开机程序,并接着进到步骤S9,由Linux系统将存储器与高速缓存地址初始化以重新分配存储区块,将高速缓存起始地址记录在非挥发性存储单元内,在不正常断电后供回存存储器内的缓存数据,如否,则重新返回步骤S3。
与现有技术相比,本发明的高速缓存数据回存方法使用硬件状态缓存器检测上次电源供电状态是否有不正常断电,以便实时保护高速缓存器内的数据,并在下次重新开机后执行高速缓存数据的状态判断与回存磁盘等动作,避免重要数据因断电而遗失,更可降低设计所需时间与人力、成本。因此,本发明的高速缓存数据回存方法无须大幅修改Linux系统的存储器管理核心,即可借由该高速缓存数据回存方法进行快速、安全、有效的缓存数据备援作业,完成高速缓存数据的维护,可避免系统运行效率降低、设计制作成本增加与每次开机后Linux将存储器初始化而导致高速缓存中的内容无法保存等问题,同时使用者在不正常断电后重新执行的开机过程中,将该高速缓存数据回存到磁盘且不影响本身Linux操作系统的架构。
Claims (7)
1.一种高速缓存数据回存方法,在计算机设备突然断电时借由电池供给备援电力,将高速缓存中的数据续存存储单元中,在下次重新启动系统时,将该存储单元内的高速缓存数据同步写回磁盘中,其特征在于,该高速缓存数据回存方法包括:
(1)该计算机设备组设的非挥发性存储单元记录Linux操作系统核心所分配的Buffer Head地址;
(2)该计算机设备在启动过程利用所设的硬件状态缓存器,判断上次是否是不正常的断电,若是,则触发高速缓存数据写回磁盘程序;
(3)该计算机设备读取非挥发性存储单元中的Buffer Head地址所记录的分散在存储单元内各高速缓存数据的串行地址;
(4)该高速缓存数据写回磁盘程序触发后,到Buffer Head地址后的高速缓存数据串行地址搜寻数据状态元素,并判别数据状态元素标示是否表示上次已写回磁盘,若是,则不执行写回磁盘的动作,并继续判读下一串行的数据状态元素,如否,将该串行地址内状态元素所指向的高速缓存内容区块同步写回磁盘,直到记录有分散在存储单元内各高速缓存数据的串行地址状态元素搜寻完毕;以及
(5)同步完成高速缓存数据回存后,开始执行正常的存储单元初始化及高速缓存分配机制,并在分配完成后将Buffer Head地址记录在事先定义的非挥发性存储单元中,供断电后重新启动时利用。
2.如权利要求1所述的高速缓存数据回存方法,其特征在于,该硬件状态缓存器是储存硬件各种状态、并提供系统判读其记录内容相关信息。
3.如权利要求1所述的高速缓存数据回存方法,其特征在于,该非挥发性存储单元,是记录Linux系统存储器管理核心配发的BufferHead地址。
4.如权利要求3所述的高速缓存数据回存方法,其特征在于,该Buffer Head地址是Linux系统的高速缓存管理链接串行的开头地址。
5.如权利要求1所述的高速缓存数据回存方法,其特征在于,该Buffer Head地址可以是存储器中的任一区块地址。
6.如权利要求5所述的高速缓存数据回存方法,其特征在于,该Buffer Head地址记录有数据是否回存磁盘的状态元素。
7.如权利要求6所述的高速缓存数据回存方法,其特征在于,该状态元素是具有指向高速缓存数据内容区块的地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101275638A CN100435118C (zh) | 2005-12-05 | 2005-12-05 | 高速缓存数据回存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101275638A CN100435118C (zh) | 2005-12-05 | 2005-12-05 | 高速缓存数据回存方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1979450A true CN1979450A (zh) | 2007-06-13 |
CN100435118C CN100435118C (zh) | 2008-11-19 |
Family
ID=38130626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101275638A Expired - Fee Related CN100435118C (zh) | 2005-12-05 | 2005-12-05 | 高速缓存数据回存方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100435118C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101826055A (zh) * | 2010-04-06 | 2010-09-08 | 山东高效能服务器和存储研究院 | 一种用于Linux系统数据缓存分配的管理方法 |
CN102339243A (zh) * | 2010-07-28 | 2012-02-01 | 昆达电脑科技(昆山)有限公司 | 内存存取控制方法 |
CN102971716A (zh) * | 2010-03-03 | 2013-03-13 | Ati科技无限责任公司 | 具有电力恢复后重新加载能力的高速缓存 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6026471A (en) * | 1996-11-19 | 2000-02-15 | International Business Machines Corporation | Anticipating cache memory loader and method |
JP2004118644A (ja) * | 2002-09-27 | 2004-04-15 | Hitachi Ltd | ディスクアレイ制御装置 |
CN1279453C (zh) * | 2004-06-08 | 2006-10-11 | 威盛电子股份有限公司 | 计算机的数据存取方法及其计算机本身 |
-
2005
- 2005-12-05 CN CNB2005101275638A patent/CN100435118C/zh not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102971716A (zh) * | 2010-03-03 | 2013-03-13 | Ati科技无限责任公司 | 具有电力恢复后重新加载能力的高速缓存 |
CN102971716B (zh) * | 2010-03-03 | 2015-06-17 | Ati科技无限责任公司 | 具有电力恢复后重新加载能力的高速缓存 |
CN101826055A (zh) * | 2010-04-06 | 2010-09-08 | 山东高效能服务器和存储研究院 | 一种用于Linux系统数据缓存分配的管理方法 |
CN101826055B (zh) * | 2010-04-06 | 2015-04-01 | 浪潮电子信息产业股份有限公司 | 一种用于Linux系统数据缓存分配的管理方法 |
CN102339243A (zh) * | 2010-07-28 | 2012-02-01 | 昆达电脑科技(昆山)有限公司 | 内存存取控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100435118C (zh) | 2008-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5715566B2 (ja) | キャッシュデータおよびメタデータの管理 | |
US7441085B2 (en) | Memory control method for restoring data in a cache memory | |
US8032707B2 (en) | Managing cache data and metadata | |
US7472139B2 (en) | Database recovery method applying update journal and database log | |
US7130962B2 (en) | Writing cache lines on a disk drive | |
US8448023B2 (en) | Approach for data integrity in an embedded device environment | |
US20090198931A1 (en) | Information processing apparatus and data backup method | |
CN106227621B (zh) | 基于逻辑卷管理精简卷的数据备份方法及系统 | |
CN105718330A (zh) | 一种Linux系统备份数据的恢复方法及装置 | |
CN100435118C (zh) | 高速缓存数据回存方法 | |
US7263580B2 (en) | Cache flush based on checkpoint timer | |
US20070043968A1 (en) | Disk array rebuild disruption resumption handling method and system | |
JP2015114750A (ja) | 調査用プログラム,情報処理装置及び情報処理方法 | |
WO2024077863A1 (zh) | 一种全闪存储系统的恢复方法及相关装置 | |
US7600151B2 (en) | RAID capacity expansion interruption recovery handling method and system | |
CN115391106A (zh) | 一种备端资源池化的方法、系统及装置 | |
CN100403267C (zh) | 硬盘阵列重建程序中断接续处理方法及系统 | |
JP2003122644A (ja) | 計算機及びその記憶装置 | |
JPH09212424A (ja) | ディスクキャッシュ及びディスクキャッシュ方法 | |
CN105808152B (zh) | 一种优化raid全局元数据读写性能的方法 | |
CN118012669A (zh) | 一种分布式文件系统的文件元数据恢复系统与方法 | |
CN109471754A (zh) | 备份方法、装置、设备及计算机可读存储介质 | |
JPH04156611A (ja) | ディスク装置のキャッシュメモリ管理装置 | |
JP2001100938A (ja) | ディスクアレイ装置のデータ書込方法 | |
JPH10320255A (ja) | チェックポイント/ロールバック方式の計算機における入出力装置制御装置、及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081119 Termination date: 20161205 |
|
CF01 | Termination of patent right due to non-payment of annual fee |