CN102207831A - 磁盘阵列的数据读写方法及装置 - Google Patents

磁盘阵列的数据读写方法及装置 Download PDF

Info

Publication number
CN102207831A
CN102207831A CN2011101852679A CN201110185267A CN102207831A CN 102207831 A CN102207831 A CN 102207831A CN 2011101852679 A CN2011101852679 A CN 2011101852679A CN 201110185267 A CN201110185267 A CN 201110185267A CN 102207831 A CN102207831 A CN 102207831A
Authority
CN
China
Prior art keywords
read
area
data
write
carried out
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
Application number
CN2011101852679A
Other languages
English (en)
Other versions
CN102207831B (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.)
Chengdu Huawei Technology Co Ltd
Original Assignee
Huawei Symantec 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 Symantec Technologies Co Ltd filed Critical Huawei Symantec Technologies Co Ltd
Priority to CN201110185267.9A priority Critical patent/CN102207831B/zh
Publication of CN102207831A publication Critical patent/CN102207831A/zh
Application granted granted Critical
Publication of CN102207831B publication Critical patent/CN102207831B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供一种磁盘阵列的数据读写方法及装置。方法包括:根据读写指令中的地址信息,判断读写指令是否用于对硬盘组上第一区域中的数据进行读操作或写操作,每个硬盘组的存储空间被划分为第一区域和第二区域,第一区域用于为关键数据提供预定级别的冗余存储,第二区域用于存储非关键数据,第一区域和第二区域分别包含至少一个LUN;如果判断结果为是,启动预定级别的读写策略对第一区域中的数据进行读操作或写操作;如果判断结果为否,启动非预定级别的读写策略对硬盘组上第二区域中的数据进行读操作或写操作。采用本发明技术方案,可真正实现在磁盘的剩余空间中写入非关键数据内容,提高了硬盘空间的利用率,降低了存储成本。

Description

磁盘阵列的数据读写方法及装置
技术领域
本发明实施例涉及磁盘阵列的数据读写技术,尤其涉及一种磁盘阵列的数据读写方法及装置。
背景技术
独立磁盘冗余阵列(Redundant Array of Independent Disks;简称为:RAID)作为一项成熟的技术已被广泛应用于数据存储备份中。镜像独立磁盘冗余阵列RAID1(RAID LEVEL 1)是RAID的一个标准,是由两块硬盘所构成的RAID磁盘阵列,其原理就是把用户写入其中一个硬盘的数据百分之百地自动复制到另外一个硬盘上,由于对存储的数据进行百分之百的备份,因此具有高数据安全性。在较多的应用场景中,客户选择使用RAID1这种高性能、高可靠性的冗余算法来保护关键数据,例如:常用“数据保险箱”来保护操作系统(Operating System;简称为:OS)或数据库相关的数据。
随着硬盘技术的发展,单盘容量越来越大,在保护了OS和数据库等关键数据的情况下,硬盘上还剩余了大量的空闲空间。如何将这些空闲硬盘空间有效的利用起来,提高硬盘空间的利用率,降低存储成本成为用户面临的问题。
发明内容
本发明实施例提供一种磁盘阵列的数据读写方法及装置,用以解决现有技术中硬盘中剩余空间无法被有效利用的缺陷,提高磁盘阵列中硬盘空间的利用率、降低存储成本。
本发明实施例提供一种磁盘阵列的数据读写方法,包括:
根据读写指令中的地址信息,判断所述读写指令是否用于对硬盘组上第一区域中的数据进行读操作或写操作,所述磁盘阵列的每个硬盘组的存储空间预先被划分为第一区域和第二区域,所述第一区域用于为关键数据提供预定级别冗余存储,所述第二区域用于存储非关键数据,其中第一区域和第二区域分别包含至少一个预先设定的逻辑存储单元LUN,当所述磁盘阵列包含至少两个硬盘组时,所述至少两个硬盘组上的第一区域之间存在对应关系;
如果判断结果为是,启动所述预定级别的读写策略对所述第一区域中的数据进行读操作或写操作;
如果判断结果为否,启动非所述预定级别的读写策略对硬盘组上第二区域中的数据进行读操作或写操作。
本发明实施例提供一种磁盘阵列的数据读写装置,包括:
判断模块,用于根据读写指令中的地址信息,判断所述读写指令是否用于对硬盘组上第一区域中的数据进行读操作或写操作,所述磁盘阵列的每个硬盘组的存储空间预先被划分为第一区域和第二区域,所述第一区域用于为关键数据提供预定级别的冗余存储,所述第二区域用于存储非关键数据,其中第一区域和第二区域分别包含至少一个预先设定的逻辑存储单元LUN,当所述磁盘阵列包含至少两个硬盘组时,所述至少两个硬盘组上的第一区域之间存在对应关系;
第一启动模块,用于在所述判断模块的判断结果为是时,启动所述预定级别的读写策略对所述第一区域中的数据进行读操作或写操作;
第二启动模块,用于在所述判断模块的判断结果为否时,启动非所述预定级别的读写策略对硬盘组上第二区域中的数据进行读操作或写操作。
本发明实施例的磁盘阵列的数据读写方法及装置,通过将硬盘组进行区域划分,第一区域用于通过预定级别的读写策略对关键数据进行冗余存储,第二区域用于通过非预定级别的读写策略存储非关键数据。当接收到读写指令时,根据读写指令中的地址信息判断要对哪个区域进行写操作,如果是第一区域,则启动预定级别的读写策略对第一区域进行读写操作;如果是第二区域,则启动非预定级别的读写策略对硬盘组上第二区域进行读写操作,实现了在磁盘阵列的剩余空间中写入非关键数据的目的,提高了硬盘空间的利用率,降低了存储成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的磁盘阵列的数据读写方法的流程图;
图2a为本发明一实施例提供的步骤102的实施方式的流程图;
图2b为本发明一实施例提供的步骤103的实施方式的流程图;
图3为本发明一实施例提供的磁盘阵列的数据读写方法的具体实现流程图;
图4为本发明一实施例提供的磁盘阵列的数据读写装置的结构示意图;
图5为本发明另一实施例提供的磁盘阵列的数据读写装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一实施例提供的磁盘阵列的数据读写方法的流程图。如图1所示,本实施例的方法包括:
步骤101、根据读写指令中的地址信息,判断读写指令是否用于对磁盘阵列的硬盘组上第一区域中的数据进行读操作或写操作;如果判断结果为是,执行步骤102;如果判断结果为否,执行步骤103。
具体的,用户设备根据实际需求(例如有数据需要存储时)会触发读写磁盘阵列的操作。此时,用户设备会向磁盘阵列发出读写指令。磁盘阵列会接收到读写指令。
在本实施例中,磁盘阵列至少由两个硬盘组构成,每个硬盘组包括一块或多块硬盘。本实施例的磁盘阵列对其硬盘组的存储空间进行了划分,将每个硬盘组的存储空间划分为两个区域,分别为第一区域和第二区域,其中第一区域和第二区域所对应的地址信息不同。第一区域和第二区域又分别包括至少一个预先设定的逻辑存储单元(Logical Unit Number;简称:LUN),具体包括几个LUN可以视实际需求而定。第一区域是指磁盘阵列的两个硬盘组上用于通过预定级别的读写策略对关键数据进行冗余存储的区域,各个第一区域之间存在对应关系,用于实现对关键数据的冗余存储。其中,关键数据主要是指操作系统(OS)或数据库等系统数据,需要采用冗余备份的方式进行存储。例如:可以将关键数据同时存储到采用RAID1技术实现的两个硬盘组上,以实现百分百备份,但并不限于这一种冗余存储方式。第二区域是指磁盘阵列的硬盘组上用于存储非关键数据的区域,非关键数据主要是指业务数据,不需要进行冗余备份,即允许只写入一个硬盘组,而不写入其他硬盘组,即各磁盘组上的第二区域中可以存储不同的业务数据。
其中,每个读写指令都包括一个地址信息,用于标识要读写的空间位置。当磁盘阵列接收到读写指令后,磁盘阵列的数据读写装置(后续简称为数据读写装置)会获取读写指令中的地址信息,并根据读写指令中的地址信息判断该读写指令要对哪个区域进行读写操作,即判断该读写指令是否用于对第一区域进行读操作或写操作。
步骤102、启动预定级别的读写策略对第一区域中的数据进行读操作或写操作。
当数据读写装置判断出该读写指令是用于对第一区域进行读操作或写操作的读写指令时,启动预定级别的读写策略对第一区域中的数据进行读操作或者写操作。其中,预先设定了用于对第一区域中的数据进行读写操作的读写策略,这些读写策略能够实现对第一区域中的关键数据的冗余备份。在本实施例中,预定级别的读写策略可以为实现RAID1(RAID LEVEL 1)、RAID3(RAID LEVEL 3)、RAID5(RAID LEVEL 5)或RAID6(RAID LEVEL 6)等技术的读写方式。
其中,当读写指令是读指令时,直接启动预定级别的读写策略从第一区域中读取相应关键数据。当读写指令是写指令时,直接启动预定级别的读写策略向各硬盘组上第一区域中写入相同的关键数据,以实现对关键数据的冗余备份。
在此说明,如果该读写指令的上一个读写指令也是用于对第一区域进行读写操作的指令,则可以不用切换读写策略,直接继续执行所述预定级别读写策略进行读写操作即可。如果该读写指令的上一个读写指令是对第二区域进行读写操作的指令,则需要从非预定级别的读写策略切换到预定级别的读写策略之后,再进行该次读写操作。
步骤103、启动非预定级别的读写策略对磁盘阵列的硬盘组上第二区域中的数据进行读操作或写操作。
其中,第二区域包含至少一个预先设定用于存储非关键数据的LUN。
当数据读写装置判断出该读写指令是用于对第二区域进行读操作或写操作的指令时,启动非预定级别的读写策略对第二区域进行读操作或写操作。其中,在本实施例中,也预先设定了用于对第二区域进行读写操作的读写策略,主要适应于在不同硬盘组的第二区域中写入不同的业务数据,例如RAID0。本实施例中用于对第二区域进行读写操作的非预定级别的读写策略主要是指除本实施例预定级别的读写策略之外的其他读写磁盘的算法。
其中,当读写指令为读指令时,数据读写装置启动非预定级别的读写策略从第二区域中读取相应非关键数据。当读写指令为写指令时,数据读写装置启动非预定级别的读写策略向指定硬盘组上的第二区域中写入非关键数据。
在此说明,如果该读写指令的上一个读写指令也是用于对第二区域进行读操作或写操作的指令时,则可以不用切换非预定级别的读写策略,继续执行所述非预定级别的读写策略进行该次读写操作即可。如果该读写指令的上一个读写指令是用于对第一区域进行读写操作的指令时,则需要从预定级别的读写策略切换到非预定级别的读写策略,然后再启动非预定级别的读写策略进行该次读写操作。
可选地,在具体实施过程中,上述步骤可以是循环执行的,即在步骤102或步骤103执行结束后,等待接收其他读写指令,返回步骤101。
本发明实施例的磁盘阵列的数据读写方法,通过将硬盘组进行区域划分,第一区域用于通过预定级别的读写策略对关键数据实现冗余存储,第二区域用于通过非预定级别的读写策略来存储非关键数据。当接收到读写指令时,根据读写指令中的地址信息判断要对哪个区域进行读写操作,如果是第一区域,则启动预定级别的读写策略对第一区域进行读写操作;如果是第二区域,则启动非预定级别的读写策略对相应硬盘组的第二区域进行读写操作,实现了在磁盘阵列的剩余空间中写入非关键数据的目的,提高了硬盘空间的利用率,降低了存储成本。
进一步,为了避免数据读写装置在预定级别的读写策略和非预定级别的读写策略之间进行频繁的切换,本实施例提供一种步骤101的实施方式,具体的,数据读写装置接收读写指令,将接收到的读写指令存入预先设定的队列中,然后,根据读写指令中的地址信息判断读写指令是否用于对第一区域进行读写操作。进而,数据读写装置通过设定只有在队列中某一类读写指令满足预设条件时,才能根据该类读写指令进行读操作或写操作,以避免由于频繁切换读写策略导致出现系统开销过大的问题。
基于上述步骤101的实施方式,本发明一实施例提供一种步骤102的实施方式,如图2a所示,本实施例的实施方式包括以下步骤:
步骤1021、判断读写指令是否为读指令;如果判断结果为是,执行步骤1022;如果判断结果为否(即为写指令),执行步骤1024。
步骤1022、判断队列中对第一区域中的数据进行读操作的所有读指令对应的硬盘空间总和是否达到预设第一空间阈值;如果判断结果为是,即达到第一空间阈值,执行步骤1023;如果判断结果为否,即未达到第一空间阈值,则结束本次操作,执行步骤1026。
例如:假设此时队列中共有20个读写指令,其中5个读写指令是用于对第一区域进行读操作的读指令,将这5个读指令所要读取的磁盘空间的大小进行相加,相加的结果即为所有读指令对应的硬盘空间总和。
步骤1023、启动预定级别的读写策略,依次根据队列中对第一区域中的数据进行读操作的各读指令,分别对第一区域中的数据进行读操作,并在此次读写操作结束后,执行步骤1026。
当预定级别的读写策略为实现RAID1的读写方法时,步骤1023的具体实施方式包括:对第一区域中的数据进行读操作,并判断另一个硬盘组上第一区域中的数据是否正被另一写操作所修改;若另一个硬盘组上第一区域中的数据正被另一写操作所修改,则在该读操作和另一写操作结束后,根据所述对应关系对两个硬盘组上第一区域中的数据进行同步;若另一个硬盘组上第一区域中的数据未被另一写操作所修改,则在该读操作结束后结束此次操作。
对于预定级别的读写策略为非RAID1,例如RAID3、RAID5等时,步骤1023的实施方式将与RAID3、RAID5等相适应,由于RAID3、RAID5等均属于现有技术,故在此不再详细描述。
步骤1024、判断队列中对第一区域中的数据进行写操作的所有写指令对应的硬盘空间总和是否达到预设第二空间阈值;如果判断结果为是,即达到第二空间阈值,执行步骤1025;如果判断结果为否,即未达到第二空间阈值,则结束本次操作,执行步骤1026。
例如:假设此时队列中共有20个读写指令,其中5个读写指令是用于对第一区域进行写操作的写指令,将这5个写指令所要写入的磁盘空间的大小进行相加,相加的结果即为所有写指令对应的硬盘空间总和。
步骤1025、启动预定级别的读写策略,依次根据队列中对第一区域中的数据进行写操作的写指令,分别对第一区域中的数据进行写操作,并在此次读写操作结束后,执行步骤1026。
当预定级别的读写策略为RAID1时,步骤1025的具体实施方式包括:判断另一个硬盘组上第一区域中的数据是否正被另一写操作所修改;若另一个硬盘组上第一区域中的数据正被另一写操作所修改,则等待另一写操作结束后,根据所述对应关系对两个硬盘组上第一区域中的数据进行同步,并在同步后对第一区域中的数据进行写操作;若另一个硬盘组上第一区域中的数据未被另一写操作所修改,则对第一区域中的数据进行写操作。其中,在对第一区域中的数据进行写操作结束之后,还可以对两个第一区域中的数据进行同步操作,即实现对关键数据的冗余存储。
对于预定级别的读写策略为非RAID1,例如RAID3、RAID5等时,步骤1025的实施方式将与RAID3、RAID5等相适应,由于RAID3、RAID5等均属于现有技术,故在此不再详细描述。
步骤1026、等待接收其他读写指令,返回执行步骤101。
其中,本实施例的步骤101是指数据读写装置将接收到的读写指令存入队列中,然后判断读写指令是否用于对第一区域进行读操作或写操作的步骤101,之后继续执行后续步骤。
本实施例的磁盘阵列的数据读写方法,将接收到的读写指令存入设定队列,然后判断读写指令是否用于对第一区域进行读操作或写操作,并具体判断是读指令还是写指令,以确定接收到的读写指令的类别(包括对第一区域进行读操作的读指令、对第一区域进行写操作的写指令、对第二区域进行读操作的读指令、对第二区域进行写操作的写指令),当队列中同一类别的读写指令所对应硬盘空间的总和达到预设空间阈值时,再根据队列中的读写指令执行相应的读写操作,减少了在预定级别的读写策略和非预定级别的读写策略之间切换操作的次数,提高了读写效率。
基于上述步骤101的实施方式,本发明一实施例提供一种步骤103的实施方式,如图2b所示,本实施例的实施方式包括以下步骤:
步骤1031、判断读写指令是否为读指令;如果判断结果为是,执行步骤1032;如果判断结果为否,执行步骤1034。
步骤1032、判断队列中对第二区域中的数据进行读操作的所有读指令对应的硬盘空间总和是否达到预设第三空间阈值;如果判断结果为是,即达到第三空间阈值,执行步骤1033;如果判断结果为否,即未达到第三空间阈值,则结束本次操作,执行步骤1036。
例如:假设此时队列中共有20个读写指令,其中5个读写指令是用于对第二区域进行读操作的读指令,将这5个读指令所要读取的磁盘空间的大小进行相加,相加的结果即为所有读指令对应的硬盘空间总和。
步骤1033、启动非预定级别的读写策略,依次根据队列中对第二区域中的数据进行读操作的各读指令,分别对第二区域中的数据进行读操作,并在此次读写操作结束后,执行1036。
步骤1034、判断队列中对第二区域中的数据进行写操作的所有写指令对应的硬盘空间总和是否达到预设第四空间阈值;如果判断结果为是,即达到第四空间阈值,执行步骤1035;如果判断结果为否,即未达到第四空间阈值,则结束本次操作,执行步骤1036。
例如:假设此时队列中共有20个读写指令,其中5个读写指令是用于对第二区域进行写操作的写指令,将这5个写指令所要写入的磁盘空间的大小进行相加,相加的结果即为所有写指令对应的硬盘空间总和。
步骤1035、启动非预定级别的读写策略,依次根据队列中对第二区域中的数据进行写操作的写指令,分别对第二区域中的数据进行写操作,并在此次读写操作结束后,执行步骤1036。
步骤1036、等待接收其他读写指令,并返回执行步骤101。
其中,本实施例的步骤101是指数据读写装置将接收到的读写指令存入队列中,然后判断读写指令是否用于对第一区域进行读操作或写操作的步骤101,之后继续执行后续步骤。
本实施例的磁盘阵列的数据读写方法,将接收到的读写指令存入设定队列,然后判断读写指令是否用于对第一区域进行读操作或写操作,并具体判断是读指令还是写指令,以确定接收到的读写指令的类别(包括对第一区域进行读操作的读指令、对第一区域进行写操作的写指令、对第二区域进行读操作的读指令、对第二区域进行写操作的写指令),当队列中同一类别的读写指令所对应硬盘空间的总和达到预设空间阈值时,再根据队列中的读写指令执行相应的读写操作,减少了在预定级别的读写策略和非预定级别的读写策略之间切换的操作,提高了读写效率。
需要说明的是,附图2a、附图2b所示的实施方式只是附图1所示的磁盘阵列的数据读写方法的一种具体实现方式。该数据读写方法还可以采用如附图3所示实现方式:
在步骤301中,数据读写装置接收读写指令后,无需存入队列中,而是直接判断该读写指令是否用于对磁盘阵列的硬盘组上第一区域中的数据进行读操作或写操作,如果判断结果为是用于对磁盘阵列的硬盘组上第一区域中的数据进行读操作或写操作,则执行步骤302a,否则,执行303a;
步骤302a,判断等待队列中是否存在未处理的用于对磁盘阵列的硬盘组上第一区域中的数据进行读操作或写操作的读写指令,若判断结果为存在未处理的用于对磁盘阵列的硬盘组上第一区域中的数据进行读操作或写操作的读写指令,则执行步骤302b,否则执行步骤302c;
步骤302b,将步骤301中接收到的读写指令存储到等待队列中,进入步骤304;
步骤302c,直接响应步骤301中接收到的读写指令,即启动预定级别的读写策略对第一区域中的数据进行读操作或者写操作,在结束本次操作后进入步骤304;
步骤303a,判断等待队列中是否存在未处理的用于对磁盘阵列的硬盘组上第一区域或第二区域中的数据进行读操作或写操作的读写指令,若判断结果为存在未处理的用于对磁盘阵列的硬盘组上第一区域或第二区域中的数据进行读操作或写操作的读写指令,则执行步骤303b,否则,若等待队列中不存在读写指令,执行步骤303c;
步骤303b,将步骤301中接收到的读写指令存储到等待队列中,进入步骤304;
步骤303c,直接响应步骤301中接收到的读写指令,即启动非预定级别的读写策略对第二区域中的数据进行读操作或者写操作,在结束本次操作后进入步骤304。
步骤304,返回步骤301,并利用空闲时间,来处理等待队列中的读写指令,在利用空闲时间处理等待队列中的读写指令时,优先处理其中用于对磁盘阵列的硬盘组上第一区域中的数据进行读操作或写操作的读写指令。
采用如附图3所示的处理方案,能够优先处理用于对磁盘阵列的硬盘组上第一区域中的数据进行读操作或写操作的读写指令,从而保证操作系统或数据库的响应速度。
图4为本发明一实施例提供的磁盘阵列的数据读写装置的结构示意图。如图4所示,本实施例的装置包括:判断模块41、第一启动模块42和第二启动模块43。
其中,判断模块41,用于根据读写指令中的地址信息,判断读写指令是否用于对硬盘组上第一区域中的数据进行读操作或写操作。其中,磁盘阵列的每个硬盘组的存储空间预先被划分为第一区域和第二区域,第一区域用于为关键数据提供预定级别的冗余存储,第二区域用于存储非关键数据。其中,第一区域和第二区域分别包含至少一个预先设定的LUN。当磁盘阵列包含至少两个硬盘组时,至少两个硬盘组上的第一区域之间存在对应关系。第一启动模块42,与判断模块41连接,用于在判断模块41的判断结果为是时,启动预定级别的读写策略对第一区域中的数据进行读操作或写操作。第二启动模块43,与判断模块41连接,用于在判断模块41的判断结果为否时,启动非预定级别的读写策略对硬盘组上第二区域中的数据进行读操作或写操作。
本实施例的磁盘阵列的数据读写装置中各个模块可用于执行图1所示实施例的流程,其具体工作原理不再赘述,详见方法实施例的描述。
本实施例的磁盘阵列的数据读写装置,通过将硬盘组进行区域划分,第一区域用于通过预定级别的读写策略对关键数据实现冗余存储,第二区域用于通过非预定级别的读写策略来存储非关键数据,在接收到读写指令时,根据读写指令中的地址信息判断要对哪个区域进行读写操作,如果是第一区域,则启动预定级别的读写策略对第一区域进行读写操作;如果是第二区域,则启动非预定级别的读写策略对相应硬盘组的第二区域进行读写操作,实现了在磁盘阵列的剩余空间中写入非关键数据的目的,提高了硬盘空间的利用率,降低了存储成本。
图5为本发明另一实施例提供的磁盘阵列的数据读写装置的结构示意图。本实施例基于图4所示实施例实现,如图5所示,本实施例的判断模块41包括:接收单元411和判断单元412。
具体的,接收单元411,用于接收读写指令,将接收到的读写指令存入队列中。判断单元412,与接收单元411连接,用于根据接收单元411接收到的读写指令中的地址信息,判断读写指令是否用于对磁盘阵列的硬盘组上第一区域中的数据进行读操作或写操作,并将判断结果分别提供给第一启动模块42和第二启动模块43。
进一步,第一启动模块42包括:第一判断启动单元421和第二判断启动单元422。
具体的,第一判断启动单元421,用于在读写指令为读指令时,判断队列中对第一区域中的数据进行读操作的所有读指令对应的硬盘空间总和是否达到预设第一空间阈值;如果判断结果为达到第一空间阈值,启动预定级别的读写策略,依次根据队列中对第一区域中的数据进行读操作的各读指令,分别对第一区域中的数据进行读操作。另外,如果判断结果为未达到第一空间阈值,第一判断启动单元421还可以触发接收单元411等待接收其他读写指令,但接收单元411等待接收其他读写指令的操作并不仅限于第一判断启动单元421的触发。
第二判断启动单元422,用于在读写指令为写指令时,判断队列中对第一区域中的数据进行写操作的所有写指令对应的硬盘空间总和是否达到预设第二空间阈值;如果判断结果为达到第二空间阈值,启动预定级别的读写策略,依次根据队列中对第一区域中的数据进行写操作的各写指令,分别对第一区域中的数据进行写操作。另外,如果判断结果为未达到第二空间阈值,第二判断启动单元422还可以触发接收单元411等待接收其他读写指令,但接收单元411等待接收其他读写指令的操作并不仅限于第二判断启动单元422的触发。
其中,当预定级别的读写策略为实现RAID1的读写方法时,第一判断启动单元421具体用于在读写指令为读指令时,对第一区域中的数据进行读操作,并判断另一个硬盘组上第一区域中的数据是否正被另一写操作所修改;若另一个硬盘组上第一区域中的数据正被另一写操作所修改,则在该读操作和另一写操作结束后,根据对应关系对两个硬盘组上第一区域中的数据进行同步;若另一个硬盘组上第一区域中的数据未被另一写操作所修改,则在该读操作结束后结束此次操作。第二判断启动单元422具体用于在读写指令为写指令时,判断另一个硬盘组上第一区域中的数据是否正被另一写操作所修改;若另一个硬盘组上第一区域中的数据正被另一写操作所修改,则等待另一写操作结束后对两个硬盘组上第一区域中的数据进行同步,并在同步后对第一区域中的数据进行写操作;若另一个硬盘组上第一区域中的数据未被另一写操作所修改,则对第一区域中的数据进行写操作。另外,在对第一区域中的数据进行写操作结束之后,还可以对两个第一区域中的数据进行同步的操作,即实现对关键数据的冗余存储。
更进一步,第二启动模块43包括:第三判断启动单元431和第四判断启动单元432。
具体的,第三判断启动单元431,用于在读写指令为读指令时,判断队列中对第二区域中的数据进行读操作的所有读指令对应的硬盘空间总和是否达到预设第三空间阈值;如果判断结果为达到第三空间阈值,启动非预定级别的读写策略,依次根据队列中对第二区域中的数据进行读操作的各读指令,分别对第二区域中的数据进行读操作。另外,如果判断结果为未达到第三空间阈值,第三判断启动单元431还可以触发接收单元411等待接收其他读写指令,但接收单元411等待接收其他读写指令的操作并不仅限于第三判断启动单元431的触发。
第四判断启动单元432,用于在读写指令为写指令时,判断队列中对第二区域中的数据进行写操作的所有写指令对应的硬盘空间总和是否达到预设第四空间阈值;如果判断结果为达到第四空间阈值,启动非预定级别的读写策略,依次根据队列中对第二区域中的数据进行写操作的各写指令,分别对第二区域中的数据进行写操作。另外,如果判断结果为未达到第四空间阈值,第四判断启动单元432还可以触发接收单元411等待接收其他读写指令,但接收单元411等待接收其他读写指令的操作并不仅限于第四判断启动单元432的触发。
本实施例的磁盘阵列的数据读写装置的各功能单元可用于执行上述图2a、图2b和图3所示方式实施例中的相应流程,其具体工作原理不再赘述,详见方法实施例的描述。
本实施例的磁盘阵列的数据读写装置,通过设置用于存储读写指令的队列,并设定相应的空间阈值,在接收到读写指令时通过对读写指令进行类别划分,并判断同一类别的读写指令对应的硬盘空间总和是否达到指定空间阈值,只有达到指定空间阈值之后,才启动相应读写策略进行读写操作,避免了在预设级别的读写策略和非预设级别的读写策略之间进行频繁切换,避免了由于频繁切换读写策略导致出现系统开销过大的问题,提高了读写操作的效率。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种磁盘阵列的数据读写方法,其特征在于,包括:
根据读写指令中的地址信息,判断所述读写指令是否用于对硬盘组上第一区域中的数据进行读操作或写操作,所述磁盘阵列的每个硬盘组的存储空间预先被划分为第一区域和第二区域,所述第一区域用于为关键数据提供预定级别冗余存储,所述第二区域用于存储非关键数据,其中第一区域和第二区域分别包含至少一个预先设定的逻辑存储单元LUN,当所述磁盘阵列包含至少两个硬盘组时,所述至少两个硬盘组上的第一区域之间存在对应关系;
如果判断结果为是,启动所述预定级别的读写策略对所述第一区域中的数据进行读操作或写操作;
如果判断结果为否,启动非所述预定级别的读写策略对硬盘组上第二区域中的数据进行读操作或写操作。
2.根据权利要求1所述的磁盘阵列的数据读写方法,其特征在于,所述根据读写指令中的地址信息,判断所述读写指令是否用于对硬盘组上第一区域中存储的数据进行读操作或写操作,包括:
接收读写指令,将接收到的所述读写指令存入队列中;
根据所述读写指令中的地址信息,判断所述读写指令是否用于对硬盘组上第一区域中的数据进行读操作或写操作。
3.根据权利要求2所述的磁盘阵列的数据读写方法,其特征在于,所述启动所述预定级别的读写策略对所述第一区域中的数据进行读操作或写操作,包括:
当所述读写指令为读指令时,判断所述队列中对所述第一区域中的数据进行读操作的所有读指令对应的硬盘空间总和是否达到预设第一空间阈值;如果判断结果为达到所述第一空间阈值,启动所述预定级别的读写策略,依次根据所述队列中对所述第一区域中的数据进行读操作的各读指令,分别对所述第一区域中的数据进行读操作;
当所述读写指令为写指令时,判断所述队列中对所述第一区域中的数据进行写操作的所有写指令对应的硬盘空间总和是否达到预设第二空间阈值;如果判断结果为达到所述第二空间阈值,启动所述预定级别的读写策略,依次根据所述队列中对所述第一区域中的数据进行写操作的各写指令,分别对所述第一区域中的数据进行写操作。
4.根据权利要求3所述的磁盘阵列的数据读写方法,其特征在于,所述预定级别的读写策略为实现镜像独立磁盘冗余阵列RAID1技术的读写方式;
在所述读写指令为读指令时,启动所述预定级别的读写策略,根据每一个所述队列中对所述第一区域中的数据进行读操作的读指令,对所述第一区域中的数据进行读操作,包括:
对所述第一区域中的数据进行读操作,并判断另一个硬盘组上第一区域中的数据是否正被另一写操作所修改;若另一个硬盘组上第一区域中的数据正被另一写操作所修改,则在所述读操作和所述另一写操作结束后,根据所述对应关系对两个硬盘组上第一区域中的数据进行同步;若另一个硬盘组上第一区域中的数据未被另一写操作所修改,则在所述读操作结束后结束此次操作;
在所述读写指令为写指令时,启动所述预定级别的读写策略,根据每一个所述队列中对所述第一区域中的数据进行写操作的写指令,对所述第一区域中的数据进行写操作,包括:
判断另一个硬盘组上第一区域中的数据是否正被另一写操作所修改;若另一个硬盘组上第一区域中的数据正被另一写操作所修改,则等待所述另一写操作结束后,根据所述对应关系对两个硬盘组上第一区域中的数据进行同步,并在同步后对所述第一区域中的数据进行写操作;若另一个硬盘组上第一区域中的数据未被另一写操作所修改,则对所述第一区域中的数据进行写操作。
5.根据权利要求2所述的磁盘阵列的数据读写方法,其特征在于,所述启动非所述预定级别的读写策略对所述磁盘阵列的硬盘组上第二区域中的数据进行读操作或写操作,包括:
当所述读写指令为读指令时,判断所述队列中对所述第二区域中的数据进行读操作的所有读指令对应的硬盘空间总和是否达到预设第三空间阈值;如果判断结果为达到所述第三空间阈值,启动非所述预定级别的读写策略,依次根据所述队列中对所述第二区域中的数据进行读操作的各读指令,分别对所述第二区域中的数据进行读操作;
当所述读写指令为写指令时,判断所述队列中对所述第二区域中的数据进行写操作的所有写指令对应的硬盘空间总和是否达到预设第四空间阈值;如果判断结果为达到所述第四空间阈值,启动非所述预定级别的读写策略,依次根据所述队列中对所述第二区域中的数据进行写操作的各写指令,分别对所述第二区域中的数据进行写操作。
6.一种磁盘阵列的数据读写装置,其特征在于,包括:
判断模块,用于根据读写指令中的地址信息,判断所述读写指令是否用于对硬盘组上第一区域中的数据进行读操作或写操作,所述磁盘阵列的每个硬盘组的存储空间预先被划分为第一区域和第二区域,所述第一区域用于为关键数据提供预定级别的冗余存储,所述第二区域用于存储非关键数据,其中第一区域和第二区域分别包含至少一个预先设定的逻辑存储单元LUN,当所述磁盘阵列包含至少两个硬盘组时,所述至少两个硬盘组上的第一区域之间存在对应关系;
第一启动模块,用于在所述判断模块的判断结果为是时,启动所述预定级别的读写策略对所述第一区域中的数据进行读操作或写操作;
第二启动模块,用于在所述判断模块的判断结果为否时,启动非所述预定级别的读写策略对所述硬盘组上第二区域中的数据进行读操作或写操作。
7.根据权利要求6所述的磁盘阵列的数据读写装置,其特征在于,所述判断模块包括:
接收单元,用于接收读写指令,将接收到的读写指令存入队列中;
判断单元,用于根据所述读写指令中的地址信息,判断所述读写指令是否用于对硬盘组上第一区域中的数据进行读操作或写操作。
8.根据权利要求7所述的磁盘阵列的数据读写装置,其特征在于,所述第一启动模块包括:
第一判断启动单元,用于在所述读写指令为读指令时,判断所述队列中对所述第一区域中的数据进行读操作的所有读指令对应的硬盘空间总和是否达到预设第一空间阈值;如果判断结果为达到所述第一空间阈值,启动所述预定级别的读写策略,依次根据所述队列中对所述第一区域中的数据进行读操作的各读指令,分别对所述第一区域中的数据进行读操作;
第二判断启动单元,用于在所述读写指令为写指令时,判断所述队列中对所述第一区域中的数据进行写操作的所有写指令对应的硬盘空间总和是否达到预设第二空间阈值;如果判断结果为达到所述第二空间阈值,启动所述预定级别的读写策略,依次根据所述队列中对所述第一区域中的数据进行写操作的各写指令,分别对所述第一区域中的数据进行写操作。
9.根据权利要求8所述的磁盘阵列的数据读写装置,其特征在于,所述预定级别的读写策略为实现镜像独立磁盘冗余阵列RAID1技术的读写方式;
所述第一判断启动单元具体用于在所述读写指令为读指令时,对所述第一区域中的数据进行读操作,并判断另一个硬盘组上第一区域中的数据是否正被另一写操作所修改;若另一个硬盘组上第一区域中的数据正被另一写操作所修改,则在所述读操作和所述另一写操作结束后对两个硬盘组上第一区域中的数据进行同步;若另一个硬盘组上第一区域中的数据未被另一写操作所修改,则在所述读操作结束后结束此次操作;
所述第二判断启动单元具体用于在所述读写指令为写指令时,判断另一个硬盘组上第一区域中的数据是否正被另一写操作所修改;若另一个硬盘组上第一区域中的数据正被另一写操作所修改,则等待所述另一写操作结束后对两个硬盘组上第一区域中的数据进行同步,并在同步后对所述第一区域中的数据进行写操作;若另一个硬盘组上第一区域中的数据未被另一写操作所修改,则对所述第一区域中的数据进行写操作。
10.根据权利要求7所述的磁盘阵列的数据读写装置,其特征在于,所述第二启动模块包括:
第三判断启动单元,用于在所述读写指令为读指令时,判断所述队列中对所述第二区域中的数据进行读操作的所有读指令对应的硬盘空间总和是否达到预设第三空间阈值;如果判断结果为达到所述第三空间阈值,启动非所述预定级别的读写策略,依次根据所述队列中对所述第二区域中的数据进行读操作的各读指令,分别对所述第二区域中的数据进行读操作;
第二判断启动单元,用于在所述读写指令为写指令时,判断所述队列中对所述第二区域中的数据进行写操作的所有写指令对应的硬盘空间总和是否达到预设第四空间阈值;如果判断结果为达到所述第四空间阈值,启动非所述预定级别的读写策略,依次根据所述队列中对所述第二区域中的数据进行写操作的各写指令,分别对所述第二区域中的数据进行写操作。
CN201110185267.9A 2011-07-04 2011-07-04 磁盘阵列的数据读写方法及装置 Active CN102207831B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110185267.9A CN102207831B (zh) 2011-07-04 2011-07-04 磁盘阵列的数据读写方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110185267.9A CN102207831B (zh) 2011-07-04 2011-07-04 磁盘阵列的数据读写方法及装置

Publications (2)

Publication Number Publication Date
CN102207831A true CN102207831A (zh) 2011-10-05
CN102207831B CN102207831B (zh) 2013-08-07

Family

ID=44696690

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110185267.9A Active CN102207831B (zh) 2011-07-04 2011-07-04 磁盘阵列的数据读写方法及装置

Country Status (1)

Country Link
CN (1) CN102207831B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103269359A (zh) * 2013-04-28 2013-08-28 福州新锐同创电子科技有限公司 一种方便扩容的多路径高效存储方法
CN105701424A (zh) * 2014-11-29 2016-06-22 华为技术有限公司 一种创建存储单元的方法和控制器
CN109002266A (zh) * 2018-08-29 2018-12-14 郑州云海信息技术有限公司 一种在传统raid组上提升元数据可靠性的方法
CN114707147A (zh) * 2022-06-05 2022-07-05 荣耀终端有限公司 业务请求处理方法及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1281560A (zh) * 1997-10-08 2001-01-24 西加特技术有限责任公司 混合数据存储和重建系统以及用于数据存储装置的方法
JP2008198102A (ja) * 2007-02-15 2008-08-28 Dainippon Screen Mfg Co Ltd データ処理システム、データ記憶装置、ハードディスク装置、およびデータ記憶装置におけるデータ管理方法
CN102081509A (zh) * 2009-11-30 2011-06-01 英业达股份有限公司 Raid1设备的读取方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1281560A (zh) * 1997-10-08 2001-01-24 西加特技术有限责任公司 混合数据存储和重建系统以及用于数据存储装置的方法
JP2008198102A (ja) * 2007-02-15 2008-08-28 Dainippon Screen Mfg Co Ltd データ処理システム、データ記憶装置、ハードディスク装置、およびデータ記憶装置におけるデータ管理方法
CN102081509A (zh) * 2009-11-30 2011-06-01 英业达股份有限公司 Raid1设备的读取方法及装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103269359A (zh) * 2013-04-28 2013-08-28 福州新锐同创电子科技有限公司 一种方便扩容的多路径高效存储方法
CN103269359B (zh) * 2013-04-28 2015-12-09 福州新锐同创电子科技有限公司 一种方便扩容的多路径高效存储方法
CN105701424A (zh) * 2014-11-29 2016-06-22 华为技术有限公司 一种创建存储单元的方法和控制器
CN105701424B (zh) * 2014-11-29 2018-11-06 华为技术有限公司 一种创建存储单元的方法和控制器
CN109002266A (zh) * 2018-08-29 2018-12-14 郑州云海信息技术有限公司 一种在传统raid组上提升元数据可靠性的方法
CN114707147A (zh) * 2022-06-05 2022-07-05 荣耀终端有限公司 业务请求处理方法及电子设备

Also Published As

Publication number Publication date
CN102207831B (zh) 2013-08-07

Similar Documents

Publication Publication Date Title
US7330932B2 (en) Disk array with spare logic drive created from space physical drives
CN100570546C (zh) 使用第一和第二存储装置的磁盘加速
CN102012852B (zh) 一种增量写快照的实现方法
US20090157756A1 (en) File System For Storing Files In Multiple Different Data Storage Media
US20040030831A1 (en) Manipulating data in a data storage device using an auxiliary memory device
CN1938670A (zh) 双媒体存储装置
CN101625897B (zh) 用于快闪存储器的数据写入方法、储存系统与控制器
US11056144B2 (en) System and method for write protecting portions of magnetic tape storage media
CN102326141A (zh) Raid配置信息的处理方法及装置、raid控制器
CN102576293A (zh) 固态存储设备和分层存储系统中的数据管理
CN102096561B (zh) 分层数据存储处理方法、装置以及存储设备
CN102207831B (zh) 磁盘阵列的数据读写方法及装置
US20060161823A1 (en) Disk array system configuring a logical disk drive having a redundancy function
CN101615410B (zh) 盘存储装置和程序
CN102298543A (zh) 一种存储器管理方法和装置
US20100115310A1 (en) Disk array apparatus
CN100367181C (zh) 廉价磁盘冗余阵列中硬盘重新识别系统及其方法
CN103019623A (zh) 存储盘处理方法及装置
US20050033933A1 (en) Systems and methods for modifying disk drive firmware in a raid storage system
KR101996641B1 (ko) 메모리 오버레이 장치 및 방법
CN102591746A (zh) 数据重构方法和存储设备
CN103678025A (zh) 一种磁盘阵列中的磁盘故障处理方法
CN106095330A (zh) 一种元数据的存储方法和装置
CN102508743B (zh) Linux文件系统的多点备份和实时保护方法
CN102262657B (zh) 多媒体数据存储方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Applicant after: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.

Address before: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Applicant before: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES Co.,Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES CO., LTD. TO: HUAWEI DIGITAL TECHNOLOGY (CHENGDU) CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220908

Address after: No. 1899 Xiyuan Avenue, high tech Zone (West District), Chengdu, Sichuan 610041

Patentee after: Chengdu Huawei Technologies Co.,Ltd.

Address before: 611731 Qingshui River District, Chengdu hi tech Zone, Sichuan, China

Patentee before: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.