CN117631959A - 硬盘控制方法及装置 - Google Patents
硬盘控制方法及装置 Download PDFInfo
- Publication number
- CN117631959A CN117631959A CN202210999449.8A CN202210999449A CN117631959A CN 117631959 A CN117631959 A CN 117631959A CN 202210999449 A CN202210999449 A CN 202210999449A CN 117631959 A CN117631959 A CN 117631959A
- Authority
- CN
- China
- Prior art keywords
- storage
- partition
- storage medium
- partitions
- hard disk
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000005192 partition Methods 0.000 claims abstract description 429
- 238000012545 processing Methods 0.000 claims description 32
- 238000006243 chemical reaction Methods 0.000 claims description 16
- 238000011084 recovery Methods 0.000 claims description 15
- 238000013519 translation Methods 0.000 claims description 14
- 238000013500 data storage Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 17
- 239000002245 particle Substances 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000012005 ligant binding assay Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 101150027875 Ftl1 gene Proteins 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 239000008187 granular material Substances 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 101100013460 Mus musculus Ftl2 gene Proteins 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 241001391944 Commicarpus scandens Species 0.000 description 1
- 101100458361 Drosophila melanogaster SmydA-8 gene Proteins 0.000 description 1
- 101100013458 Mus musculus Ftl1 gene Proteins 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种硬盘控制方法及装置,涉及数据存储技术领域。该硬盘中包括N个存储介质单元和控制器,N≥1,N个存储介质单元均与控制器电连接,在该方法中:控制器获取N个存储介质单元的状态信息,状态信息用于表征各个存储介质单元的存储空间状态;控制器基于状态信息,根据N个存储介质单元的存储空间配置M个存储分区,M个存储分区中的任意两个存储分区互为镜像存储分区,M个存储分区在同一个硬盘内,M≥2。这样,M个存储分区中的数据保持一致性,即硬盘中实际可以存储M份相同的数据,实现硬盘的多重冗余备份。当硬盘中因部分存储介质单元损坏导致对应数据丢失时,能够从其他存储分区的存储介质单元中找到备份的数据,从而提升硬盘的可靠性。
Description
技术领域
本申请涉及数据存储技术领域,尤其涉及一种硬盘控制方法及装置。
背景技术
硬盘是电子计算机用来存储数据的工具系统。但是,硬盘是易损坏件,例如,硬盘存储器芯片中的若干闪存颗粒均有一定的使用寿命,因此容易因部分闪存颗粒老化发生数据读写错误或硬盘故障。并且,硬盘也常发生数据静默错误等局部损坏的故障。而硬盘一旦出现局部损坏或故障,对应损坏或故障位置存储的数据就会丢失等,甚至会影响计算机业务运行,造成严重问题。
因此,硬盘存在可靠性较低的弊端。
发明内容
本申请提供了一种硬盘控制方法及装置,能够提高硬盘的可靠性。
第一方面,本申请提供一种硬盘控制方法,硬盘中包括N个存储介质单元和控制器,N≥1,N个存储介质单元均与控制器电连接,该方法包括:该控制器获取N个存储介质单元的状态信息,状态信息用于表征各个存储介质单元的存储空间的状态;该控制器还基于状态信息,将N个存储介质单元的存储空间配置M个存储分区,M个存储分区中的任意两个存储分区互为镜像存储分区,M个存储分区在同一个硬盘内,M≥2。
本申请提供的硬盘控制方法中,硬盘中的控制器通过获取各个存储介质单元的状态(如存储容量,是否可用等状态信息),能够将硬盘中所有存储介质单元的存储空间,即该硬盘的可用存储空间,划分为M个存储分区,并使得到的M个存储分区中任意两个存储分区互为镜像存储区域。这样,M个存储分区中的数据保持一致性,即硬盘中实际可以存储M份相同的数据,实现硬盘的多重冗余备份。从而,当硬盘中因部分存储介质单元损坏导致对应数据丢失时,能够从其他存储分区的存储介质单元中找到备份的数据,从而提升硬盘的可靠性。
在一些可能的实施方式中,在根据N个存储介质单元的存储空间配置M个存储分区之后,方法还包括:根据M个存储分区,对应配置M个闪存转换层,以通过M个闪存转换层一一对应地管理M个存储分区下的存储介质单元的逻辑地址。
这样,每个存储分区具有自己独立的闪存转换层,继而硬盘控制器可以通过每个存储分区对应的闪存转换层,对存储分区内的存储介质单元进行统一编址,以对这些存储介质单元进行访问和管理。例如,第一闪存转换层管理第一存储分区下的存储介质单元的逻辑地址,第二闪存转换层管理第二存储分区下的存储介质单元的逻辑地址,以利于有效管理各存储分区对应存储介质单元的逻辑地址,从而便于访问操作。
在一些可能的实施方式中,存储空间的状态包括存储空间的容量,在根据N个存储介质单元的存储空间配置M个存储分区之后,方法还包括:当M个存储分区的存储空间容量不相等时,将存储空间最小的存储分区的容量,确定为硬盘的可用容量。
在本实施方式中,由于硬盘中配置的M个存储分区中,任意两个存储分区之间均互为镜像存储分区,即各存储分区写入的数据一致性,所以以存储空间最小的存储分区的容量作为所在硬盘的可用容量,可以避免硬盘中写入超过该容量的数据而破坏各存储分区之前的一致性。
在一些可能的实施方式中,在根据N个存储介质单元的存储空间配置M个存储分区之后,方法还包括:获取写数据指令,根据M个存储分区的数量,将写数据指令对应复制为M个,通过各个存储分区对应的闪存转换层,将M个写数据指令分别下发至M个存储分区中对应的存储介质单元,以在对应的存储介质单元中执行对应的写数据操作。
这样,硬盘控制器将获取的写数据指令按照存储分区的数量进行复制,使得每个存储分区都能获取一个相同的写数据指令,从而执行相同的写数据操作,保持存储分区之间的数据一致性,保证硬盘的多重冗余备份效果。
在一些可能的实施方式中,在根据N个存储介质单元的存储空间配置M个存储分区之后,方法还包括:获取读数据指令,通过目标存储分区对应的闪存转换层,将读数据指令下发至目标存储分区中对应的存储介质单元,目标存储分区为M个存储分区之一。然后根据读数据指令,在目标存储分区中对应的存储介质单元中,执行对应的读数据操作。
这样,由于硬盘中各存储分区之间的数据一致,因此为了保证数据读取效率,硬盘控制器可以从M个存储分区中确定一个目标存储分区,将获取的读数据指令单独下发到该目标存储分区执行读数据操作即可。
在一些可能的实施方式中,在通过目标存储分区对应的闪存转换层,将读数据指令下发至目标存储分区中对应的存储介质单元之前,方法还包括:对M个存储分区设置优先级顺序,按照优先级顺序,将优先级最高的一个存储分区确定为目标存储分区。在当前的目标存储分区不可用时,按照优先级顺序,将优先级仅次于该当前目标存储分区的一个存储分区,重新确定为目标存储分区。
在本实施方式中,由于读数据过程中可以只从一个存储分区执行读数据操作即可,所以硬盘控制器可以将硬盘中所有的存储分区进行优先级排序,按照优先级顺序确定用于执行读数据操作的目标存储分区,这样如果确定的目标存储分区不可用(如发生存储介质单元故障)或执行读数据操作失败时,可以顺次从另外的存储分区中执行相同的读数据操作,利用这种多重冗余备份能力充分保证读数据操作能够成功执行。
在一些可能的实施方式中,在根据N个存储介质单元的存储空间配置M个存储分区之后,方法还包括:获取故障存储介质单元的故障信息,故障信息用于表征故障原因以及故障存储介质单元的故障存储空间;根据故障信息,从硬盘的预留空间中确定目标存储空间,目标存储存储空间不小于故障存储空间;利用目标存储空间替换故障存储空间;从故障存储介质单元所属存储分区之外的存储分区中,获取目标数据,写入故障存储介质单元所属存储分区。
在本实施方式中,硬盘中预先从全部存储空间中划分一部分存储空间为预留空间,当某个分区或某些分区中的存储介质单元故障时,可以从该预留空间中确定相同的目标存储空间,对故障存储介质进行替换,保证发生故障的存储介质单元所在的存储分区容量不变。然后基于硬盘的多重冗余备份能力,从该存储分区之外的分区中获取数据进行重写入操作,保持各存储分区之间的数据一致性,从而利于提高硬盘的可靠性。
第二方面,本申请还提供了一种硬盘控制方法,硬盘中包括N个存储介质单元和控制器,N≥1,N个存储介质单元均与控制器电连接,其特征在于,方法包括:该控制器获取N个存储介质单元的状态信息,状态信息用于表征各个存储介质单元的存储空间的容量;该控制器根据状态信息,将N个存储介质单元的存储空间,配置为K个存储分区对,每个存储分区对中均包括一个第一分区和一个第二分区,其中,第二分区为对应第一分区的备份区域,备份区域为设有数据恢复策略的区域,数据恢复策略用于恢复对应第一分区中存储的数据,K≥1。
在本实施例中,硬盘控制器可以所有存储介质单元的存储空间配置为多个存储分区对,每个分区对均包括第一分区以及对该第一分区具有备份能力的第二分区,其中第二分区的本分能力是通过注入数据恢复策略(如奇偶检验算法)的方式实现的。这样,所有存储分区对可以构成基于分布式奇偶校验的独立磁盘结构(RAID),进而实现硬盘内部的多重冗余备份,提高硬盘的可靠性。譬如,在写数据过程中,将对应数据交替写入各个存储分区对中的第一分区中,这样,当任一个第一分区出现故障时,可以利用其他存储分区对中第二分区的奇偶校验算法,恢复故障的第一分区中的数据,实现基于分布式奇偶校验的独立磁盘结构校验位算法原理的数据迁移,提高了硬盘的可靠性。
第三方面,本申请提供一种硬盘控制装置,硬盘中包括N个存储介质单元和控制器,N≥1,N个存储介质单元均与控制器电连接,其特征在于,装置应用于控制器,装置包括:获取模块,用于获取N个存储介质单元的状态信息,状态信息用于表征各个存储介质单元的存储空间的状态;处理模块,用于基于所述状态信息,根据N个存储介质单元的存储空间配置M个存储分区,所述M个存储分区中的任意两个存储分区互为镜像存储分区,所述M个存储分区在同一个所述硬盘内,M≥2。
在一些可能的实施方式中,处理模块,还用于根据M个存储分区,对应配置M个闪存转换层,以通过M个闪存转换层一一对应地管理M个存储分区下的存储介质单元的逻辑地址。
在一些可能的实施方式中,获取模块,还用于获取写数据指令;处理模块,还用于根据M个存储分区的数量,将写数据指令对应复制为M个;处理模块,还用于通过各个存储分区对应的闪存转换层,将M个写数据指令分别下发至M个存储分区中对应的存储介质单元,以在对应的存储介质单元中执行对应的写数据操作。
在一些可能的实施方式中,获取模块,还用于获取读数据指令;处理模块,还用于通过目标存储分区对应的闪存转换层,将读数据指令下发至目标存储分区中对应的存储介质单元,目标存储分区为M个存储分区之一;处理模块,还用于根据读数据指令,在目标存储分区中对应的存储介质单元中,执行对应的读数据操作。
在一些可能的实施方式中,获取模块,还用于获取故障存储介质单元的故障信息,故障信息用于表征故障原因以及故障存储介质单元的故障存储空间;处理模块,还用于根据故障信息,从硬盘的预留空间中确定目标存储空间,目标存储存储空间不小于故障存储空间;处理模块,还用于利用目标存储空间替换故障存储空间;处理模块,还用于从故障存储介质单元所属存储分区之外的存储分区中,获取目标数据,写入故障存储介质单元所属存储分区。
第四方面,本申请还提供了一种硬盘控制装置,硬盘中包括N个存储介质单元和控制器,N≥1,N个存储介质单元均与控制器电连接,其特征在于,装置应用于控制器,装置包括:获取模块,用于获取N个存储介质单元的状态信息,状态信息用于表征各个存储介质单元的存储空间的状态;处理模块,用于根据状态信息,将N个存储介质单元的存储空间,配置K个存储分区对,每个存储分区对中均包括一个第一分区和一个第二分区,其中,第二分区为对应第一分区的备份区域,备份区域为设有数据恢复策略的区域,数据恢复策略用于恢复对应第一分区中存储的数据,K≥1。
第五方面,本申请提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行第一方面或第二方面的任一种可能的实现方式所描述的方法。
第六方面,本申请提供一种计算机程序产品,其特征在于,当计算机程序产品在处理器上运行时,使得处理器执行第一方面或第二方面的任一种可能的实现方式所描述的方法。
第七方面,本申请提供一种芯片,其特征在于,包括至少一个处理器和接口;至少一个处理器通过接口获取程序指令或者数据;至少一个处理器用于执行程序行指令,以实现第一方面或第二方面的任一种可能的实现方式所描述的方法。
可以理解的是,上述第三方面至第七方面的有益效果可以参见上述第一方面或第二方面中的相关描述,在此不再赘述。
附图说明
图1是本申请实施例提供的一种硬盘的结构示意图;
图2是本申请实施例提供的一种硬盘内部结构层级关系示意图;
图3是本申请实施例提供的一种硬盘控制方法的流程示意图;
图4是本申请实施例提供的一种存储分区划分的过程示意图;
图5是本申请实施例提供的一种存储分区划分的示意图;
图6是本申请实施例提供的一种执行写数据操作的流程的示意图;
图7是本申请实施例提供的一种执行写数据操作的过程示意图;
图8是本申请实施例提供的一种执行读数据操作的流程的示意图;
图9是本申请实施例提供的一种执行读数据操作的过程示意图;
图10是本申请实施例提供的一种硬盘故障存储介质修复的过程示意图;
图11是本申请实施例提供的另一种硬盘控制方法的流程示意图;
图12是本申请实施例提供的一种硬盘控制装置的结构示意图;
图13是本申请实施例提供的一种芯片的结构示意图。
具体实施方式
本文中术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本文中符号“/”表示关联对象是或者的关系,例如A/B表示A或者B。
本文中的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一响应消息和第二响应消息等是用于区别不同的响应消息,而不是用于描述响应消息的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或者两个以上,例如,多个处理单元是指两个或者两个以上的处理单元等;多个元件是指两个或者两个以上的元件等。
通常计算机上使用的硬盘多为固态硬盘(solid state disk或solid statedrive,SSD),又称为固态驱动器。SSD硬盘中包括若干存储颗粒,但这些存储颗粒有一定的使用寿命,容易在长期使用过程中发生故障,导致故障存储颗粒上存储的数据随之丢失。
而且,硬盘不仅属于易损坏器件,还存在数据静默错误等局部损坏问题,可靠性较低。而一旦硬盘发生局部数据损坏或丢失的状况,无论硬盘的可见存储空间是否更改,计算机系统都无法再从硬盘找回这些数据,继而可能对计算机系统产生严重影响,甚至导致计算机系统或对应业务应用无法正常运行。为此,对于高可靠性要求的业务应用,相关技术通常会在应用层通过各种技术手段进行数据冗余保护。例如,通过专业的备份软件程序,将硬盘中的数据备份到其他区域,如云服务器或其他存储设备,这种方式需要专业的人员进行操作,并且很大程度上增加了业务应用的复杂度,成本较高。
此外,还可以通过额外增设备份硬盘,来对计算机所用硬盘的数据进行备份,提高硬盘存储数据的可靠性,但是,这种方式对于用户来说仍存在很多弊端。例如,针对服务器操作系统(operating system,OS)使用的硬盘,往外增设其他硬盘对OS使用的硬盘的数据进行备份,但增设的备份硬盘多占用了计算机设备上的硬盘槽位,增加了使用复杂度和使用成本。而且将一个硬盘的数据备份到该备份硬盘中,往往需要专业人员手动操作,十分繁琐。除此之外,当计算机系统使用的硬盘发生故障,需要使用备份硬盘中的数据时,往往也需要人工进行配置或重启系统,导致用户体验不佳。
为了能够提高硬盘的可靠性,本申请实施例中提供了一种硬盘控制方法及装置,通过对硬盘内部配置存储区域以及对应的备份区域,在硬盘中实现数据冗余备份。这样,由于硬盘自身具有较强的冗余备份能力,因此可以极大地提高硬盘的可靠性。
为便于理解,首先对本申请实施例提供的硬盘进行阐述。示例性的,图1示出了本申请实施例提供的一种硬盘的结构示意图。可以理解,该硬盘可以安装在任何具有数据读写能力的装置或电子设备中。如图1所示,硬盘100可以为固态硬盘SSD,硬盘100中包括存储器芯片101、控制器102以及连接器103,存储器芯片101与连接器103均通过总线连接控制器102。其中:
存储器芯片101可以为多个,多个存储器芯片101可以形成芯片阵列。该芯片阵列作为硬盘100的存储介质,用于存储数据。
本实施例中,存储器芯片101可以为固态电子存储芯片。
示例性的,存储器芯片101可以是闪存芯片,例如NAND Flash芯片,或者NOR Flash芯片等,本实施例不唯一限定。
示例性的,请参考图2所示的硬盘内部结构层级关系示意图,硬盘100的每个存储器芯片101中,均可以包括若干个晶体芯片(Die),Die也称为存储颗粒。故而,硬盘100中芯片阵列构成的存储空间,也即由若干存储颗粒构成的存储空间。
本示例中,如图2所示,硬盘100中,每个Die201可以包括多个面(Plane)202,每个Plane 202中可以包括若干个块(Block)203,每个Block 203中可以包括若干个页(Page)204。
例如,以存储器芯片101中每个Die 201的存储空间为128Gb为例。每个Die 201有2个Plane 202,每个Plane 202有1024个Block 203,每个Block 203有512个Page 204。其中Page204的大小是16KB,每个Block 203的大小为16KB×512=8MB,每个Plane 202的大小为8MB×1024=8GB。由此构成的Die 201的大小为16GB,也就是128Gb。
可以理解的是,存储器芯片101可以为通用集成电路,构造为嵌入式系统芯片。具体地,可以通过在单一存储芯片中嵌入软件程序,实现硬盘或计算机系统的多功能和高性能,以及对多种协议、多种硬件和不同应用的支持。
示例性的,连接器103可以提供接口,以与计算设备连接,并与计算设备进行通信,接收计算设备向硬盘100传输的读写指令和控制指令等。其中,计算设备可以是一种能够提供处理功能,运算功能以及存储功能的硬件设备,例如台式计算机、工作站、膝上型计算机、个人数字助理、服务器、大型主机等设备,但不限于此
示例性的,连接器103可以包括一个或多个接口。
示例性的,连接器103的接口可以为串行高级技术附件(serial advancedtechnology attachment,SATA)、迷你串行高级技术附件(mini-serial advancedtechnology attachment,mSATA)、M.2BKey、M.2MKey、M.2B+MKey、U.2、高速串行计算机扩展总线标准(peripheral component interconnect express,PCIe)、高级技术附加装置(integrated drive electronics,IDE)等标准的接口,但不限于此。
示例性的,控制器102可以在从连接器103输入的计算机(即计算设备)的读写指令或控制指令等的驱动下,对硬盘100中的存储器芯片101进行控制管理和/或访问。
示例性的,控制器102可以获取各个存储器芯片101的状态信息,例如芯片标识、总容量、已用容量、可用容量、存储颗粒状态等。
示例性的,控制器102还可以根据外部输入的计算机读写指令,访问存储器芯片101,对应执行读数据操作或写数据操作。
示例性的,控制器102还可以对硬盘100中的存储器芯片101进行控制管理,如管理硬盘100的逻辑地址与存储芯片101逻辑地址的映射关系,擦除某个存储颗粒中的数据等。
在一些具体示例中,控制器102可以通过闪存转换层(flash translation layer,FTL)104为硬盘100中的所有存储器芯片101或存储颗粒编址,以对存储器芯片101进行访问和管理。
在一些实施例中,硬盘100中还可以包括动态随机访问存储器(dynamic randomaccess memory,DRAM)105。DRAM 105通过总线连接控制器102。DRAM 105用以对硬盘100运行过程中的数据,如写入的文件数据,进行缓存处理,以改善随机读写速度,提高硬盘的性能。
可以理解的是,本发明实施例示意的结构并不构成对硬盘100的具体限定。在本申请另一些实施例中,硬盘100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
接下来,基于上文所描述的内容,对本申请实施例提供的一种硬盘控制方法进行介绍。可以理解的是,该方法是基于上文所描述的内容提出,该方法中的部分或全部内容可以参见上文中的描述。
示例性的,参考图3,图3示出的本申请实施例提供的一种硬盘控制方法的流程示意图。可以理解,该方法可以在上述图1所示的硬盘连接于任何具有计算、处理能力的计算设备上后,被触发执行。示例性的,该方法可以但不限于由前述图1中所描述的控制器102执行。如图3所示,该硬盘控制方法可以包括步骤S301~S302:
S301、获取硬盘中存储介质单元的状态信息。
本实施例中,存储介质单元可以为图1中所示的存储器芯片101或存储器芯片101中的存储颗粒Die,存储介质单元为N个,N≥1,N为正整数。在其他一些具体示例中,存储介质单元也可以是存储器芯片101中的面(Plane)202,块(Block)203或页(Page)204等。
示例性的,控制器102可以获取硬盘100中各个存储器芯片101或各个存储颗粒等存储介质单元的状态信息。
示例性的,存储介质单元的状态信息可以表征对应存储介质单元的类型(如存储器芯片,Die,或Plane等),可用状态(即可用或不可用),以及存储空间总容量、已用容量及可用容量等状态,但不限于此。控制器102可以根据这些状态信息确定对应的存储介质单元是否可用,以及确定各个存储介质单元(如每个存储器芯片101或存储颗粒)的容量空间等。
在一些具体示例性中,获取状态信息时,还可以从连接器获取外部计算机设备输入的配置信息,该配置信息可以为用于配置硬盘100的存储分区的参数信息,如存储分区数量、存储分区命名、存储分区空间大小等参数信息。这些参数信息可以由用户通过计算机输入,并通过硬盘100的连接器103传输至控制器102。
在另一具体示例中,获取状态信息时,还可以从硬盘的预设存储区域,如N个存储介质单元之外的存储器(图中未标示)中,获取预先设置的分区策略。分区策略用于指示存储分区划分数量、分区的空间容量等。这样,获取状态信息时,可以同时自动获取分区策略。也可以获取状态信息后,调用对应的分区策略,以根据不同的状态信息,自动获取不同的分区策略。
S302、控制器还基于状态信息,将N个存储介质单元的存储空间配置M个存储分区,M个存储分区中的任意两个存储分区互为镜像存储分区,M个存储分区在同一个硬盘内,M≥2。
本实施例中,N个存储介质单元的存储空间,即硬盘100中所有存储器芯片101形成的存储空间,也即所有存储颗粒形成的存储空间。这样,在根据状态信息配置存储分区时,可以以存储器芯片101为粒度进行划分,如每个存储分区包括2个存储器芯片101。或者也可以以Die或Plane等为粒度划分存储分区,如每个存储分区包括10个Die。
在一些具体示例中,在根据状态信息划分存储分区时,可以基于硬盘控制器设置的默认分区策略进行划分。例如,硬盘中有4个存储介质单元,存储介质单元为存储器芯片。若默认分区策略为划分两个存储分区,则当4个存储介质单元的存储空间容量均为64GB,即总共256GB时,控制器102根据其状态信息可以直接按照默认分区策略,将256GB的存储空间划分为两个存储分区,每个存储分区均为128GB,且两个存储分区之间隔离,并且互为镜像存储分区。这样,两个存储分区中所存储的数据保持一致性,实现数据冗余备份。
在另一些具体示例中,在根据状态信息划分存储分区时,控制器102也可以基于从硬盘外部输入的配置信息进行划分。本示例中,以存储介质单元为存储器芯片101为例,对其存储空间进行存储分区域划分进行说明。请参考图4所示的存储分区划分示意图,如图4中(4a)所示,初始化时,控制器102获取各个存储器芯片101的状态信息,确定硬盘100总容量,如包括多少个存储器芯片101,还可以确定每个存储器芯片101的存储容量。然后控制器102向外部计算设备上报这些状态信息并获取配置信息,这样控制器102根据配置信息,确定分区策略,例如,若配置信息中表示分区数量为“M”、类型为“T”(例如T表示芯片)、存储器芯片数量为“g”等,则分区策略为划分M个存储分区,每个存储分区包括g个存储器芯片101。接下来,控制器102根据确定的分区策略对硬盘100内的存储空间配置分区后,可以如图4中(4b)所示,将硬盘100中的所有存储器芯片101划分为对应的M个存储分区(Zone),各个存储分区之间隔离。且每个存储分区中包括g个存储器芯片101,M为正整数。
本示例中,每个存储分区均为逻辑分区,每个存储分区实际的存储空间为各自分区内的存储介质单元。即,每个存储分区可以基于该分区对应的存储器芯片101或Die等介质单元,具备独立的物理存储空间,并能够单独存储一份数据,从而每个存储分区可以单独作为计算机的存储系统而提供读写能力。并且,至少两个存储分区互为备份区域,继而使该至少两个存储分区中所存储的数据保持一致性。这样,硬盘100中任一个存储分区存储的数据,均能够在其他存储分区中进行数据冗余备份。当任一个存储分区中存储的数据损坏或丢失时,都可以从其他备份的存储分区查找到该数据,不影响硬盘使用者的数据访问需求,从而提高硬盘100的可靠性。
例如,硬盘100中可以划分5个存储分区,5个存储分区互为镜像存储分区,则这5个存储分区中可以同步存储相同的数据A。
或者,例如,硬盘100中可以划分5个存储分区,即Zone1~Zone5。其中,Zone1和Zone2互为镜像存储分区,则Zone1和Zone2中可以同步存储数据A。其余3个存储分区,即Zone3~Zone5,两两之间互为镜像存储分区,则Zone3~Zone5可以保持一致性,均存储数据B,
在另一些具体示例中,在根据状态信息划分存储分区时,也可以基于预先配置不同的多个分区策略实现。示例性的,可以在硬盘100中单独的一个存储器中预先设置多个分区策略,该存储器不参与分区的配置。当控制器102获取存储介质单元的状态信息后,根据状态信息调用对应的分区策略,划分存储分区。例如,预先设置2个分区策略,即策略1和策略2。其中,策略1指示低于64GB的存储空间,以Die为粒度,划分两个存储分区,策略2指示大于64GB的存储空间,以Die为粒度,划分三个存储分区。这样控制器可以自动按照不同的存储空间大小,调用不同的策略得到对应的存储分区,无需用户操作。
示例性的,硬盘100中划分的各个存储分区,存储空间可以相等。
例如,控制器102将6个容量为100GB的Die,进行空间平均分配,划分得到2个300GB容量的存储分区,每个存储分区对应3个Die。
示例性的,当对硬盘100中的存储空间进行平均分配后,如果仍剩余部分空间,则可以将该部分空间作为单独的一个区域。例如,7个容量为100GB的Die,进行空间平均分配,划分得到2个300GB容量的存储分区,每个存储分区对应3个Die,剩余1个Die可以单独作为一个独立存储空间。可选的,在一些具体示例中,控制器102也可以将该剩余部分空间配置为预留空间(over-provisioning,OP)。OP预留空间为用户不可操作的隐藏空间,以用于控制器102进行各种硬盘优化机制的操作,诸如垃圾回收(garbage collection,GC)、磨损均衡、故障空间替换管理等操作。
可选的,当硬盘100中配置OP预留空间之后,该OP预留空间可以作为所有存储分区的预留空间。或者也可以将OP预留空间平均划分为M个子空间,并一一对应地分配给M个存储分区,使得每一个存储分区具有单独的OP子空间,在某个存储分区的存储介质故障时,从该存储分区对应的OP子空间,对故障存储介质进行替换。
示例性的,硬盘100中划分的各个存储分区,存储空间也可以不相等。
例如,以硬盘中包括10个100GB大小的Die为例,图5示出了对这些Die进行存储分区划分的示意图。控制器102根据这10个Die,即Die1~Die10,划分三个存储分区,即第一分区、第二分区和第三分区。其中,第一分区和第二分区均包括三个Die,第三分区包括四个Die。这样,在存储数据过程中,控制器102控制三个分区保持数据的一致性,即可以使各个分区之间互为备份区域,进而实现硬盘内部的多重冗余备份,提高硬盘的可靠性。
示例性的,当硬盘100中划分得到M个存储分区时,以存储空间最小的存储分区的容量,作为该硬盘100的可用容量。这样可以避免大于该可用容量的数据存入硬盘100,避免因数据大小超过最小存储分区的容量,而破坏备份区域之间的一致性,从而导致数据备份失败。
例如,仍以图5所示的示例为例,硬盘100中,第一分区和第二分区的总容量均为300GB,第三分区的总容量为400GB,这三个存储分区互为镜像存储分区,则该硬盘100的可用容量为300GB。这样,只有小于300GB的数据可以成功写入这三个存储分区,使三个存储分区的数据保持一致。
在一些实施例中,控制器102执行前述步骤S302之后,再次参考图3所示,该硬盘控制方法还可以包括以下步骤:
303、根据每个存储分区,配置对应的闪存转换层,以管理存储分区下的存储介质单元逻辑地址。
本实施例中,请再次参考图4中(4a)所示,控制器102配置M个存储分区(Zone1~ZoneM)后,可以为每个存储分区配置对应的FTL,即FTL1~FTLM。这样配置FTL后,如图4中(4b)所示,每个存储分区均具有自己独立的FTL,继而控制器102可以通过每个存储分区对应的FTL,对存储分区内的存储介质单元进行统一编址,以对这些存储介质单元进行访问和管理。如,FTL1管理Zone1下存储介质单元的逻辑地址,FTL2管理Zone2下存储介质单元的逻辑地址,以此类推,FTLM管理ZoneM下存储介质单元的逻辑地址。
可以理解的是,FTL维护的是地址关系转换表,该转换表可以表征存储分区的逻辑地址(logical block address,LBA)与该分区下存储介质单元的存储空间地址的映射关系。通过该地址关系转换表,控制器102可以控制计算机的数据在硬盘100中的实际存放物理位置。
可选的,在一些实施例中,控制器102中具有分组管理器,分组管理器用于在确定存储分区之后,通过各个FTL对各个存储分区进行访问和控制管理。
可以理解的是,分组管理器可以以硬件,软件或软件和硬件的组合实现,例如通过在控制器102中嵌入软件程序实现。
在一些实施例中,执行前述图3中的步骤S303之后,控制器102还可以接收外部计算机输入的写数据指令,在配置的M个存储分区之间,执行一致性写数据操作。
示例性的,请参考图6示出的本申请实施例提供的一种执行写数据操作的流程示意图。如图6所示,硬盘控制方法还可以包括步骤S601~S603:
S601、获取外部的计算机写数据指令。
在本实施例中,硬盘100的控制器102收到所连接计算机的读写输入/输出(input/output,IO)数据指令时,可以访问对应存储分区的存储介质单元执行IO操作。
示例性的,请参考图7所示的硬盘100执行写操作的示意图,对于写数据指令,即写IO指令,硬盘100的控制器102通过连接器103,接收所连接计算机传输的写IO指令。
S602、根据M个存储分区的数量,将写数据指令复制为M个。
本实施例中,控制器102收到写IO指令后,可以查询硬盘100中的存储分区数量。
示例性的,如图7所示,控制器102查询到的M个存储分区,对该写IO指令进行复制,并复制为与存储分区数量相等数目,即M个。
S603、通过每个存储分区对应的闪存转换层,将M个写数据指令分别下发至M个存储分区中对应的存储介质单元中,以在对应的存储介质单元中执行写数据操作。
本实施例中,控制器102复制M个写IO指令后,可以将这些指令放入指令队列中。
示例性的,如图7所示的,控制器102通过各个存储分区(Zone1~ZoneM)具有的FTL(FTL1~FTLM),将各个写IO指令对应的LBA进行转换,从而将队列中的M个写IO指令,分别一一下发至M个存储分区(Zone1~ZoneM)中对应的存储介质单元的地址处。
例如,指令队列中包括第一写IO指令,以及基于第一写IO指令复制得到的第二写IO指令。第一写IO指令对应Zone1的LBA为“134441648”,则控制器102通过Zone1的FTL1,可以将该第一写IO指令对应到Zone1下Die1的地址“1_134441648”处。第二写IO指令对应Zone2的LBA为“234441678”,则控制器102通过Zone2的FTL2,可以将该第二写IO指令对应到Zone2下Die3的地址“3_114441678”处。
本实施例中,每个存储分区下的对应存储介质单元收到写IO指令后,可以执行写IO操作。这样,所有存储分区写入的数据保持一致性,实现硬盘内部的自动多重冗余备份,降低了硬盘的使用复杂度,提高用户体验。
示例性的,在执行步骤S602~S603过程中,可以先将一个写数据指令下发到一个存储分区,执行一次写IO操作,写IO操作成功并返回操作结果至连接器103后,再将剩余的其他M-1个写数据指令分别依次下发到其他M-1个存储分区中,执行对应的写IO操作。
或者,也可以如图7所示的,将控制器102复制的M个写数据指令同时下发,使得各存储分区并行执行对应的写IO操作,并返回操作结果至连接器103。其中,可以在全部存储分区的写IO操作成功后,再返回操作结果,也可以部分存储分区写IO操作成功后就返回操作结果,本示例不做限定。
在一些实施例中,通过前述图6所示的步骤S603,完成多重冗余写数据操作之后,控制器102还可以接收外部的读数据指令,进行读数据操作。可选的,由于各存储分区存储的数据具有一致性,为了提高数据读取效率,可以在多个存储分区择一执行读取指令。
示例性的,请参考图8所示的本申请实施例提供的一种执行读数据操作的流程示意图。如图8所示,硬盘控制方法还可以包括步骤S801~S803:
S801、获取外部的计算机读数据指令。
在本实施例中,参考图8所示,硬盘100的控制器102可以通过连接器103接收所连接计算机传输的读数据指令,即读IO指令,以基于该指令在后续流程中访问对应存储介质单元执行读IO操作。
S802、通过目标存储分区对应的闪存转换层,将读数据指令下发至目标存储分区中对应的存储介质单元,目标存储分区为M个存储分区之一。
本实施例中,参考图9所示的硬盘100执行读操作的示意图,硬盘100的控制器102通过目标存储分区具有的FTL,将读IO指令对应的LBA进行转换,从而将该指令下发至对应存储介质单元的对应地址处。
例如,目标存储分区为Zone1,计算机读IO指令对应Zone1的LBA为“134441648”,则控制器102通过Zone1的FTL1,可以将该读IO指令对应到Zone1下Die1的地址“1_134441648”处。然后根据FTL1转换后的地址,下发读IO指令至Zone1下Die1的地址“1_134441648”处。
示例性的,目标存储分区可以由控制器102预先设定,如预先指定可用容量最小的Zone为目标存储分区。
示例性的,也可以通过控制器102为M个存储分区进行优先级排序,以优先级最高的可用存储分区为目标存储分区。例如,控制器对M个Zone的优先级排序为{Zone1,Zone2,…,ZoneM},所有Zone均可用,则目标存储分区为Zone1。当Zone1不可用或在Zone1执行读IO指令失败时,以Zone2为目标存储分区,以此类推。
S803、在目标存储分区的对应存储介质单元执行对应的读数据操作。
本实施例中,继续参考图9,目标存储分区下的对应存储介质单元收到读IO指令后,可以执行读IO操作,数据读取成功则将执行结果返回到连接器103,以上报到计算机。若数据读取失败,则自动选择另一个Zone作为目标存储分区,重新执行S802~S803。当所有Zone均执行读IO指令失败时,返回读取失败信息,如向计算机返回“数据读取失败”的示警信息,并显示在计算机显示屏上,以便用户了解。
这样,由于硬盘具100有多重冗余备份能力,所有存储分区写入的数据保持一致性,当读数据操作失败时,可以自动从其他区域进行数据读取,满足计算机的数据读取需求,提高硬盘的容错性能,提高硬盘可靠性的同时,能够提高用户体验。
在一些实施例中,在执行前述图6所示的写数据操作或前述图8所示的读数据操作过程中,可能会由于该存储分区下的存储介质单元损坏,导致存储介质单元上发生数据损坏或丢失,继而造成操作失败。故而,可选的,本实施例中,为了保障硬盘中发生存储介质单元故障时,数据不丢失,保证读写数据操作能够成功执行,从而保证计算机系统或业务稳定运行,本实施例还可以通过控制器102对硬盘100的故障进行检测,并对故障存储介质单元进行自修复,从而提高硬盘的可靠性。
示例性的,请参考图10所示的本申请实施例提供的一种硬盘故障存储介质单元修复的流程示意图。如图10所示,硬盘控制方法还可以包括步骤S1001~S1004:
S1001、获取故障存储介质单元的故障信息,故障信息用于表征故障原因以及故障存储介质的故障存储空间。
在本实施例中,故障存储介质单元即发生故障或数据读取错误的存储介质单元。如发生故障的存储器芯片101或存储颗粒。当硬盘100的控制器102在某个分区执行一个指令(可以是读IO指令或者写IO指令)时,收到该分区上报的指令执行失败信息,则控制器102获取该分区下指令执行失败的故障存储介质单元的故障信息。例如,故障原因,故障位置,和故障损失的存储空间大小(即故障存储空间的容量)等,但不限于此。这样,根据故障信息,可以确定存储介质单元所属芯片、具体故障位置以及损失的存储空间等。
S1002、根据故障信息,从硬盘的预留空间中确定目标存储空间。
S1003、将目标存储空间对故障存储空间进行对应替换。
本实施例中,硬盘100进行存储分区划分时,可以单独配置一个区域的存储介质单元,作为OP预留空间。
示例性的,当控制器102获取故障存储介质单元的故障信息后,可以通过分组管理器将该故障存储介质单元隔离,并通过S1002步骤从OP预留空间中确定目标存储空间,该目标存储空间的容量与故障存储介质单元损失的故障空间大小相等。例如故障存储介质单元为Zone1下的3个容量为16KB的页(Page),则目标存储空间可以为OP预留空间中3个16KB的Page的存储空间。然后分组管理器可以将目标存储空间划分到故障存储介质单元所在的存储分区,弥补该存储分区中损失的空间(即故障存储空间)。并且,分组管理器控制该存储分区对应的FTL,更新该存储分区对应的逻辑地址映射关系。
由于OP预留空间为硬盘100的隐藏空间,用户不可见,因此利用IO预留空间替换故障存储介质单元的故障存储空间后,可以使硬盘100对计算机显示的可用容量保持不变,从而避免存储介质单元故障降低硬盘数据读写的稳定性。
S1004、从故障存储介质单元所属存储分区之外的存储分区中,获取目标数据,写入故障存储介质单元所属存储分区。
本实施例中,利用目标存储空间替换某个故障存储介质单元的故障存储空间后,控制器102可以从故障存储介质单元所属存储分区对应的任一镜像存储分区,读取该镜像存储分区中存储的数据,即目标数据,并将读取的该目标数据,重写入该故障存储介质单元所属存储分区,覆盖该存储分区原有数据。
例如,硬盘100中划分了3个存储分区,即Zone1~Zone3,3个存储分区互为镜像存储分区,其中,Zone1中有3个16KB的Page故障。控制器102从OP预留空间中确定了3个16KB的Page作为目标存储空间,对Zone1中的3个故障Page进行了替换。由于这三个分区存储的数据一致,所以控制器102可以从Zone2或Zone3中读取数据,并将读取的数据重新写入Zone1中,维护各个分区之间存储数据的一致性。
示例性的,当硬盘100中的剩余OP预留空间过低、不足以对某个存储分区中的故障存储介质空间进行替换时,可以上报该存储分区故障,停用该存储分区。同时使其他存储分区继续提供读写业务,保持硬盘正常功能。
本申请实施例中,通过硬盘的控制方法,对硬盘内部数据自动多备份,使硬盘具备超高可靠性,当发生闪存介质故障时,数据不丢失,保障依赖硬盘的计算机仍能继续稳定运行。即使在高可靠性需求的应用场景(包括但不限于服务器启动盘应用),本申请实施例提供的硬盘也无需额外的RAID卡或软RAID等配置和部署工作,就可以达到预期的可靠性需求。
本申请实施例还提供了另一种硬盘控制方法的实现方式,具体请参考图11所示的硬盘控制方法的流程示意图。可以理解,本实施例也可以通过上述图2所示的硬盘100中的控制器102实现。如图11所示,该硬盘控制方法包括步骤S1101~S1102:
S1101、获取存储介质单元的状态信息。
本实施例中,执行步骤S1101时,可以执行与前述图3中所示的步骤S301相同的操作,此处不再赘述。
S1102、根据状态信息,将该存储介质单元的存储空间,配置K个存储分区对,每个存储分区对中均包括一个第一分区和一个第二分区,其中,第二分区为对应第一分区的备份区域,备份区域为设有数据恢复策略的区域,数据恢复策略用于恢复对应第一分区中存储的数据。
本实施例中,存储介质单元的存储空间,可以是硬盘100中所有存储器芯片101形成的存储空间,即所有存储颗粒形成的存储空间。这样,在对存储介质单元的存储空间进行存储分区划分过程中,可以以存储器芯片101为分区粒度,也可以以Die为分区粒度。
本实施例中,根据状态信息,可以确定存储介质单元的存储空间容量,从而基于将该容量划分为K个存储分区对,K≥1。其中,每个存储分区对中均包括一个第一分区和一个第二分区,即第一分区和第二分区均为存储分区,且第一分区和第二分区均可以K个,且任意两个分区之间隔离,如任意两个第一分区之间隔离,任意两个第二分区之间隔离,任意第一分区和第二分区之间隔离。
本实施例中,任意一个第一分区,均具有至少一个单独的第二分区与之对应。
本实施例中,第二分区为第一分区的备份区域,以对第一分区中存储的数据进行备份存储。
示例性的,第二分区为第一分区的备份区域,可以是设有数据恢复策略的区域,数据恢复策略用于恢复对应第一分区中存储的数据。例如,备份区域可以是通过在第二分区中注入预设的奇偶校验算法形成。
在一个具体中,若根据步骤S1101获取的状态信息,确定硬盘100中包括S个可用Die,总容量为D,用户配置的第一分区数量和第二分区数量均为K(K≥1,K为正整数),类型为Die,第一分区空间为d1,第二分区空间为d2,d2<d1<D。则控制器102执行步骤S1102过程中,可以将硬盘100中总容量为D的存储空间,划分为K个第一分区和K个第二分区,各个分区之间隔离。且每个第一分区中对应Die构成的总空间大小为d1,每个第二分区中对应Die构成的总空间大小为d2。第二分区中注入奇偶校验算法,使任一第二分区作为对应第一分区的备份区域。
例如,仍以硬盘中包括50个100GB大小的Die为例。控制器102根据这50个Die,划分8个存储分区,即Zone1~Zone8。其中,Zone1~Zone4均包括10个Die,Zone5~Zone8均包括2个Die,Zone5~Zone8一一对应地配置为Zone1~Zone4备份区域。这样,8个分区构成基于分布式奇偶校验的独立磁盘结构(RAID),进而实现硬盘内部的多重冗余备份,提高硬盘的可靠性。譬如,当控制器102接收到计算机的输入/输出(Input/output,IO)操作指令之后,可以访问对应硬盘100执行操作。例如,控制器102收到计算机的写IO指令,将数据交替写入Zone1~Zone4分区。这样,当任一分区,如Zone1,出现故障时,可以利用分区Zone2~Zone4中的奇偶校验算法,恢复Zone1中的数据,实现基于分布式奇偶校验的独立磁盘结构(如RAID5或RAID6)校验位算法原理的的数据迁移,提高了硬盘的可靠性。
可以理解的是,本实施例中,控制器102还可以执行与上述图3所示的步骤S301相同的操作,为各个分区配置对应的闪存转换层,以管理第一分区和第二分区下的存储介质单元的逻辑地址。
可以理解,本实施例中,控制器102还可以执行与上述图8中所示的相同的数据读写操作,此处不再赘述。
可以理解的是,本方案中,硬盘所连接的示例性实施例包括但不限于搭载iOS、android、Windows、鸿蒙系统(Harmony OS)或者其他操作系统的计算机设备,本方案不做具体限定。
基于上述实施例中的方法,本申请实施例提供了一种硬盘控制装置。请参阅图12,图12是本申请实施例提供的一种硬盘控制装置的结构示意图。
如图12所示,该硬盘控制装置1200,可以通过软件、硬件或软硬件结合的形式,集成在上述图1所示的硬盘中,并在该硬盘100连接于任何具有计算、处理能力的计算机设备上后,实现该硬盘控制装置1200的功能。具体的,该硬盘控制装置1200可以包括:获取模块1201和处理模块1202。其中,获取模块1201可以用于获取N个存储介质单元的状态信息,状态信息用于表征各个存储介质单元的存储空间的状态。处理模块1202可以用于基于所述状态信息,根据N个存储介质单元的存储空间配置M个存储分区,所述M个存储分区中的任意两个存储分区互为镜像存储分区,所述M个存储分区在同一个所述硬盘内,M≥2。另外,处理模块1202还可以用于根据M个存储分区,对应配置M个闪存转换层,以通过M个闪存转换层一一对应地管理M个存储分区下的存储介质单元的逻辑地址。
在一些实施例中,获取模块1201还可以用于获取外部的计算机写数据指令。处理模块1202还可以用于根据M个存储分区的数量,将写数据指令复制为M个。并且,处理模块1202还可以用于通过每个存储分区对应的闪存转换层,将M个写数据指令分别下发至M个存储分区中对应的存储介质单元中,以在对应的存储介质单元中执行写数据操作。
在一些实施例中,获取模块1201还可以用于获取外部的计算机读数据指令。处理模块1202还可以用于通过目标存储分区对应的闪存转换层,将读数据指令下发至目标存储分区中对应的存储介质单元,目标存储分区为M个存储分区之一。另外,处理模块1202还可以用于在目标存储分区的该存储介质单元执行对应的读数据操作。
在一些实施例中,获取模块1201还可以用于获取故障存储介质单元的故障信息,故障信息用于表征故障原因以及故障存储介质单元的故障存储空间。处理模块1202还可以用于还用于根据故障信息,从硬盘的预留空间中确定目标存储空间,目标存储存储空间不小于故障存储空间。并利用目标存储空间替换故障存储空间,从故障存储介质单元所属存储分区之外的存储分区中,获取目标数据,写入故障存储介质单元所属存储分区。
本申请实施例还提供了另一种硬盘控制装置,该硬盘控制装置1200,可以通过软件、硬件或软硬件结合的形式,集成在上述图1所示的硬盘中,并在该硬盘100连接于任何具有计算、处理能力的计算机设备上后,实现该硬盘控制装置1200的功能。具体的,该硬盘控制装置1200可以包括:获取模块1201和处理模块1202。其中,:获取模块1201可以获取N个存储介质单元的状态信息,状态信息用于表征各个存储介质单元的存储空间的状态。处理模块1202可以用于根据状态信息,将N个存储介质单元的存储空间,配置K个存储分区对,每个存储分区对中均包括一个第一分区和一个第二分区,其中,第二分区为对应第一分区的备份区域,备份区域为设有数据恢复策略的区域,数据恢复策略用于恢复对应第一分区中存储的数据,K≥1。
应当理解的是,上述装置用于执行上述实施例中的方法,装置中相应的程序模块,其实现原理和技术效果与上述方法中的描述类似,该装置的工作过程可参考上述方法中的对应过程,此处不再赘述。
基于上述实施例中的方法,本申请实施例提供了一种计算机程序产品,其特征在于,当计算机程序产品在处理器上运行时,使得处理器执行上述实施例中的方法。
基于上述实施例中的方法,本申请实施例还提供了一种芯片。请参阅图13,图13为本申请实施例提供的一种芯片的结构示意图。如图13所示,芯片1300包括一个或多个处理器1301以及接口电路1302。可选的,芯片1300还可以包含总线1303。其中:
处理器1301可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1301中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1301可以是通用处理器、数字通信器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
接口电路1302可以用于数据、指令或者信息的发送或者接收,处理器1301可以利用接口电路1302接收的数据、指令或者其它信息,进行加工,可以将加工完成信息通过接口电路1302发送出去。
可选的,芯片1300还包括存储器,存储器可以包括只读存储器和随机存取存储器,并向处理器提供操作指令和数据。存储器的一部分还可以包括非易失性随机存取存储器(NVRAM)。
可选的,存储器存储了可执行软件模块或者数据结构,处理器可以通过调用存储器存储的操作指令(该操作指令可存储在操作系统中),执行相应的操作。
可选的,接口电路1302可用于输出处理器1301的执行结果。
需要说明的,处理器1301、接口电路1302各自对应的功能既可以通过硬件设计实现,也可以通过软件设计来实现,还可以通过软硬件结合的方式来实现,这里不作限制。
应理解,上述方法实施例的各步骤可以通过处理器中的硬件形式的逻辑电路或者软件形式的指令完成。
可以理解的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。此外,在一些可能的实现方式中,上述实施例中的各步骤可以根据实际情况选择性执行,可以部分执行,也可以全部执行,此处不做限定。
可以理解的是,本申请的实施例中的处理器可以是中央处理单元(centralprocessing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable rom,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。
Claims (10)
1.一种硬盘控制方法,所述硬盘中包括N个存储介质单元和控制器,N≥1,所述N个存储介质单元均与所述控制器电连接,其特征在于,所述方法包括:
所述控制器获取所述N个存储介质单元的状态信息,所述状态信息用于表征各个所述存储介质单元的存储空间的状态;
所述控制器基于所述状态信息,根据N个存储介质单元的存储空间配置M个存储分区,所述M个存储分区中的任意两个存储分区互为镜像存储分区,所述M个存储分区在同一个硬盘内,M≥2。
2.根据权利要求1所述的方法,其特征在于,在所述根据N个存储介质单元的存储空间配置M个存储分区之后,所述方法还包括:
根据所述M个存储分区,对应配置M个闪存转换层,以通过M个闪存转换层一一对应地管理所述M个存储分区下的存储介质单元的逻辑地址。
3.根据权利要求1或2所述的方法,其特征在于,所述存储空间的状态包括存储空间的容量,在所述根据N个存储介质单元的存储空间配置M个存储分区之后,所述方法还包括:
当所述M个存储分区之间的存储空间容量不相等时,将存储空间最小的存储分区的容量,确定为所述硬盘的可用容量。
4.根据权利要求1-3任一所述的方法,其特征在于,在所述根据N个存储介质单元的存储空间配置M个存储分区之后,所述方法还包括:
获取写数据指令;
根据所述M个存储分区,将所述写数据指令对应复制为M个;
通过各个所述存储分区对应的闪存转换层,将M个写数据指令分别下发至所述M个存储分区中对应的存储介质单元,以在对应的存储介质单元中执行对应的写数据操作。
5.根据权利要求1-4任一所述的方法,其特征在于,在所述根据N个存储介质单元的存储空间配置M个存储分区之后,所述方法还包括:
获取读数据指令;
通过目标存储分区对应的闪存转换层,将所述读数据指令下发至所述目标存储分区中对应的存储介质单元,所述目标存储分区为M个存储分区之一;
根据所述读数据指令,在所述目标存储分区中对应的存储介质单元中,执行对应的读数据操作。
6.根据权利要求1-5任一所述的方法,其特征在于,在所述通过目标存储分区对应的闪存转换层,将所述读数据指令下发至所述目标存储分区中对应的存储介质单元之前,所述方法还包括:
对所述M个存储分区设置优先级顺序;
按照所述优先级顺序,将优先级最高的一个存储分区确定为目标存储分区;
在当前的目标存储分区不可用时,按照所述优先级顺序,将优先级仅次于该当前目标存储分区的一个存储分区,重新确定为目标存储分区。
7.根据权利要求1-6任一所述的方法,其特征在于,在所述根据N个存储介质单元的存储空间配置M个存储分区之后,所述方法还包括:
获取故障存储介质单元的故障信息,所述故障信息用于表征故障原因以及故障存储介质单元的故障存储空间;
根据所述故障信息,从所述硬盘的预留空间中确定目标存储空间,所述目标存储存储空间不小于所述故障存储空间;
利用目标存储空间替换所述故障存储空间;
从所述故障存储介质单元所属存储分区之外的存储分区中,获取目标数据,写入所述故障存储介质单元所属存储分区。
8.一种硬盘控制方法,所述硬盘中包括N个存储介质单元和控制器,N≥1,所述N个存储介质单元均与所述控制器电连接,其特征在于,所述方法包括:
所述控制器获取所述N个存储介质单元的状态信息,所述状态信息用于表征各个所述存储介质单元的存储空间的状态;
所述控制器基于所述状态信息,将所述N个存储介质单元的存储空间,配置为K个存储分区对,每个所述存储分区对中均包括第一分区和第二分区,其中,所述第二分区为对应第一分区的备份区域,所述备份区域为设有数据恢复策略的区域,所述数据恢复策略用于恢复对应第一分区中存储的数据,K≥1。
9.一种硬盘控制装置,所述硬盘中包括N个存储介质单元和控制器,N≥1,所述N个存储介质单元均与所述控制器电连接,其特征在于,所述装置应用于所述控制器,所述装置包括:
获取模块,用于获取所述N个存储介质单元的状态信息,所述状态信息用于表征各个所述存储介质单元的存储空间的容量;
处理模块,用于基于所述状态信息,根据N个存储介质单元的存储空间配置M个存储分区,所述M个存储分区中的任意两个存储分区互为镜像存储分区,所述M个存储分区在同一个所述硬盘内,M≥2。
10.一种硬盘控制装置,所述硬盘中包括N个存储介质单元和控制器,N≥1,所述N个存储介质单元均与所述控制器电连接,其特征在于,所述装置应用于所述控制器,所述装置包括:
获取模块,用于获取所述N个存储介质单元的状态信息,所述状态信息用于表征各个所述存储介质单元的存储空间的状态;
处理模块,用于基于所述状态信息,将所述N个存储介质单元的存储空间,配置为K个存储分区对,每个所述存储分区对中均包括一个第一分区和一个第二分区,其中,所述第二分区为对应第一分区的备份区域,所述备份区域为设有数据恢复策略的区域,所述数据恢复策略用于恢复对应第一分区中存储的数据,K≥1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210999449.8A CN117631959A (zh) | 2022-08-19 | 2022-08-19 | 硬盘控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210999449.8A CN117631959A (zh) | 2022-08-19 | 2022-08-19 | 硬盘控制方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117631959A true CN117631959A (zh) | 2024-03-01 |
Family
ID=90018708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210999449.8A Pending CN117631959A (zh) | 2022-08-19 | 2022-08-19 | 硬盘控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117631959A (zh) |
-
2022
- 2022-08-19 CN CN202210999449.8A patent/CN117631959A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9652343B2 (en) | Raid hot spare system and method | |
EP3800554A1 (en) | Storage system managing metadata, host system controlling storage system, and storage system operating method | |
US10459814B2 (en) | Drive extent based end of life detection and proactive copying in a mapped RAID (redundant array of independent disks) data storage system | |
US8566508B2 (en) | RAID configuration in a flash memory data storage device | |
US8447918B2 (en) | Garbage collection for failure prediction and repartitioning | |
US20120023287A1 (en) | Storage apparatus and control method thereof | |
CN106776147B (zh) | 一种差异数据备份方法和差异数据备份装置 | |
US20060112221A1 (en) | Method and Related Apparatus for Data Migration Utilizing Disk Arrays | |
WO2014132373A1 (ja) | ストレージシステム及び記憶デバイス障害回復方法 | |
US7085907B2 (en) | Dynamic reconfiguration of memory in a multi-cluster storage control unit | |
TW202147092A (zh) | 儲存元件、儲存系統以及操作儲存元件的方法 | |
US7130973B1 (en) | Method and apparatus to restore data redundancy and utilize spare storage spaces | |
CN112286838A (zh) | 存储设备可配置的映射粒度系统 | |
CN112119380A (zh) | 带有旁路的奇偶校验记录 | |
KR20210137922A (ko) | 복구 공간으로 패리티 공간을 사용한 데이터 복구 시스템, 방법 및 장치 | |
US20230251931A1 (en) | System and device for data recovery for ephemeral storage | |
JP2006114008A (ja) | システム構成を更新するための回復記録を構成するための方法および装置 | |
CN117631959A (zh) | 硬盘控制方法及装置 | |
WO2018055686A1 (ja) | 情報処理システム | |
CN113641529A (zh) | 用于数据恢复的系统、方法和装置 | |
US8935488B2 (en) | Storage system and storage control method | |
WO2020007058A1 (zh) | 写数据方法及存储系统 | |
CN111338846A (zh) | 一种基于多核恢复l2p表的方法和装置 | |
TW202036542A (zh) | 在儲存伺服器中進行資料存取管理的方法與裝置 | |
CN117632807A (zh) | 存储设备连接装置及其连接方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |