CN115202569A - 一种存储设备中的硬盘的管理方法及设备 - Google Patents

一种存储设备中的硬盘的管理方法及设备 Download PDF

Info

Publication number
CN115202569A
CN115202569A CN202210349660.5A CN202210349660A CN115202569A CN 115202569 A CN115202569 A CN 115202569A CN 202210349660 A CN202210349660 A CN 202210349660A CN 115202569 A CN115202569 A CN 115202569A
Authority
CN
China
Prior art keywords
partition
data
ssd
logical
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
Application number
CN202210349660.5A
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN115202569A publication Critical patent/CN115202569A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例涉及一种存储设备中的硬盘的管理方法,包括:存储设备的控制器从硬盘中的存储空间中划分出用于写入指定数据的第一分区。之后,在第一分区写满占用数据。在往第一分区写入指定数据之前,可以删除占用数据,以便在占用数据被删除之后将指定数据写入上述第一分区中。本申请中存储设备的控制器通过对硬盘中的存储空间进行逻辑分区划分,并采用占用数据将部分逻辑分区进行预占用,保证了该逻辑分区对应有连续的物理分区。当需要往此部分逻辑分区写入指定数据时,可以快速释放出该逻辑分区的空间以保障可以满足大带宽写操作的需求,提升该逻辑分区的性能稳定性。

Description

一种存储设备中的硬盘的管理方法及设备
技术领域
本申请涉及存储领域,尤其涉及一种存储设备中的硬盘的管理方法及设备。
背景技术
固态硬盘(solid state disk,SSD)读写的最小单位是页(page),但擦除的最小单位是块(block)。所以SSD中的数据在被删除时,SSD会将需要删除的数据所在的页标记为无效(或称为无效页);或者在更新SSD中的数据时,SSD会将旧数据所在的页标记为无效,而将新数据写入新的页中。这样,SSD会周期性或者在SSD的可用空间不足时进行垃圾回收(garbage collection,GC),通过对包含较多无效页的块进行回收,以释放出可用的空白块作为可用空间。
对于SSD而言可能会同时承载不同的业务,对于每种业务在执行时可能会采用顺序写或随机写。在启动GC时,可以对同时存在有效数据和无效数据的物理块进行数据迁移,以释放出可用的空白块。对于顺序写时进行的输入/输出(input/output,I/O)是占用连续的物理空间,因此当部分数据删除时也是将连续物理块的数据进行擦除。对于数据均被无效的物理块,可以直接通过擦除释放该物理块而无需启动GC。这使得顺序写所占用的物理空间进行GC的次数通常比较少。换句话说,采用顺序写时GC启动的频率相对较低。对于随机写,由于其随机性,当删除部分数据时通常仅是删除物理块中的部分数据,因此会产生较多同时存在有效数据和无效数据的物理块。因此随机写会使得启动GC的次数增加,也就是说采用随机写时GC启动的频率相对较高。而启动GC时会将多个物理块中的有效数据进行数据迁移,显然执行GC时会具有读取、写入和擦除动作。也正是上述动作直接降低了SSD的写性能。
SSD通常情况下可以具有不同的区域,每个区域可以分配相应的业务使用。对于不同业务其对写性能的要求可能的不同的,但是对于SSD而言,其物理空间是共用的,因此整盘的写性能是相同的。所以为了满足个别区域内任务的写性能要求,目前只能选择价格更加昂贵的SSD,使得成本增加。
发明内容
本申请实施例提供了一种存储设备中的硬盘的管理方法,通过存储设备的控制器在逻辑层面上对硬盘进行分区,并针对部分逻辑分区采用顺序写进行预占用。以便硬盘上预占用的逻辑分区可以快速释放,保证当短时间内出现高带宽I/O需求时,被预占用的逻辑分区可以满足任务需求,并提升该区域的性能稳定性。
第一方面,提供了一种存储设备中的硬盘的管理方法,方法包括:存储设备的控制器从硬盘中的存储空间中划分出第一分区。其中第一分区可以用于写入指定数据。之后,控制器可以在第一分区写满占用数据,以占用第一分区。在一个例子中,可以在硬盘开始使用时对第一分区进行占用,例如可以通过顺序大I/O写入占用数据以占用第一分区。大I/O例如可以是大于或等于64KB数据的I/O。在控制器往第一分区写入指定数据之前,可以删除占用数据,以便在占用数据被删除之后将指定数据写入上述第一分区中。本申请中存储设备的控制器通过对硬盘中的存储空间进行逻辑分区划分,并采用占用数据将部分逻辑分区进行预占用,保证了该逻辑分区对应有连续的物理分区。当需要往此部分逻辑分区写入指定数据时,可以快速释放出该逻辑分区的空间以保障可以满足大带宽写操作的需求,提升该逻辑分区的性能稳定性。
在一个可能的实施方式中,指定数据可以为存储设备的内存中的数据。控制器往第一分区写入指定数据可以为存储设备断电时执行。本申请保障了在设备断电时满足短时间内超大带宽写操作的需求。
在一个可能的实施方式中,硬盘的数量可以为多个。其中,多个硬盘形成统一的逻辑空间。控制器从硬盘的存储空间划分第一分区可以包括:控制器从逻辑空间中划分出第二分区。其中,第二分区可以映射至多个硬盘的第一分区。本申请还可以适用于硬盘阵列(redundant arrays of independent disks,RAID)场景通过多个硬盘组成RAID,在一个例子中,RAID例如可以采用RAID0、RAID1、RAID2、RAID3、RAID4、RAID5和RAID6中的一个或多个,或者任意多个进行组合,使得本申请可以适用的范围更加广泛。
在一个可能的实施方式中,控制器往第一分区写入指定数据可以为控制器接收到指定数据的写入请求时执行。
在一个可能的实施方式中,硬盘可以为SSD。删除占用数据可以包括:控制器发送删除命令至SSD,以将占用数据标记为无效。之后,控制器发送擦除命令或GC命令,以便擦除已经标记为无效的占用数据。
在一个可能的实施方式中,SSD还可以在接收到控制器发送的删除命令后,确定第一分区内存是否存在未执行的主机写命令或主机读命令。当存在未执行的主机写命令或主机读命令时,可以等待主机写命令或主机读命令执行完毕后,再执行该删除命令。本申请通过设定删除命令与其它主机命令在执行顺序上的优先级,从而避免了并发执行可能导致的数据读写错误,或者其它可能产生的严重问题。
在一个可能的实施方式中,硬盘可以为SSD。硬盘的第一分区可以为SSD的逻辑地址空间中的区域,第一分区对应SSD的一段物理空间,写入第一分区的数据可以存储至第一分区对应的物理空间。
在一个可能的实施方式中,控制器还可以用于确定第一分区的第一性能指标。当确定出第一分区的第一性能指标小于性能阈值时,确定第一分区的容量。可以理解的是,当存在多个第一分区时,每个第一分区的性能阈值是相互独立的。之后,可以根据第一分区的容量对硬盘中的存储空间进行调整。例如在整个SSD容量不变的情况下,调整各个分区的容量。可以理解的是,第一分区的容量为该分区容量的最低要求。本申请还可以根据第一分区的性能反向调整第一分区的容量,以保证第一分区可以满足业务性能要求。
第二方面,提供了一种存储设备中的硬盘的管理设备,设备包括:占用模块,用于从硬盘的存储空间划分出第一分区,其中,第一分区用于写入指定数据,并在第一分区写满占用数据,以占用第一分区;删除模块,用于在往第一分区写入指定数据之前,删除占用数据;写入模块,用于在占用数据被删除之后将指定数据写入第一分区。在一个例子中,可以在硬盘开始使用时对第一分区进行占用,例如可以通过顺序大I/O写入占用数据以占用第一分区。大I/O例如可以是大于或等于64KB数据的I/O。本申请中存储设备的占用模块通过对硬盘中的存储空间进行逻辑分区划分,并采用占用数据将部分逻辑分区进行预占用,保证了该逻辑分区对应有连续的物理分区。当需要往此部分逻辑分区写入指定数据时,可以快速释放出该逻辑分区的空间以保障可以满足大带宽写操作的需求,提升该逻辑分区的性能稳定性。
在一个可能的实施方式中,指定数据为存储设备的内存中的数据;往第一分区写入指定数据为存储设备断电时执行。本申请保障了在设备断电时满足短时间内超大带宽写操作的需求。
在一个可能的实施方式中,硬盘的数量为多个,多个硬盘形成逻辑空间;占用模块还用于:从逻辑空间划分出第二分区,其中,第二分区映射至多个硬盘的第一分区。本申请还可以适用于RAID场景通过多个硬盘组成RAID,在一个例子中,RAID例如可以采用RAID0、RAID1、RAID2、RAID3、RAID4、RAID5和RAID6中的一个或多个,或者任意多个进行组合,使得本申请可以适用的范围更加广泛。
在一个可能的实施方式中,装置还包括接收模块;往第一分区写入指定数据时为接收模块接收指定数据的写入请求时执行。
在一个可能的实施方式中,硬盘为固态硬盘SSD;装置还包括:发送模块,用于发送删除命令至SSD,以将占用数据标记为无效;发送模块还用于,发送擦除命令或GC命令至SSD,以擦除标记为无效的占用数据。
在一个可能的实施方式中,硬盘为SSD,硬盘的第一分区为SSD的逻辑地址空间中的区域,第一分区对应SSD中的一段物理空间,写入第一分区的数据存储至第一分区对应的物理空间。
第三方面,提供了一种存储设备,设备包括:处理器及存储器;处理器用于与存储器耦合,以及读取并执行存储在存储器中的指令;当处理器运行时执行指令,使得处理器用于执行第一方面的方法。
第四方面,提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当指令在终端上运行时,使得终端执行第一方面任意一项的方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第一方面中的任意一项方法。
本申请公开了一种存储设备中的硬盘的管理方法和设备,通过存储设备的控制器在逻辑层面上对硬盘进行分区,并针对部分逻辑分区采用顺序写进行预占用。使得预占用的逻辑分区可以快速进行释放,以保证此部分逻辑分区可以满足高带宽I/O任务需求,提升部分区域的性能稳定性。
附图说明
图1为本申请实施例提供的一种应用场景示意图;
图2为SSD进行垃圾回收数据迁移示意图;
图3为SSD进行垃圾回收数据擦除示意图;
图4为SSD顺序写转随机写性能变化示意图;
图5为SSD随机写转顺序写性能变化示意图;
图6为本申请实施例提供的一种存储设备中的硬盘的管理设备的系统示意图;
图7为本申请实施例提供的另一种存储设备中的硬盘的管理设备的系统示意图;
图8为一种磁盘阵列与SSD逻辑分区对应关系示意图;
图9为本申请实施例提供的一种应用TRIM数据变化示意图;
图10为本申请实施例提供的一种存储设备中的硬盘的管理设备的应用示意图;
图11为本申请实施例提供的一种存储设备中的硬盘的管理方法流程图;
图12为本申请实施例提供的一种存储设备中的硬盘的管理设备示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
本申请主要应用于硬盘的部分区域执行高性能写的场景。例如图1所示出的场景图,以硬盘为SSD为例。可以看出,SSD可以在逻辑层面上划分为多个不同的逻辑分区,每个逻辑分区可以分配给不同的业务使用。例如阴影显示的B区域,该区域可能需要执行一些大I/O的顺序写。而A区域和C区域可能执行一些小I/O的顺序写或随机写。
对于SSD而言,页(page)为最小的读写单位,块(block)为最小的擦除单位。由于SSD不会对数据进行覆盖写,每次进行数据写入时都需要给待写入的数据分配新的物理地址进行存储。这样很容易导致SSD没有足够的可用空间,因此SSD需要对物理空间执行GC,以便将已经写满的block进行回收。在进行垃圾回收时,通过选择无效页比较多的block进行回收。例如选择多个无效页较多的旧block,将这些旧block中的有效页读取并写入一个新的空白block,再将多个旧block进行擦除。
例如图2所示出的一种SSD进行GC时数据迁移的过程。可以看出,在对于已写满的旧block1和旧block2中均包括有效页和无效页。其中,无效页中存储的数据可以是已经被删除的数据;或者无效页中存储的数据可以是通过改写请求,新写入的数据被写入新的位置后仍然存储的原数据。此类数据可以被标记为无效数据,对于无效数据存储的页可以标记为无效页。无效页的数据可以直接被擦除,但是有效页的数据需要进行数据迁移至其它block,其它block例如图2中的新block。当有效页中的数据进行数据迁移后,则可以标记“garbage”并作为无效页。例如图3中,当有效页中数据全部迁移完毕后,旧block1和旧block2中将只存在无效页。然后SSD对旧block1和旧block2进行擦除操作,从而形成了新的空白block1和空白block2。从以上描述可知,在GC时如果所擦除的block中的有效页比较多,则会增加额外的写操作,即引起写放大。当垃圾回收执行的越频繁,将使得需要搬移的有效页越多,从而引起更多的写放大,从而导致SSD性能越差。
一般地,存储设备的控制器会以顺序写或随机写的方式向SSD发送写命令以写入数据。顺序写一般指进行I/O操作时,将待写入数据写入连续的逻辑块地址(logic blockaddress,LBA),并且相应的在物理层面上也会占用连续的物理块地址(physical blockaddress,PBA)。当采用顺序写写入的数据需要删除时,对应则会直接将数据连续占用的PBA标记为无效。当然,若采用大I/O顺序写在更新或删除数据时,由于大I/O对应的数据较大,可能直接将整个block标记为无效。这样被标记为无效的block可以直接被擦除命令进行擦除,使得在进行GC时只需进行少量的数据迁移甚至不进行数据迁移,因此写放大会比较低。对于整块被标记为无效的block可以通过擦除命令直接进行擦除,可以避免启动GC进行数据迁移释放空白块,使得GC的频率也比较低,以及保证SSD的写性能可以保持较高水平。对于随机写而言,一般指进行I/O操作时,将待写入数据写入随机的LBA。对于物理层面而言为顺序写入PBA。这使得一定程度上逻辑上连续的LBA会对应比较分散的PBA。当SSD进行随机写写满后,会启动GC回收无效页以释放出空白空间。当持续进行一段时间的随机写并经过多次的GC后,LBA与PBA的对应关系会更加分散和混乱。通常会采用小I/O进行随机写,因此当部分数据进行删除或者更新时,会导致大量的block中仅部分page属于无效页。在进行GC时大量的有效页需要进行数据迁移,从而引起比较高的写放大。由于无效页分散在不同的block中,因此随机写会对空白块消耗较高,当空白块的数量低于预设的阈值时则会启动GC释放出新的空白块,因此随机写会使得GC频率比较高,并导致SSD的写性能受到一定的影响。
本领域技术人员可以知道,每秒进行读写操作的次数(input/output operationsper second,IOPS)是SSD的一种性能指标,可以用于表示SSD的写性能。实际应用中,在空盘测试阶段,由于SSD整个盘是新盘,对于物理层面而言,其存储是顺序占用PBA,因此虽然进行的是随机写操作,但实际物理层面占用的PBA是连续占用,因此该阶段也可以等效看作是顺序写。由于此阶段不存在GC且有足够多的空白块用于存储数据,因此该阶段的IOPS指标最高,属于SSD性能最好的阶段。而随着数据的不断写入,SSD的空白块逐渐减少,则开始启动GC操作以释放更多的空白块。在性能变化阶段则展示出了启动GC后SSD的IOPS产生了明显下降。这是由于在此阶段开始执行GC,而相应的GC操作会带来额外的读操作和写操作,这些额外的操作会直接影响到执行SSD的写性能。因此该阶段的IOPS有了明显下降。当经过一段时间的GC后,GC逐渐达到了动态平衡,即随着数据的不断写入,也在不断的执行GC以释放空白块用于存储新数据。此时SSD进入了稳定状态阶段,由于该阶段的GC达到了一个稳定的状态,因此IOPS也进入了相对平稳的阶段,其写性能将不会产生较大变化。显然,在SSD进行随机写的初期,由于有足够多的空白块存储数据,因此从写性能的角度可以看作是顺序写;而当SSD盘第一次写满后,开始启动GC以释放空白块,此时写性能收到GC的影响下降后,则从写性能的角度可以认为开始了随机写。因此,IOPS变化也可以看作是顺序写转随机写的性能变化。
图4示出了SSD顺序写转随机写性能变化,该过程可以是对于一个新盘采用随机写时的性能变化;又或者是以图1所示场景为例,假设B区或者C区上所对应的业务采用顺序写将整个SSD的物理空间全部写满之后,A区对应的业务开始执行随机写时的性能变化。可以看出,SSD在顺序写转为4K I/O的随机写后,由于SSD中启动GC导致IOPS在前278秒(s)内会迅速下滑,而在GC达到动态平衡时如2000s之后IOPS达到平稳。可以清晰的看出,在顺序写转到稳定随机写后,SSD的写性能降低至原有的10%~30%。而图5则示出了SSD随机写转顺序写性能变化,该过程可以看做以图1所示场景为例,假设A区所对应的业务采用随机写将整个SSD的物理空间全部写满并持续一段时间后,当SSD写性能达到平衡时,B区或者C区对应的业务开始执行顺序写的性能变化过程。可以看出,SSD在随机写转为128K I/O的顺序写后,其性能并非在短时间内迅速上升。由于随机写导致的LBA与PBA的对应关系十分分散和混乱,SSD需要通过GC操作将释放出的空白块逐渐被连续的LBA对应的数据所占用,使得连续的LBA逐渐对应连续的PBA,直至达到平衡状态。对于该过程,通过一段时间的GC后,使得占用的PBA可以被整块进行擦除,当GC频率降低至一定程度时可以达到平衡,此时SSD写性能回升至最高。但是通常SSD从全随机写时的稳定性能最低点调整至全顺序写时的稳定性能最高点,该过程通常需要几分钟甚至几个小时才能完成。
继续回到图1,可以看出对于不同的逻辑分区可能会分配给不同的业务使用,而不同的业务对于写性能的要求大多数情况下也是不相同的。因此,考虑到部分逻辑分区对于写性能有较高的要求,而当SSD采用随机写将PBA与LBA对应关系写的十分分散时,SSD写性能较差。显然,若SSD盘的物理空间被随机写写的十分混乱时,当某个业务短时间内需要较高写性能时,SSD往往无法容忍图5所示性能回升所需的时间。例如图1所示将SSD在逻辑层面上分为3个逻辑分区,即A区、B区和C区。其中,A区和C区由于在执行写操作时采用小I/O,例如8K或4K及以下的I/O,其业务对性能要求并不高。而B区由于采用大I/O进行顺序写,其业务对于性能具有一定的要求。因此在选择SSD时需要考虑到B区是否可以随时满足大I/O顺序写的性能要求,例如当SSD的物理空间全部被写满后,虽然逻辑上仍然具有空间可以用于B区相应业务进行数据存储,但是物理层面上,可能PBA是十分分散的,此时将会十分影响写性能。
通常情况下写性能可以通过写带宽体现。
因此,为了保证SSD相应的逻辑分区可以时刻保持较好的写性能,并满足业务需求,本申请提供了一种存储设备中硬盘的管理方法,通过磁盘控制器在逻辑层面上对硬盘进行分区,并针对部分逻辑分区采用顺序写进行预占用操作。使得预占用的逻辑分区对应的物理空间可以快速释放,以保证此部分逻辑分区在任何时刻的都具有较高的写性能,满足高带宽I/O任务的需求,保障区域的性能稳定性。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行详细描述。
图6为本申请实施例提供的一种存储设备中的硬盘的管理设备的系统示意图。
如图6所示,本申请提供了一种存储设备中的硬盘的管理设备的系统700,该系统700包括磁盘控制器710和硬盘,其中,磁盘控制器710即存储设备的控制器。本实施例中以硬盘为SSD 720为例进行说明。该系统700可以包括:
磁盘控制器710将SSD 720在逻辑层面上进行划分,划分为至少两个逻辑分区。在一些例子中,SSD 720可以例如图1所示。如划分为3个逻辑分区。当然具体逻辑分区的数量根据实际情况可以进行划分。其中,至少两个逻辑分区中包括至少一个第一逻辑分区。第一逻辑分区例如图1中的B区,即该分区分配给高性能要求的业务使用。在一些例子中,对于其它逻辑分区可以称为第二逻辑分区。可以理解的是,第一逻辑分区即第一分区。
其中,磁盘控制器710中可以包括处理器711和存储器712。
处理器711可以是高级精简指令集处理器(advanced reduced instruction setcomputing machines,ARM)、X86、无内部互锁流水级的微处理器(microprocessor withoutinterlocked piped stages,MIPS)等架构的处理器。处理器711可以包括一个或多个处理单元,例如:应用处理器(application processor,AP),调制解调处理器,GPU,图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digitalsignal processor,DSP),基带处理器和/或神经网络处理器(neural-network processingunit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
存储器712用于存储指令和数据。在一些实施例中,存储器712为高速缓冲存储器。该存储器712可以保存处理器711刚用过或循环使用的指令或数据。如果处理器711需要再次使用该指令或数据,可从存储器712中直接调用。避免了重复存取,减少了处理器711的等待时间,因而提高了系统的效率。在一个例子中,存储器712可以包括内存,内存中可以存储有操作系统、镜像文件等。存储器712还可以包括辅助存储器或称为外存储器,例如可以是不可拆卸存储器或可拆卸存储卡等等。
其中,内部存储器可以用于存储计算机可执行程序代码,可执行程序代码包括指令。内部存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个硬盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器711通过运行存储在存储器的指令,执行各种功能应用以及数据处理。
可以理解的是,本申请中的第一逻辑分区可以主要分配给高性能的业务所使用。其中,高性能的业务通常可以是执行大I/O顺序写的业务。因此第一逻辑分区对于写性能有着较高的要求。
磁盘控制器710为了保证第一逻辑分区在任何情况下均满足业务的性能要求,则在一些例子中,采用大I/O顺序写将第一逻辑分区进行占用(也可称为填满),即进行预先占用(或预占用)。当然,若存在多个第一逻辑分区,例如第一逻辑分区还包括D区(图中未示出),则D区同样采用大I/O顺序写进行占用。可以理解的是,占用即将第一逻辑分区进行写满。在一些例子中,对第一逻辑分区采用大I/O顺序写进行的预先占用,通常是在硬盘刚开始使用时进行,SSD可以看做为一个新盘,因此,第一逻辑分区进行占用的LBA对应的PBA通常也是连续,即预先占用连续的page,甚至是连续的block。
在一些例子中,大I/O可以定义为单次I/O大于或等于64KB的I/O。当然,通常情况下大I/O可以是采用大于或等于128KB的I/O。
此时,由于预占用使得物理层面上的block也是被连续占用,因此当SSD执行GC操作时,可以对预先占用的block直接进行整块block的擦除,以释放出整块block。或者当SSD需要对第一逻辑分区写入数据时,可以接收到磁盘控制器对于该区域下发的写命令和擦除命令。以直接将第一逻辑分区对应的物理区域进行擦除,并写入相应数据。可以理解的是,上述过程避免了GC操作所带来的多余的读命令和写命令,降低了写放大。因此可以保证第一逻辑分区写性能处于较高水平。当第一逻辑分区需要执行高性能的业务时,例如当设备掉电需要短时间内存储大量数据,则可快速释放第一逻辑分区预占用的物理空间。由于预先占用的物理空间是连续的,因此当此部分物理空间释放后,可以满足设备掉电后短时间内存储大量数据的写带宽业务的性能需求。
本申请的存储设备的控制器通过对SSD进行逻辑分区划分,并对一部分逻辑分区进行预先写满,保证了该部分的逻辑分区对应有连续的物理分区。SSD可以对这片连续预填满的物理分区进行高效快速的回收释放,从而保障了此部分逻辑分区可以满足大带宽写操作的需求,提升性能稳定性。
可以理解的是,逻辑分区对应的物理分区,即逻辑分区预占用的物理空间。
由于SSD的物理空间通常是共用的,也就是说在物理空间数据的存储方式是按照数据的存储时间先后,顺序地占用各个PBA。因此,对于B区可能需要高性能写带宽(例如掉电时刻存储数据的情况)。若不对B区进行预占用,则只能逻辑上保证存在空闲的B区空间。例如假设B区对应为10G,则在不进行预占用的情况下,只能保证逻辑上仍然存在10G的空闲空间可以给B区分配的业务使用,但是实际上,这10G的空间在物理层面上可能是分散的,例如是被其它逻辑分区将SSD物理空间写散导致。此时若出现掉电时刻需要存储大量数据,由于空闲的物理空间十分分散,则无法保证业务的写性能需求。因此需要在磁盘控制器710和SSD 720上电后,采用大I/O顺序写将B区进行占用,以占用连续的物理空间,保证B区任意时刻的写性能均处于较高水平。而对于其它没有高带宽限制的区域,例如A区和C区可以不用特殊处理。
可以理解的是,在实际实践过程中,SSD为了满足并行操作,可以将数据同时写入不同block中的不同page中。例如若写入16KB的数据,假设一个block为16KB、一个page为8KB,若SSD需要满足16KB的并行读写,则实际上并非占用了1个block,而是同时占用两个block,每个block占用1个page。因此在对SSD中的第一逻辑分区进行预占用时,连续的物理空间也是相对连续的物理空间。但是在一些例子中,还可以预先为第一逻辑分区分配一段固定的物理空间,并对该固定的物理空间进行预占用。可以使得第一逻辑分区预占用后的物理空间是绝对连续的物理空间。
在另一些例子中,如图7所示,本申请提供了另一种存储设备中的硬盘的管理设备的系统700’,该系统700’与图6中的系统700的区别在于,系统700’中可以具有多个SSD720。其中,多个SSD 720可以构成硬盘阵列810。其中,磁盘阵列例如可以是RAID。可以理解的是,RAID为多个独立的SSD 720组成的硬盘子系统,从而提供比单个SSD 720更高的存储性能和数据冗余。可以理解的是,在物理层面上,多个SSD 720可以是相互独立的,但是在逻辑层面上,多个物理SSD 720构成了一个统一的逻辑硬盘。其中,逻辑硬盘即多个硬盘形成的逻辑空间。例如,在逻辑层面上的C区,其实际的物理形态可能是由多个SSD 720通过RAID的方式组成的。在一个例子中,RAID可以采用RAID0、RAID1、RAID2、RAID3、RAID4、RAID5和RAID6中的一个或多个,或者任意多个进行组合。
当然,在其它例子中,还可也采用其它RAID方案,对于不同的RAID方案可能具有不同数量的物理硬盘。无论具有多少的物理硬盘,在逻辑层面上均可以看作为一个逻辑空间。可以对该逻辑空间进行逻辑分区,其中第一逻辑分区将会与至少一个物理层面的硬盘相对应。当然,对RAID后的逻辑空间进行分区后得到的第一逻辑分区,可以称为第二分区。
若采用多个SSD 720构成RAID 810时,均采用条带化的形式将数据存储至RAID810中。例如,存储设备的逻辑层面上存储空间被划分为A区、B区和C区,对应的,RAID 810中的每个SSD 720其逻辑层面也相应划分出对应的A’区、B’区和C’区,例如图8所示出的,以4个SSD 720构成一个RAID为例,包括SSD 1、SSD 2、SSD 3和SSD 4。可以看出,其中各个SSD720中的A’区共同构成了存储设备的A区,同理,各个SSD 720中的B’区共同构成了整个存储空间的B区,以及各个SSD 720中的C’区共同构成了整个存储空间的C区。上述例子表示了第二分区可以映射至每个硬盘上的第一分区。
可以理解的是,对于整个存储空间的第一逻辑分区进行预占用,可以看作是针对RAID 810中的每个SSD 720中相应的第一逻辑分区的预占用。例如,若假设存储空间的B区为第一逻辑分区,则对B区的预占用可以看作是针对每个SSD 720中的B’区进行预占用。其具体占用方式可以参考图6所示系统中对于SSD 720相应的描述,本申请在此不再赘述。
在一个例子中,在逻辑层面上磁盘控制器710在对SSD 720或RAID 810进行区域划分时,还可以考虑第一逻辑分区分配的业务的性能要求,并根据性能要求调整第一逻辑分区的容量。可以理解的是,对第一逻辑分区用数据进行预占用,一定程度上会影响第二逻辑分区的随机性能。第一逻辑分区占用的空间越大,后续对第一逻辑分区的独立写性能越好,但是第二逻辑分区的随机写性能将会变差,其原因在于第一逻辑分区预先占用了部分物理空间,导致第二逻辑分区可用的物理空间变少。所以需要根据具体业务的性能需求对第一逻辑分区进行调整。以图6所示的系统为例,假设SSD的容量为100GB,主机在对SSD进行逻辑层面的分区时,可以预先配置好划分几个逻辑分区,以及每个逻辑分区的容量大小或者每个逻辑分区相对整个SSD的占比。例如可以预先设定划分3个逻辑分区,即A区、B区和C区。同时预先配置了每个逻辑分区的容量大小,例如,A区为20GB、B区为50GB、C区为30GB。又或者可以预先配置每个逻辑分区相对SSD的占比,例如A区占比20%、B区占比50%、C区占比30%。当然在其它例子中,可以预先配置各个逻辑分区的最小容量,例如A区最小容量为10GB、B区为40GB、C区为30GB。此时在进行分区时可能还会剩余部分容量。磁盘控制器710还可以将剩余的容量按照预设规则分配给各个逻辑分区,例如将剩余容量平均划分给各个逻辑分区,或者按照优先级,依次分配给各个逻辑分区。在按照优先级依次分配时可以预设一个固定容量,例如每次最多分配5GB容量。当然还可以采用其它任意可行的方式对SSD 720或RAID 810的容量进行划分,本申请不做限定。
在另一些例子中,当对SSD 720或RAID 810的逻辑分区进行初次划分后,若第一逻辑分区上运行的业务有一定的性能要求,此时可以确定第一逻辑分区的第一性能指标。其中,第一性能指标可以是该逻辑分区在进行随机写转顺序写时初期带宽要求的性能指标,通过图5可以清晰的看到,当SSD进行随机写转顺序写时,其初期IOPS较低,此时的性能指标则可以认为是最低性能要求。假设随机写转顺序写初期的写带宽是80MB/s,而第一逻辑分区上例如分配给大I/O顺序写的业务使用,在一段时间内的性能要求是写带宽均值满足100MB/s。可以理解的是,性能要求的写带宽均值满足100MB/s即性能阈值为100MB/s。显然,此时的第一逻辑分区若处于随机写转顺序写初期则无法满足性能要求。因此磁盘控制器710可以根据性能阈值,即写带宽均值满足100MB/s这一条件进行反向计算,以确定第一逻辑分区满足该条件的最小容量。可以理解的是,若存在多个第一逻辑分区,则每个逻辑分区的性能阈值是根据相应逻辑分区上分配给的业务确定的,因此可能相同或不同,可以认为各个逻辑分区的性能阈值是相互独立的。当反向计算出每个第一逻辑分区的最小容量后,在根据该容量对各个逻辑分区进行重新调整。例如,假设初次划分A区为20GB、B区为50GB、C区为30GB,其中B区为第一逻辑分区,当经过上述方式重新确定B区最小容量为60GB时,则对SSD各个逻辑分区进行重新划分。例如划分A区为15GB、B区为60GB、C区为25GB。可以理解的是在重新划分各个逻辑分区的容量时,还可以参考各个容量分区预设的最小容量。以避免容量重新分配后个别逻辑分区无法满足业务的性能要求。具体划分可以根据实际情况进行任意调整,本申请在此不作限定。
在一些例子中,对于图6和图7所示出的系统,还可以进一步采用TRIM命令将无效数据对应PBA提前进行标记,即标记为“garbage”。以便SSD在进行GC操作时,可以更加快速地擦除相应PBA上的数据,并提升GC效率。
在一些例子中,磁盘控制器710可以与主机相连接并接收主机下发的TRIM命令,因此磁盘控制器710还可以包括接收器,以接收主机下发的TRIM命令。
例如图9则示出了执行TRIM时各个层面上看到的数据情况。可以看出,首先用户写入了4个文件(file),例如fileA、fileB、fileC和fileD。在操作者系(operation system,OS)逻辑层面上看,此时存有fileA、fileB、fileC、fileD以及其它空白空间(free)。而在SSD的逻辑层面上看,fileA占用了3个LBA,即A1、A2和A3;fileB占用了6个LBA,即B1、B2、B3、B4、B5和B6;fileC占用了2个LBA,即C1和C2;fileD占用了1个LBA,即D1。其余LBA为free对应的LBA。在SSD物理层面,则与逻辑层面类似,每个LBA分别对应了一个PBA。同时SSD还具有冗余空间(over provisioning,OP),可以理解的是,OP即上述提到的空白块。对于物理层面的OP仅仅是SSD 720或RAID 810知晓的。当用户将fileC删除后,OS还可以同时下发TRIM。在OS逻辑层面上用户看到的就是fileC没有了,并且出现了新的free。其中新增的free用于在OS逻辑层面表示原fileC所占用的空间。在SSD的逻辑层面上,由于将LBA上是数据删除,因此相应C1和C2的LBA上将没有对应的数据。而在SSD物理层面,由于OS下发了TRIM,因此将C1和C2对应的PBA标记为“garbage”,正如图中相应的PBA变为“GC”。来自OS的TRIM用于告知SSD先前保存fileC的数据已经无效。当用户写入新的fileE时,在OS逻辑层面上,用户看到的就是新写入了fileE。而SSD逻辑层面上,则是将fileE的数据写入原fileC对应的LBA中,例如即E1和E2。而在SSD物理层面上,则是在新的PBA中写入E1和E2。并建立LBA与PBA的映射关系。可以看出,虽然新写入的fileE在SSD的逻辑层面上占用了旧位置(即原fileC存储的LBA),但是在物理层面上,旧数据所存储的PBA并未删除,而是寻找了新的PBA存储fileE对应的数据。
在一些例子中,磁盘控制器710还可以接收主机下发的TRIM命令,并将TRIM命令转发至SSD 720中。SSD 720执行TRIM命令。可以理解的是,RAID 810也是由多个SSD 720构成,因此若采用RAID方案实际上仍然是RAID 810中的各个SSD 720接收TRIM命令。其中,磁盘控制器710还可以接收主机下发的写命令或读命令,并将写命令或读命令转发至SSD 720中。以便SSD 720执行写命令或读命令。在又一个例子中,若SSD 720接收TRIM命令后,该TRIM命令所对应的逻辑分区存在未执行完毕的写命令或读命令,则可以优先执行写命令或读命令,然后再执行TRIM命令。当然在又一些例子中,若其它逻辑分区存在未执行完成的写命令或读命令,也可以等待其它逻辑分区未执行完成的写命令或读命令执行完毕之后,再执行TRIM命令。可以理解的是,将写命令或读命令与TRIM命令分开执行是为了避免并发执行时可能产生的影响,一般此类影响是不可控的,例如会造成数据丢失、命令无法执行,甚至可能造成宕机等问题。当然,在一些情况下,对于某个逻辑分区也可以并发执行写命令和TRIM命令,或并发执行读命令和TRIM命令。
在一些例子中,还可以预先配置TRIM命令的执行频率信息和TRIM命令对应的逻辑分区信息。以便主机按照预先配置的TRIM命令的执行频率信息和TRIM命令对应的逻辑分区信息发送TRIM命令至磁盘控制器710,并由磁盘控制器710转发至SSD 720中。可以理解的是,采用TRIM命令也可以一定程度上提升SSD性能。
本申请采用了一种物理空间预先占用方式对硬盘中不同逻辑分区提供不同的性能。例如可以提升第一逻辑分区的性能,从而避免同一硬盘上各个逻辑分区性能相同且固定,导致个别逻辑分区无法时刻满足该逻辑分区对写性能的需求,以提升SSD固定区域的性能稳定性。
同时,本申请可以兼容不同供应商的NAND flash,不用改变当前硬件架构,仅通过调整上层应用配置从而达到提升固定区域性能的目的,非常简单并且实用。
图10为本申请实施例提供的一种存储设备中的硬盘的管理设备的应用示意图。
如图10所示,该应用场景可以是当存储设备掉电后,磁盘控制器710需要快速存储易失性存储器(内存)内数据的场景。例如,第一逻辑分区用于存储高速缓存数据(cachedata)。可以看出,在该示例中,以硬盘为SSD为例,SSD在逻辑层面上被划分为4个分区。其中,逻辑分区A用于存储OS的数据,逻辑分区B用于存储数据库(data base,DB)数据,逻辑分区C用于存储cache data,逻辑分区D用于存储普通日志数据。其中,逻辑分区C即上述的第一逻辑分区,该逻辑分区C被预先分配了一段连续的物理空间进行预占用。由于存储设备突然掉电后,其内存中包含大量的数据且需要进行存储,因此短时间内需要很大的写带宽。而逻辑分区C由于已经被预占用,例如预先采用大I/O(128KB以上)数据进行顺序写占用,写入的数据存储在逻辑分区C对应的物理区间。在逻辑分区C被预占用后,存储设备突然掉电后,磁盘控制器710发送擦除指令或者GC指令至对应的SSD 720,指示SSD 720清除逻辑分区C对应的物理空间,以将内存中的数据快速写入SSD 720中的逻辑分区C。另外,
主机可以下发TRIM命令至磁盘控制器710,然后磁盘控制器710将TRIM命令转发至SSD 720中,将SSD 720中逻辑分区C对应的物理区间标记为garbage。这样,在需要将cache中的数据写入逻辑分区C的时候,由于逻辑分区C对应的物理空间整体被标记为garbage,所以通过GC释放逻辑分区C对应的物理空间或者在写入数据时携带擦除指令时,对标记为garbage的物理空间直接进行擦除,不需要进行数据迁移,从而将cache中的数据写入逻辑分区C时,不仅节省了写入时间,而且保证了最大的写带宽,提高写入性能,从而满足掉电时刻需要存储大量数据的性能需求。
图11为本申请实施例提供的一种存储设备中的硬盘的管理方法流程图。
如图11所示,本申请还提供了一种存储设备中的硬盘的管理方法流程图。该方法可以应用如图6或图7所示出的系统中。该方法包括以下步骤:
S1201,磁盘控制器配置SSD逻辑分区数量和容量。
对于直接连接至磁盘控制器的SSD,磁盘控制器可以直接将SSD划分为至少两个逻辑分区,其中的第一逻辑分区作为高性能的分区。对于多个SSD通过RAID构成存储设备的逻辑空间来说,磁盘控制器通过将存储设备的逻辑空间划分为至少两个逻辑分区,其中的第一逻辑分区作为高性能的分区,且该第一逻辑分区分别对应每个SSD中的一个逻辑分区。可以理解的是,对于SSD中对应的作为高性能的分区可以称为第一分区,当多个SSD通过RAID构成存储设备的逻辑空间时,多个SSD的第一分区可以构成了第二分区,第二分区即多个SSD通过RAID构成存储设备的逻辑空间中划分的第一逻辑分区。对于每个SSD,可以预先为每个SSD中的第一逻辑分区设定一段固定的物理空间,在其它实现方式中,也可以不为第一逻辑分区设定固定的物理空间。
S1202,磁盘控制器根据逻辑分区的性能阈值,确定逻辑分区的容量是否调整。
磁盘控制器710根据每个逻辑分区对应的业务的性能阈值,确定各个逻辑分区的容量是否可以满足业务的性能需求,并确定是否需要对SSD 720或RAID 810各个逻辑分区的容量进行调整。若需要则重新执行S1201;若无需调整,则执行S1203。
S1203,主机采用大I/O顺序写将第一逻辑分区进行预占用。
主机发送大I/O顺序写命令至磁盘控制器,以使得磁盘控制器710针对每个划分出的第一逻辑分区,采用大I/O顺序写占用数据的方式对第一逻辑分区进行预占用。例如采用单次I/O大于或等于64KB的I/O。所述占用数据可以为任意数据,例如全部为1。
对于直接连接至磁盘控制器的SSD,磁盘控制器可以直接在所述SSD的第一逻辑分区中写入占用数据,这样,所述占用数据会被写入为所述第一逻辑分区所设定的物理空间,从而实现预占用。在没有为所述第一逻辑分区设定的物理空间时,则根据SSD的数据写入方式,通过大I/O顺序写的方式也可以大概率的使占用数据占用整块的物理块。对于RAID构成的逻辑空间,磁盘控制器将占用数据写入存储设备的第一逻辑空间,则根据存储设备的第一逻辑空间与SSD的第一逻辑空间的对应关系,最终会将占用数据写入每个SSD的第一逻辑空间对应的物理空间中。
可以理解的是S1201至S1203的过程可以看作是预先做好的准备工作。
S1204,磁盘控制器获取写入SSD的第一逻辑分区的写入命令。
磁盘控制器一般通过两种方式获取写入SSD的第一逻辑分区的写入命令,第一种为接收主机下发的写命令,该写命令中包含待写入数据的逻辑地址,在逻辑地址落入第一逻辑分区的第一范围时,即可确定该写命令为写入SSD的第一逻辑分区。对于通过RAID构成逻辑空间的SSD,则首先通过写入命令中携带的逻辑地址确定存储设备的第一逻辑分区,然后根据存储设备的第一逻辑分区确定每个SSD的第一逻辑分区。
第二种为存储设备自己产生的写入SSD的第一逻辑分区的写入命令,例如,当存储设备掉电时,则磁盘控制器自己产生写入命令,以将内存中的数据写入SSD中。
磁盘控制器在接收到主机写入存储设备的第一逻辑空间的命令时,将数据写入存储设备的第一逻辑空间。
S1205,磁盘控制器删除第一逻辑分区存储的占用数据。
在本申请实施例中,磁盘控制器在删除数据的同时,可以发送擦除指令或GC指令至SSD,以指示SSD清除物理空间中存储的占用数据。对于之前已经通过TRIM命令标记为“garbage”的第一逻辑分区,则磁盘控制器发送擦除指令至SSD,以擦除第一逻辑区间对应的SSD的物理空间,对于之前没有被标记为garbage的第一逻辑分区,则磁盘控制器发送GC指令至SSD,以使SSD启动GC,并释放SSD中的第一逻辑分区所占用的物理空间。由于第一逻辑分区对应的物理块的数据同时被删除,所以在GC时,所需要迁移的数据非常少,垃圾回收的效率非常高。
S1206,磁盘控制器执行写入命令,将所述写入命令中的数据写入所述第一逻辑分区对应的物理空间。
由于第一逻辑分区对应的物理空间的数据已被清除,所以可以立即将数据写入对应的物理区间。
本申请实施例中,通过占用数据预先占用SSD的部分空间,在高性能的应用需要使用时,可快速释放占用数据所占用的空间,所以在不增加SSD的硬件性能及容量的同时,保证了高性能应用的性能需求。
图12为本申请实施例提供的一种存储设备中的硬盘的管理设备示意图。
如图12所示,本申请还提供了一种存储设备中的硬盘的管理设备示意图。该管理设备1300包括占用模块1301、删除模块1302、和写入模块1303。
占用模块1301,用于从硬盘的存储空间划分出第一分区,其中,第一分区用于写入指定数据,并在第一分区写满占用数据,以占用第一分区。删除模块1302,用于在往第一分区写入所述指定数据之前,删除占用数据。写入模块1303,用于在占用数据被删除之后将指定数据写入第一分区。在一个例子中,可以在硬盘开始使用时对第一分区进行占用,例如可以通过顺序大I/O写入占用数据以占用第一分区。大I/O例如可以是大于或等于64KB数据的I/O。本申请中存储设备的处理模块1401通过对硬盘中的存储空间进行逻辑分区划分,并采用占用数据将部分逻辑分区进行预占用,保证了该逻辑分区对应有连续的物理分区。当需要往此部分逻辑分区写入指定数据时,可以快速释放出该逻辑分区的空间以保障可以满足大带宽写操作的需求,提升该逻辑分区的性能稳定性。
在一个可能的实施方式中,指定数据为存储设备的内存中的数据。往第一分区写入所述指定数据为存储设备断电时执行。本申请保障了在设备断电时满足短时间内超大带宽写操作的需求。
在一个可能的实施方式中,硬盘的数量为多个,多个硬盘形成逻辑空间。占用模块1301还用于:从逻辑空间划分出第二分区。其中,第二分区映射至多个硬盘的第一分区。本申请还可以适用于RAID场景通过多个硬盘组成RAID,在一个例子中,RAID例如可以采用RAID0、RAID1、RAID2、RAID3、RAID4、RAID5和RAID6中的一个或多个,或者任意多个进行组合,使得本申请可以适用的范围更加广泛。
在一个可能的实施方式中,装置1300还包括接收模块1304。往第一分区写入指定数据时为接收模块1304接收指定数据的写入请求时执行。
在一个可能的实施方式中,硬盘为固态硬盘SSD。装置1300还包括:发送模块1305,用于发送删除命令至SSD,以将占用数据标记为无效。发送模块1305还用于,发送擦除命令或GC命令至SSD,以擦除标记为无效的占用数据。
在一个可能的实施方式中,硬盘为SSD,硬盘的第一分区为SSD的逻辑地址空间中的区域,第一分区对应SSD中的一段物理空间,写入第一分区的数据存储至第一分区对应的物理空间。
可以理解的是,上述过程的具体实现可以参考图6至图11中相应的描述,在此不再赘述。
本申请所涉及的存储设备中的硬盘的管理方法,不改变当前SSD的硬件和容量空间,即SSD盘对外体现容量和原始宣称容量一致。同时也不需要修改固件(firmware,FW),仅通过应用配置实现固定区域的稳定性能指标提升。通过根据对固定区域容量和性能要求最小值,合理划分SSD区域空间。并且为保证任意时刻某固定区域的性能稳定性更优,对划分的区域空间做适当的预处理。避免同一SSD上固定性能而导致的特定时刻稳定性能难以进一步优化,从而提升SSD固定区域的性能稳定性。不需要因为单盘部分空间需要高性能就选择更高成本的高性能SSD。
可以理解的是,本申请可以广泛应用于存储领域的NAND Flash控制,尤其是使用NAND Flash的SSD系统。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令处理器完成,所述的程序可以存储于计算机可读存储介质中,所述存储介质是非易失性(英文:non-volatile)介质,例如随机存取存储器,只读存储器,快闪存储器,硬盘,固态硬盘,磁带(英文:tape),软盘(英文:floppy disk),光盘(英文:optical disc)及其任意组合。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (14)

1.一种存储设备中的硬盘的管理方法,其特征在于,所述方法包括:
所述存储设备的控制器从所述硬盘的存储空间划分出第一分区,其中,所述第一分区用于写入指定数据;
所述控制器在所述第一分区写满占用数据,以占用所述第一分区;
在所述控制器往所述第一分区写入所述指定数据之前,删除所述占用数据,并在所述占用数据被删除之后将所述指定数据写入所述第一分区。
2.如权利要求1所述的方法,其特征在于,所述指定数据为所述存储设备的内存中的数据;
所述控制器往所述第一分区写入所述指定数据为所述存储设备断电时执行。
3.如权利要求1或2所述的方法,其特征在于,所述硬盘的数量为多个,所述多个硬盘形成逻辑空间;
所述控制器从硬盘的存储空间划分第一分区,包括:
所述控制器从所述逻辑空间划分出第二分区,其中,所述第二分区映射至所述多个硬盘的所述第一分区。
4.如权利要求1-3任意一项所述的方法,其特征在于,所述控制器往所述第一分区写入所述指定数据为所述控制器接收到所述指定数据的写入请求时执行。
5.如权利要求1-4任意一项所述的方法,其特征在于,所述硬盘为固态硬盘SSD;
所述删除所述占用数据,包括:
所述控制器发送删除命令至所述SSD,以将所述占用数据标记为无效;
所述控制器发送擦除命令或垃圾回收命令至所述SSD,以擦除标记为无效的占用数据。
6.如权利要求1-5任意一项所述的方法,其特征在于,所述硬盘为SSD,所述硬盘的第一分区为所述SSD的逻辑地址空间中的区域,所述第一分区对应所述SSD的一段物理空间,写入所述第一分区的数据存储至所述第一分区对应的物理空间。
7.一种存储设备中的硬盘的管理设备,其特征在于,所述设备包括:
占用模块,用于从所述硬盘的存储空间划分出第一分区,其中,所述第一分区用于写入指定数据,并在所述第一分区写满占用数据,以占用所述第一分区;
删除模块,用于在往所述第一分区写入所述指定数据之前,删除所述占用数据;
写入模块,用于在所述占用数据被删除之后将所述指定数据写入所述第一分区。
8.如权利要求7所述的设备,其特征在于,所述指定数据为所述存储设备的内存中的数据;
所述往所述第一分区写入所述指定数据为所述存储设备断电时执行。
9.如权利要求7或8所述的设备,其特征在于,所述硬盘的数量为多个,所述多个硬盘形成逻辑空间;
所述占用模块还用于:
从所述逻辑空间划分出第二分区,其中,所述第二分区映射至所述多个硬盘的所述第一分区。
10.如权利要求7-9任意一项所述的设备,其特征在于,所述装置还包括接收模块;
所述往所述第一分区写入所述指定数据时为所述接收模块接收所述指定数据的写入请求时执行。
11.如权利要求7-10任意一项所述的设备,其特征在于,所述硬盘为固态硬盘SSD;
所述装置还包括:
发送模块,用于发送删除命令至所述SSD,以将所述占用数据标记为无效;
所述发送模块还用于,发送擦除命令或垃圾回收命令至所述SSD,以擦除标记为无效的占用数据。
12.如权利要求7-11任意一项所述的设备,其特征在于,所述硬盘为SSD,所述硬盘的所述第一分区为所述SSD的逻辑地址空间中的区域,所述第一分区对应所述SSD中的一段物理空间,写入所述第一分区的数据存储至所述第一分区对应的物理空间。
13.一种存储设备,其特征在于,所述设备包括处理器及存储器;
所述处理器用于与所述存储器耦合,以及读取并执行存储在所述存储器中的指令;
当所述处理器运行时执行所述指令,使得所述处理器用于执行如权利要求1-6所述的方法。
14.一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,其特征在于,当所述指令在存储设备运行时,使得所述存储设备执行如权利要求1-6任意一项所述的方法。
CN202210349660.5A 2021-04-13 2022-04-02 一种存储设备中的硬盘的管理方法及设备 Pending CN115202569A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2021103969233 2021-04-13
CN202110396923 2021-04-13

Publications (1)

Publication Number Publication Date
CN115202569A true CN115202569A (zh) 2022-10-18

Family

ID=83574822

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210349660.5A Pending CN115202569A (zh) 2021-04-13 2022-04-02 一种存储设备中的硬盘的管理方法及设备

Country Status (1)

Country Link
CN (1) CN115202569A (zh)

Similar Documents

Publication Publication Date Title
US10095429B2 (en) Method, apparatus, and controller for managing storage array
US9916248B2 (en) Storage device and method for controlling storage device with compressed and uncompressed volumes and storing compressed data in cache
JP5792313B2 (ja) ストレージシステム
US8832371B2 (en) Storage system with multiple flash memory packages and data control method therefor
US10203876B2 (en) Storage medium apparatus, method, and program for storing non-contiguous regions
US20140189203A1 (en) Storage apparatus and storage control method
JP5816303B2 (ja) フラッシュメモリを含むストレージシステム、及び記憶制御方法
US10503424B2 (en) Storage system
US8539142B2 (en) Storage system comprising nonvolatile semiconductor storage media
WO2015162758A1 (ja) ストレージシステム
US10664182B2 (en) Storage system
CN113490922B (zh) 固态硬盘写放大优化方法
JP2015517697A (ja) 二次記憶装置に基づく記憶領域をキャッシュ領域として用いるストレージシステム及び記憶制御方法
US10649891B2 (en) Storage device that maintains mapping data therein
US20190205053A1 (en) Storage apparatus and distributed storage system
US20190243758A1 (en) Storage control device and storage control method
US10049042B2 (en) Storage device, semiconductor memory device, and method for controlling same
WO2020007030A1 (zh) 一种系统控制器和系统垃圾回收方法
US20170262220A1 (en) Storage control device, method of controlling data migration and non-transitory computer-readable storage medium
US8935488B2 (en) Storage system and storage control method
CN115202569A (zh) 一种存储设备中的硬盘的管理方法及设备
US11157419B2 (en) Defragmentation techniques
US11995329B1 (en) Techniques for improving write performance using zone sharing in log structured systems
JP6605762B2 (ja) 記憶ドライブの故障により消失したデータを復元する装置

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