CN116401063A - 一种raid的资源分配方法、装置、设备及介质 - Google Patents

一种raid的资源分配方法、装置、设备及介质 Download PDF

Info

Publication number
CN116401063A
CN116401063A CN202310397484.7A CN202310397484A CN116401063A CN 116401063 A CN116401063 A CN 116401063A CN 202310397484 A CN202310397484 A CN 202310397484A CN 116401063 A CN116401063 A CN 116401063A
Authority
CN
China
Prior art keywords
resource
apu
write
data
request
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
CN202310397484.7A
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.)
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 CN202310397484.7A priority Critical patent/CN116401063A/zh
Publication of CN116401063A publication Critical patent/CN116401063A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • 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

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开一种RAID的资源分配方法、装置、设备及介质,涉及数据传输技术领域。根据写IO请求分配第一apu资源给数据块;传输数据至hardpage,并将写IO信息存储于apucontext;获取上一个写IO请求的数据并在生成的中间校验值分配第二apu资源的同时传输至hardpage,将写IO信息存储于apucontext;根据数据块和/或校验块落盘情况,释放第一apu资源和/或第二apu资源。此时,一个校验块只需要一个apu资源,无需调用多个apu资源,避免了在执行一个写IO请求时快速消耗有限的apu资源,造成其他多数写IO请求预留apu资源失败的情况,进一步提升了RAID的存储性能。

Description

一种RAID的资源分配方法、装置、设备及介质
技术领域
本申请涉及数据传输技术领域,特别是涉及一种RAID的资源分配方法、装置、设备及介质。
背景技术
在科技飞速发展的时代,存储技术也经历了不断的革新。数据的安全可靠性和存储性能已成为大型企业衡量存储设备重要指标。独立冗余磁盘阵列(Redundant Arrays ofIndependent Disks,RAID)常用的设备一般分为DRAID5和DRAID6。其中DRAID5中一个条带(具有条带编号,条带编号可以表示为Stridenumber)具有数据块d和校验块p,允许一个数据块上的数据丢失。DRAID6中一个条带由数据块d和校验块p和校验块q组成,允许同时两块数据块上的数据丢失。当向磁盘发起写IO请求时,为保障数据安全性需要利用apu资源(非易失内存:hardpage,apucontext等等),以防止掉电数据丢失。服务器下发写IO请求后,会先将要写入的数据写到hardpage中,然后用apucontext资源记录本次写请求的信息(写请求信息一般包括:条带编号,分块编号,内存信息等等),然后再将数据落盘,落盘成功后,再释放apucontext资源,若发生掉电等故障,在apucontext和hardpage中存储的信息不会丢失,只需要重新从apucontext获取写IO请求对应的信息,并发起写IO请求,然而apu资源具有有限性,在写IO请求过程中需要申请多个apucontext资源,其中中间校验数据paritydelta与数据块d共用一个apucontext资源,计算新校验块p和新校验块q时,均需要含有paritydelta信息的apucontext资源,所以计算新校验块也需要拷贝paritydelta信息至多个校验块的apucontext资源中,具体为当校验块有1个时,拷贝paritydelta信息至1个校验块的apucontext资源;当校验块有2个时,拷贝paritydelta信息至2个校验块的apucontext资源。此时,可以明显看出。在执行一个写IO请求时会快速消耗有限的apu资源,造成其他多数写IO请求预留apu资源失败,以进行等待的情况,此时也对存储性能造成一定的影响。
鉴于上述存在的问题,寻求如何提升RAID的存储性能是本领域技术人员竭力解决的问题。
发明内容
本申请的目的是提供一种RAID的资源分配方法、装置、设备及介质,用于提升RAID的存储性能。
为解决上述技术问题,本申请提供一种RAID的资源分配方法,包括:
当接收到写IO请求时,分配第一apu资源给写IO请求对应的数据块,其中,apu资源至少包括hardpage和apucontext;
传输写IO请求对应的数据至第一apu资源对应的hardpage,并将写IO请求对应的写IO信息存储于第一apu资源对应的apucontext中;
获取上一个写IO请求对应的数据并根据写IO请求对应的数据生成中间校验值,其中,中间校验值存储于校验块;
分配第二apu资源给中间校验值,并传输中间校验值至第二apu资源对应的hardpage,将校验块对应的写IO信息存储于第二apu资源对应的apucontext中;
根据数据块和/或校验块的落盘情况,释放第一apu资源和/或第二apu资源。
优选地,还包括:
利用sio_flages标识对数据块和校验块进行标记。
优选地,当数据块完成落盘时,释放第一apu资源和/或第二apu资源包括:
取消数据块对应的sio_flages标识并释放第一apu资源;
查询并判断校验块对应的sio_flages标识是否存在;
若否,则释放第二apu资源;
若是,则不释放第二apu资源。
优选地,当校验块完成落盘时,释放第一apu资源和/或第二apu资源包括:
取消校验块对应的sio_flages标识并释放第二apu资源。
优选地,在传输中间校验值至第二apu资源对应的hardpage之后,还包括:
生成hardpage对应的页表,页表存储于第二apu资源对应的apucontext中,用于管理hardpage。
优选地,在传输写IO请求对应的数据至第一apu资源对应的hardpage之后,还包括:
生成hardpage对应的页表,页表存储于第一apu资源对应的apucontext中,用于管理hardpage。
优选地,在接收到写IO请求之前,还包括:
实时监控空闲的apu资源,以便于分配apu资源给写IO请求对应的数据块。
为解决上述技术问题,本申请还提供了一种RAID的资源分配装置,包括:
第一分配模块,用于当接收到写IO请求时,分配第一apu资源给写IO请求对应的数据块,其中,apu资源至少包括hardpage和apucontext;
传输模块,用于传输写IO请求对应的数据至第一apu资源对应的hardpage,并将写IO请求对应的写IO信息存储于第一apu资源对应的apucontext中;
获取并生成模块,用于获取上一个写IO请求对应的数据并根据写IO请求对应的数据生成中间校验值,其中,中间校验值存储于校验块;
第二分配模块,用于分配第二apu资源给中间校验值,并传输中间校验值至第二apu资源对应的hardpage,将校验块对应的写IO信息存储于第二apu资源对应的apucontext中;
释放模块,用于根据数据块和/或校验块的落盘情况,释放第一apu资源和/或第二apu资源。
此外,该装置还设置有以下模块,具体为:
优选地,还包括:
标记模块,用于利用sio_flages标识对数据块和校验块进行标记。
优选地,当数据块完成落盘时,释放第一apu资源和/或第二apu资源包括:
第一取消并释放模块,用于取消数据块对应的sio_flages标识并释放第一apu资源;
查询并判断模块,用于查询并判断校验块对应的sio_flages标识是否存在;
若否,则释放第二apu资源;
若是,则不释放第二apu资源。
优选地,当校验块完成落盘时,释放第一apu资源和/或第二apu资源包括:
第二取消并释放模块,用于取消校验块对应的sio_flages标识并释放第二apu资源。
优选地,在传输中间校验值至第二apu资源对应的hardpage之后,还包括:
第一生成模块,用于生成hardpage对应的页表,页表存储于第二apu资源对应的apucontext中,用于管理hardpage。
优选地,在传输写IO请求对应的数据至第一apu资源对应的hardpage之后,还包括:
第二生成模块,用于生成hardpage对应的页表,页表存储于第一apu资源对应的apucontext中,用于管理hardpage。
优选地,在接收到写IO请求之前,还包括:
实时监控模块,用于实时监控空闲的apu资源,以便于分配apu资源给写IO请求对应的数据块。
为解决上述技术问题,本申请还提供了一种RAID的资源分配设备,包括:
存储器,用于存储计算机程序;
处理器,用于指向计算机程序,实现RAID的资源分配方法的步骤。
为解决上述技术问题,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,实现上述全部RAID的资源分配方法的步骤。
本申请所提供的一种RAID的资源分配方法,包括:当接收到写IO请求时,分配第一apu资源给写IO请求对应的数据块,其中,apu资源至少包括hardpage和apucontext;传输写IO请求对应的数据至第一apu资源对应的hardpage,并将写IO请求对应的写IO信息存储于第一apu资源对应的apucontext中;获取上一个写IO请求对应的数据并根据写IO请求对应的数据生成中间校验值,其中,中间校验值存储于校验块;分配第二apu资源给中间校验值,并传输中间校验值至第二apu资源对应的hardpage,将校验块对应的写IO信息存储于第二apu资源对应的apucontext中;根据数据块和/或校验块的落盘情况,释放第一apu资源和/或第二apu资源。此时,对于一个校验块来说只需要一个apu资源,去存储中间校验值拷贝数据和存储校验块的写IO信息,无需多个apu资源,此时避免了在执行一个写IO请求时快速消耗有限的apu资源,造成其他多数写IO请求预留apu资源失败的情况,进一步提升了RAID的存储性能。
本申请还提供了一种RAID的资源分配装置、设备及介质,效果同上。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种RAID的资源分配方法流程图;
图2为本申请实施例所提供的一种RAID的资源分配装置结构图;
图3为本申请实施例所提供的一种RAID的资源分配设备结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
本申请的核心是提供一种RAID的资源分配方法、装置、设备及介质,其能够提升RAID的存储性能。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。
RAID一般是由多块磁盘组成的存储器整体,磁盘之间存放数据的关系由算法定义。常见的有关于RAID算法有0,1,5,6,10,50,60等多种,每种在磁盘中存放数据的方式不同。需要说明的是,RAID5和/或RAID6以用户定义的“条带”为基本单位进行调度,其中条带为数据长度单位,由用户自定义,是有关于RAID算法中拆分地址、使数据在不同阵列成员之间轮换的单位。RAID是把相同的数据存储在多个硬盘的不同的地方的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能。因为多个硬盘增加了平均故障间隔时间,储存冗余数据也增加了容错。
RAID5是由至少3块大小相同的硬盘构成的冗余磁盘阵列,这里的磁盘被称为“物理盘”(physical disk)。其中存储的数据按照预先设置好的长度,将各个物理盘的存储空间从前到后等间隔划分为若干“条带”(stripe),每个条带大小一致。在各个物理盘中从前到后对条带分别用非负整数进行编号,将各个物理盘中编号相同的条带作为一个整体“条带行”(stripe line)进行管理。在每个条带行内部,条带的个数与物理盘的个数一致。按照RAID5的要求,每个条带行中需要按照特定算法挑选出一个条带作为“校验盘”(paritydisk),简称为p盘,其余的条带作为“数据盘”(data disk),简称为d0、d1、d2等盘。数据在数据盘中存放,而校验盘中存放的是用数据盘内容计算生成的“校验值”。在RAID5中校验值的计算方法是:在同一条带行中去除所有数据盘相同位置存储的数据,并将它们“按位异或”,需要说明的是,校验盘的写入负载通常高于数据盘,为了平衡负载,在不同的条带行中通常选取不同的物理盘作为校验盘,这一过程称为“轮换”(stepping)。最常见的轮换方式是向左减一,若当前条带行的p盘位置为n号物理盘,则下一条带行选取n-1号物理盘作为p盘;若n=0,则轮换回到最后一个物理盘。
RAID6是由至少4块大小相同的磁盘构成的冗余磁盘阵列。其空间与RAID5类似地也划分为相同大小的条带。不同的是,在每个条带行中,RAID6算法需要选取2个物理盘作为校验盘,其中一个校验盘仍为p盘,使用与RAID5相同的算法;另外新增的校验盘使用reed-solomon算法来计算校验值,该盘简称为q盘。
当RAID5阵列中有一个物理盘发生故障时,RAID5算法可以通过读取其余盘的数据,重新计算出故障盘中的正确数据,完成“数据恢复”。如果将恢复出来的数据复制存储到新的用于替换故障盘的新硬盘中,并最终将整个故障盘替代掉,这个过程称为“数据重建”(rebuild)。当发生故障的物理盘个数大于1时,RAID5阵列无法工作。
RAID6中每个条带行中有p、q两个校验盘,可以使用Reed-Solomon算法在最多任意2个物理盘发生故障时,正确地完成数据恢复。因此,RAID6比RAID5安全性更高,但浪费在校验盘上的存储空间也更多。当发生故障的物理盘个数大于2时,RAID5阵列无法工作。其中,需要说明的是,本实施例中提到的Reed-Solomon也可以用缩写表示为RS,里德-所罗门码(Reed-solomon codes,RS codes)是一种前向错误更正的信道编码,对校正过的数据所产生的有效多项式,编码过程首先在多个点上对这些多项式求冗余,然后将其传输或者存储,对多项式的这种超出必要值得采样使得多项式超定(过限定),当接收器正确的收到足够的点后,它就可以恢复原来的多项式,即使接收到的多项式上有很多点被噪声干扰有损。同时,在本实施例中的“扇区”(sector)是一个数量单位,等于512字节,延用自普通的硬盘系统。虽然有新型硬盘使用了“4KB扇区”,但本实施例中的扇区特指传统定义下的512字节的扇区,并仅作为数量单位使用。由于RAID5和/或RAID6的数据是以相等大小的“条带”为单位管理的,一般把条带抽象为表格的形式进行管理。此时,每个小格代表了一个条带,每个横行代表一个条带行,每个纵列代表一块物理盘。在计算校验值p、q或进行数据恢复时,需要将物理盘中的数据复制到RAID系统的随机存取存储器(Random Access Memory,RAM)中。
RAID技术主要有以下三个基本功能:其一,通过对磁盘上的数据进行条带化,实现对数据成块存取,减少磁盘的机械寻道时间,提高了数据存取速度;其二,通过对一个阵列中的几块磁盘同时读取,减少了磁盘的机械寻道时间,提高数据存取速度;其三,通过镜像或者存储奇偶校验信息的方式,实现了对数据的冗余保护。
磁盘阵列其样式有三种,一是外接式磁盘阵列柜、二是内接式磁盘阵列卡,三是利用软件来仿真。外接式磁盘阵列柜最常被使用大型服务器上,具可热交换(Hot Swap)的特性,不过这类产品的价格都很贵;内接式磁盘阵列卡,因为价格便宜,但需要较高的安装技术,适合技术人员使用操作,硬件阵列能够提供在线扩容、动态修改阵列级别、自动数据恢复、驱动器漫游、超高速缓冲等功能。它能提供性能、数据保护、可靠性、可用性和可管理性的解决方案。阵列卡专用的处理单元来进行操作;利用软件仿真的方式,是指通过网络操作系统自身提供的磁盘管理功能将连接的普通小型计算机系统接口(Small ComputerSystem Interface,SCSI)上的多块硬盘配置成逻辑盘,组成阵列。软件阵列可以提供数据冗余功能,但是磁盘子系统的性能会有所降低,有的降低幅度还比较大,达30%左右。因此会拖累机器的速度,不适合大数据流量的服务器。
磁盘阵列作为独立系统在主机外直连或通过网络与主机相连。磁盘阵列有多个端口可以被不同主机或不同端口连接。一个主机连接阵列的不同端口可提升传输速度。和用单磁盘内部集成缓存一样,在磁盘阵列内部为加快与主机交互速度,都带有一定量的缓冲存储器。主机与磁盘阵列的缓存交互,缓存与具体的磁盘交互数据。在应用中,有部分常用的数据是需要经常读取的,磁盘阵列根据内部的算法,查找出这些经常读取的数据,存储在缓存中,加快主机读取这些数据的速度,而对于其他缓存中没有的数据,主机要读取,则由阵列从磁盘上直接读取传输给主机。对于主机写入的数据,只写在缓存中,主机可以立即完成写操作。然后由缓存再慢慢写入磁盘。
RAID一般是为了提高传输速率。RAID通过在多个磁盘上同时存储和读取数据来大幅提高存储系统的数据吞吐量(Throughput)。在RAID中,可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个磁盘驱动器几倍、几十倍甚至上百倍的速率。当CPU的速度增长很快,而磁盘驱动器的数据传输速率无法大幅提高,即可以使用RAID。另外,还能通过数据校验提供容错功能。普通磁盘驱动器无法提供容错功能,如果不包括写在磁盘上的循环冗余校验码,RAID容错是建立在每个磁盘驱动器的硬件容错功能之上的,所以它提供更高的安全性。在很多RAID模式中都有较为完备的相互校验/恢复的措施,甚至是直接相互的镜像备份,从而大大提高了RAID系统的容错度,提高了系统的稳定冗余性。同时,RAID还具有以下缺点:RAID0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都无法使用。RAID1磁盘的利用率最高只能达到50%(使用两块盘的情况下),是所有RAID级别中最低的。RAID0+1以理解为是RAID0和RAID1的折中方案。RAID0+1可以为系统提供数据安全保障,但保障程度要比Mirror低而磁盘空间利用率要比Mirror高。
图1为本申请实施例所提供的一种RAID的资源分配方法流程图,如图1所示,该RAID的资源分配方法,包括:
S10:当接收到写IO请求时,分配第一apu资源给写IO请求对应的数据块;
其中,apu资源至少包括hardpage和apucontext;
S11:传输写IO请求对应的数据至第一apu资源对应的hardpage,并将写IO请求对应的写IO信息存储于第一apu资源对应的apucontext中;
S12:获取上一个写IO请求对应的数据并根据写IO请求对应的数据生成中间校验值;
其中,中间校验值存储于校验块;
S13:分配第二apu资源给中间校验值,并传输中间校验值至第二apu资源对应的hardpage,将校验块对应的写IO信息存储于第二apu资源对应的apucontext中;
S14:根据数据块和/或校验块的落盘情况,释放第一apu资源和/或第二apu资源。
需要说明的是,数据块和校验块的划分是根据最小分块单位进行划分的,Stridenumber为对应分块的条带编号,stripnumber为对应的分块编号,在apucontext中将数据块记为d_buffer,将校验块记为p_buffer和q_buffer,将存储中间校验值的块记为paritydelta_buffer,对应的中间校验值记为parity_delta,其中对于RAID一般分为RAID5和RAID6,当该RAID为RAID5时,校验块有且仅有一个记为p_buffer;当该RAID为RAID6时,校验块有两个记为p_buffer和q_buffer。此时,在apucontext中上述提及的部分可以表示为:
Struct Apucontext{
uint 64stridenumber;
uint 16stripnumber;
uint 32d_buffer;
uint 32p_buffer;
uint 32q_buffer;
uint 32paritydelta_buffer;
}
其中,在接收到写IO请求之前,还包括:实时监控空闲的apu资源,以便于分配apu资源给写IO请求对应的数据块。
其中,在传输中间校验值至第二apu资源对应的hardpage之后,还包括:生成hardpage对应的页表,页表存储于第二apu资源对应的apucontext中,用于管理hardpage。同样的,在传输写IO请求对应的数据至第一apu资源对应的hardpage之后,还包括:生成hardpage对应的页表,页表存储于第一apu资源对应的apucontext中,用于管理hardpage。其中,页表用于管理hardpage中的全部信息。
需要说明的是,给数据块分配apucontext,hardpage资源,从主机获取新数据(当前写IO请求对应的传输的数据)时,将数据存入hardpage内存,分配页表管理hardpage,apucontext中的数据块对应的页表,将IO信息(包括条带编号,分块编号,页表等等)记录在apucontext中,读取旧数据(上一个写IO请求对应的传输的数据),将获取到的新数据以及旧数据进行异或校验计算获取中间校验数据,分配hardpage以及页表,将计算结果存入hardpage,将paritydelta的页表信息存入数据块apucontext中的paritydelta_buffer中。
准备新数据落盘的同时启动校验的流程,此时会给每个校验分配一个apucontext,然后进行读取旧校验数据的流程,将旧校验数据与中间校验数据进行异或得出新校验数据,分配hardpage,页表,将计算好的新校验数据写入hardpage中,将校验块IO信息分别记录在对应的apucontext中,准备校验数据的落盘流程。需要说明的是,在其中涉及多线程关系,所以数据块和校验块完成落盘的先后顺序是不确定的。此时,每个校验块仅分配一个apucontext,替代现有的写IO流程中每个校验块分配2个apucontext(一个用来存新校验块信息,一个拷贝数据块和paritydelta对应的apucontext信息),减少所需要的apucontext资源消耗,避免apu资源预留不到等待的情况,提升存储性能。
本申请所提供的一种RAID的资源分配方法,包括:当接收到写IO请求时,分配第一apu资源给写IO请求对应的数据块,其中,apu资源至少包括hardpage和apucontext;传输写IO请求对应的数据至第一apu资源对应的hardpage,并将写IO请求对应的写IO信息存储于第一apu资源对应的apucontext中;获取上一个写IO请求对应的数据并根据写IO请求对应的数据生成中间校验值,其中,中间校验值存储于校验块;分配第二apu资源给中间校验值,并传输中间校验值至第二apu资源对应的hardpage,将校验块对应的写IO信息存储于第二apu资源对应的apucontext中;根据数据块和/或校验块的落盘情况,释放第一apu资源和/或第二apu资源。此时,对于一个校验块来说只需要一个apu资源,去存储中间校验值拷贝数据和存储校验块的写IO信息,无需多个apu资源,此时避免了在执行一个写IO请求时快速消耗有限的apu资源,造成其他多数写IO请求预留apu资源失败的情况,进一步提升了RAID的存储性能。
在上述实施例的基础上,作为一种更优选的实施方式,还包括:
利用sio_flages标识对数据块和校验块进行标记。该用sio_flages标识记录中间校验数据的使用情况,需要说明的是,sio_flages标识是包含在sio标识结构体添加成员中的,另外,paritysio为sio结构体类型变量,每一个校验块均会对应一个paritysio变量。
则,此时sio_flages标识按照以下表示划分:
sio struct{
uint 32sio_flages;
}
由于计算新校验块p和新校验块q都需要中间校验数据,而中间校验数据与数据块对应公用一个apucontext资源,释放paritydelta对应的apucontext资源时需要根据sio_flages标识判断是否还有其他分块需要用,一个条带内IO对应的数据块以及校验块中最后一个完成落盘方可释放apucontext资源。
同时又因为RAID一般分为RAID5和RAID6,因此,当数据块完成落盘时,释放第一apu资源和/或第二apu资源包括:
取消数据块对应的sio_flages标识并释放第一apu资源;
查询并判断校验块对应的sio_flages标识是否存在;
若否,则释放第二apu资源;
若是,则不释放第二apu资源。
若此时RAID为RAID5,则找到数据块对应的校验paritysio变量,将sio_flages标识为:sio_flages&=~DataNeedApuContext,此时即为将表征DataNeedApuContext(数据块需要apucontext资源)的标记取消掉,此时表示数据块不需要paritydelta对应的apucontext资源。
若此时RAID为DRAID6,则会在数据块对应校验块p和校验块q分别对应的paritysio变量,将sio_flages标识为:sio_flages&=~DataNeedApuContext,此时即为将表征DataNeedApuContext(数据块需要apucontext资源)的标记取消掉,此时表示数据块不需要paritydelta对应的apucontext资源。
若此时RAID为RAID5,找到对应校验块的sio_flages标识,此时sio_flages标识若没有SingleParityNeedDelta标记,表示校验块已完成落盘不再需要paritydelta对应的apucontext资源,由于此时数据块也不需要paritydelta对应的apucontext资源,则将apucontext资源释放,否则若有SingleParityNeedDelta标记,表示校验块的数据还未完成落盘流程,则不释放apucontext资源。
若此时RAID为DRAID6,若两个校验块都不需要paritydelta对应的apucontext资源(两个sio_flages标识中都没有OtherParityNeedDelta标记),由于此时数据块也不需要paritydelta,则将apucontext资源进行释放,否则表示至少有一个校验块需要apucontext资源,则不释放apucontext资源。
同时,当校验块完成落盘时,释放第一apu资源和/或第二apu资源包括:
取消校验块对应的sio_flages标识并释放第二apu资源。
若此时RAID为RAID5,校验块对应的sio_flages标识可以表示为:sio_flages&=~SingleParityNeedDelta,若此时,没有DataNeedApuContext标记,表示数据块已完成写IO请求,即不再需要apucontext资源,则释放apucontext资源,否则不释放apucontext资源。
若此时RAID为DRAID6,找到落盘完成的校验块对应的sio_flages标识,若没有OtherParityNeedDelta标记,且也没有DataNeedApuContext标记,表示另一个校验块以及数据块已完成落盘,则释放apucontext资源,否则不释放apucontext资源。可以理解的是,完成落盘校验块的另一个校验块对应sio_flages可以表示为:sio_flages&=~OtherParityNeedDelta。
还需要说明的是,本实施例采用编程语言进行算法实现,设计消耗少量apu资源的写IO流程算法,且适用于分布式DRAID阵列配置的写IO流程,以用于提高存储设备性能。每个校验块仅分配一个apucontext,替代现有的写IO流程中每个校验块分配2个apucontext(一个用来存新校验块信息,一个拷贝数据块和paritydelta对应的apucontext信息),减少所需要的apucontext资源消耗,避免apu资源预留不到等待的情况,降低异步申请等待资源的概率,提升存储性能。
此外,RAID可以通过软件和/或硬件实现,具体如下:
使用基于主机的软件提供RAID功能,是在操作系统级上实现的,与硬件RAID相比,软件RAID具有成本低廉和简单直观的优点。但是,软件RAID有以下不足:其一,性能:软件RAID会影响系统整体性能。这是因为软件RAID需要CPU来执行RAID计算;其二,功能:软件RAID支持有限的RAID级别;其三,兼容性:软件RAID与主机操作系统绑定,因此,需要对软件RAID或操作系统升级进行兼容性验证,只有当RAID软件和操作系统兼容时,才能对其进行升级,这会降低数据处理环境的灵活性。
硬件RAID包括基于主机的硬件RAID和基于阵列的硬件RAID。基于主机的硬件RAID通常是将专用RAID控制器安装在主机上,并且所有磁盘驱动器都与主机相连,还可以将RAID控制器集成到主板上。但是基于主机的硬件RAID控制器在包含大量主机的数据中心环境下却不是高效的解决方案。而基于阵列的硬件RAID是使用外部硬件RAID控制器,它充当主机与磁盘之间的接口,将存储卷呈现给主机,主机将这些卷作为物理驱动器进行管理。硬件RAID控制器具有如下主要特点:其一,管理与控制磁盘聚合;其二,转换逻辑磁盘和物理磁盘之间的I/O请求;其三,在磁盘出故障时重新生成数据。
在上述实施例中,对于RAID的资源分配方法进行了详细描述,本申请还提供RAID的资源分配装置对应的实施例。需要说明的是,本申请从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件的角度。
图2为本申请实施例所提供的一种RAID的资源分配装置结构图,如图2所示,本申请还提供了一种RAID的资源分配装置,包括:
第一分配模块20,用于当接收到写IO请求时,分配第一apu资源给写IO请求对应的数据块,其中,apu资源至少包括hardpage和apucontext;
传输模块21,用于传输写IO请求对应的数据至第一apu资源对应的hardpage,并将写IO请求对应的写IO信息存储于第一apu资源对应的apucontext中;
获取并生成模块22,用于获取上一个写IO请求对应的数据并根据写IO请求对应的数据生成中间校验值,其中,中间校验值存储于校验块;
第二分配模块23,用于分配第二apu资源给中间校验值,并传输中间校验值至第二apu资源对应的hardpage,将校验块对应的写IO信息存储于第二apu资源对应的apucontext中;
释放模块24,用于根据数据块和/或校验块的落盘情况,释放第一apu资源和/或第二apu资源。
需要说明的是,数据块和校验块的划分是根据最小分块单位进行划分的,Stridenumber为对应分块的条带编号,stripnumber为对应的分块编号,在apucontext中将数据块记为d_buffer,将校验块记为p_buffer和q_buffer,将存储中间校验值的块记为paritydelta_buffer,对应的中间校验值记为parity_delta,其中对于RAID一般分为RAID5和RAID6,当该RAID为RAID5时,校验块有且仅有一个记为p_buffer;当该RAID为RAID6时,校验块有两个记为p_buffer和q_buffer。此时,在apucontext中上述提及的部分可以表示为:
Struct Apucontext{
uint 64stridenumber;
uint 16stripnumber;
uint 32d_buffer;
uint 32p_buffer;
uint 32q_buffer;
uint 32paritydelta_buffer;
}
优选地,在传输中间校验值至第二apu资源对应的hardpage之后,还包括:第一生成模块,用于生成hardpage对应的页表,页表存储于第二apu资源对应的apucontext中,用于管理hardpage。同样的,在传输写IO请求对应的数据至第一apu资源对应的hardpage之后,还包括:第二生成模块,用于生成hardpage对应的页表,页表存储于第一apu资源对应的apucontext中,用于管理hardpage。其中,页表用于管理hardpage中的全部信息。
需要说明的是,给数据块分配apucontext,hardpage资源,从主机获取新数据(当前写IO请求对应的传输的数据)时,将数据存入hardpage内存,分配页表管理hardpage,apucontext中的数据块对应的页表,将IO信息(包括条带编号,分块编号,页表等等)记录在apucontext中,读取旧数据(上一个写IO请求对应的传输的数据),将获取到的新数据以及旧数据进行异或校验计算获取中间校验数据,分配hardpage以及页表,将计算结果存入hardpage,将paritydelta的页表信息存入数据块apucontext中的paritydelta_buffer中。
准备新数据落盘的同时启动校验的流程,此时会给每个校验分配一个apucontext,然后进行读取旧校验数据的流程,将旧校验数据与中间校验数据进行异或得出新校验数据,分配hardpage,页表,将计算好的新校验数据写入hardpage中,将校验块IO信息分别记录在对应的apucontext中,准备校验数据的落盘流程。需要说明的是,在其中涉及多线程关系,所以数据块和校验块完成落盘的先后顺序是不确定的。此时,每个校验块仅分配一个apucontext,替代现有的写IO流程中每个校验块分配2个apucontext(一个用来存新校验块信息,一个拷贝数据块和paritydelta对应的apucontext信息),减少所需要的apucontext资源消耗,避免apu资源预留不到等待的情况,提升存储性能。
其中,在接收到写IO请求之前,还包括:实时监控空闲的apu资源,以便于分配apu资源给写IO请求对应的数据块。
优选地,在接收到写IO请求之前,还包括:
实时监控模块,用于实时监控空闲的apu资源,以便于分配apu资源给写IO请求对应的数据块。
优选地,还包括:
标记模块,用于利用sio_flages标识对数据块和校验块进行标记。该sio_flages标识记录中间校验数据的使用情况,需要说明的是,sio_flages标识是包含在sio标识结构体添加成员中的,另外,paritysio为sio结构体类型变量,每一个校验块均会对应一个paritysio变量。
则,此时sio_flages标识按照以下表示划分:
sio struct{
uint 32sio_flages;
}
由于计算新校验块p和新校验块q都需要中间校验数据,而中间校验数据与数据块对应公用一个apucontext资源,释放paritydelta对应的apucontext资源时需要根据sio_flages标识判断是否还有其他分块需要用,一个条带内IO对应的数据块以及校验块中最后一个完成落盘方可释放apucontext资源。
同时又因为RAID一般分为RAID5和RAID6,因此,当数据块完成落盘时,释放第一apu资源和/或第二apu资源包括:
第一取消并释放模块,用于取消数据块对应的sio_flages标识并释放第一apu资源;
查询并判断模块,用于查询并判断校验块对应的sio_flages标识是否存在;
若否,则释放第二apu资源;
若是,则不释放第二apu资源。
若此时RAID为RAID5,则找到数据块对应的校验paritysio变量,将sio_flages标识为:sio_flages&=~DataNeedApuContext,此时即为将表征DataNeedApuContext(数据块需要apucontext资源)的标记取消掉,此时表示数据块不需要paritydelta对应的apucontext资源。
若此时RAID为DRAID6,则会在数据块对应校验块p和校验块q分别对应的paritysio变量,将sio_flages标识为:sio_flages&=~DataNeedApuContext,此时即为将表征DataNeedApuContext(数据块需要apucontext资源)的标记取消掉,此时表示数据块不需要paritydelta对应的apucontext资源。
若此时RAID为RAID5,找到对应校验块的sio_flages标识,此时sio_flages标识若没有SingleParityNeedDelta标记,表示校验块已完成落盘不再需要paritydelta对应的apucontext资源,由于此时数据块也不需要paritydelta对应的apucontext资源,则将apucontext资源释放,否则若有SingleParityNeedDelta标记,表示校验块的数据还未完成落盘流程,则不释放apucontext资源。
若此时RAID为DRAID6,若两个校验块都不需要paritydelta对应的apucontext资源(两个sio_flages标识中都没有OtherParityNeedDelta标记),由于此时数据块也不需要paritydelta,则将apucontext资源进行释放,否则表示至少有一个校验块需要apucontext资源,则不释放apucontext资源。
优选地,当校验块完成落盘时,释放第一apu资源和/或第二apu资源包括:
第二取消并释放模块,用于取消校验块对应的sio_flages标识并释放第二apu资源。
若此时RAID为RAID5,校验块对应的sio_flages标识可以表示为:sio_flages&=~SingleParityNeedDelta,若此时,没有DataNeedApuContext标记,表示数据块已完成写IO请求,即不再需要apucontext资源,则释放apucontext资源,否则不释放apucontext资源。
若此时RAID为DRAID6,找到落盘完成的校验块对应的sio_flages标识,若没有OtherParityNeedDelta标记,且也没有DataNeedApuContext标记,表示另一个校验块以及数据块已完成落盘,则释放apucontext资源,否则不释放apucontext资源。可以理解的是,完成落盘校验块的另一个校验块对应sio_flages可以表示为:sio_flages&=~OtherParityNeedDelta。
还需要说明的是,本实施例采用编程语言进行算法实现,设计消耗少量apu资源的写IO流程算法,且适用于分布式DRAID阵列配置的写IO流程,以用于提高存储设备性能。每个校验块仅分配一个apucontext,替代现有的写IO流程中每个校验块分配2个apucontext(一个用来存新校验块信息,一个拷贝数据块和paritydelta对应的apucontext信息),减少所需要的apucontext资源消耗,避免apu资源预留不到等待的情况,降低异步申请等待资源的概率,提升存储性能。
本申请所提供的装置部分与方法部分具有同样的有益效果,具体为:当接收到写IO请求时,分配第一apu资源给写IO请求对应的数据块,其中,apu资源至少包括hardpage和apucontext;传输写IO请求对应的数据至第一apu资源对应的hardpage,并将写IO请求对应的写IO信息存储于第一apu资源对应的apucontext中;获取上一个写IO请求对应的数据并根据写IO请求对应的数据生成中间校验值,其中,中间校验值存储于校验块;分配第二apu资源给中间校验值,并传输中间校验值至第二apu资源对应的hardpage,将校验块对应的写IO信息存储于第二apu资源对应的apucontext中;根据数据块和/或校验块的落盘情况,释放第一apu资源和/或第二apu资源。此时,对于一个校验块来说只需要一个apu资源,去存储中间校验值拷贝数据和存储校验块的写IO信息,无需多个apu资源,此时避免了在执行一个写IO请求时快速消耗有限的apu资源,造成其他多数写IO请求预留apu资源失败的情况,进一步提升了RAID的存储性能。
图3为本申请实施例所提供的一种RAID的资源分配设备结构图,如图3所示,一种RAID的资源分配设备包括:
存储器30,用于存储计算机程序;
处理器31,用于执行计算机程序时实现如上述实施例中所提到的RAID的资源分配方法的步骤。
本实施例提供的RAID的资源分配设备可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
其中,处理器31可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器31可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器31也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器31可以集成有图像处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器31还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器30可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器30还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器30至少用于存储以下计算机程序,其中,该计算机程序被处理器31加载并执行之后,能够实现前述任意一个实施例公开的RAID的资源分配方法的相关步骤。另外,存储器30所存储的资源还可以包括操作系统和数据等,存储方式可以是短暂存储或者永久存储。其中,操作系统可以包括Windows、Unix、Linux等。数据可以包括但不限于RAID的资源分配方法等。
在一些实施例中,RAID的资源分配设备还可包括有显示屏、输入输出接口、通信接口、电源以及通信总线。
本领域技术人员可以理解,图3中示出的结构并不构成对RAID的资源分配设备的限定,可以包括比图示更多或更少的组件。
本申请实施例提供的RAID的资源分配设备,包括存储器30和处理器31,处理器31在执行存储器30存储的程序时,能够实现RAID的资源分配方法。
最后,本申请还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory),ROM、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上对本申请所提供的一种RAID的资源分配方法、装置、设备及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种RAID的资源分配方法,其特征在于,包括:
当接收到写IO请求时,分配第一apu资源给所述写IO请求对应的数据块,其中,所述apu资源至少包括hardpage和apucontext;
传输所述写IO请求对应的数据至所述第一apu资源对应的hardpage,并将所述写IO请求对应的写IO信息存储于所述第一apu资源对应的apucontext中;
获取上一个写IO请求对应的数据并根据所述写IO请求对应的数据生成中间校验值,其中,所述中间校验值存储于校验块;
分配第二apu资源给所述中间校验值,并传输所述中间校验值至所述第二apu资源对应的hardpage,将所述校验块对应的写IO信息存储于所述第二apu资源对应的apucontext中;
根据所述数据块和/或所述校验块的落盘情况,释放所述第一apu资源和/或所述第二apu资源。
2.根据权利要求1所述的RAID的资源分配方法,其特征在于,还包括:
利用sio_flages标识对所述数据块和所述校验块进行标记。
3.根据权利要求2所述的RAID的资源分配方法,其特征在于,当所述数据块完成落盘时,所述释放所述第一apu资源和/或所述第二apu资源包括:
取消所述数据块对应的所述sio_flages标识并释放所述第一apu资源;
查询并判断所述校验块对应的所述sio_flages标识是否存在;
若否,则释放所述第二apu资源;
若是,则不释放所述第二apu资源。
4.根据权利要求1所述的RAID的资源分配方法,其特征在于,当所述校验块完成落盘时,所述释放所述第一apu资源和/或所述第二apu资源包括:
取消所述校验块对应的所述sio_flages标识并释放所述第二apu资源。
5.根据权利要求1所述的RAID的资源分配方法,其特征在于,在所述传输所述中间校验值至所述第二apu资源对应的hardpage之后,还包括:
生成所述hardpage对应的页表,所述页表存储于所述第二apu资源对应的apucontext中,用于管理所述hardpage。
6.根据权利要求1所述的RAID的资源分配方法,其特征在于,在所述传输所述写IO请求对应的数据至所述第一apu资源对应的hardpage之后,还包括:
生成所述hardpage对应的页表,所述页表存储于所述第一apu资源对应的apucontext中,用于管理所述hardpage。
7.根据权利要求1所述的RAID的资源分配方法,其特征在于,在所述接收到写IO请求之前,还包括:
实时监控空闲的所述apu资源,以便于分配所述apu资源给所述写IO请求对应的数据块。
8.一种RAID的资源分配装置,其特征在于,包括:
第一分配模块,用于当接收到写IO请求时,分配第一apu资源给所述写IO请求对应的数据块,其中,所述apu资源至少包括hardpage和apucontext;
传输模块,用于传输所述写IO请求对应的数据至所述第一apu资源对应的hardpage,并将所述写IO请求对应的写IO信息存储于所述第一apu资源对应的apucontext中;
获取并生成模块,用于获取上一个写IO请求对应的数据并根据所述写IO请求对应的数据生成中间校验值,其中,所述中间校验值存储于校验块;
第二分配模块,用于分配第二apu资源给所述中间校验值,并传输所述中间校验值至所述第二apu资源对应的hardpage,将所述校验块对应的写IO信息存储于所述第二apu资源对应的apucontext中;
释放模块,用于根据所述数据块和/或所述校验块的落盘情况,释放所述第一apu资源和/或所述第二apu资源。
9.一种RAID的资源分配设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任意一项所述的RAID的资源分配方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任意一项所述的RAID的资源分配方法的步骤。
CN202310397484.7A 2023-04-14 2023-04-14 一种raid的资源分配方法、装置、设备及介质 Pending CN116401063A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310397484.7A CN116401063A (zh) 2023-04-14 2023-04-14 一种raid的资源分配方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310397484.7A CN116401063A (zh) 2023-04-14 2023-04-14 一种raid的资源分配方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN116401063A true CN116401063A (zh) 2023-07-07

Family

ID=87008778

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310397484.7A Pending CN116401063A (zh) 2023-04-14 2023-04-14 一种raid的资源分配方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN116401063A (zh)

Similar Documents

Publication Publication Date Title
US10459814B2 (en) Drive extent based end of life detection and proactive copying in a mapped RAID (redundant array of independent disks) data storage system
US7206899B2 (en) Method, system, and program for managing data transfer and construction
US8819338B2 (en) Storage system and storage apparatus
US9378093B2 (en) Controlling data storage in an array of storage devices
US9026845B2 (en) System and method for failure protection in a storage array
US6993676B2 (en) Method and apparatus for fast initialization of redundant arrays of storage devices
US20150286531A1 (en) Raid storage processing
US9612745B2 (en) Raid set initialization
US11593000B2 (en) Data processing method and apparatus
US9760296B2 (en) Storage device and method for controlling storage device
US20080162826A1 (en) Storage system and data guarantee method
US7188303B2 (en) Method, system, and program for generating parity data
US8418029B2 (en) Storage control device and storage control method
US9104598B2 (en) Systems and methods for medium error reporting and handling in storage devices
CN114415968B (zh) 存储系统及其数据写入方法
CN116401063A (zh) 一种raid的资源分配方法、装置、设备及介质
US9639417B2 (en) Storage control apparatus and control method
CN116069266B (zh) 磁盘漫游控制方法、装置、设备及计算机可读存储介质
US11640337B2 (en) Data recovery of distributed data using redundant codes

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