CN110858124B - 数据迁移方法及装置 - Google Patents
数据迁移方法及装置 Download PDFInfo
- Publication number
- CN110858124B CN110858124B CN201810972007.8A CN201810972007A CN110858124B CN 110858124 B CN110858124 B CN 110858124B CN 201810972007 A CN201810972007 A CN 201810972007A CN 110858124 B CN110858124 B CN 110858124B
- Authority
- CN
- China
- Prior art keywords
- storage unit
- data access
- data
- storage
- access heat
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000013508 migration Methods 0.000 title claims abstract description 48
- 230000005012 migration Effects 0.000 title claims abstract description 48
- 239000000470 constituent Substances 0.000 claims description 4
- 239000007787 solid Substances 0.000 description 48
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 8
- 101000994460 Homo sapiens Keratin, type I cytoskeletal 20 Proteins 0.000 description 7
- 102100032700 Keratin, type I cytoskeletal 20 Human genes 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000013507 mapping Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
Abstract
本申请实施例提供一种数据迁移方法和装置,该方法包括:存储设备获取第一存储单元组的数据访问热度,第一存储单元组包含多个存储单元,其中,每个存储单元是逻辑单元所包含的块的组成单位,逻辑单元是存储设备提供的,能够被主机访问的逻辑存储空间,第一存储单元组的数据访问热度由每个存储单元的数据访问热度确定,每个存储单元的数据访问热度由存储单元所在的逻辑单元确定;当第一存储单元组的数据访问热度达到设定阈值时,存储设备将第一存储单元组中的数据迁移至第二存储单元组,第二存储单元组的访问性能高于第一存储单元组的访问性能。实施本申请实施例,可以提高数据访问热度统计的准确性,从而提高存储设备的分层存储性能。
Description
技术领域
本申请涉及存储技术领域,尤其涉及一种数据迁移方法及装置。
背景技术
在存储技术领域,为了提高存储性能,在进行数据存储时可以分层存储。分层存储可以将数据分别存储在不同性能的存储设备上,减少非重要性数据在高性能磁盘上所占用的空间。分层存储还可以实现将数据在存储空间之间自动迁移,从而可以获得更好的存储性能。影响数据迁移的一个因素是存储单元的统计信息,该统计信息例如可以包含数据访问热度,数据访问热度可以由存储单元上存储数据的读写次数来确定。
分层存储技术中数据迁移的单位可以是存储单元组,存储单元组可以包含多个存储单元,存储设备可以根据存储单元组中数据访问热度来确定将数据迁移到数据访问性能更高的存储单元组或者是将数据迁移到数据访问性能更低的存储单元组上。在进行数据访问热度统计时,如何保证存储单元组的数据访问热度统计的准确性,是亟待解决的问题。
发明内容
本申请公开了一种数据迁移方法及装置,可以提高数据访问热度统计的准确性,从而提高存储设备的分层存储性能。
第一方面,本申请实施例提供一种数据迁移方法,所述方法包括:存储设备获取第一存储单元组的数据访问热度,所述第一存储单元组包含多个存储单元,其中,每个存储单元是逻辑单元所包含的块的组成单位,所述逻辑单元是所述存储设备提供的,能够被主机访问的逻辑存储空间,所述第一存储单元组的数据访问热度由每个存储单元的数据访问热度确定,每个存储单元的数据访问热度由所述存储单元所在的逻辑单元确定;当所述第一存储单元组的数据访问热度达到设定阈值时,所述存储设备将所述第一存储单元组中的数据迁移至第二存储单元组,所述第二存储单元组的访问性能高于所述第一存储单元组的访问性能。
上述的数据迁移方法中,通过统计逻辑单元所包含的块的数据访问热度来确定组成该逻辑单元所包含的块的存储单元的数据访问热度。存储单元组的数据访问热度可以根据其中包含的每个存储单元的数据访问热度来确定。这样确定的存储单元组的数据访问热度,可以更准确的反映存储单元组的数据访问的频繁程度,从而可以提高存储单元组的数据访问热度统计的精确度,提高存储设备的分层存储性能。
其中,逻辑单元所包含的块可以是LUN block。
在一种可能的实施例中,所述存储设备以所述逻辑单元所包含的块为单位统计数据访问热度。
具体的,确定第一存储单元组的数据访问热度可以包含以下步骤:步骤一,存储设备统计每个LUN block的数据访问频次。步骤二,存储设备根据每个LUN block的数据访问频次来确定每个LUN block的数据访问热度。步骤三:存储设备确定每个LUN block所包含的存储单元的数据访问热度。步骤四:针对于每个存储单元组,存储设备根据存储单元组中包含的每个存储单元的数据访问热度确定存储单元组的数据访问热度。
可选的,LUN block的数据访问热度还可以直接对LUN block进行统计得到。例如直接统计LUN block的数据访问频次作为LUN block的数据访问热度,即在执行步骤一之后无需执行步骤二,直接根据得到的数据访问热度执行步骤三。
上述的数据迁移方法中,可以实现将用户经常访问的热数据存放在低延迟、高速度的存储介质中,将很少被访问的冷数据放在高延迟、低成本的存储介质中,从而可以实现通过分层存储来提高磁盘的利用效率。另外,通过统计LUN block的数据访问频次来确定LUN block的数据访问热度,之后根据该LUN block的数据访问热度来确定组成该LUNblock的存储单元的数据访问热度。存储单元组的数据访问热度可以根据其中包含的每个存储单元的数据访问热度来确定。这样确定的存储单元组的数据访问热度,可以更准确的反映存储单元组的数据访问的频繁程度,可以提高数据迁移的合理性,从而提高存储设备的分层存储性能。
在一种可能的实施例中,所述第一存储单元组包括第一存储单元,所述方法还包括:所述存储设备接收写数据请求,所述写数据请求用于将数据写入第二存储单元,所述第二存储单元所属的存储单元组不同于所述第一存储单元组;所述存储设备将所述数据写入所述第一存储单元,并保存所述数据的实际地址与所述第一存储单元的逻辑地址的之间的对应关系;所述存储设备获取第一存储单元组的数据访问热度包括:所述存储设备根据所述第二存储单元的数据访问热度更新所述第一存储单元的数据访问热度:所述存储设备根据更新后的所述第一存储单元的数据访问热度获取所述第一存储单元组的数据访问热度。
上述ROW场景下,重定向的第一存储单元的数据访问热度可以继承重定向之前的第二存储单元的数据访问热度,并同时根据第一存储单元继承的数据访问热度更新第一存储单元所在的存储单元组的数据访问热度,根据更新后的存储单元组的数据访问热度来确定是否迁移。该存储单元组的数据访问热度确定方法,可以减少因为ROW导致的第一存储单元所在的存储单元组的数据访问热度不准确的问题,使得存储单元组的数据访问热度统计更加准确,可以提高数据迁移的合理性,从而提高存储设备的分层存储性能。
在一种可能的实施例中,第三存储单元组包含所述第二存储单元,所述方法还包括:当所述第二存储单元被释放时,所述存储设备将所述第二存储单元的数据访问热度重置;所述存储设备根据重置后的所述第二存储单元的数据访问热度获取所述第三存储单元组的数据访问热度;当所述第三存储单元组的数据访问热度达到设定阈值时,所述存储设备将所述第三存储单元组中的数据迁移至第四存储单元组,所述第四存储单元组的访问性能高于所述第三存储单元组的访问性能。在存储单元组中的存储单元的数据被释放之后,重置该被释放的存储单元的数据访问热度,并根据该重置的存储单元的数据访问热度来更新所在的存储单元组的数据访问热度。该存储单元组的数据访问热度确定方法,可以减少因为存储单元的数据被释放导致的存储单元组的数据访问热度不准确的问题,使得存储单元组的数据访问热度统计更加准确,可以提高数据迁移的合理性,从而提高存储设备的分层存储性能。
第二方面,本申请提供一种存储设备,包括至少一个控制器和多个固态硬盘;控制器通过存储区域网络与主机连接,以接收来自主机的I/O请求,控制器可以存储I/O请求中携带的数据,并且将该数据写入固态硬盘中;所述控制器用于调用程序指令来执行第一方面或者第一方面任一种可能实现方式所描述的方法。
具体的,控制器可以包括一个或多个接口卡和处理器;接口卡用于和主机通信,控制器可以通过接口卡接收主机的操作指令。控制器可以通过接口卡将写数据指令发送给固态硬盘存储。
可选地,控制器还可以包括存储器,存储器用于临时存储从主机接收的数据或从固态硬盘读取的数据。控制器收主机发送的多个写数据指令时,可以将所述多个写数据指令中的数据暂时保存在存储器中。当存储器的容量达到一定阈值时,将存储器存储的数据以及为所述数据分配的逻辑地址发送给固态硬盘,固态硬盘存储所述数据。存储器还可以包含程序代码,处理器可以调用该程序代码来执行第一方面或者第一方面任一种可能实现方式所描述的方法。
第三方面,本申请提供一种控制器,该控制器用于第二方面所描述的存储设备,该控制器包括处理器和存储器,所述存储器用于存储程序指令,所述处理器用于调用所述程序指令来执行第一方面或者第一方面任一种可能实现方式所描述的方法。
第四方面,本申请提供一种存储设备,包括用于执行第一方面或第一方面任一个可能的实施例所提供方法的模块或单元。
第五方面,本申请提供一种控制器,包括用于执行第一方面或第一方面任一个可能的实施例所提供方法的模块或单元。
第六方面,本发明提供一种芯片系统,该芯片系统包括至少一个处理器,存储器和接口电路,该存储器、该接口电路和该至少一个处理器通过线路互联,该至少一个存储器中存储有程序指令;该程序指令被该处理器执行时,实现第一方面或者第一方面任一个可能的实施例所描述的方法。
第七方面,本发明实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有程序指令,当该程序指令由处理器运行时,实现第一方面或者第一方面任一个可能的实施例所描述的方法。
第八方面,本发明实施例提供一种计算机程序产品,当该计算机程序产品在由处理器上运行时,实现第一方面或者第一方面任一个可能的实施例所描述的方法。
附图说明
下面对本申请实施例用到的附图进行介绍。
图1是本申请实施例提供的一种存储设备的结构示意图;
图2是本申请实施例提供的一种控制器的结构示意图;
图3是本申请实施例提供的一种存储设备架构的结构示意图;
图4是本申请实施例提供的一种数据迁移方法的流程示意图;
图5是本申请实施例提供的一种确定存储单元组的数据访问热度的方法示意图;
图6是本申请实施例提供的另一种确定存储单元组的数据访问热度的方法示意图;
图7是本申请实施例提供的另一种存储设备的结构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。本申请实施例的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
首先,介绍本申请实施例涉及的应用场景。在存储技术领域,存储设备可以利用独立磁盘冗余阵列(redundantarrayofindependentdisks,RAID)将数据存储在不同性能的硬盘上,实现存储设备对数据的分层存储。具体的,存储设备中可以同时包含高性能的存储介质(例如固态硬盘(solid state drives,SSD))和低成本且性能较低的存储介质(例如串口(serial advanced technology attachment,SATA)磁盘、串行连接(serial attachedsmall computer system interface,SAS)磁盘),在利用这些硬盘时可以通过分层存储来提高磁盘的利用效率。即将用户经常访问的热数据(hot data)存放在低延迟、高速度的存储介质中,将很少被访问的冷数据(cold data)放在高延迟、低成本的存储介质中。为了实现分层存储,存储设备可以以存储单元组为粒度,周期性的获取磁盘中各个存储单元组的数据访问热度。然后根据各个存储单元组的数据访问热度来实现将热数据迁移到低延迟、高速度的存储介质,将冷数据迁移到高延迟、低成本的存储介质。
其次,为了便于理解本申请实施例,对本申请实施例涉及的系统架构进行介绍。
请参阅图1,图1是本申请实施例提供的一种存储设备的结构示意图,图1所示的存储设备包括至少一个控制器(如图1所示的控制器11)和多个固态硬盘22。控制器11通过存储区域网络(storage area network,SAN)与主机(图中未示出)连接。控制器11可以是一种计算设备,如服务器、台式计算机等等。在控制器11上安装有操作系统以及应用程序。控制器11可以接收来自主机的输入输出(input/output,I/O)请求。控制器11还可以存储I/O请求中携带的数据(如果有的话),并且将该数据写入固态硬盘22中。固态硬盘(solid statedisk,SSD)是以闪存(英文:flash memory)芯片为介质的存储器,又名固态驱动器(solidstate drive,SSD)。
图1仅是示例性说明,在实际应用中存储设备可包含两个或两个以上控制器,每个控制器的物理结构和功能与控制器11类似,并且本实施例并不限定控制器之间,以及任意一个控制器与固态硬盘22之间的连接方式。只要各个控制器之间,以及各个控制器和固态硬盘22之间能够相互通信。另外,在本实施例中,控制器11在向固态硬盘发指令时往往是向多个固态硬盘发送,为了方便描述,将包含多个固态硬盘22的集合称为固态硬盘组。
图2是本申请实施例提供的一种控制器11的结构示意图,如图2所示,控制器11包括接口卡110、处理器112和接口卡113。
接口卡110用于和主机通信,控制器11可以通过接口卡110接收主机的操作指令。处理器112可能是一个中央处理器(central processing unit,CPU)。在本发明实施例中,处理器112可以用于接收来自主机的I/O请求、处理所述I/O请求。所述I/O请求可以是写数据指令或者读数据指令,处理器112还可以将写数据指令中的数据发送给固态硬盘22。此外,处理器112还可以用于执行系统垃圾回收操作。接口卡113,用于和固态硬盘22通信,控制器11可以通过接口卡113将写数据指令(包括数据以及所述数据的生命周期级别)发送给固态硬盘22存储。
可选地,控制器11还可以包括存储器111。存储器111用于临时存储从主机接收的数据或从固态硬盘22读取的数据。控制器11接收主机发送的多个写数据指令时,可以将所述多个写数据指令中的数据暂时保存在存储器111中。当存储器111的容量达到一定阈值时,将存储器111存储的数据以及为所述数据分配的逻辑地址发送给固态硬盘22。固态硬盘22存储所述数据。存储器111包括易失性存储器,闪存芯片或其组合。易失性存储器例如为随机访问存储器(random-access memory,RAM)。闪存芯片例如软盘、硬盘、固态硬盘(solidstate disk,SSD)、光盘等各种可以存储程序代码的机器可读介质。存储器111具有保电功能,保电功能是指系统发生掉电又重新上电时,存储器111中存储的数据也不会丢失。
其中,控制器11还用于执行本申请实施例提供的数据迁移方法,具体如图4所描述的数据迁移方法。
需要说明的是,控制器11属于系统控制器,系统控制器是独立的设备,不同于固态硬盘中的控制芯片。本实施例将固态硬盘的控制芯片称为闪存控制器。
请参阅图3,图3是本申请实施例提供的一种存储设备的架构示意图。如图3所示,本申请实施例中固态硬盘22中的n+1个硬盘可以是同一类型的硬盘,该类型的硬盘具体如SSD类型的硬盘,或者SATA类型的硬盘,或者SAS类型的硬盘等。该固态硬盘22即为物理硬盘,统一提供存储资源。
如图3所示,存储设备可以将固态硬盘22划分为多个连续固定大小的存储空间,该固定大小的存储空间可以是存储块(chunk,CK)20,CK20的大小可以固定为4MB,但不限定为4MB,还可以是其他固定大小。
CK20根据RAID策略可以组成存储单元组(chunk group,CKG)30。CKG30可以是从固态硬盘22中随机选取的多个不同盘的CK 20,按照RAID算法组成的逻辑存储单元。具体的,来自不同固态硬盘的存储块可以构成一个存储单元集合,控制器11再根据预设的RAID类型将这个存储单元集合中的存储块划分为数据组和校验组。数据组中包括至少两个存储块,用于存储数据,校验组中包括至少一个存储块,用于存储所述数据的校验数据。本实施例中,将包含数据组和校验组的存储单元集合称为CKG 30,即存储单元组。当控制器11在存储器111中凑满一定大小的数据时,可以根据所述预设的RAID类型切分为多个数据单元,并计算获得校验单元,将所述数据单元以及校验单元发送给固态硬盘,以保存在所述CKG 30中。数据组中的每个存储块用于存储数据单元,校验组中的每个存储块用于存储校验单元。存储之后,这些数据单元和对应的校验单元就构成一个存储单元。存储单元组可以包括多个存储单元,存储单元可以是存储单元组的一个分条。
其中,存储单元可以包含数据单元和校验单元。本实施例中,以存储单元的大小为8KB为例,但不限定为8KB。如图3所示,该存储单元即是CKG30被划分为更细粒度固定大小的逻辑存储空间,该存储单元可以是逻辑存储单元(grain)80。其中,CKG30可以分条划分,分条划分得到的分条单元中包含逻辑存储单元grain 80,grain 80的大小可以是用户根据业务需求设置的。CKG30可以作为数据访问热度统计和迁移的单元,grain 80也可以作为数据访问热度统计和迁移的单元。
CKG30中每个CKG中的CK均来自同一类型的硬盘。在以CKG30作为数据访问热度统计和迁移的单元的情况下,检测到CKG1的数据访问热度达到设定阈值时,可以将CKG1上存储的数据迁移到访问性能更高的CKG上。例如,组成图3所示的CKG30中的CK来自SAS硬盘。在检测到CKG1的数据访问热度达到设定阈值时,表明需要将CKG1上存储的数据存储到访问性能更高的CKG上,可以将CKG1上存储的数据迁移到来自于SSD的CKG上。在检测到CKG1的数据访问热度低于第二设定阈值时,表明需要将CKG1上存储的数据存储到访问性能更低的CKG上,可以将CKG1上存储的数据迁移到来自SATA的CKG上。其中的数据访问性能可以包含延迟、访问速度等。
如图3所示,本申请实施例以存储单元为grain 80为例进行介绍,可以理解的,示例仅用于解释本申请实施例,不应构成限定。另外,图3所示出的系统架构仅用于解释本申请实施例,不应构成限定。本申请实施例的存储系统架构还可以扩展为其他架构,例如,在图3示出的架构基础上,CKG 30可以分条得到extent,extent可以划分为grain 80,grain80可以作为存储单元,用来组成LUNblock 60。即LUNblock 60的组成单位是grain 80。
图3所示出的系统架构以CKG30分条划分为分条单元,分条单元中包含固定大小的逻辑存储单元grain 80为例介绍,可以理解的,不限于该划分方法,本申请实施例对于其他划分方法同样适用。
如图3所示,假设从3个固态硬盘中各取出一个存储块20构成存储单元组30,然后控制器11根据RAID类型(以RAID6为例)对该存储单元组30中的存储块进行分组,例如存储块1和存储块2为数据块组,存储块3为校验块组。当存储器111中存储的数据达到16KB(8KB*2)时,将所述数据划分为2个数据单元,每个数据单元为8KB,然后计算获得1个校验单元,每个校验单元也为8KB。控制器11将这些数据单元和校验单元发送给固态硬盘,存储在所述存储单元组中(如图3中CKG1或CKG2所示)。可以理解的是,按照RAID6的冗余保护机制,任意一个数据单元或者校验单元失效时,可以根据剩下的数据单元或者校验单元重构出失效的单元。
在本实施例中,当存储器111中凑满等于一个存储单元大小的数据时,控制器11会向固态硬盘组发送写数据指令,使得固态硬盘组所包括的固态硬盘22将数据写入CKG 30的存储单元中。此时,控制器11需判断是否存在一个已经分配的CKG 30,如果有并且该CKG 30仍然有足够的空间容纳该数据,那么控制器11可以指令固态硬盘组将该数据写入已经分配的CKG 30中。具体的,控制器11从所述已经分配的CKG 30的逻辑地址区间中获取一段未使用的逻辑地址,将所述逻辑地址携带在所述写数据指令中发送给固态硬盘22。固态硬盘22保存所述数据之后再在闪存翻译层中创建所述逻辑地址与保存该数据的实际地址之间的映射关系。
在上述例子中,如果控制器11确定系统中并不存在已经分配的CKG 30,或者已分配的CKG 30均已写满数据,那么控制器11就需要创建一个新的CKG 30。其创建过程可以是,控制器11根据自己对每个固态硬盘所拥有的可用空间的记录,确定系统剩余空间足以创建一个新的CKG 30。接下来,控制器11分别从不同的固态硬盘22中获取一个CK 20,将根据预设的RAID类型将这些CK 20构建成一个新的CKG 30(可参考前面关于存储单元组的描述)。然后,控制器11为每个CK 20分配一段逻辑地址,这些逻辑地址集合就是所述新的CKG 30的逻辑地址。
固态硬盘22可以用于创建多个存储池(storage pool)40。存储池40创建在固态硬盘22上,是固态硬盘22上的硬盘子集,每个存储池40可以由用户指定大小、类型和容量。其中,CKG30是存储池40从固态硬盘22上获取分配的资源的最小单位。存储池40由来自一种或者多种存储介质上的多个CKG 30组成。CK 20和CKG 30属于存储设备内部的对象,由存储设备完成配置,对用户不体现。
存储设备中的管理对象是卷(volume)50。一个volume50对象用于组织一个逻辑单元号(logical unit number,LUN)的全部的存储单元,存储单元包括grain。
其中,LUN是可以直接映射给主机读写的逻辑存储空间,是一种逻辑单元。LUN是volume 50的对外体现。LUN上的存储的数据可以根据数据访问热度调整存储位置,迁移到存储池40中不同的存储层。LUN block 60是LUN的逻辑地址空间上按逻辑区块地址(logical block address,LBA)划分出的小块,LUNblock 60可以由存储池40中的多个存储单元组成。该逻辑单元所包含的块的组成单位是存储单元。这多个存储单元可以是不同存储介质,可以是来自不同的存储单元组。因此LUN block60可以调动多个硬盘同时读写数据,响应速度快、效率高,实现性能提升。
可以理解的,本申请实施例对上述的存储块、存储单元组、存储单元、逻辑单元等的名称不做限制,在存储技术领域还可以有其他的名称。另外,不限于图3所描述的系统架构,本申请实施例对于其他类似的应用场景和系统架构也同样适用。
在分层存储技术中,数据迁移的单位可以是CKG,数据迁移可以是根据CKG的数据访问热度来确定将数据迁移到数据访问性能更高的CKG或者是将数据迁移到数据访问性能更低的CKG上。在进行数据访问热度统计时,如何保证CKG的数据访问热度统计的准确性,是亟待解决的问题。
基于上述应用场景和系统架构,为提升存储单元组的数据访问热度统计的准确性,本发明实施例提供一种数据迁移方法和装置。
该数据迁移方法中,首先,存储设备可以统计可被主机访问的LUN block的数据访问热度。其次,针对于每个LUN block,存储设备可以根据LUN block的数据访问热度来标记组成该LUN block中的存储单元的数据访问热度。再次,存储设备可以根据组成存储单元组的各个存储单元的数据访问热度来确定该存储单元组的数据访问热度。最后,在检测到存储单元组的数据访问热度达到设定阈值时,存储设备将该存储单元组中的数据迁移到访问性能更高的存储单元组。或者在检测到存储单元组的数据访问热度低于第二设定阈值时,存储设备可以将该存储单元组中的数据迁移到访问性能更低的存储单元组中。
上述的数据迁移方法中,通过统计LUN block的数据访问热度,来确定组成该LUNblock的存储单元的数据访问热度。存储单元组的数据访问热度可以根据其中包含的每个存储单元的数据访问热度来确定。这样确定的存储单元组的数据访问热度,可以更准确的反映存储单元组的数据访问的频繁程度,从而可以提高存储单元组的数据访问热度统计的精确度,提高存储设备的分层存储性能。
示例性的,本申请实施例提供一种数据迁移方法,可以提高数据迁移的精确度。请参阅图4,图4是本申请实施例提供的一种数据迁移方法的流程示意图,该数据迁移方法包含但不限于步骤S101-S102。
S101、存储设备获取第一存储单元组的数据访问热度。
S102、当第一存储单元组的数据访问热度达到设定阈值时,存储设备将第一存储单元组中的数据迁移至第二存储单元组。
其中,第一存储单元组的数据访问热度由每个存储单元的数据访问热度确定,每个存储单元的数据访问热度由该存储单元所在的逻辑单元确定。本申请实施例中,第一存储单元组可以是存储设备中的任一个存储单元组。关于存储单元组、存储单元和逻辑单元所包含的块的描述可以结合图3所描述的系统架构中的具体描述,存储单元组、存储单元和逻辑单元所包含的块可以依次为图3所描述的系统架构中的CKG、grain和LUN block,这里不再赘述。
存储设备可以以逻辑单元所包含的块为单位统计数据访问热度。下面具体介绍如何确定第一存储单元组的数据访问热度。确定第一存储单元组的数据访问热度可以包含以下步骤:
步骤一:存储设备统计每个LUN block的数据访问频次。
具体的,由于LUN是直接映射给主机的、对用户直接可见的逻辑存储空间,存储设备以逻辑单元所包含的块为单位统计数据访问频次。具体的,可以以逻辑单元所包含的块为监控对象,统计每个逻辑单元所包含的块的读、写数据的次数。另外,由于数据访问频次可能会随时间变化,存储设备可以周期性的统计该数据访问频次。
步骤二:存储设备根据每个LUN block的数据访问频次来确定每个LUN block的数据访问热度。
步骤三:存储设备确定每个LUN block所包含的存储单元的数据访问热度。
步骤四:针对于每个存储单元组,存储设备根据存储单元组中包含的每个存储单元的数据访问热度确定存储单元组的数据访问热度。
其中,数据访问热度可以用于表征LUN block的数据访问频繁的程度。本申请实施例对如何根据数据访问频次来确定数据访问热度不作具体限定,下面介绍一种具体的实现方式示例,可以理解的,示例仅用于解释本申请实施例,不应构成限定。
请一并参阅图5和表一,图5是本申请实施例提供的一种确定存储单元组的数据访问热度的方法示意图。表一是本申请实施例提供的一种确定LUN block的数据访问热度的示例。
表一确定LUN block的数据访问热度的示例
数据访问频次 | 数据访问热度 | |
LUN block0 | 500 | 4 |
LUN block2 | 200 | 2 |
LUN block10 | 100 | 1 |
…… | …… | …… |
如表一所示,数据访问热度可以用于表征LUN block的数据访问频繁的程度,数据访问频次越大,数据访问热度也越大。具体根据数据访问频次得到数据访问热度的方法例如可以是映射表的方式。即预设区间内的数据访问频次对应一个数据访问热度,确定LUNblock的数据访问频次落在的数据访问频次区间,并查找映射表中得到该数据访问频次区间在映射表中对应的数据访问热度。可以理解的,不限于上述确定数据访问热度的方法,还可以是其他算法来实现。
具体实现中,LUN block的数据访问热度还可以直接对LUN block进行统计得到。例如直接统计LUN block的数据访问频次作为LUN block的数据访问热度,即在执行步骤一之后无需执行步骤二,直接根据得到的数据访问热度执行步骤三。
如图5所示,在确定了各个LUN block的数据访问热度之后,存储设备可以将LUNblock包含的存储单元的数据访问热度确定为对应的LUN block的数据访问热度。如图5所示,对于LUN block0,存储设备可以将其包含的各个存储单元的数据访问热度标记为4。对于LUN block2,存储设备可以将其包含的各个存储单元的数据访问热度标记为2。对于LUNblock10,存储设备可以将其包含的各个存储单元的数据访问热度标记为1。
在确定各个LUN block的各组成单位(存储单元)的数据访问热度之后,可以确定各个存储单元组的数据访问热度。具体的,如图5所示,对于CKG0来说,其数据访问热度是其包含的4个存储单元的数据访问热度的叠加,即4*2+2+1=11。对于CKG2来说,其数据访问热度是其包含的4个存储单元的数据访问热度的叠加,即4+2+1*2=8。对于CKG10来说,其数据访问热度是其包含的4个存储单元的数据访问热度的叠加,即4+2*2+1=9。由此得到CKG0、CKG2和CKG10各个CKG的数据访问热度,存储设备可以根据各个CKG的数据访问热度来确定是否进行数据迁移。其中,关于存储单元、存储单元组和逻辑单元可以参考图3所描述的系统架构的具体描述,这里不再赘述。
可以理解的,上述确定存储单元组的数据访问热度的过程举例仅用于解释本申请实施例,不应构成限定。具体实现中,还可以是其他的方法,例如在根据LUN block10确定其包含的各个存储单元的数据访问热度时,还可以是重新为其包含的存储单元的数据访问热度赋值。再例如,在根据存储单元的数据访问热度来确定存储单元组的数据访问热度时,可以是数据访问热度叠加以外的方法,本申请实施例对此均不做限定。
在存储设备获取第一存储单元组的数据访问热度之后,可以检测第一存储单元组的数据访问热度与设定阈值之间的大小关系。当第一存储单元组的数据访问热度达到设定阈值(第一设定阈值)时,表明需要将第一存储单元组的数据迁移到访问性能更高的存储单元组上。存储设备可以将第一存储单元组中的数据迁移至第二存储单元组,第二存储单元组的访问性能高于所述第一存储单元组的访问性能。当第一存储单元组的数据访问热度低于第二设定阈值时,表明需要将第一存储单元组的数据迁移到访问性能更低的存储单元组上。存储设备可以将第一存储单元组中的数据迁移至第五存储单元组,第五存储单元组的访问性能低于所述第一存储单元组的访问性能。
其中,第一设定阈值和第二设定阈值可以相等,也可以不相等,本申请实施例对此不作限定。其中的存储单元的数据访问性能可以包含延迟、访问速度等。
上述的数据迁移方法中,可以实现将用户经常访问的热数据(hot data)存放在低延迟、高速度的存储介质中,将很少被访问的冷数据(cold data)放在高延迟、低成本的存储介质中,从而可以实现通过分层存储来提高磁盘的利用效率。另外,通过统计LUN block的数据访问频次来确定LUN block的数据访问热度,之后根据该LUN block的数据访问热度来确定组成该LUN block的存储单元的数据访问热度。存储单元组的数据访问热度可以根据其中包含的每个存储单元的数据访问热度来确定。这样确定的存储单元组的数据访问热度,可以更准确的反映存储单元组的数据访问的频繁程度,可以提高数据迁移的合理性,从而提高存储设备的分层存储性能。
在进行数据存储时,可以通过写时重定向(redirect on write,ROW)技术来实现对数据在某个时间点进行备份。下面具体介绍ROW技术。
在进行ROW时,首先会针对数据卷创建一个快照(snapshot),快照可以是关于指定数据集合的一个完全可用拷贝,该拷贝包括数据集合在某个时间点的映像,其中的数据集合即为数据卷上存储的数据的集合。该快照可以是该数据卷对应的快照卷,该数据卷也可以称为源卷。在数据卷接收到写请求之后,可以将对于数据卷中某个存储单元的写请求重定向给快照卷中预留的存储单元,将请求写入的数据写入快照卷。具体的,在进行写操作时,上层业务请求对快照卷写数据,数据在缓存中排队时,若判断出数据即将写入的逻辑地址是数据卷的逻辑地址,则将该数据重定向写入快照卷中预留的逻辑地址中,同时将该数据的实际地址和快照卷中该逻辑地址写入映射表。在上层业务请求读取数据卷时,创建快照之前的数据从源卷读取,创建快照之后写入的数据从快照卷读取。
ROW可以是以存储单元为单位实现,即数据卷中的存储单元与快照卷中的一个存储单元对应。在执行对数据卷中存储单元的写操作时,将请求写入的数据写入快照卷中对应的存储单元中。并建立数据卷中该存储单元的逻辑地址与对应快照卷中存储单元的逻辑地址的映射关系。
在ROW场景下,第一存储单元组可以包括第一存储单元,存储设备可以接收写数据请求,该写数据请求用于将数据写入第二存储单元,第二存储单元所属的存储单元组不同于第一存储单元组,第二存储单元所属的存储单元组可以是第三存储单元组。经过ROW存储设备可以将数据写入第一存储单元,并保存该数据的实际地址与第一存储单元的逻辑地址的之间的对应关系。在ROW场景下,步骤S101可以具体实施为:存储设备根据第二存储单元的数据访问热度更新第一存储单元的数据访问热度,然后存储设备根据更新后的第一存储单元的数据访问热度获取第一存储单元组的数据访问热度。
示例性的,请参阅图6,图6是本申请实施例提供的另一种确定存储单元组的数据访问热度的方法示意图。如图6所示,以第二存储单元为CKG0中的存储单元、第一存储单元为CKG10中的存储单元为例,第二存储单元在通过ROW重定向之前的数据访问热度为4,第一存储单元是CKG10中未被分配的存储单元,因此其数据访问热度为0。第二存储单元所在的第三存储单元组(CKG1)的数据访问热度可以是其包含的各个存储单元的数据访问热度的叠加,即4*2+2+1=11,第一存储单元所在的第一存储单元组(CKG10)的数据访问热度可以是其包含的各个存储单元的数据访问热度的叠加,即4+2+1=7。
如图6所示,在通过ROW将第二存储单元的写操作重定向到第一存储单元之后,第一存储单元的数据访问热度可以继承第二存储单元的数据访问热度,即将第二存储单元的数据访问热度4更新到第一存储单元的数据访问热度,得到第一存储单元的数据访问热度为4。在第一存储单元的数据访问热度更新之后,第一存储单元所在的存储单元组CKG10的数据访问热度也需要根据更新的第一存储单元的数据访问热度进行更新。如图6所示,第一存储单元组CKG10的数据访问热度更新为4*2+2+1=11。
可以理解的,图6所示示例仅用于解释本申请实施例,不应构成限定。
上述ROW场景下,重定向的第一存储单元的数据访问热度可以继承重定向之前的第二存储单元的数据访问热度,并同时根据第一存储单元继承的数据访问热度更新第一存储单元所在的存储单元组的数据访问热度,根据更新后的存储单元组的数据访问热度来确定是否迁移。该存储单元组的数据访问热度确定方法,可以减少因为ROW导致的第一存储单元所在的存储单元组的数据访问热度不准确的问题,使得存储单元组的数据访问热度统计更加准确,可以提高数据迁移的合理性,从而提高存储设备的分层存储性能。
另一方面,在通过ROW将第二存储单元的写操作重定向到第一存储单元之后,在第二存储单元被释放时可以重置其数据访问热度。如图6所示,在第二存储单元被回收(即所存储的数据被清除)之后,对于第二存储单元所在的存储单元组来说,第二存储单元暂时未存放数据。因此第二存储单元未对第三存储单元组CKG0的数据访问热度产生贡献。此时需要重新更新第三存储单元组CKG0的数据访问热度为:4+2+1+0=7。
在更新第三存储单元的数据访问热度之后,存储设备可以根据更新后的第三存储单元的数据访问热度来进行数据迁移。具体的,存储设备可以检测该更新的第三存储单元组的数据访问热度与设定阈值之间的大小关系。当第三存储单元组的数据访问热度达到设定阈值(第三设定阈值)时,表明需要将第三存储单元组的数据迁移到访问性能更高的存储单元组上。存储设备可以将第三存储单元组中的数据迁移至第四存储单元组,第四存储单元组的访问性能高于所述第三存储单元组的访问性能。当第三存储单元组的数据访问热度低于第四设定阈值时,表明需要将第三存储单元组的数据迁移到访问性能更低的存储单元组上。存储设备可以将第三存储单元组中的数据迁移至第六存储单元组,第六存储单元组的访问性能低于所述第三存储单元组的访问性能。
其中,第三设定阈值和第四设定阈值可以相等,也可以不相等,本申请实施例对此不作限定。可以理解的,本申请实施例不限定上述ROW场景,只要是存储单元组中的存储单元被释放,该被释放的存储单元的数据访问热度均重置。并根据重置的存储单元的数据访问热度更新该存储单元组的数据访问热度,根据更新的存储单元组的数据访问热度来进行数据迁移。
在存储单元组中的存储单元的数据被释放之后,重置该被释放的存储单元的数据访问热度,并根据该重置的存储单元的数据访问热度来更新所在的存储单元组的数据访问热度。该存储单元组的数据访问热度确定方法,可以减少因为存储单元的数据被释放导致的存储单元组的数据访问热度不准确的问题,使得存储单元组的数据访问热度统计更加准确,可以提高数据迁移的合理性,从而提高存储设备的分层存储性能。
上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的装置。
请参阅图7,图7是本申请实施例提供的另一种存储设备的结构示意图,如图7所示,该存储设备可以包含获取模块701和迁移模块702,其中:
获取模块701,用于获取第一存储单元组的数据访问热度,第一存储单元组包含多个存储单元,其中,每个存储单元是逻辑单元所包含的块的组成单位,逻辑单元是存储设备提供的,能够被主机访问的逻辑存储空间,第一存储单元组的数据访问热度由每个存储单元的数据访问热度确定,每个存储单元的数据访问热度由存储单元所在的逻辑单元确定。关于获取模块701功能的描述,具体可参考图4所描述实施例中S101的描述,这里不再赘述。
迁移模块702,用于当第一存储单元组的数据访问热度达到设定阈值时,将第一存储单元组中的数据迁移至第二存储单元组,第二存储单元组的访问性能高于第一存储单元组的访问性能。关于迁移模块702功能的描述,具体可参考图4所描述实施例中S102的描述,这里不再赘述。
关于存储单元组、存储单元和逻辑单元所包含的块的描述可以结合图3所描述的系统架构中的具体描述,存储单元组、存储单元和逻辑单元所包含的块可以依次为图3所描述的系统架构中的CKG、grain和LUN block,这里不再赘述。
在一种可能的实施方式中,存储设备以逻辑单元所包含的块为单位统计数据访问热度。关于确定第一存储单元组的数据访问热度的具体描述,具体可参考图4所描述实施例中步骤一-步骤四部分的描述,这里不再赘述。
在一种可能的实施方式中,第一存储单元组包括第一存储单元,存储设备还包括接收模块703、写入模块704和保存模块705,其中:
接收模块703,用于接收写数据请求,写数据请求用于将数据写入第二存储单元,第二存储单元所属的存储单元组不同于第一存储单元组;
写入模块704,用于将数据写入第一存储单元;
保存模块705,用于保存数据的实际地址与第一存储单元的逻辑地址的之间的对应关系。
关于接收模块703、写入模块704和保存模块705的描述,具体可参考图4所描述实施例中ROW场景的描述,这里不再赘述。
获取模块701,具体用于根据第二存储单元的数据访问热度更新第一存储单元的数据访问热度:根据更新后的第一存储单元的数据访问热度获取第一存储单元组的数据访问热度。
关于ROW场景下获取模块701功能的描述,具体可参考图4所描述实施例中ROW场景下步骤S101具体实施的描述,这里不再赘述。
在一种可能的实施方式中,第三存储单元组包含第二存储单元,存储设备还包括重置模块706,用于当第二存储单元被释放时,将第二存储单元的数据访问热度重置,关于重置模块706功能的描述,具体参考图4所描述实施例中ROW场景下的描述和图6相关的描述,这里不再赘述。
获取模块701,还用于根据重置后的第二存储单元的数据访问热度获取第三存储单元组的数据访问热度。关于获取模块701功能的描述,具体参考图4所描述实施例中步骤S101、ROW场景下的描述和图6相关的描述,这里不再赘述。
迁移模块702,还用于当第三存储单元组的数据访问热度达到设定阈值时,将第三存储单元组中的数据迁移至第四存储单元组,第四存储单元组的访问性能高于第三存储单元组的访问性能。关于迁移模块702功能的描述,具体参考图4所描述实施例中步骤S102和ROW场景下的描述,这里不再赘述。
在该实施例中,各模块的功能可以对应参照图4所示方法实施例的相应描述,关于固态硬盘22中存储单元组、存储单元和逻辑单元所包含的块可以参考图1-3所描述的存储系统架构的具体描述,这里不再赘述。
其中,获取模块701、迁移模块702、接收模块703、写入模块704和保存模块705和重置模块706均可以是图2所描述的处理器112或者处理器112调用存储器111中的程序代码实现的。
本申请实施例还提供一种控制器,用于实现如图7所描述的存储设备中的控制器。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。上述信号处理装置的各组成模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在所述计算机可读取存储介质中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
Claims (9)
1.一种数据迁移方法,其特征在于,所述方法包括:
存储设备获取第一存储单元组的数据访问热度,所述第一存储单元组包含多个存储单元,其中,每个存储单元是逻辑单元所包含的块的组成单位,所述逻辑单元是所述存储设备提供的,能够被主机访问的逻辑存储空间,所述第一存储单元组的数据访问热度由每个存储单元的数据访问热度确定,每个存储单元的数据访问热度由所述存储单元所在的逻辑单元确定;
当所述第一存储单元组的数据访问热度达到设定阈值时,所述存储设备将所述第一存储单元组中的数据迁移至第二存储单元组,所述第二存储单元组的访问性能高于所述第一存储单元组的访问性能。
2.根据权利要求1所述的方法,其特征在于,所述存储设备以所述逻辑单元所包含的块为单位统计数据访问热度。
3.根据权利要求1或2所述的方法,其特征在于,所述第一存储单元组包括第一存储单元,所述方法还包括:
所述存储设备接收写数据请求,所述写数据请求用于将数据写入第二存储单元,所述第二存储单元所属的存储单元组不同于所述第一存储单元组;
所述存储设备将所述数据写入所述第一存储单元,并保存所述数据的实际地址与所述第一存储单元的逻辑地址之间的对应关系;
所述存储设备获取第一存储单元组的数据访问热度包括:
所述存储设备根据所述第二存储单元的数据访问热度更新所述第一存储单元的数据访问热度:
所述存储设备根据更新后的所述第一存储单元的数据访问热度获取所述第一存储单元组的数据访问热度。
4.根据权利要求3所述的方法,其特征在于,第三存储单元组包含所述第二存储单元,所述方法还包括:
当所述第二存储单元被释放时,所述存储设备将所述第二存储单元的数据访问热度重置;
所述存储设备根据重置后的所述第二存储单元的数据访问热度获取所述第三存储单元组的数据访问热度;
当所述第三存储单元组的数据访问热度达到设定阈值时,所述存储设备将所述第三存储单元组中的数据迁移至第四存储单元组,所述第四存储单元组的访问性能高于所述第三存储单元组的访问性能。
5.一种存储设备,其特征在于,所述存储设备包括获取模块和迁移模块,其中:
所述获取模块,用于获取第一存储单元组的数据访问热度,所述第一存储单元组包含多个存储单元,其中,每个存储单元是逻辑单元所包含的块的组成单位,所述逻辑单元是所述存储设备提供的,能够被主机访问的逻辑存储空间,所述第一存储单元组的数据访问热度由每个存储单元的数据访问热度确定,每个存储单元的数据访问热度由所述存储单元所在的逻辑单元确定;
所述迁移模块,用于当所述第一存储单元组的数据访问热度达到设定阈值时,将所述第一存储单元组中的数据迁移至第二存储单元组,所述第二存储单元组的访问性能高于所述第一存储单元组的访问性能。
6.根据权利要求5所述的存储设备,其特征在于,所述存储设备以所述逻辑单元所包含的块为单位统计数据访问热度。
7.根据权利要求5或6所述的存储设备,其特征在于,所述第一存储单元组包括第一存储单元,所述存储设备还包括接收模块、写入模块和保存模块,其中:
所述接收模块,用于接收写数据请求,所述写数据请求用于将数据写入第二存储单元,所述第二存储单元所属的存储单元组不同于所述第一存储单元组;
所述写入模块,用于将所述数据写入所述第一存储单元;
所述保存模块,用于保存所述数据的实际地址与所述第一存储单元的逻辑地址之间的对应关系;
所述获取模块,具体用于根据所述第二存储单元的数据访问热度更新所述第一存储单元的数据访问热度:根据更新后的所述第一存储单元的数据访问热度获取所述第一存储单元组的数据访问热度。
8.根据权利要求7所述的存储设备,其特征在于,第三存储单元组包含所述第二存储单元,所述存储设备还包括重置模块,用于当所述第二存储单元被释放时,将所述第二存储单元的数据访问热度重置;
所述获取模块,还用于根据重置后的所述第二存储单元的数据访问热度获取所述第三存储单元组的数据访问热度;
所述迁移模块,还用于当所述第三存储单元组的数据访问热度达到设定阈值时,将所述第三存储单元组中的数据迁移至第四存储单元组,所述第四存储单元组的访问性能高于所述第三存储单元组的访问性能。
9.一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得所述计算机或处理器执行如权利要求1-4任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810972007.8A CN110858124B (zh) | 2018-08-24 | 2018-08-24 | 数据迁移方法及装置 |
PCT/CN2019/079411 WO2020037986A1 (zh) | 2018-08-24 | 2019-03-25 | 数据迁移方法及装置 |
EP19852706.1A EP3832451B1 (en) | 2018-08-24 | 2019-03-25 | Data migration method and apparatus |
US17/183,045 US11880579B2 (en) | 2018-08-24 | 2021-02-23 | Data migration method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810972007.8A CN110858124B (zh) | 2018-08-24 | 2018-08-24 | 数据迁移方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110858124A CN110858124A (zh) | 2020-03-03 |
CN110858124B true CN110858124B (zh) | 2021-06-01 |
Family
ID=69592396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810972007.8A Active CN110858124B (zh) | 2018-08-24 | 2018-08-24 | 数据迁移方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11880579B2 (zh) |
EP (1) | EP3832451B1 (zh) |
CN (1) | CN110858124B (zh) |
WO (1) | WO2020037986A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110858124B (zh) * | 2018-08-24 | 2021-06-01 | 华为技术有限公司 | 数据迁移方法及装置 |
CN114860163B (zh) * | 2020-04-28 | 2023-08-22 | 华为技术有限公司 | 一种存储系统、内存管理方法和管理节点 |
CN112181315B (zh) * | 2020-10-30 | 2022-08-30 | 新华三大数据技术有限公司 | 一种数据刷盘方法及装置 |
CN112764678A (zh) * | 2021-01-18 | 2021-05-07 | Oppo广东移动通信有限公司 | 数据搬移方法、相关装置、以及计算机存储介质 |
CN115129230A (zh) * | 2021-03-26 | 2022-09-30 | 华为技术有限公司 | 一种缓存管理方法及存储设备 |
CN113805805B (zh) * | 2021-05-06 | 2023-10-13 | 北京奥星贝斯科技有限公司 | 缓存内存块的淘汰方法、装置及电子设备 |
CN113448970B (zh) * | 2021-08-31 | 2022-07-12 | 深圳市一号互联科技有限公司 | 一种图数据存储方法及系统 |
CN114442963B (zh) * | 2022-04-07 | 2022-06-07 | 中国信息通信研究院 | 固态硬盘的控制方法和装置 |
CN117149049A (zh) * | 2022-05-24 | 2023-12-01 | 华为技术有限公司 | 内存访问热度统计方法、相关装置及设备 |
CN117312044A (zh) * | 2022-06-28 | 2023-12-29 | 华为技术有限公司 | 一种备份方法及装置 |
CN116027990B (zh) * | 2023-03-29 | 2023-07-14 | 苏州浪潮智能科技有限公司 | 一种raid卡及其数据访问方法、系统及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101223498A (zh) * | 2005-07-15 | 2008-07-16 | 国际商业机器公司 | 用于管理数据存储的方法、系统和计算机程序产品以及虚拟化引擎 |
CN103827970A (zh) * | 2012-09-25 | 2014-05-28 | 株式会社东芝 | 对固态驱动器再配置数据的存储装置、存储控制器以及方法 |
CN105808443A (zh) * | 2014-12-29 | 2016-07-27 | 华为技术有限公司 | 一种数据迁移的方法、装置及系统 |
CN106612619A (zh) * | 2015-08-25 | 2017-05-03 | 株式会社东芝 | 分级存储系统、利用分级存储装置的计算机及校正对文件的访问计数的计算机 |
CN107301134A (zh) * | 2016-04-14 | 2017-10-27 | 西部数据科技股份有限公司 | 存储装置中的磨损均衡 |
CN108121501A (zh) * | 2016-11-29 | 2018-06-05 | 株式会社东芝 | 分级存储系统、存储控制器以及分级控制方法 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8392668B2 (en) * | 2005-04-04 | 2013-03-05 | Hewlett-Packard Development Company, L.P. | Distributed-state-information-based distributed computing systems and methods and protocols for managing distributed state information |
US9454368B2 (en) * | 2009-01-21 | 2016-09-27 | Vmware, Inc. | Data mover permitting data transfer without transferring data between application and operating system |
US8321645B2 (en) * | 2009-04-29 | 2012-11-27 | Netapp, Inc. | Mechanisms for moving data in a hybrid aggregate |
US8627004B2 (en) * | 2010-01-07 | 2014-01-07 | International Business Machines Corporation | Extent migration for tiered storage architecture |
US8468302B2 (en) * | 2010-01-14 | 2013-06-18 | Hitachi, Ltd. | Storage system |
US8285959B2 (en) * | 2010-01-25 | 2012-10-09 | Netapp, Inc. | Method for placement of virtual volume hot-spots in storage pools using ongoing load measurements and ranking |
US8453036B1 (en) * | 2010-02-01 | 2013-05-28 | Network Appliance, Inc. | System and method for dynamically resizing a parity declustered group |
US8438361B2 (en) * | 2010-03-10 | 2013-05-07 | Seagate Technology Llc | Logical block storage in a storage device |
US8306950B2 (en) * | 2010-08-26 | 2012-11-06 | International Business Machines Corporation | Managing data access requests after persistent snapshots |
US9280289B1 (en) * | 2011-06-30 | 2016-03-08 | Netapp, Inc. | Detecting misalignment of virtualized data |
TWI459198B (zh) * | 2011-07-08 | 2014-11-01 | Phison Electronics Corp | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 |
JP5782962B2 (ja) * | 2011-09-27 | 2015-09-24 | 富士通株式会社 | Raidグループ制御装置 |
US9703500B2 (en) * | 2012-04-25 | 2017-07-11 | International Business Machines Corporation | Reducing power consumption by migration of data within a tiered storage system |
CN102789427B (zh) * | 2012-07-17 | 2015-11-25 | 威盛电子股份有限公司 | 数据储存装置与其操作方法 |
GB2505185A (en) * | 2012-08-21 | 2014-02-26 | Ibm | Creating a backup image of a first memory space in a second memory space. |
WO2014083620A1 (ja) * | 2012-11-27 | 2014-06-05 | 株式会社日立製作所 | ストレージ装置及び階層制御方法 |
JP2014174845A (ja) * | 2013-03-11 | 2014-09-22 | Fujitsu Ltd | 性能評価支援プログラム、性能評価支援装置及び性能評価支援方法 |
CN103473298B (zh) * | 2013-09-04 | 2017-01-11 | 华为技术有限公司 | 数据归档方法和装置以及存储系统 |
US10019352B2 (en) * | 2013-10-18 | 2018-07-10 | Sandisk Technologies Llc | Systems and methods for adaptive reserve storage |
CN105138416A (zh) * | 2014-06-05 | 2015-12-09 | 中兴通讯股份有限公司 | 磁盘休眠处理方法及装置 |
US9921754B2 (en) * | 2015-07-28 | 2018-03-20 | Futurewei Technologies, Inc. | Dynamic coding algorithm for intelligent coded memory system |
US10545681B2 (en) * | 2016-02-08 | 2020-01-28 | International Business Machines Corporation | Asymmetric storage data distribution |
US11544049B2 (en) * | 2016-02-12 | 2023-01-03 | Nutanix, Inc. | Virtualized file server disaster recovery |
JP7068573B2 (ja) * | 2018-01-17 | 2022-05-17 | 富士通株式会社 | データ処理装置、データ処理システムおよびデータ処理プログラム |
CN110858124B (zh) * | 2018-08-24 | 2021-06-01 | 华为技术有限公司 | 数据迁移方法及装置 |
-
2018
- 2018-08-24 CN CN201810972007.8A patent/CN110858124B/zh active Active
-
2019
- 2019-03-25 WO PCT/CN2019/079411 patent/WO2020037986A1/zh unknown
- 2019-03-25 EP EP19852706.1A patent/EP3832451B1/en active Active
-
2021
- 2021-02-23 US US17/183,045 patent/US11880579B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101223498A (zh) * | 2005-07-15 | 2008-07-16 | 国际商业机器公司 | 用于管理数据存储的方法、系统和计算机程序产品以及虚拟化引擎 |
CN103827970A (zh) * | 2012-09-25 | 2014-05-28 | 株式会社东芝 | 对固态驱动器再配置数据的存储装置、存储控制器以及方法 |
CN105808443A (zh) * | 2014-12-29 | 2016-07-27 | 华为技术有限公司 | 一种数据迁移的方法、装置及系统 |
CN106612619A (zh) * | 2015-08-25 | 2017-05-03 | 株式会社东芝 | 分级存储系统、利用分级存储装置的计算机及校正对文件的访问计数的计算机 |
CN107301134A (zh) * | 2016-04-14 | 2017-10-27 | 西部数据科技股份有限公司 | 存储装置中的磨损均衡 |
CN108121501A (zh) * | 2016-11-29 | 2018-06-05 | 株式会社东芝 | 分级存储系统、存储控制器以及分级控制方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3832451B1 (en) | 2024-03-13 |
WO2020037986A1 (zh) | 2020-02-27 |
CN110858124A (zh) | 2020-03-03 |
US20210173579A1 (en) | 2021-06-10 |
EP3832451A1 (en) | 2021-06-09 |
US11880579B2 (en) | 2024-01-23 |
EP3832451A4 (en) | 2021-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110858124B (zh) | 数据迁移方法及装置 | |
US10782882B1 (en) | Data fingerprint distribution on a data storage system | |
US10552085B1 (en) | Techniques for directed data migration | |
US11023147B2 (en) | Mapping storage extents into resiliency groups | |
US10031703B1 (en) | Extent-based tiering for virtual storage using full LUNs | |
US8775731B2 (en) | Write spike performance enhancement in hybrid storage systems | |
US9792073B2 (en) | Method of LUN management in a solid state disk array | |
US11928053B2 (en) | System garbage collection method and method for garbage collection in solid state disk | |
US10089023B2 (en) | Data management for object based storage | |
US10768838B2 (en) | Storage apparatus and distributed storage system | |
US11321229B2 (en) | System controller and system garbage collection method | |
US10365845B1 (en) | Mapped raid restripe for improved drive utilization | |
US10891066B2 (en) | Data redundancy reconfiguration using logical subunits | |
CN103761053A (zh) | 一种数据处理方法和装置 | |
US8954658B1 (en) | Method of LUN management in a solid state disk array | |
US11093134B2 (en) | Storage device, management method, and program in tiered storage system | |
US20190243758A1 (en) | Storage control device and storage control method | |
US9459801B2 (en) | Tiered storage system provided with trial area, storage controller, area allocation method and storage medium | |
CN111007988B (zh) | 一种raid内部磨损均衡方法、系统、终端及存储介质 | |
US11704053B1 (en) | Optimization for direct writes to raid stripes | |
US11868248B2 (en) | Optimization for garbage collection in a storage system | |
CN116009761A (zh) | 一种数据写入方法以及相关设备 | |
US11947803B2 (en) | Effective utilization of different drive capacities | |
EP4303735A1 (en) | Systems, methods, and devices for reclaim unit formation and selection in a storage device | |
JP5638022B2 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |