CN116027990A - 一种raid卡及其数据访问方法、系统及存储介质 - Google Patents

一种raid卡及其数据访问方法、系统及存储介质 Download PDF

Info

Publication number
CN116027990A
CN116027990A CN202310318168.6A CN202310318168A CN116027990A CN 116027990 A CN116027990 A CN 116027990A CN 202310318168 A CN202310318168 A CN 202310318168A CN 116027990 A CN116027990 A CN 116027990A
Authority
CN
China
Prior art keywords
raid array
raid
data
stripe
array
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
CN202310318168.6A
Other languages
English (en)
Other versions
CN116027990B (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202310318168.6A priority Critical patent/CN116027990B/zh
Publication of CN116027990A publication Critical patent/CN116027990A/zh
Application granted granted Critical
Publication of CN116027990B publication Critical patent/CN116027990B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种RAID卡及其数据访问方法、系统及存储介质,应用于存储技术领域,包括:判断第一RAID阵列的剩余空间大小是否超过第一阈值;如果是,则选取第二RAID阵列中至少一个条带的数据迁移至第一RAID阵列中;迁移后在第一映射表中添加对应的记录,以表示条带迁移前后的地址信息之间的映射关系;在接收到数据访问请求时,基于数据访问请求中的访问地址信息以及第一映射表进行数据访问;其中,第一RAID阵列和第二RAID阵列位于同一RAID卡中,且第一RAID阵列的访问速度高于第二RAID阵列的访问速度。应用本申请的方案,能够有效地发挥不同的RAID阵列的优势,提高访问速度。

Description

一种RAID卡及其数据访问方法、系统及存储介质
技术领域
本发明涉及存储技术领域,特别是涉及一种RAID卡及其数据访问方法、系统及存储介质。
背景技术
随着计算机、大数据以及人工智能的快速发展,网络中需要处理的数据快速增长。作为数据的主要存储端,企业的存储服务器系统将会面临重大挑战,要求存储服务器系统能够存储海量的数据,并且可以更好地向外提供数据服务。
RAID(Redundant Arrays of Independent Disks,独立磁盘冗余阵列)卡是存储服务器中的重要组成部分,它通过将硬盘集中管理,创建为多种类别的RAID阵列,最终在RAID阵列上创建卷以对外使用。当前技术发展处于HDD(Hard Disk Drive,机械硬盘)和SSD(Solid State Disk,固态硬盘)交替的年代,SSD盘拥有更快的访问速度,但是成本较高,并且由于留存的HDD盘也是巨量的,因此目前企业的存储服务器中既有HDD盘也有SSD盘。
目前的RAID卡在创建RAID阵列时,同一个RAID阵列只能够使用相同介质规格的存储盘,即同一个RAID阵列中不能够既有SSD盘又有HDD盘。这是因为SSD盘和HDD盘的读写速度相差较大,如果一起创建阵列,最终的访问速度还是会靠近最慢的盘的访问速度,造成SSD盘性能的浪费。因此目前的RAID卡中,在创建RAID阵列时,SSD盘单独组阵列,HDD盘单独组阵列。SSD盘组成的阵列可以向外提供更快的读写访问。HDD盘的RAID阵列读写访问速度则差很多,同等访问延迟要求下对外提供的服务会少很多。因此,虽然利用了已有的HDD盘避免了浪费,减少了存储开销,但是向外提供的数据服务是大打折扣的。
综上所述,如何更有效地发挥不同的RAID阵列的优势,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种RAID卡及其数据访问方法、系统及存储介质,以有效地发挥不同的RAID阵列的优势。
为解决上述技术问题,本发明提供如下技术方案:
一种RAID卡的数据访问方法,包括:
判断第一RAID阵列的剩余空间大小是否超过第一阈值;
如果是,则选取第二RAID阵列中至少一个条带的数据迁移至所述第一RAID阵列中;
在将所述第二RAID阵列中任一条带的数据迁移至所述第一RAID阵列之后,在第一映射表中添加对应的记录,以表示该条带迁移之前在所述第二RAID阵列中的地址信息,与该条带迁移之后在所述第一RAID阵列中的地址信息之间的映射关系;
在接收到数据访问请求时,基于所述数据访问请求中的访问地址信息以及所述第一映射表进行数据访问;
其中,所述第一RAID阵列和所述第二RAID阵列位于同一RAID卡中,且所述第一RAID阵列的访问速度高于所述第二RAID阵列的访问速度。
优选的,从所述第二RAID阵列中选取的迁移至所述第一RAID阵列的任一条带,均为具有热标记的条带,以表示该条带存储的数据为热数据。
优选的,所述选取第二RAID阵列中至少一个条带的数据迁移至所述第一RAID阵列中,包括:
判断所述第二RAID阵列中具有热标记的条带数量是否超过第一数量值k;其中,k为正整数;
如果是,则从第二RAID阵列具有热标记的条带中选取出k个条带,并将选取的k个条带的数据迁移至所述第一RAID阵列中;
如果否,则将所述第二RAID阵列中具有热标记的各个条带的数据迁移至所述第一RAID阵列中。
优选的,所述从第二RAID阵列具有热标记的条带中选取出k个条带,并将选取的k个条带的数据迁移至所述第一RAID阵列中,包括:
从第二RAID阵列具有热标记的条带中随机选取出k个条带,并将选取的k个条带的数据迁移至所述第一RAID阵列中。
优选的,所述从第二RAID阵列具有热标记的条带中选取出k个条带,并将选取的k个条带的数据迁移至所述第一RAID阵列中,包括:
从第二RAID阵列具有热标记的条带中,按照指定编号顺序选取出k个条带,并将选取的k个条带的数据迁移至所述第一RAID阵列中。
优选的,还包括:
针对所述第二RAID阵列中任一条带,当该条带的访问频率高于设定的第一访问频率阈值时,将该条带的标记更新为热标记,以表示该条带存储的数据为热数据;
针对所述第二RAID阵列中任一条带,当该条带的访问频率不高于所述第一访问频率阈值时,将该条带的标记更新为冷标记,以表示该条带存储的数据为冷数据。
优选的,所述选取第二RAID阵列中至少一个条带的数据迁移至所述第一RAID阵列中,包括:
在每天的设定时间段,选取第二RAID阵列中至少一个条带的数据迁移至所述第一RAID阵列中;
其中,在设定的所述时间段内统计的针对所述RAID卡的访问频率,低于在全天内统计的针对所述RAID卡的访问频率。
优选的,还包括:
在将所述第二RAID阵列中任一条带的数据迁移至所述第一RAID阵列之后,在第二映射表中添加对应的记录,以表示该条带迁移之后在所述第一RAID阵列中的地址信息,与该条带迁移之前在所述第二RAID阵列中的地址信息之间的映射关系;
判断所述第一RAID阵列的剩余空间大小是否小于第二阈值;
如果是,则基于所述第二映射表,将所述第一RAID阵列中存储的源自所述第二RAID阵列的一个或者多个条带的数据迁移回所述第二RAID阵列,直到所述第一RAID阵列的剩余空间大小不小于所述第二阈值;
在将所述第一RAID阵列中任一条带的数据迁移回所述第二RAID阵列之后,将所述第二映射表和所述第一映射表中的相应记录进行删除;
其中,所述第二阈值小于所述第一阈值。
优选的,在判断出所述第一RAID阵列的剩余空间大小小于第二阈值之后,还包括:
判断所述RAID卡当前是否为设定的非繁忙状态;
如果为所述非繁忙状态,则执行所述基于所述第二映射表,将所述第一RAID阵列中存储的源自所述第二RAID阵列的一个或者多个条带的数据迁移回所述第二RAID阵列,直到所述第一RAID阵列的剩余空间大小不小于所述第二阈值的操作;
如果不为所述非繁忙状态,则等待所述RAID卡变为所述非繁忙状态之后,执行所述基于所述第二映射表,将所述第一RAID阵列中存储的源自所述第二RAID阵列的一个或者多个条带的数据迁移回所述第二RAID阵列,直到所述第一RAID阵列的剩余空间大小不小于所述第二阈值的操作。
优选的,所述第二映射表为键值形式的映射表,且所述第二映射表中的key为条带迁移之后在所述第一RAID阵列中的地址信息,所述第二映射表中的value为条带迁移之前在所述第二RAID阵列中的地址信息;
所述第一映射表为键值形式的映射表,且所述第一映射表中的key为条带迁移之前在所述第二RAID阵列中的地址信息,所述第一映射表中的value为条带迁移之后在所述第一RAID阵列中的地址信息。
优选的,所述第二映射表中的key具体为所述第一RAID阵列的ID,以及条带迁移之后在所述第一RAID阵列中的逻辑地址信息;所述第二映射表中的value具体为所述第二RAID阵列的ID,以及条带迁移之前在所述第二RAID阵列中的逻辑地址信息;
所述第一映射表中的key具体为所述第二RAID阵列的ID,以及条带迁移之前在所述第二RAID阵列中的逻辑地址信息;所述第一映射表中的value具体为所述第一RAID阵列的ID,以及条带迁移之后在所述第一RAID阵列中的逻辑地址信息。
优选的,还包括:
在将所述第二RAID阵列中任一条带的数据迁移至所述第一RAID阵列之后,对该条带的访问频率进行统计,并且当统计值连续a次低于设定的第二访问频率阈值时,将该条带的标记设置为冷标记,以表示该条带存储的数据为冷数据,并基于所述第二映射表,将该条带迁移回所述第二RAID阵列;
其中,a为正整数。
优选的,所述在接收到数据访问请求时,基于所述数据访问请求中的访问地址信息以及所述第一映射表进行数据访问,包括:
在接收到数据访问请求时,判断所述数据访问请求中的访问地址信息在所述第一映射表中是否存在;
如果是,则通过所述数据访问请求中的访问地址信息以及所述第一映射表,确定出所述数据访问请求所指向的数据在所述第一RAID阵列中的地址信息,并对所述第一RAID阵列进行数据访问;
如果否,则通过所述数据访问请求中的访问地址信息进行数据访问。
优选的,所述第一RAID阵列的单个条带大小与所述第二RAID阵列的单个条带大小相同,所述第一RAID阵列的单个条带所包括的磁盘数量与所述第二RAID阵列的单个条带所包括的磁盘数量相同。
优选的,还包括:
接收阈值调整指令,并根据所述阈值调整指令调整所述第一阈值的取值。
优选的,在判断出所述第一RAID阵列的剩余空间大小超过第一阈值之后,还包括:
将第3 RAID阵列至第N RAID阵列中的若干个条带的数据迁移至所述第一RAID阵列中,直至所述第3 RAID阵列至所述第N RAID阵列中具有热标记的条带均被迁移完毕,或者所述第一RAID阵列的剩余空间大小不超过所述第一阈值;
在将所述第3 RAID阵列至所述第N RAID阵列中任一条带的数据迁移至所述第一RAID阵列之后,在第一映射表中添加对应的记录,以表示该条带迁移之前在相应的RAID阵列中的地址信息,与该条带迁移之后在所述第一RAID阵列中的地址信息之间的映射关系;
其中,N为不小于3的正整数,所述第一RAID阵列、所述第3 RAID阵列至所述第NRAID阵列均位于同一所述RAID卡中,且所述第3 RAID阵列至第N RAID阵列的访问速度均低于所述第一RAID阵列的访问速度。
优选的,所述第3 RAID阵列至所述第N RAID阵列均为由HDD硬盘构成的RAID阵列,所述第一RAID阵列为由SSD硬盘构成的RAID阵列。
一种RAID卡的数据访问系统,包括:
迁移判断模块,用于判断第一RAID阵列的剩余空间大小是否超过第一阈值;如果是,则触发迁移执行模块;
所述迁移执行模块,用于选取第二RAID阵列中至少一个条带的数据迁移至所述第一RAID阵列中;
第一映射表管理模块,用于在所述迁移执行模块将所述第二RAID阵列中任一条带的数据迁移至所述第一RAID阵列之后,在第一映射表中添加对应的记录,以表示该条带迁移之前在所述第二RAID阵列中的地址信息,与该条带迁移之后在所述第一RAID阵列中的地址信息之间的映射关系;
访问执行模块,用于在接收到数据访问请求时,基于所述数据访问请求中的访问地址信息以及所述第一映射表进行数据访问;
其中,所述第一RAID阵列和所述第二RAID阵列位于同一RAID卡中,且所述第一RAID阵列的访问速度高于所述第二RAID阵列的访问速度。
一种RAID卡,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如上述所述的RAID卡的数据访问方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的RAID卡的数据访问方法的步骤。
应用本发明实施例所提供的技术方案,考虑到在传统的RAID卡中,同一个RAID阵列只能够使用相同介质规格的存储盘,并且不同的RAID阵列之间基本无交互,只有在做整体迁移的时候两个RAID阵列之间才会有数据流转。
对此,本申请的方案中,会对第一RAID阵列和第二RAID阵列做关联处理,具体的,判断第一RAID阵列的剩余空间大小是否超过第一阈值,如果超过第一阈值,说明第一RAID阵列还有充足的剩余空间。本申请则会选取第二RAID阵列中至少一个条带的数据迁移至第一RAID阵列中,使得迁移后的数据是由第一RAID阵列对外提供服务。由于第一RAID阵列的访问速度高于第二RAID阵列的访问速度,因此,将第二RAID阵列中的数据迁移至第一RAID阵列之后,既不会影响到第一RAID阵列本身的数据服务,又能够在一定程度上提高第二RAID阵列的访问速度,因为访问原本存储在第二RAID阵列中的某些数据时,在数据迁移之后,是通过第一RAID阵列实现这些数据的访问,因此访问速度更快。也就是说,本申请在第一RAID阵列的剩余空间充足时,使用第一RAID阵列作为第二RAID阵列的影子阵列对外提供服务。当然,为了保障迁移后的条带中的数据能够被有效访问,在迁移之后,需要在第一映射表中添加对应的记录,以表示该条带迁移之前在第二RAID阵列中的地址信息,与该条带迁移之后在第一RAID阵列中的地址信息之间的映射关系,使得在接收到数据访问请求时,可以基于数据访问请求中的访问地址信息以及第一映射表实现数据访问。
综上所述,本申请的方案能够有效地发挥不同的RAID阵列的优势,在第一RAID阵列的剩余空间充足时,使用第一RAID阵列作为第二RAID阵列的影子阵列对外提供服务,既不会影响到第一RAID阵列本身的数据服务,又能够在一定程度上提高第二RAID阵列的访问速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明中一种RAID卡的数据访问方法的实施流程图;
图2为本发明中一种具体实施方式第二RAID阵列向第一RAID阵列迁移数据的示意图;
图3为本发明中一种具体实施方式第二RAID阵列和第3RAID阵列向第一RAID阵列迁移数据的示意图;
图4为本发明中一种RAID卡的数据访问系统的结构示意图;
图5为本发明中一种RAID卡的结构示意图;
图6为本发明中一种计算机可读存储介质的结构示意图。
具体实施方式
本发明的核心是提供一种RAID卡的数据访问方法,考虑到同一个RAID阵列只能够使用相同介质规格的存储盘构成,而传统的RAID卡中,不同的RAID阵列之间基本无交互,只有在做整体迁移的时候两个RAID阵列之间才会有数据流转,即传统的RAID卡中,SSD阵列和HDD阵列之间基本无数据交互。对此,为了能够有效地发挥不同的RAID阵列的优势,本申请的方案中,在第一RAID阵列的剩余空间充足时,使用第一RAID阵列作为第二RAID阵列的影子阵列对外提供服务,既不会影响到第一RAID阵列本身的数据服务,又能够在一定程度上提高第二RAID阵列的访问速度。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明中一种RAID卡的数据访问方法的实施流程图,该RAID卡的数据访问方法可以包括以下步骤:
步骤S101:判断第一RAID阵列的剩余空间大小是否超过第一阈值。如果是,则执行步骤S102。
具体的,由于第一RAID阵列的剩余空间会不断发生变动,因此,通常可以周期性地判断第一RAID阵列的剩余空间大小是否超过第一阈值。
第一阈值的具体取值可以根据需要进行设定,并且不同场合中,对于第一阈值的取值需求不同,因此,可以根据需要进行第一阈值的取值调整。例如在本发明的一种具体实施方式中,还可以包括:接收阈值调整指令,并根据阈值调整指令调整第一阈值的取值,以保障第一阈值的取值灵活性。
此外,在实际应用中,在设定第一阈值的取值时,实现方式有多种,根据需要进行选取即可,例如可以根据经验总结,设置1个合适的数值作为第一阈值,又如,可以基于第一RAID阵列的总存储空间大小,按照设定的比例来计算出1个合适数值作为第一阈值取值。
步骤S102:选取第二RAID阵列中至少一个条带的数据迁移至第一RAID阵列中。
不同RAID卡之间的数据不便实现迁移,本申请描述的第一RAID阵列和第二RAID阵列位于同一RAID卡中。
判断出第一RAID阵列的剩余空间超过了第一阈值时,说明第一RAID阵列还剩余了充足的存储空间,这些存储空间并未被有效利用,考虑到传统的RAID卡中,不同性能的RAID阵列之间几乎不存在数据交互,因此,本申请的方案中,当第一RAID阵列还剩余了充足的存储空间时,会选择将第二RAID阵列中至少一个条带的数据迁移至第一RAID阵列中。
由于第一RAID阵列的访问速度高于第二RAID阵列的访问速度,因此,在第一RAID阵列中具有充足的剩余空间时,将第二RAID阵列中的数据迁移至第一RAID阵列之后,既不会影响到第一RAID阵列本身的数据服务,又能够在一定程度上提高第二RAID阵列的访问速度,因为在迁移之后,需要访问原本存储在第二RAID阵列的某些数据时,由于将这些数据迁移到了第一RAID阵列中,使得现在是通过第一RAID阵列实现这些数据的访问,因此访问速度更快。
在迁移数据时,是以条带为迁移单位,即,从第二RAID阵列中选取出1个或者多个条带的数据进行迁移,当然,具体的选取方式可以有多种。
例如,在本发明的一种具体实施方式中,从第二RAID阵列中选取的迁移至第一RAID阵列的任一条带,均为具有热标记的条带,以表示该条带存储的数据为热数据。
该种实施方式中,考虑到将第二RAID阵列中的条带迁移至第一RAID阵列时,如果是将存储热数据的条带进行迁移,会有利于提高迁移收益,即,对于需要频繁访问的数据,如果是由第一RAID阵列来提供访问服务,相较于由第二RAID阵列来提供访问服务,可以大幅提示访问效率,而对于不需要频繁访问的冷数据,则可以继续存储在第二RAID阵列中,以避免对于第一RAID阵列的占用。
由于迁移时是以条带为单位实现迁移,因此该种实施方式中进行冷热数据的区分时,也是以条带为单位进行区分,即如果条带的标记是热标记,则该条带中存储的数据均视为是热数据。反之如果条带的标记是冷标记,则该条带中存储的数据均视为是冷数据。在实际应用中,条带的冷热标记可以通过bitmap(位图)等方式来记录。
此外,判定条带存储的数据是否是热数据,具体实现方式也有多种,例如一种较为方便的实施方式便是对条带的访问频率进行统计,从而确定该条带的标记,即在本发明的一种具体实施方式中,还可以包括:
针对第二RAID阵列中任一条带,当该条带的访问频率高于设定的第一访问频率阈值时,将该条带的标记更新为热标记,以表示该条带存储的数据为热数据;
针对第二RAID阵列中任一条带,当该条带的访问频率不高于第一访问频率阈值时,将该条带的标记更新为冷标记,以表示该条带存储的数据为冷数据。
该种实施方式中,会对条带的访问频率进行计算,以某个条带为例,统计在一定时长内针对该条带的总访问次数,将总访问次数除以这一段时长便可以得到条带的访问频率。
如果条带的访问频率高于设定的第一访问频率阈值,便说明该条带存储的数据为热数据,可以将该条带的标记更新为热标记,否则说明该条带存储的数据为冷数据,可以将该条带的标记更新为冷标记。
此外可以理解的是,由于条带的访问频率可能发生变化,因此实际应用中,可以周期性地对第二RAID阵列中的各个条带的标记进行更新。
步骤S103:在将第二RAID阵列中任一条带的数据迁移至第一RAID阵列之后,在第一映射表中添加对应的记录,以表示该条带迁移之前在第二RAID阵列中的地址信息,与该条带迁移之后在第一RAID阵列中的地址信息之间的映射关系。
由于本申请的方案中,将第二RAID阵列中部分条带的数据迁移至第一RAID阵列,因此,对于这些发生了迁移的数据,便需要由第一RAID阵列提供服务。
为了能够有效地访问到这些发生了迁移的数据,本申请的方案中,使用第一映射表中来实现地址映射,即,将第二RAID阵列中某一个条带的数据迁移至第一RAID阵列之后,便需要在第一映射表中添加1条对应的记录,来表示该条带迁移之前在第二RAID阵列中的地址信息,与该条带迁移之后在第一RAID阵列中的地址信息之间的映射关系。
例如在图2的实施方式中,将第二RAID阵列中条带9的数据迁移至第一RAID阵列,迁移之后,这些数据作为第一RAID阵列中的条带8,则第一映射表中便需要记录下第二RAID阵列中条带9的地址信息,与第一RAID阵列中的条带8的地址信息之间的映射关系。
步骤S104:在接收到数据访问请求时,基于数据访问请求中的访问地址信息以及第一映射表进行数据访问。
在接收到数据访问请求时,需要基于数据访问请求中的访问地址信息以及第一映射表进行数据访问,例如在本发明的一种具体实施方式中,步骤S104可以具体包括:
在接收到数据访问请求时,判断数据访问请求中的访问地址信息在第一映射表中是否存在;
如果是,则通过数据访问请求中的访问地址信息以及第一映射表,确定出数据访问请求所指向的数据在第一RAID阵列中的地址信息,并对第一RAID阵列进行数据访问;
如果否,则通过数据访问请求中的访问地址信息进行数据访问。
该种实施方式考虑到,如果数据访问请求中的访问地址信息在第一映射表中存在,说明数据访问请求所指向的数据已经被迁移到了第一RAID阵列中,因此,可以通过数据访问请求中的访问地址信息,按照第一映射表提供的映射关系,确定出数据访问请求所指向的数据在第一RAID阵列中的地址信息,进而据此对第一RAID阵列进行数据访问。
反之,如果数据访问请求中的访问地址信息在第一映射表中不存在,说明数据访问请求所指向的数据没有被迁移,则直接通过数据访问请求中的访问地址信息,在原本的RAID阵列中进行数据访问即可。
在本发明的一种具体实施方式中,步骤S102:可以具体包括:
步骤一:判断第二RAID阵列中具有热标记的条带数量是否超过第一数量值k;其中,k为正整数;
如果是,则执行步骤二:从第二RAID阵列具有热标记的条带中选取出k个条带,并将选取的k个条带的数据迁移至第一RAID阵列中;
如果否,则执行步骤三:将第二RAID阵列中具有热标记的各个条带的数据迁移至第一RAID阵列中。
该种实施方式考虑到,第一RAID阵列存储空间有限,并且部分类型的数据会被指定存储在第一RAID阵列中,此外在部分场合中,除了第二RAID阵列之外,其他RAID阵列也可能向第一RAID阵列迁移数据,因此,不能让第二RAID阵列一次性迁移过多的数据。
对此,该种实施方式中会判断第二RAID阵列中具有热标记的条带数量是否超过第一数量值k。如果超过了第一数量值k,说明第二RAID阵列中具有较多的热数据,则该种实施方式中只会从具有热标记的各个条带中选取出k个条带实现迁移,以避免第二RAID阵列单次迁移过多的数据。当然,如果没有超过第一数量值k,则可以将第二RAID阵列中具有热标记的各个条带的数据均迁移至第一RAID阵列。
进一步的,在本发明的一种具体实施方式中,上述步骤二可以具体包括:
从第二RAID阵列具有热标记的条带中随机选取出k个条带,并将选取的k个条带的数据迁移至第一RAID阵列中。
该种实施方式考虑到,如果第二RAID阵列中具有热标记的条带数量超过了第一数量值k,则选取出k个条带的具体方式有多种,例如一种较为方便的实现方式便是随机选取出k个条带。
又如,在本发明的一种具体实施方式中,上述步骤二可以具体包括:
从第二RAID阵列具有热标记的条带中,按照指定编号顺序选取出k个条带,并将选取的k个条带的数据迁移至第一RAID阵列中。
该种实施方式考虑到,由于条带具有编号,因此按照指定编号顺序选取出k个条带,在实现上也较为方便,例如指定编号顺序可以具体为按照条带编号从大到小的顺序,或者是按照条带编号从小到大的顺序。
当然,其他实施方式中还可以有其他选取方式,根据需要进行设定即可,例如虽然都是具有热标记的条带,当具有热标记的条带数量超过了第一数量值k时,可以进一步细分这些条带的冷热情况,并将访问频率最高的前k个条带作为需要迁移的条带。
在本发明的一种具体实施方式中,步骤S102可以具体包括:
在每天的设定时间段,选取第二RAID阵列中至少一个条带的数据迁移至第一RAID阵列中;
其中,在设定的时间段内统计的针对RAID卡的访问频率,低于在全天内统计的针对RAID卡的访问频率。
本申请的方案需要在不同RAID阵列中进行数据的迁移,数据的迁移会占到很大的性能开销,然而数据访问往往有一个时间规律,例如在诸多场合中,当处于深夜的时候,来自用户的数据访问频率降低,则此时进行数据迁移,便不会影响服务质量。
因此,该种实施方式中,可以在每天的设定时间段,选取第二RAID阵列中至少一个条带的数据迁移至第一RAID阵列中。
设定时间段的具体数值,可以根据实际业务情况进行设定和调整,但可以理解的是,在设定的时间段内统计的针对RAID卡的访问频率,会低于在全天内统计的针对RAID卡的访问频率。
在本发明的一种具体实施方式中,还可以包括:
在将第二RAID阵列中任一条带的数据迁移至第一RAID阵列之后,在第二映射表中添加对应的记录,以表示该条带迁移之后在第一RAID阵列中的地址信息,与该条带迁移之前在第二RAID阵列中的地址信息之间的映射关系;
判断第一RAID阵列的剩余空间大小是否小于第二阈值;
如果是,则基于第二映射表,将第一RAID阵列中存储的源自第二RAID阵列的一个或者多个条带的数据迁移回第二RAID阵列,直到第一RAID阵列的剩余空间大小不小于第二阈值;
在将第一RAID阵列中任一条带的数据迁移回第二RAID阵列之后,将第二映射表和第一映射表中的相应记录进行删除;
其中,第二阈值小于第一阈值。
在上文的实施方式中,描述了将第二RAID阵列中的条带的数据迁移至第一RAID阵列的过程,该种实施方式则考虑到,在部分场合中,可能会有新加入的数据需要存储在第一RAID阵列中,而随着第一RAID阵列的存储空间不断被使用,便可能出现第一RAID阵列的剩余空间不足的情况。
因此,该种实施方式中,允许进行数据的回迁。
即,如果第一RAID阵列的剩余空间大小不小于第二阈值,可以认为第一RAID阵列的剩余空间仍然是足够的,可以无需进行数据的回迁。而如果第一RAID阵列的剩余空间大小小于第二阈值,便需要进行数据的回迁。
为了实现数据的回迁,在进行数据的迁移时,便需要在第二映射表中添加对应的记录。例如在将第二RAID阵列中任一条带的数据迁移至第一RAID阵列之后,便需要在第二映射表中添加对应的记录,以表示该条带迁移之后在第一RAID阵列中的地址信息,与该条带迁移之前在第二RAID阵列中的地址信息之间的映射关系。
仍然以图2的实施方式为例,将第二RAID阵列中条带9的数据迁移至第一RAID阵列,迁移之后,这些数据作为第一RAID阵列中的条带8,则第二映射表中便需要记录下第一RAID阵列中的条带8的地址信息,与第二RAID阵列中条带9的地址信息之间的映射关系。
第二阈值需要小于等于第一阈值,并且该种实施方式中,设置第二阈值需要小于第一阈值,使得第一RAID阵列的剩余空间从小于第一阈值到小于第二阈值存在一个过程,避免部分场合下,频繁出现迁移后立即需要回迁的情况。
该种实施方式的第二映射表以及上文的第一映射表的具体实现方式可以有多种,只要能够有效地反映迁移前后的地址映射关系即可,例如在本发明的一种具体实施方式中,考虑到键值形式的映射表便于实施,应用广泛,因此,第二映射表可以具体为键值形式的映射表,且第二映射表中的key为条带迁移之后在第一RAID阵列中的地址信息,第二映射表中的value为条带迁移之前在第二RAID阵列中的地址信息;
第一映射表也可以具体为键值形式的映射表,且第一映射表中的key为条带迁移之前在第二RAID阵列中的地址信息,第一映射表中的value为条带迁移之后在第一RAID阵列中的地址信息。
可以看出,将第二RAID阵列中某个条带的数据迁移至第一RAID阵列之后,第一映射表中的这条记录,与第二映射表中的这条记录是相互对应的,第一映射表中的这条记录用于实现数据访问时的正向查找,第二映射表中的这条记录用于实现回迁时的反向查找。
进一步的,在本发明的一种具体实施方式中,第二映射表中的key具体为第一RAID阵列的ID,以及条带迁移之后在第一RAID阵列中的逻辑地址信息;第二映射表中的value具体为第二RAID阵列的ID,以及条带迁移之前在第二RAID阵列中的逻辑地址信息;
第一映射表中的key具体为第二RAID阵列的ID,以及条带迁移之前在第二RAID阵列中的逻辑地址信息;第一映射表中的value具体为第一RAID阵列的ID,以及条带迁移之后在第一RAID阵列中的逻辑地址信息。
该种实施方式考虑到,在具体场合中,RAID阵列的单个条带大小是可以确定的,逻辑地址与物理地址之间的对应关系也是确定的,因此,通过所访问的RAID阵列的ID+逻辑地址信息,便可以定位到所访问数据的位置。
对此,该种实施方式中,仍然以图2为例,将第二RAID阵列中条带9的数据迁移至第一RAID阵列,迁移之后,这些数据作为第一RAID阵列中的条带8,则第一映射表中便需要添加1条记录,该记录的key可以为:第二RAID阵列的ID+条带9的逻辑地址信息,该记录的value为:第一RAID阵列的ID+条带8的逻辑地址信息。如果用户需要访问这一条带的数据,则数据访问请求中的访问地址信息,可以确定出本次访问所指向的数据的条带信息是“第二RAID阵列的ID+条带9的逻辑地址信息”,按照第一映射表的映射,指向了“第一RAID阵列的ID+条带8的逻辑地址信息”这一条带,便可以在第一RAID阵列的条带8中找到本次访问所指向的数据。
同样的,该例子中,迁移之后,第二映射表中也需要添加1条记录,该记录的key为:第一RAID阵列的ID+条带8的逻辑地址信息,该记录的value为:第二RAID阵列的ID+条带9的逻辑地址信息。如果需要进行该条带的回迁,则通过第二映射表的这1条记录,便可以确定需要将第一RAID阵列的条带8中的数据,回迁至第二RAID阵列的条带9的位置上。
在本发明的一种具体实施方式中,在判断出第一RAID阵列的剩余空间大小小于第二阈值之后,还包括:
判断RAID卡当前是否为设定的非繁忙状态;
如果为非繁忙状态,则执行基于第二映射表,将第一RAID阵列中存储的源自第二RAID阵列的一个或者多个条带的数据迁移回第二RAID阵列,直到第一RAID阵列的剩余空间大小不小于第二阈值的操作;
如果不为非繁忙状态,则等待RAID卡变为非繁忙状态之后,执行基于第二映射表,将第一RAID阵列中存储的源自第二RAID阵列的一个或者多个条带的数据迁移回第二RAID阵列,直到第一RAID阵列的剩余空间大小不小于第二阈值的操作。
该种实施方式考虑到,在判断出第一RAID阵列的剩余空间大小小于第二阈值之后,说明需要进行数据的回迁,在部分实施方式中,例如可以采用上述一种实施方式的设计,即在每天的设定时间段进行数据的回迁,例如当处于深夜的时候进行数据的回迁,不会影响服务质量。
但是该种实施方式进一步地考虑到,部分场合中,第一RAID阵列的剩余空间大小小于第二阈值时,虽然第一RAID阵列还有一定的存储空间来存储数据,但是应当尽早地进行数据的回迁,以避免在设定时间段到来之前,第一RAID阵列的剩余空间便用尽的情况。
因此,在判断出第一RAID阵列的剩余空间大小小于第二阈值之后,只要确定出RAID卡当前为非繁忙状态,便可以立即进行数据的回迁。当然,如果RAID卡当前不为非繁忙状态,考虑到第一RAID阵列还有一定的剩余的存储空间,可以进行等待,即等待RAID卡变为非繁忙状态之后,立即进行数据的回迁。
判断RAID卡是否为非繁忙状态的具体实现方式也可以有多种,例如可以通过RAID卡最近几分钟的访问频率,通过当前数据传输带宽占用率等多种参数,来判断RAID卡当前是否达到了设定的非繁忙状态。
在本发明的一种具体实施方式中,还包括:
在将第二RAID阵列中任一条带的数据迁移至第一RAID阵列之后,对该条带的访问频率进行统计,并且当统计值连续a次低于设定的第二访问频率阈值时,将该条带的标记设置为冷标记,以表示该条带存储的数据为冷数据,并基于第二映射表,将该条带迁移回第二RAID阵列;
其中,a为正整数。
该种实施方式考虑到,数据的访问频率会发生变化,在将第二RAID阵列中任一条带的数据迁移至第一RAID阵列之后,可以继续对该条带的访问频率进行统计,如果统计值连续a次低于设定的第二访问频率阈值时,说明该条带的访问频率持续较低,因此,该条带的标记从热标记变为冷标记,并且可以并基于第二映射表,将该条带迁移回第二RAID阵列,当然,对于这些需要回迁的条带,在第一RAID阵列的剩余空间足够的情况下,可以选择在每天的设定时间段进行数据的回迁,例如当处于深夜的时候进行数据的回迁,不会影响服务质量。
如上文的描述,本申请的方案中,需要进行数据的迁移,迁移之后需要通过第一映射表来实现地址信息的映射,可以理解的是,如果不同RAID阵列中的单个阵列大小不同,或者硬盘数量存在差值,则虽然也能够实现地址信息的映射,但是会较为复杂,例如映射关系上可能需要体现逻辑首地址在迁移前后的映射,逻辑尾地址在迁移前后的映射,RAID阵列的ID在迁移前后的映射。并且程序设计上也会更为复杂。
而如果第一RAID阵列的单个条带大小与第二RAID阵列的单个条带大小相同,第一RAID阵列的单个条带所包括的磁盘数量与第二RAID阵列的单个条带所包括的磁盘数量相同,在程序设计上就会非常简便,并且第一映射表的映射关系上只需要体现逻辑首地址在迁移前后的映射,以及RAID阵列的ID在迁移前后的映射即可。
在图2和图3的实施方式中,不同RAID阵列的单个条带大小均是一致的,不同RAID阵列的单个条带所包括的磁盘数量也均是一致的,图2和图3的实施方式中,不同RAID阵列的单个条带所包括的磁盘数量均为4个,以图2的第一RAID阵列中的条带0为例,条带0_0,条带0_1,条带0_1,条带0_4依次表示构成第一RAID阵列的条带0的4块SSD硬盘。图2和图3中的RAID阵列例如可以均为RAID5。
在本发明的一种具体实施方式中,在判断出第一RAID阵列的剩余空间大小超过第一阈值之后,还可以包括:
将第3 RAID阵列至第N RAID阵列中的若干个条带的数据迁移至第一RAID阵列中,直至第3 RAID阵列至第N RAID阵列中具有热标记的条带均被迁移完毕,或者第一RAID阵列的剩余空间大小不超过第一阈值;
在将第3 RAID阵列至第N RAID阵列中任一条带的数据迁移至第一RAID阵列之后,在第一映射表中添加对应的记录,以表示该条带迁移之前在相应的RAID阵列中的地址信息,与该条带迁移之后在第一RAID阵列中的地址信息之间的映射关系;
N为不小于3的正整数,第一RAID阵列、第3 RAID阵列至第N RAID阵列均位于同一RAID卡中,且第3 RAID阵列至第N RAID阵列的访问速度均低于第一RAID阵列的访问速度。
在前文的实施方式中,描述了第二RAID阵列向第一RAID阵列进行数据迁移的过程,该种实施方式考虑到,同一RAID卡中可能会包括多个RAID阵列,例如该种实施方式中的RAID卡中不仅包括了第一RAID阵列和第二RAID阵列,还包括了第3 RAID阵列至第N RAID阵列,并且由于且第3 RAID阵列至第N RAID阵列的访问速度均低于第一RAID阵列的访问速度,因此,对于第3 RAID阵列至第N RAID阵列而言,也可以将这些 RAID阵列中的条带迁移至第一RAID阵列中,迁移的原理与上文相同,便不再重复说明,例如在迁移时,也可以选择热标记的条带进行迁移,也可以在设定的时间段实现迁移,也可以在第一RAID阵列的剩余存储空间不足时将条带回迁至相应的RAID阵列。图3的实施方式中,便示出了第3 RAID阵列和第二RAID阵列均可以向第一RAID阵列迁移数据。
此外可以理解的是,在将第3 RAID阵列至第N RAID阵列中任一条带的数据迁移至第一RAID阵列之后,也需要在第一映射表中添加对应的记录,以表示该条带迁移之前在相应的RAID阵列中的地址信息,与该条带迁移之后在第一RAID阵列中的地址信息之间的映射关系。同样的,如果是支持回迁的是实施方式,则将第3 RAID阵列至第N RAID阵列中任一条带的数据迁移至第一RAID阵列之后,也需要在第二映射表中添加对应的记录以便后续实现回迁,触发回迁时则可以删除第一映射表和第二映射表中的相应记录。
本申请方案中,RAID阵列的具体采用的硬盘可以根据需要进行设定,例如考虑到目前的存储服务器的RAID卡中,通常包括HDD硬盘和SSD硬盘,则在本发明的一种具体实施方式中,第3 RAID阵列至第N RAID阵列均为由HDD硬盘构成的RAID阵列,第一RAID阵列为由SSD硬盘构成的RAID阵列。
此外,在部分实施方式中,高性能的RAID阵列可能有多个,即除了第一RAID阵列之外,也可以设置更多的RAID阵列用来接收迁移数据,例如一种场合中,第一RAID阵列为由SSD硬盘构成的RAID阵列,且该RAID卡中,除了第一RAID阵列之外还有其他的由SSD硬盘构成的RAID阵列,则这些阵列均可以在自身的剩余存储空间充足时,用来接收由HDD硬盘构成的RAID阵列发送的迁移数据,原理与第一RAID阵列接收迁移数据相同,不再重复说明。
应用本发明实施例所提供的技术方案,考虑到在传统的RAID卡中,同一个RAID阵列只能够使用相同介质规格的存储盘,并且不同的RAID阵列之间基本无交互,只有在做整体迁移的时候两个RAID阵列之间才会有数据流转。
对此,本申请的方案中,会对第一RAID阵列和第二RAID阵列做关联处理,具体的,判断第一RAID阵列的剩余空间大小是否超过第一阈值,如果超过第一阈值,说明第一RAID阵列还有充足的剩余空间。本申请则会选取第二RAID阵列中至少一个条带的数据迁移至第一RAID阵列中,使得迁移后的数据是由第一RAID阵列对外提供服务。由于第一RAID阵列的访问速度高于第二RAID阵列的访问速度,因此,将第二RAID阵列中的数据迁移至第一RAID阵列之后,既不会影响到第一RAID阵列本身的数据服务,又能够在一定程度上提高第二RAID阵列的访问速度,因为访问原本存储在第二RAID阵列中的某些数据时,在数据迁移之后,是通过第一RAID阵列实现这些数据的访问,因此访问速度更快。也就是说,本申请在第一RAID阵列的剩余空间充足时,使用第一RAID阵列作为第二RAID阵列的影子阵列对外提供服务。当然,为了保障迁移后的条带中的数据能够被有效访问,在迁移之后,需要在第一映射表中添加对应的记录,以表示该条带迁移之前在第二RAID阵列中的地址信息,与该条带迁移之后在第一RAID阵列中的地址信息之间的映射关系,使得在接收到数据访问请求时,可以基于数据访问请求中的访问地址信息以及第一映射表实现数据访问。
综上所述,本申请的方案能够有效地发挥不同的RAID阵列的优势,在第一RAID阵列的剩余空间充足时,使用第一RAID阵列作为第二RAID阵列的影子阵列对外提供服务,既不会影响到第一RAID阵列本身的数据服务,又能够在一定程度上提高第二RAID阵列的访问速度。
相应于上面的方法实施例,本发明实施例还提供了一种RAID卡的数据访问系统,可与上文相互对应参照。
参见图4所示,为本发明中一种RAID卡的数据访问系统的结构示意图,包括:
迁移判断模块401,用于判断第一RAID阵列的剩余空间大小是否超过第一阈值;如果是,则触发迁移执行模块;
迁移执行模块402,用于选取第二RAID阵列中至少一个条带的数据迁移至第一RAID阵列中;
第一映射表管理模块403,用于在迁移执行模块将第二RAID阵列中任一条带的数据迁移至第一RAID阵列之后,在第一映射表中添加对应的记录,以表示该条带迁移之前在第二RAID阵列中的地址信息,与该条带迁移之后在第一RAID阵列中的地址信息之间的映射关系;
访问执行模块404,用于在接收到数据访问请求时,基于数据访问请求中的访问地址信息以及第一映射表进行数据访问;
其中,第一RAID阵列和第二RAID阵列位于同一RAID卡中,且第一RAID阵列的访问速度高于第二RAID阵列的访问速度。
在本发明的一种具体实施方式中,从第二RAID阵列中选取的迁移至第一RAID阵列的任一条带,均为具有热标记的条带,以表示该条带存储的数据为热数据。
在本发明的一种具体实施方式中,迁移执行模块402包括:
热标记条带数量判断单元,用于判断第二RAID阵列中具有热标记的条带数量是否超过第一数量值k;其中,k为正整数;
如果是,则触发第一选取单元,用于从第二RAID阵列具有热标记的条带中选取出k个条带,并将选取的k个条带的数据迁移至第一RAID阵列中;
如果否,则触发第二选取单元,用于将第二RAID阵列中具有热标记的各个条带的数据迁移至第一RAID阵列中。
在本发明的一种具体实施方式中,第一选取单元,具体用于:
从第二RAID阵列具有热标记的条带中随机选取出k个条带,并将选取的k个条带的数据迁移至第一RAID阵列中。
在本发明的一种具体实施方式中,第一选取单元,具体用于:
从第二RAID阵列具有热标记的条带中,按照指定编号顺序选取出k个条带,并将选取的k个条带的数据迁移至第一RAID阵列中。
在本发明的一种具体实施方式中,还包括:
针对第二RAID阵列中任一条带,当该条带的访问频率高于设定的第一访问频率阈值时,将该条带的标记更新为热标记,以表示该条带存储的数据为热数据;
针对第二RAID阵列中任一条带,当该条带的访问频率不高于第一访问频率阈值时,将该条带的标记更新为冷标记,以表示该条带存储的数据为冷数据。
在本发明的一种具体实施方式中,迁移执行模块402,具体用于:
在每天的设定时间段,选取第二RAID阵列中至少一个条带的数据迁移至第一RAID阵列中;
其中,在设定的时间段内统计的针对RAID卡的访问频率,低于在全天内统计的针对RAID卡的访问频率。
在本发明的一种具体实施方式中,还包括回迁模块,用于:
在将第二RAID阵列中任一条带的数据迁移至第一RAID阵列之后,在第二映射表中添加对应的记录,以表示该条带迁移之后在第一RAID阵列中的地址信息,与该条带迁移之前在第二RAID阵列中的地址信息之间的映射关系;
判断第一RAID阵列的剩余空间大小是否小于第二阈值;
如果是,则基于第二映射表,将第一RAID阵列中存储的源自第二RAID阵列的一个或者多个条带的数据迁移回第二RAID阵列,直到第一RAID阵列的剩余空间大小不小于第二阈值;
在将第一RAID阵列中任一条带的数据迁移回第二RAID阵列之后,将第二映射表和第一映射表中的相应记录进行删除;
其中,第二阈值小于第一阈值。
在本发明的一种具体实施方式中,在判断出第一RAID阵列的剩余空间大小小于第二阈值之后,回迁模块还用于:
判断RAID卡当前是否为设定的非繁忙状态;
如果为非繁忙状态,则执行基于第二映射表,将第一RAID阵列中存储的源自第二RAID阵列的一个或者多个条带的数据迁移回第二RAID阵列,直到第一RAID阵列的剩余空间大小不小于第二阈值的操作;
如果不为非繁忙状态,则等待RAID卡变为非繁忙状态之后,执行基于第二映射表,将第一RAID阵列中存储的源自第二RAID阵列的一个或者多个条带的数据迁移回第二RAID阵列,直到第一RAID阵列的剩余空间大小不小于第二阈值的操作。
在本发明的一种具体实施方式中,第二映射表为键值形式的映射表,且第二映射表中的key为条带迁移之后在第一RAID阵列中的地址信息,第二映射表中的value为条带迁移之前在第二RAID阵列中的地址信息;
第一映射表为键值形式的映射表,且第一映射表中的key为条带迁移之前在第二RAID阵列中的地址信息,第一映射表中的value为条带迁移之后在第一RAID阵列中的地址信息。
在本发明的一种具体实施方式中,第二映射表中的key具体为第一RAID阵列的ID,以及条带迁移之后在第一RAID阵列中的逻辑地址信息;第二映射表中的value具体为第二RAID阵列的ID,以及条带迁移之前在第二RAID阵列中的逻辑地址信息;
第一映射表中的key具体为第二RAID阵列的ID,以及条带迁移之前在第二RAID阵列中的逻辑地址信息;第一映射表中的value具体为第一RAID阵列的ID,以及条带迁移之后在第一RAID阵列中的逻辑地址信息。
在本发明的一种具体实施方式中,回迁模块还用于:
在将第二RAID阵列中任一条带的数据迁移至第一RAID阵列之后,对该条带的访问频率进行统计,并且当统计值连续a次低于设定的第二访问频率阈值时,将该条带的标记设置为冷标记,以表示该条带存储的数据为冷数据,并基于第二映射表,将该条带迁移回第二RAID阵列;
其中,a为正整数。
在本发明的一种具体实施方式中,访问执行模块404,具体用于:
在接收到数据访问请求时,判断数据访问请求中的访问地址信息在第一映射表中是否存在;
如果是,则通过数据访问请求中的访问地址信息以及第一映射表,确定出数据访问请求所指向的数据在第一RAID阵列中的地址信息,并对第一RAID阵列进行数据访问;
如果否,则通过数据访问请求中的访问地址信息进行数据访问。
在本发明的一种具体实施方式中,第一RAID阵列的单个条带大小与第二RAID阵列的单个条带大小相同,第一RAID阵列的单个条带所包括的磁盘数量与第二RAID阵列的单个条带所包括的磁盘数量相同。
在本发明的一种具体实施方式中,还包括第一阈值调整模块,用于:
接收阈值调整指令,并根据阈值调整指令调整第一阈值的取值。
在本发明的一种具体实施方式中,在迁移判断模块401判断出第一RAID阵列的剩余空间大小超过第一阈值之后,迁移执行模块402还用于:
将第3 RAID阵列至第N RAID阵列中的若干个条带的数据迁移至第一RAID阵列中,直至第3 RAID阵列至第N RAID阵列中具有热标记的条带均被迁移完毕,或者第一RAID阵列的剩余空间大小不超过第一阈值;
第一映射表管理模块403还用于:在迁移执行模块402将第3 RAID阵列至第N RAID阵列中任一条带的数据迁移至第一RAID阵列之后,在第一映射表中添加对应的记录,以表示该条带迁移之前在相应的RAID阵列中的地址信息,与该条带迁移之后在第一RAID阵列中的地址信息之间的映射关系;
其中,N为不小于3的正整数,第一RAID阵列、第3 RAID阵列至第N RAID阵列均位于同一RAID卡中,且第3 RAID阵列至第N RAID阵列的访问速度均低于第一RAID阵列的访问速度。
在本发明的一种具体实施方式中,第3 RAID阵列至第N RAID阵列均为由HDD硬盘构成的RAID阵列,第一RAID阵列为由SSD硬盘构成的RAID阵列。
相应于上面的方法和系统实施例,本发明实施例还提供了一种RAID卡以及一种计算机可读存储介质,可与上文相互对应参照。
可参阅图5,该RAID卡可以包括:
存储器501,用于存储计算机程序;
处理器502,用于执行计算机程序以实现如上述任一实施例中的RAID卡的数据访问方法的步骤。
可参阅图6,该计算机可读存储介质60上存储有计算机程序61,计算机程序61被处理器执行时实现如上述任一实施例中的RAID卡的数据访问方法的步骤。这里所说的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明的保护范围内。

Claims (20)

1.一种RAID卡的数据访问方法,其特征在于,包括:
判断第一RAID阵列的剩余空间大小是否超过第一阈值;
如果是,则选取第二RAID阵列中至少一个条带的数据迁移至所述第一RAID阵列中;
在将所述第二RAID阵列中任一条带的数据迁移至所述第一RAID阵列之后,在第一映射表中添加对应的记录,以表示该条带迁移之前在所述第二RAID阵列中的地址信息,与该条带迁移之后在所述第一RAID阵列中的地址信息之间的映射关系;
在接收到数据访问请求时,基于所述数据访问请求中的访问地址信息以及所述第一映射表进行数据访问;
其中,所述第一RAID阵列和所述第二RAID阵列位于同一RAID卡中,且所述第一RAID阵列的访问速度高于所述第二RAID阵列的访问速度。
2.根据权利要求1所述的RAID卡的数据访问方法,其特征在于,从所述第二RAID阵列中选取的迁移至所述第一RAID阵列的任一条带,均为具有热标记的条带,以表示该条带存储的数据为热数据。
3.根据权利要求2所述的RAID卡的数据访问方法,其特征在于,所述选取第二RAID阵列中至少一个条带的数据迁移至所述第一RAID阵列中,包括:
判断所述第二RAID阵列中具有热标记的条带数量是否超过第一数量值k;其中,k为正整数;
如果是,则从第二RAID阵列具有热标记的条带中选取出k个条带,并将选取的k个条带的数据迁移至所述第一RAID阵列中;
如果否,则将所述第二RAID阵列中具有热标记的各个条带的数据迁移至所述第一RAID阵列中。
4.根据权利要求3所述的RAID卡的数据访问方法,其特征在于,所述从第二RAID阵列具有热标记的条带中选取出k个条带,并将选取的k个条带的数据迁移至所述第一RAID阵列中,包括:
从第二RAID阵列具有热标记的条带中随机选取出k个条带,并将选取的k个条带的数据迁移至所述第一RAID阵列中。
5.根据权利要求3所述的RAID卡的数据访问方法,其特征在于,所述从第二RAID阵列具有热标记的条带中选取出k个条带,并将选取的k个条带的数据迁移至所述第一RAID阵列中,包括:
从第二RAID阵列具有热标记的条带中,按照指定编号顺序选取出k个条带,并将选取的k个条带的数据迁移至所述第一RAID阵列中。
6.根据权利要求2所述的RAID卡的数据访问方法,其特征在于,还包括:
针对所述第二RAID阵列中任一条带,当该条带的访问频率高于设定的第一访问频率阈值时,将该条带的标记更新为热标记,以表示该条带存储的数据为热数据;
针对所述第二RAID阵列中任一条带,当该条带的访问频率不高于所述第一访问频率阈值时,将该条带的标记更新为冷标记,以表示该条带存储的数据为冷数据。
7.根据权利要求1所述的RAID卡的数据访问方法,其特征在于,所述选取第二RAID阵列中至少一个条带的数据迁移至所述第一RAID阵列中,包括:
在每天的设定时间段,选取第二RAID阵列中至少一个条带的数据迁移至所述第一RAID阵列中;
其中,在设定的所述时间段内统计的针对所述RAID卡的访问频率,低于在全天内统计的针对所述RAID卡的访问频率。
8.根据权利要求1所述的RAID卡的数据访问方法,其特征在于,还包括:
在将所述第二RAID阵列中任一条带的数据迁移至所述第一RAID阵列之后,在第二映射表中添加对应的记录,以表示该条带迁移之后在所述第一RAID阵列中的地址信息,与该条带迁移之前在所述第二RAID阵列中的地址信息之间的映射关系;
判断所述第一RAID阵列的剩余空间大小是否小于第二阈值;
如果是,则基于所述第二映射表,将所述第一RAID阵列中存储的源自所述第二RAID阵列的一个或者多个条带的数据迁移回所述第二RAID阵列,直到所述第一RAID阵列的剩余空间大小不小于所述第二阈值;
在将所述第一RAID阵列中任一条带的数据迁移回所述第二RAID阵列之后,将所述第二映射表和所述第一映射表中的相应记录进行删除;
其中,所述第二阈值小于所述第一阈值。
9.根据权利要求8所述的RAID卡的数据访问方法,其特征在于,在判断出所述第一RAID阵列的剩余空间大小小于第二阈值之后,还包括:
判断所述RAID卡当前是否为设定的非繁忙状态;
如果为所述非繁忙状态,则执行所述基于所述第二映射表,将所述第一RAID阵列中存储的源自所述第二RAID阵列的一个或者多个条带的数据迁移回所述第二RAID阵列,直到所述第一RAID阵列的剩余空间大小不小于所述第二阈值的操作;
如果不为所述非繁忙状态,则等待所述RAID卡变为所述非繁忙状态之后,执行所述基于所述第二映射表,将所述第一RAID阵列中存储的源自所述第二RAID阵列的一个或者多个条带的数据迁移回所述第二RAID阵列,直到所述第一RAID阵列的剩余空间大小不小于所述第二阈值的操作。
10.根据权利要求8所述的RAID卡的数据访问方法,其特征在于,所述第二映射表为键值形式的映射表,且所述第二映射表中的key为条带迁移之后在所述第一RAID阵列中的地址信息,所述第二映射表中的value为条带迁移之前在所述第二RAID阵列中的地址信息;
所述第一映射表为键值形式的映射表,且所述第一映射表中的key为条带迁移之前在所述第二RAID阵列中的地址信息,所述第一映射表中的value为条带迁移之后在所述第一RAID阵列中的地址信息。
11.根据权利要求10所述的RAID卡的数据访问方法,其特征在于,所述第二映射表中的key具体为所述第一RAID阵列的ID,以及条带迁移之后在所述第一RAID阵列中的逻辑地址信息;所述第二映射表中的value具体为所述第二RAID阵列的ID,以及条带迁移之前在所述第二RAID阵列中的逻辑地址信息;
所述第一映射表中的key具体为所述第二RAID阵列的ID,以及条带迁移之前在所述第二RAID阵列中的逻辑地址信息;所述第一映射表中的value具体为所述第一RAID阵列的ID,以及条带迁移之后在所述第一RAID阵列中的逻辑地址信息。
12.根据权利要求8所述的RAID卡的数据访问方法,其特征在于,还包括:
在将所述第二RAID阵列中任一条带的数据迁移至所述第一RAID阵列之后,对该条带的访问频率进行统计,并且当统计值连续a次低于设定的第二访问频率阈值时,将该条带的标记设置为冷标记,以表示该条带存储的数据为冷数据,并基于所述第二映射表,将该条带迁移回所述第二RAID阵列;
其中,a为正整数。
13.根据权利要求1所述的RAID卡的数据访问方法,其特征在于,所述在接收到数据访问请求时,基于所述数据访问请求中的访问地址信息以及所述第一映射表进行数据访问,包括:
在接收到数据访问请求时,判断所述数据访问请求中的访问地址信息在所述第一映射表中是否存在;
如果是,则通过所述数据访问请求中的访问地址信息以及所述第一映射表,确定出所述数据访问请求所指向的数据在所述第一RAID阵列中的地址信息,并对所述第一RAID阵列进行数据访问;
如果否,则通过所述数据访问请求中的访问地址信息进行数据访问。
14.根据权利要求1所述的RAID卡的数据访问方法,其特征在于,所述第一RAID阵列的单个条带大小与所述第二RAID阵列的单个条带大小相同,所述第一RAID阵列的单个条带所包括的磁盘数量与所述第二RAID阵列的单个条带所包括的磁盘数量相同。
15.根据权利要求1所述的RAID卡的数据访问方法,其特征在于,还包括:
接收阈值调整指令,并根据所述阈值调整指令调整所述第一阈值的取值。
16.根据权利要求1至15任一项所述的RAID卡的数据访问方法,其特征在于,在判断出所述第一RAID阵列的剩余空间大小超过第一阈值之后,还包括:
将第3 RAID阵列至第N RAID阵列中的若干个条带的数据迁移至所述第一RAID阵列中,直至所述第3 RAID阵列至所述第N RAID阵列中具有热标记的条带均被迁移完毕,或者所述第一RAID阵列的剩余空间大小不超过所述第一阈值;
在将所述第3 RAID阵列至所述第N RAID阵列中任一条带的数据迁移至所述第一RAID阵列之后,在第一映射表中添加对应的记录,以表示该条带迁移之前在相应的RAID阵列中的地址信息,与该条带迁移之后在所述第一RAID阵列中的地址信息之间的映射关系;
其中,N为不小于3的正整数,所述第一RAID阵列、所述第3 RAID阵列至所述第N RAID阵列均位于同一所述RAID卡中,且所述第3 RAID阵列至第N RAID阵列的访问速度均低于所述第一RAID阵列的访问速度。
17.根据权利要求16所述的RAID卡的数据访问方法,其特征在于,所述第3 RAID阵列至所述第N RAID阵列均为由HDD硬盘构成的RAID阵列,所述第一RAID阵列为由SSD硬盘构成的RAID阵列。
18.一种RAID卡的数据访问系统,其特征在于,包括:
迁移判断模块,用于判断第一RAID阵列的剩余空间大小是否超过第一阈值;如果是,则触发迁移执行模块;
所述迁移执行模块,用于选取第二RAID阵列中至少一个条带的数据迁移至所述第一RAID阵列中;
第一映射表管理模块,用于在所述迁移执行模块将所述第二RAID阵列中任一条带的数据迁移至所述第一RAID阵列之后,在第一映射表中添加对应的记录,以表示该条带迁移之前在所述第二RAID阵列中的地址信息,与该条带迁移之后在所述第一RAID阵列中的地址信息之间的映射关系;
访问执行模块,用于在接收到数据访问请求时,基于所述数据访问请求中的访问地址信息以及所述第一映射表进行数据访问;
其中,所述第一RAID阵列和所述第二RAID阵列位于同一RAID卡中,且所述第一RAID阵列的访问速度高于所述第二RAID阵列的访问速度。
19.一种RAID卡,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至17任一项所述的RAID卡的数据访问方法的步骤。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至17任一项所述的RAID卡的数据访问方法的步骤。
CN202310318168.6A 2023-03-29 2023-03-29 一种raid卡及其数据访问方法、系统及存储介质 Active CN116027990B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310318168.6A CN116027990B (zh) 2023-03-29 2023-03-29 一种raid卡及其数据访问方法、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310318168.6A CN116027990B (zh) 2023-03-29 2023-03-29 一种raid卡及其数据访问方法、系统及存储介质

Publications (2)

Publication Number Publication Date
CN116027990A true CN116027990A (zh) 2023-04-28
CN116027990B CN116027990B (zh) 2023-07-14

Family

ID=86070806

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310318168.6A Active CN116027990B (zh) 2023-03-29 2023-03-29 一种raid卡及其数据访问方法、系统及存储介质

Country Status (1)

Country Link
CN (1) CN116027990B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11327794A (ja) * 1998-02-27 1999-11-30 Aiwa Co Ltd Raidデ―タ記憶システム用デ―タマイグレ―ション方法
CN101458613A (zh) * 2008-12-31 2009-06-17 成都市华为赛门铁克科技有限公司 一种混合分级阵列的实现方法、混合分级阵列和存储系统
CN103186350A (zh) * 2011-12-31 2013-07-03 北京快网科技有限公司 混合存储系统及热点数据块的迁移方法
CN104583930A (zh) * 2014-08-15 2015-04-29 华为技术有限公司 数据迁移的方法、控制器和数据迁移装置
WO2018019119A1 (zh) * 2016-07-26 2018-02-01 北京理工大学 一种面向连续数据存储的动态局部并行数据布局方法及装置
CN109144411A (zh) * 2018-07-24 2019-01-04 中国电子科技集团公司第三十八研究所 数据中心混合磁盘阵列及其数据动态迁移策略
CN109445695A (zh) * 2018-10-19 2019-03-08 郑州云海信息技术有限公司 一种数据迁移方法
CN110214305A (zh) * 2017-12-29 2019-09-06 华为技术有限公司 一种数据访问方法及存储阵列
CN110770691A (zh) * 2017-08-11 2020-02-07 西部数据技术公司 混合数据存储阵列
CN110858124A (zh) * 2018-08-24 2020-03-03 华为技术有限公司 数据迁移方法及装置
CN111399767A (zh) * 2020-02-21 2020-07-10 苏州浪潮智能科技有限公司 Io请求的处理方法、系统、设备及计算机可读存储介质
CN112130768A (zh) * 2020-09-18 2020-12-25 苏州浪潮智能科技有限公司 磁盘阵列在线扩容方法、装置及计算机可读存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11327794A (ja) * 1998-02-27 1999-11-30 Aiwa Co Ltd Raidデ―タ記憶システム用デ―タマイグレ―ション方法
CN101458613A (zh) * 2008-12-31 2009-06-17 成都市华为赛门铁克科技有限公司 一种混合分级阵列的实现方法、混合分级阵列和存储系统
CN103186350A (zh) * 2011-12-31 2013-07-03 北京快网科技有限公司 混合存储系统及热点数据块的迁移方法
CN104583930A (zh) * 2014-08-15 2015-04-29 华为技术有限公司 数据迁移的方法、控制器和数据迁移装置
WO2018019119A1 (zh) * 2016-07-26 2018-02-01 北京理工大学 一种面向连续数据存储的动态局部并行数据布局方法及装置
CN110770691A (zh) * 2017-08-11 2020-02-07 西部数据技术公司 混合数据存储阵列
CN110214305A (zh) * 2017-12-29 2019-09-06 华为技术有限公司 一种数据访问方法及存储阵列
CN109144411A (zh) * 2018-07-24 2019-01-04 中国电子科技集团公司第三十八研究所 数据中心混合磁盘阵列及其数据动态迁移策略
CN110858124A (zh) * 2018-08-24 2020-03-03 华为技术有限公司 数据迁移方法及装置
CN109445695A (zh) * 2018-10-19 2019-03-08 郑州云海信息技术有限公司 一种数据迁移方法
CN111399767A (zh) * 2020-02-21 2020-07-10 苏州浪潮智能科技有限公司 Io请求的处理方法、系统、设备及计算机可读存储介质
CN112130768A (zh) * 2020-09-18 2020-12-25 苏州浪潮智能科技有限公司 磁盘阵列在线扩容方法、装置及计算机可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李元章;孙志卓;马忠梅;郑军;谭毓安;: "S-RAID5:一种适用于顺序数据访问的节能磁盘阵列", 计算机学报, vol. 36, no. 06, pages 1290 - 1302 *
罗保山;张鑫;王栩;谭支鹏;: "混合存储数据迁移策略研究", 计算机技术与发展, vol. 26, no. 06, pages 82 - 86 *

Also Published As

Publication number Publication date
CN116027990B (zh) 2023-07-14

Similar Documents

Publication Publication Date Title
US8423739B2 (en) Apparatus, system, and method for relocating logical array hot spots
US7971025B2 (en) Method and apparatus for chunk allocation in a thin provisioning storage system
US8909887B1 (en) Selective defragmentation based on IO hot spots
CN107092442B (zh) 存储系统资源分配方法及装置
WO2018231293A1 (en) Multi-device platform
CN104516471B (zh) 一种管理存储器系统的电源的方法和装置
CN109598156B (zh) 一种写时重定向引擎快照流方法
CN101504594B (zh) 一种数据存储方法和装置
CN104268099B (zh) 一种管理数据读写的方法及装置
US20050223168A1 (en) Storage control device, control method and storage medium recording a control program
CN102317901B (zh) 对象调整方法、装置及系统
US11474919B2 (en) Method for managing multiple disks, electronic device and computer program product
CN109558457A (zh) 一种数据写入方法、装置、设备及存储介质
EP2511826B1 (en) Level-to-level management method and system of storage resources
US11226778B2 (en) Method, apparatus and computer program product for managing metadata migration
WO2024027107A1 (zh) 一种独立磁盘冗余阵列格式化调度方法、装置、设备及介质
CN103399823A (zh) 业务数据的存储方法、设备和系统
CN111158602A (zh) 数据分层存储方法、读取方法、存储主机及存储系统
CN112783449A (zh) 数据迁移方法及装置
CN112947860A (zh) 一种分布式数据副本的分级存储与调度方法
CN111078143B (zh) 基于段映射进行数据布局和调度的混合存储方法及系统
CN107092443B (zh) 数据迁移方法及装置
CN109828722B (zh) 异构分布式键值存储系统Raft组数据自适应分布方法
CN107506466A (zh) 一种小文件存储方法及系统
CN116027990B (zh) 一种raid卡及其数据访问方法、系统及存储介质

Legal Events

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