CN104461394B - 一种raid及从其读取数据的方法 - Google Patents

一种raid及从其读取数据的方法 Download PDF

Info

Publication number
CN104461394B
CN104461394B CN201410750981.1A CN201410750981A CN104461394B CN 104461394 B CN104461394 B CN 104461394B CN 201410750981 A CN201410750981 A CN 201410750981A CN 104461394 B CN104461394 B CN 104461394B
Authority
CN
China
Prior art keywords
raid
initializtion
address
data
target data
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.)
Active
Application number
CN201410750981.1A
Other languages
English (en)
Other versions
CN104461394A (zh
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410750981.1A priority Critical patent/CN104461394B/zh
Publication of CN104461394A publication Critical patent/CN104461394A/zh
Application granted granted Critical
Publication of CN104461394B publication Critical patent/CN104461394B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种RAID及从其读取数据的方法。该从RAID读取数据的方法包括:接收或生成读数据指令,读数据指令包括目标数据的地址;判断预先建立的未初始化日志LOG中是否包括目标数据的地址,未初始化LOG用于记录RAID中未被初始化的存储空间的地址;当预先建立的未初始化LOG中包括目标数据的地址时,将数据0返回给主机。通过以上方式,本发明能够缩小RAID初始化需要硬盘的带宽,并且保证RAID数据正确恢复。

Description

一种RAID及从其读取数据的方法
技术领域
本发明涉及存储技术领域,特别是涉及一种RAID及从其读取数据的方法。
背景技术
在存储系统中,独立冗余磁盘阵列(Redundant Array of Independent Disk,RAID)是一种由多块廉价磁盘构成的冗余阵列,RAID可以充分发挥出多块硬盘的优势,可以提升硬盘速度,增大容量。
现有技术的RAID写入数据的方法具体包括:首先RAID模块从主机获取写数据请求,初始化模块发送格式化全0数据写IO(Input/Output)到RAID模块;然后RAID模块下发初始化IO,RAID模块下发主机IO;硬盘向RAID模块返回写成功,RAID模块通知初始化模块初始化完成,并通知主机写完成。其中,在初始化IO写数据量大,会占用大量硬盘写宽带,造成主机IO处理时延长,导致性能下降。
发明内容
本发明实施例提供了一种RAID及从其读取数据的方法,能够缩小RAID初始化需要硬盘的带宽。
本发明提供一种从RAID读取数据的方法,其包括:接收或生成读数据指令,读数据指令包括目标数据的地址;判断预先建立的未初始化日志LOG中是否包括目标数据的地址,未初始化LOG用于记录RAID中未被初始化的存储空间的地址;当预先建立的未初始化LOG中包括目标数据的地址时,将数据0返回给主机。
其中,当预先建立的未初始化LOG中未包括目标数据的地址时,从硬盘读取数据,并将目标数据返回给主机。
其中,方法还包括:接收主机发送的写入数据指令,写入数据指令包括目标数据以及目标数据的地址;判断预先建立的未初始化LOG中是否包括目标数据的地址;当预先建立的初始化LOG中包括目标数据的地址时,删除目标数据的地址所对应的未初始化LOG。
其中,当预先建立的初始化LOG中未包括目标数据的地址时,向硬盘写入目标数据。
本发明还提供一种RAID,其包括:RAID模块,用于接收或生成读取数据指令,读取数据指令包括目标数据的地址;初始化模块,与RAID模块连接,用于预先建立的未初始化日志LOG,未初始化LOG用于记录RAID中未被初始化的存储空间的地址;其中,RAID模块从初始化模块获取预先建立的未初始化日志LOG,并判断预先建立的未初始化日志LOG中是否包括目标数据的地址;当预先建立的未初始化LOG中包括目标数据的地址时,RAID模块将数据0返回给主机。
其中,RAID还包括与RAID模块连接的硬盘,当预先建立的未初始化LOG中未包括目标数据的地址时,RAID模块从硬盘读取目标数据,并将目标数据返回给主机。
其中,RAID模块接收主机发送的写入数据指令,写入数据指令包括目标数据的地址;RAID模块判断预先建立的未初始化LOG中是否包括目标数据的地址;当预先建立的初始化LOG中包括目标数据的地址时,初始化模块删除目标数据的地址所对应的未初始化LOG。
其中,当预先建立的初始化LOG中未包括目标数据的地址时,RAID模块向硬盘写入目标数据。
通过上述方案,本发明的有益效果是:本发明通过接收或生成读数据指令;判断预先建立的未初始化日志LOG中是否包括目标数据的地址;当预先建立的未初始化LOG中包括目标数据的地址时,将数据0返回给主机;能够缩小RAID初始化需要硬盘的带宽,并且保证RAID数据正确恢复。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1是本发明第一实施例的存储设备的结构示意图;
图2是本发明第一实施例的从存储设备读取数据的方法的流程图;
图3是本发明第二实施例的向存储设备写入数据的方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1所示,图1是本发明第一实施例的存储设备20的结构示意图。如图1所示,本实施例描述的存储设备20包括存储控制器21以及硬盘22。其中,存储控制器21包括处理器211、通信接口212和存储器213,存储器213中包括RAID模块214和初始化模块215,RAID模块214通过通信接口212与硬盘22连接。处理器211通过通信接口212与存储器213的RAID模块214连接,RAID模块214通过通信接口212与初始化模块215连接,处理器211和RAID模块214均通过通信接口212与主机23连接,主机23通过RAID模块214从硬盘22读取数据或者向硬盘22写入数据。其中,存储设备20优选为RAID。
其中,存储管理员通过RAID模块214指定硬盘22建立RAID对象1,例如:存储管理员通过RAID模块214指定D0-D3共4个硬盘22组成RAID5,每个硬盘22有10000个扇区可使用,其中一个硬盘22用于冗余数据,因此主机23可使用的扇区为30000个。
其中,初始化模块215用于预先建立的未初始化日志(LOG),并记录未初始化LOG,未初始化LOG用于记录存储设备20中未被初始化的存储空间的地址。即RAID模块214在记录RAID对象1的配置信息,并通知初始化模块215记录未初始化LOG。优选地,初始化模块215将未初始化LOG记录在硬盘22的扇区上,例如未初始化LOG如表1所示。
表1
硬盘 未写LOG的逻辑块地址 未写LOG的长度
D0 0 10000
D1 0 10000
D2 0 10000
D3 0 10000
其中,在主机23从硬盘22读取目标数据时,RAID模块214用于从主机23接收读取数据指令,读取数据指令包括目标数据的地址。
在硬盘22发生故障或者目标数据丢失,硬盘22通过进行数据重构恢复硬盘22的目标数据时,处理器211向RAID模块214发送重构消息,RAID模块214根据重构消息生成读取数据指令。
其中,RAID模块214从初始化模块215获取未初始化LOG,并判断未初始化LOG中是否包括目标数据的地址,当未初始化LOG中包括目标数据的地址时,RAID模块214从硬盘22获取数据0。
当未初始化LOG中未包括目标数据的地址时,RAID模块214从硬盘22读取目标数据。
在主机23从硬盘22读取目标数据时,RAID模块214将数据0或者目标数据返回给主机23。
在硬盘22通过进行数据重构恢复硬盘22的目标数据时,RAID模块214根据从硬盘22读取的目标数据或数据0获取硬盘22需要恢复的目标数据。
本实施例所揭示的存储设备20通过RAID模块214接收或生成读取数据指令,RAID模块214从初始化模块215获取未初始化LOG,并判断未初始化LOG中是否包括目标数据的地址,当未初始化LOG中包括目标数据的地址时,RAID模块214将数据0返回给主机23,能够缩小RAID10初始化需要硬盘13的带宽,并且保证RAID数据正确恢复。
本发明还提供第二实施例的存储设备,其在第一实施例所揭示的存储设备20的基础上进行描述。其中,在主机23向硬盘22写入目标数据,即RAID模块214接收主机23发送的写入数据指令,其中写入数据指令包括目标数据的地址。RAID模块214将写入数据指令转换为硬盘写请求,并将硬盘写请求发送给硬盘22。RAID模块214从硬盘22获取写成功消息,即硬盘22向RAID模块214返回写成功消息。
其中,RAID模块214从初始化模块215获取未初始化LOG,并判断未初始化LOG中是否包括目标数据的地址,当未初始化LOG包括目标数据的地址时,初始化模块215删除目标数据的地址所对应的未初始化LOG。即,RAID模块214判断未初始化LOG包括目标数据的地址时,通知初始化模块215删除目标数据的地址所对应的未初始化LOG。
当未初始化LOG未包括目标数据的地址时,RAID模块214向硬盘22写入目标,RAID模块214向主机23返回写成功消息。
例如,存储设备20拆分后写硬盘22为D0和D3,硬盘22的读写单元号都为100,长度为5,初始化模块215删除后未的初始化LOG如表2所示。
表2
硬盘 读写单元号 长度
D0 0 100
D0 105 9895
D1 0 10000
D2 0 10000
D3 0 10000
D3 105 9895
本发明还提供第一实施例的从存储设备读取数据的方法,其在第一实施例所揭示的存储设备20的基础上进行描述。如图2所示,本实施例所揭示的方法包括:
S401:RAID模块214接收或生成读取数据指令,读取数据指令包括目标数据的地址;
S402:RAID模块214判断预先建立的未初始化日志LOG中是否包括目标数据的地址,未初始化LOG用于记录RAID中未被初始化的存储空间的地址;
S403:当预先建立的未初始化LOG中包括目标数据的地址时,RAID模块214将数据0返回给主机23。
在S401中,在主机23从硬盘22读取目标数据时,RAID模块214用于从主机23接收读取数据指令;在硬盘22发生故障或者目标数据丢失,硬盘22通过进行数据重构恢复硬盘22的目标数据时,处理器211向RAID模块214发送重构消息,RAID模块214根据重构消息生成读取数据指令。
在S402中,初始化模块215用于预先建立的未初始化LOG,并记录未初始化LOG,未初始化LOG用于记录存储设备20中未被初始化的存储空间的地址。RAID模块214从初始化模块215获取未初始化LOG。
在S403中,当未初始化LOG中未包括目标数据的地址时,RAID模块214从硬盘22读取目标数据。在主机23从硬盘22读取目标数据时,RAID模块214将数据0或者目标数据返回给主机23。在硬盘22通过进行数据重构恢复硬盘22的目标数据时,RAID模块214根据从硬盘22读取的目标数据或数据0获取硬盘22需要恢复的目标数据。
本实施例通过RAID模块214接收或生成读取数据指令,RAID模块214从初始化模块215获取未初始化LOG,并判断未初始化LOG中是否包括目标数据的地址,当未初始化LOG中包括目标数据的地址时,RAID模块214将数据0返回给主机23,能够缩小RAID初始化需要硬盘13的带宽,并且保证RAID数据正确恢复。
本发明还提供第二实施例的向存储设备写入数据的方法,其在第二实施例所揭示的RAID的基础上进行描述。如图3所示,本实施例所揭示的方法包括:
S501:RAID模块214接收主机23发送的写入数据指令,写入数据指令包括目标数据以及目标数据的地址;
S502:RAID模块214判断预先建立的未初始化LOG中是否包括目标数据的地址;
S503:当预先建立的初始化LOG中包括目标数据的地址时,初始化模块215删除目标数据的地址所对应的未初始化LOG。
在S503中,当未初始化LOG未包括目标数据的地址时,RAID模块214向硬盘22写入目标,RAID模块214向主机23返回写成功消息。
综上所述,本发明通过接收或生成读数据指令;判断预先建立的未初始化日志LOG中是否包括目标数据的地址;当预先建立的未初始化LOG中包括目标数据的地址时,将数据0返回给主机;能够缩小RAID初始化需要硬盘的带宽,并且保证RAID数据正确恢复。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (4)

1.一种从独立冗余磁盘阵列RAID读取数据的方法,其特征在于,所述方法包括:
接收或生成读数据指令,所述读数据指令包括目标数据的地址;
判断预先建立的未初始化日志LOG中是否包括所述目标数据的地址,所述未初始化LOG用于记录所述RAID中未被初始化的存储空间的地址;
当所述预先建立的未初始化LOG中包括所述目标数据的地址时,将数据0返回给主机;
当所述预先建立的未初始化LOG中未包括所述目标数据的地址时,从硬盘读取目标数据,并将所述目标数据返回给所述主机;
所述方法还包括:
接收所述主机发送的写入数据指令,所述写入数据指令包括所述目标数据以及所述目标数据的地址;
判断所述预先建立的未初始化LOG中是否包括所述目标数据的地址;
当所述预先建立的未初始化LOG中包括所述目标数据的地址时,删除所述目标数据的地址所对应的未初始化LOG;
其中,所述未初始化LOG还用于记录所述RAID中未被初始化的存储空间的长度。
2.根据权利要求1所述的方法,其特征在于,
当所述预先建立的未初始化LOG中未包括所述目标数据的地址时,向所述硬盘写入所述目标数据。
3.一种RAID,其特征在于,所述RAID包括:
RAID模块,用于接收或生成读取数据指令,所述读取数据指令包括目标数据的地址;
初始化模块,与所述RAID模块连接,用于预先建立的未初始化日志LOG,所述未初始化LOG用于记录所述RAID中未被初始化的存储空间的地址;
其中,所述RAID模块从所述初始化模块获取所述预先建立的未初始化日志LOG,并判断所述预先建立的未初始化日志LOG中是否包括所述目标数据的地址;
当所述预先建立的未初始化LOG中包括所述目标数据的地址时,所述RAID模块将数据0返回给主机;
所述RAID还包括与所述RAID模块连接的硬盘,当所述预先建立的未初始化LOG中未包括所述目标数据的地址时,所述RAID模块从所述硬盘读取所述目标数据,并将所述目标数据返回给所述主机;
所述RAID模块接收所述主机发送的写入数据指令,所述写入数据指令包括目标数据的地址;所述RAID模块判断所述预先建立的未初始化LOG中是否包括所述目标数据的地址;当所述预先建立的未初始化LOG中包括所述目标数据的地址时,所述初始化模块删除所述目标数据的地址所对应的未初始化LOG;
其中,所述未初始化LOG还用于记录所述RAID中未被初始化的存储空间的长度。
4.根据权利要求3所述的RAID,其特征在于,当所述预先建立的未初始化LOG中未包括所述目标数据的地址时,所述RAID模块向所述硬盘写入所述目标数据。
CN201410750981.1A 2014-12-09 2014-12-09 一种raid及从其读取数据的方法 Active CN104461394B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410750981.1A CN104461394B (zh) 2014-12-09 2014-12-09 一种raid及从其读取数据的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410750981.1A CN104461394B (zh) 2014-12-09 2014-12-09 一种raid及从其读取数据的方法

Publications (2)

Publication Number Publication Date
CN104461394A CN104461394A (zh) 2015-03-25
CN104461394B true CN104461394B (zh) 2018-11-13

Family

ID=52907523

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410750981.1A Active CN104461394B (zh) 2014-12-09 2014-12-09 一种raid及从其读取数据的方法

Country Status (1)

Country Link
CN (1) CN104461394B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562388A (zh) * 2017-10-11 2018-01-09 郑州云海信息技术有限公司 一种raid初始化时的数据读取方法、装置及介质
CN112543920B (zh) * 2019-07-22 2023-02-10 华为技术有限公司 数据重构的方法、装置、计算机设备、存储介质及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5812753A (en) * 1995-10-13 1998-09-22 Eccs, Inc. Method for initializing or reconstructing data consistency within an array of storage elements
CN101329641A (zh) * 2008-06-11 2008-12-24 华中科技大学 一种磁盘阵列的数据重建方法
CN101408833A (zh) * 2007-10-10 2009-04-15 英业达股份有限公司 一种省略raid1设备的初始化同步过程的方法
CN101566924A (zh) * 2008-04-23 2009-10-28 中兴通讯股份有限公司 一种磁盘阵列的数据读写方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062605B2 (en) * 2003-04-28 2006-06-13 Lsi Logic Corporation Methods and structure for rapid background initialization of a RAID logical unit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5812753A (en) * 1995-10-13 1998-09-22 Eccs, Inc. Method for initializing or reconstructing data consistency within an array of storage elements
CN101408833A (zh) * 2007-10-10 2009-04-15 英业达股份有限公司 一种省略raid1设备的初始化同步过程的方法
CN101566924A (zh) * 2008-04-23 2009-10-28 中兴通讯股份有限公司 一种磁盘阵列的数据读写方法
CN101329641A (zh) * 2008-06-11 2008-12-24 华中科技大学 一种磁盘阵列的数据重建方法

Also Published As

Publication number Publication date
CN104461394A (zh) 2015-03-25

Similar Documents

Publication Publication Date Title
CN104461391B (zh) 一种存储设备元数据管理处理方法及系统
US9703717B2 (en) Computer system and control method
CN104699417B (zh) 数据储存装置以及其数据存取方法
CN102929748B (zh) 数据备份方法及装置
CN106528001B (zh) 一种基于非易失性存储器和软件raid的缓存系统
US9898216B2 (en) Data storage system and specific command execution method thereof
CN102682012A (zh) 一种文件系统内读写数据的方法及装置
CN103858092B (zh) 一种数据迁移方法和装置
CN104035830A (zh) 一种数据恢复方法和装置
CN107273046B (zh) 一种基于固态盘阵列的数据处理方法及系统
CN103064792A (zh) 数据写入方法及装置
US9009440B2 (en) Adjustment of data storage capacity provided by a storage system
CN104850355A (zh) 存储装置、存储系统及存储装置的地址信息处理方法
CN102096561A (zh) 分层数据存储处理方法、装置以及存储设备
CN105138469A (zh) 一种数据读写方法以及主板
CN105183374A (zh) 一种数据读写方法以及主板
CN104461394B (zh) 一种raid及从其读取数据的方法
CN109388333B (zh) 降低读命令处理延迟的方法与装置
CN110515550B (zh) 一种sata固态硬盘冷热数据分离的方法及其装置
CN103092849A (zh) 文件系统簇管理方法
CN104133750A (zh) 主机与存储设备兼容适配测试方法和系统
CN102609224B (zh) 一种独立冗余磁盘阵列系统及其初始化方法
CN103631682A (zh) 数据备份的实现方法和装置
US20210223957A1 (en) Storage apparatus and storage control method
CN104133640B (zh) 从休眠快速恢复

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant