CN110895445A - 数据处理方法和系统 - Google Patents
数据处理方法和系统 Download PDFInfo
- Publication number
- CN110895445A CN110895445A CN201811064458.8A CN201811064458A CN110895445A CN 110895445 A CN110895445 A CN 110895445A CN 201811064458 A CN201811064458 A CN 201811064458A CN 110895445 A CN110895445 A CN 110895445A
- Authority
- CN
- China
- Prior art keywords
- ssd
- attribute
- address
- logical address
- physical address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
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/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- 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
-
- 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/0638—Organizing or formatting or addressing of data
-
- 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
Abstract
本申请提供一种数据处理方法和系统,该系统包括主机和固态硬盘SSD,主机通过第一存储传输协议与SSD进行通信;主机,用于向SSD发送预分配指令,预分配指令用于指示SSD根据预分配指令在SSD中预分配第一存储空间,预分配指令包括起始逻辑地址和长度;SSD,用于接收预分配指令,并根据起始逻辑地址和长度确定至少一个第一逻辑地址,以及为至少一个第一逻辑地址中的每个第一逻辑地址在SSD中映射一个第一物理地址,得到第一存储空间。以此提高SSD的数据写入的速度。
Description
技术领域
本申请涉及存储器技术领域,尤其涉及一种数据处理方法和系统。
背景技术
固态硬盘(solid state drives,SSD)由多个闪存(flash)介质组成,存储空间在写入数据后,需要先擦除才能再次写入。数据以页为单位写入SSD,以页为单位擦除无效数据。随着数据不断写入,可用存储空间越来越少。固态硬盘会定期执行垃圾回收,将待回收的块中有效数据搬迁至其他空闲页,然后,擦除待回收的块的数据,以此实现存储空间的回收。但是,如果在数据写入过程中执行垃圾回收,会导致SSD的读写速度变慢,影响SSD的性能。
如何降低垃圾回收对SSD写操作的影响成为亟待解决的技术问题。
发明内容
本申请提供了一种数据处理方法和系统,可以降低垃圾回收对SSD写操作的影响,提高了SSD的写入速度。
第一方面,本申请提供一种数据处理的系统,该系统包括主机和固态硬盘SSD,所述主机通过第一存储传输协议与所述SSD进行通信:
所述主机,用于向所述SSD发送预分配指令,所述预分配指令用于指示所述SSD在所述SSD中分配第一存储空间,所述预分配指令包括起始逻辑地址和长度;
所述SSD,用于接收所述预分配指令,根据所述起始逻辑地址和所述长度确定至少一个第一逻辑地址,以及为所述至少一个第一逻辑地址中每个第一逻辑地址在所述SSD中映射一个第一物理地址,得到所述第一存储空间。
其中,所述第一存储传输协议可为如下中的任一项:非易失性高速传输总线NVMe协议、基于网络的非易失性高速传输总线NoF协议、因特网小型计算机系统接口iSCSI协议、小型计算机系统接口SCSI协议。
该方案的系统,主机向SSD发送预分配指令,SSD根据预分配指令在SSD中预分配存储空间,提前分配预留的存储区域,因此,当该系统的SSD中数据写入时,可以根据预分配存储空间的逻辑地址和物理地址的映射关系,将数据写入到预分配的存储区域,避免触发垃圾回收,实现数据快速写入,提高数据写入速度。
在一种可能的实现方式中,所述主机还用于:当所述系统的输入/输出I/O负载小于或等于第一阈值时,向所述SSD发送所述预分配指令。该方案的系统,可以减少预分配过程对系统的其它性能的影响。
在一种可能的实现方式中,所述主机还用于:当所述系统初始化时,向所述SSD发送所述预分配指令。该方案的系统,适用为所述系统做掉电保护的场景,所述预分配指令对应的存储空间为所述分配的在掉电时用于存储文件系统或者操作系统或者其它应用的元数据的存储空间的至少部分。因此,在所述系统初始化时,即向所述SSD发送所述预分配指令,使得该方案的系统可以最大限度的实现将所述系统掉电时紧急保持的文件系统或者操作系统或者其它应用的元数据快速的写入SSD中。这是因为,掉电是随时都可能发生的,越早发送所述预分配指令,实现将所述系统掉电时紧急保持的文件系统或者操作系统或者其它应用的元数据快速的写入SSD中的几率就越大。
在一种可能的实现方式中,所述主机还用于:在所述主机为所述主机创建的RAID组分配热备空间后,向所述SSD发送所述预分配指令。该方案适用于创建RAID组的场景,所述预分配指令对应的存储空间为所述主机为所述RAID组分配的热备空间的至少部分,在所述主机为所述主机创建的RAID组分配热备空间后,即向所述SSD发送所述预分配指令,使得该方案的系统可最大限度的实现将RAID组中的故障数据盘对应的数据快速的写入SSD中,这也是因为RAID组中出现故障数据盘是随时可能发生的。
在一种可能的实现方式中,所述SSD中包括第一映射表、第一属性表和第二属性表,所述第一映射表用于标识所述SSD的逻辑地址和物理地址的映射关系,所述第一属性表用于标识各个逻辑地址的预分配属性,所述预分配属性包括预分配、空闲和已写入;所述第二属性表,用于标识各个物理地址的分配属性,所述分配属性包括空闲、预分配、有效和失效;所述SSD,还用于在所述系统初始化时,将所述第一映射表中每个逻辑地址映射的物理地址初始化为一个无效地址或零;将所述第一属性表中每个逻辑地址的属性初始化为空闲;将所述第二属性表中每个物理地址的属性初始化为空闲;在接收所述预分配指令后,将所述第一映射表中所述第一逻辑地址映射的物理地址更新为所述SSD根据所述预分配指令为所述第一逻辑地址在所述SSD中映射的第一物理地址,将所述第一属性表中的所述第一逻辑地址的属性更新为预分配,将所述第二属性表中的所述第一物理地址的属性更新为预分配。该方案中,第一映射表的设置,可以使得SSD获知属性为预分配的逻辑地址映射的物理地址,第一属性表的设置,可以使得SSD获知SSD的各逻辑地址的属性,第二属性表的设置,可以使得SSD获知SSD的各物理地址的属性。
在一种可能的实现方式中,若所述主机创建了RAID组,所述RAID组的热备空间包括至少一个所述第一存储空间,在所述RAID组中任一数据盘故障时,所述热备空间用于故障数据盘的数据恢复。该方案的系统,可以实现在所述RAID组中任一数据盘故障时,快速的将故障数据盘对应的数据写入到热备空间中。
在一种可能的实现方式中,所述主机,还用于向所述SSD发送读指令;所述SSD,还用于根据所述第一属性表判断所述读指令对应的逻辑地址中是否包括属性为预分配的第二逻辑地址,若是,则向所述主机发送读响应,所述读响应包括预置结果,所述预置结果用于指示与所述第二逻辑地址存在映射关系的第一物理地址未写过数据;所述第二逻辑地址为所述至少一个第一逻辑地址中的地址。该方案的系统,能够在读指令对应的逻辑地址中包括属性为预分配的第二逻辑地址时,进行数据处理。
在一种可能的实现方式中,所述主机,还用于向所述SSD发送写指令,所述写指令包括待写入数据;所述SSD,还用于根据所述第一属性表判断所述写指令对应的逻辑地址中是否包括属性为预分配的第三逻辑地址,若是,则根据所述第一映射表和所述第三逻辑地址确定与所述第三逻辑地址存在映射关系的第一物理地址,将所述待写入数据中与所述第三逻辑地址对应的数据写入与所述第三逻辑地址存在映射关系的第一物理地址,并将所述第一属性表中所述第三逻辑地址的属性更新为已写入,将所述第二属性表中与所述第三逻辑地址存在映射关系的第一物理地址的属性更新为有效;其中,所述第三逻辑地址为所述至少一个第一逻辑地址中的地址。该方案的系统,能够在写指令对应的逻辑地址中包括属性为预分配的第三逻辑地址时,进行数据处理。
在一种可能的实现方式中,所述主机,还用于向所述SSD发送TRIM指令;所述SSD,还用于根据所述第一属性表判断所述TRIM指令对应的逻辑地址中是否包括属性为预分配的第四逻辑地址,若是,则将所述第一属性表中的所述第四逻辑地址的属性更新为空闲;根据所述第一映射表和所述第四逻辑地址确定与所述第四逻辑地址存在映射关系的第一物理地址,将所述第二属性表中与所述第四逻辑地址存在映射关系的第一物理地址的属性更新为空闲,并将所述第一映射表中所述四逻辑地址映射的第一物理地址更新为无效地址或零;其中,所述第四逻辑地址为所述至少一个第一逻辑地址中的地址。该方案的系统,能够在TRIM指令对应的逻辑地址中包括属性为预分配的第四逻辑地址时,进行数据处理。
在一种可能的实现方式中,所述SSD中还记录有第二映射表,所述第二映射表用于记录预分配的第一物理地址和预分配的第一逻辑地址之间的映射关系;所述SSD,还用于当执行垃圾回收操作时,根据第二属性表判断待擦除目标块对应的物理地址中是否包括属性为预分配的第二物理地址,若是,则重新为与所述第二物理地址映射的第五逻辑地址在所述SSD映射一个第三物理地址,并将所述第二映射表和所述第一映射表中的所述第二物理地址更新为所述第三物理地址;将所述第二属性表中的所述第三物理地址的属性更新为预分配,所述第二物理地址的属性更新为空闲。该方案的系统,能够在待擦除目标块对应的物理地址中包括属性为预分配的第二物理地址时,进行数据处理。第二映射表的设置,可以加快系统中的SSD在垃圾回收操作后对第一映射表的更新。
在一种可能的实现方式中,所述SSD,还用于当执行垃圾回收操作时,根据第二属性表判断待擦除目标块对应的物理地址中是否包括属性为预分配的第二物理地址,若是,则重新为与所述第二物理地址映射的第五逻辑地址在所述SSD映射一个第三物理地址,并将所述第一映射表中的所述第二物理地址更新为所述第三物理地址;将所述第二属性表中的所述第三物理地址的属性更新为预分配,所述第二物理地址的属性更新为空闲。该方案系统,能够在在待擦除目标块对应的物理地址中包括属性为预分配的第二物理地址时,进行数据处理。
在一种可能的实现方式中,所述SSD还用于,在接收到所述预分配指令后,将所述第二属性表中的第四物理地址的属性更新为无效,所述第四物理地址为在接收到所述预分配指令之前,所述第六逻辑地址在所述第一映射表中映射的物理地址,所述第六逻辑地址为所述至少一个逻辑地址中的地址。该方案的系统,能够在预分配指令前具有写指令时,进行数据处理。
第二方面,本申请提供一种数据处理的方法,包括:主机生成预分配指令,所述预分配指令包括起始逻辑地址和长度;所述预分配指令用于指示所述SSD在所述SSD中分配第一存储空间,所述起始逻辑地址和长度用于所述SSD确定至少一个第一逻辑地址,所述第一逻辑地址为需要所述SSD在所述SSD中映射第一物理地址的地址;所述主机向所述SSD发送所述预分配指令;其中,所述主机通过第一存储传输协议与所述SSD进行通信。
所述第一存储传输协议可为如下中的任一项:非易失性高速传输总线NVMe协议、基于网络的非易失性高速传输总线NoF协议、因特网小型计算机系统接口iSCSI协议、小型计算机系统接口SCSI协议。
该方案中,所述主机通过发送预分配指令至SSD,使得SSD在为SSD中预分配存储空间,提前分配预留的存储区域。当SSD中有数据写入时,可以根据预分配存储空间的逻辑地址和物理地址的映射关系,将数据写入到预分配的存储区域,避免触发垃圾回收,实现数据快速写入,提高数据写入速度。
在一种可能的实现方式中,所述主机向所述SSD发送所述预分配指令,包括:当主机所在的系统的输入/输出I/O负载小于或等于第一阈值时,所述主机向所述SSD发送所述预分配指令。该方案,可以减少预分配过程对所述系统的其它性能的影响。
在一种可能的实现方式中,所述主机向所述SSD发送所述预分配指令,包括:当主机所在的系统初始化时,所述主机向所述SSD发送所述预分配指令。该方案,可以最大限度的实现将所述系统掉电时紧急保持的文件系统或者操作系统或者其它应用的元数据快速的写入SSD中。具体原因参见第一方面中的阐述。
在一种可能的实现方式中,所述主机向所述SSD发送所述预分配指令,包括:在所述主机为所述主机创建的RAID组分配热备空间后,所述主机向所述SSD发送所述预分配指令。该方案,可最大限度的实现将RAID组中的故障数据盘对应的数据快速的写入SSD中。具体原因参见第一方面中的阐述。
在一种可能的实现方式中,若所述主机创建了RAID组,所述RAID组的热备空间包括至少一个第一存储空间,在所述RAID组中任一数据盘故障时,所述热备空间用于故障数据盘的数据恢复。该方案,可以实现在所述RAID组中任一数据盘故障时,快速的将故障数据盘对应的数据写入到热备空间中。
在一种可能的实现方式中,还包括:所述主机向所述SSD发送读指令;所述主机从所述SSD接收读响应,所述读响应包括预置结果,所述预置结果用于指示与第二逻辑地址存在映射关系的第一物理地址未写过数据;所述第二逻辑地址为所述读指令对应的逻辑地址中的地址,且所述第二逻辑地址为所述至少一个逻辑地址中的地址。该方案,提供了在读指令对应的逻辑地址中包括属性为预分配的第二逻辑地址时所述主机的数据处理方法。
第三方面,本申请提供一种数据处理的方法,包括:固态硬盘SSD从主机接收预分配指令,所述预分配指令包括起始逻辑地址和长度;所述主机通过第一存储传输协议与所述SSD进行通信;所述SSD,根据所述起始逻辑地址和所述长度确定至少一个第一逻辑地址,并为所述至少一个第一逻辑地址中每个第一逻辑地址在所述SSD中映射一个第一物理地址,得到所述第一存储空间。其中,所述第一存储传输协议可为如下中的任一项:非易失性高速传输总线NVMe协议、基于网络的非易失性高速传输总线NoF协议、因特网小型计算机系统接口iSCSI协议、小型计算机系统接口SCSI协议。该方案中,所述SSD根据预分配指令,在SSD中预分配存储空间,提前分配预留的存储区域。当SSD中有数据写入时,可以根据预分配存储空间的逻辑地址和物理地址的映射关系,将数据写入到预分配的存储区域,避免触发垃圾回收,实现数据快速写入,提高数据写入速度。
在一种可能的实现方式中,所述SSD中包括第一映射表、第一属性表和第二属性表,所述第一映射表用于标识所述SSD中逻辑地址和物理地址的映射关系,所述第一属性表用于标识各个逻辑地址的预分配属性,所述预分配的属性包括预分配、空闲和已写入;所述第二属性表,用于标识各个物理地址的分配属性,所述分配属性包括空闲、预分配、有效和失效;在所述系统初始化时,所述SSD将所述第一映射表中每个逻辑地址映射的物理地址初始化为一个无效地址或零;以及,将所述第一属性表中每个逻辑地址的属性初始化为空闲;将所述第二属性表中每个物理地址的属性初始化为空闲;在所述SSD从主机接收预分配指令之后,还包括:所述SSD将所述第一映射表中所述第一逻辑地址映射的物理地址更新为所述SSD根据所述预分配指令为所述第一逻辑地址在所述SSD中映射的第一物理地址;所述SSD将所述第一属性表中的所述第一逻辑地址的属性更新为预分配,将所述第二属性表中的所述第一物理地址的属性更新为预分配。该方案中,第一映射表的设置,可以使得SSD获知属性为预分配的逻辑地址映射的物理地址,第一属性表的设置,可以使得SSD获知SSD的各逻辑地址的属性,第二属性表的设置,可以使得SSD获知SSD的各物理地址的属性。
在一种可能的实现方式中,还包括:所述SSD从所述主机接收读指令;所述SSD根据所述第一属性表判断所述读指令对应的逻辑地址中是否包括属性为预分配的第二逻辑地址,所述第二逻辑地址为所述至少一个第一逻辑地址中的地址;若是,则所述SSD向所述主机发送读响应,所述读响应包括预置结果,所述预置结果用于指示与所述第二逻辑地址存在映射关系的第一物理地址未写过数据。该方案,提供了在读指令对应的逻辑地址中包括属性为预分配的第二逻辑地址时,所述SSD的数据处理方法。
在一种可能的实现方式中,还包括:所述SSD从所述主机接收写指令;根据所述第一属性表判断所述写指令对应的逻辑地址中是否包括属性为预分配的第三逻辑地址,所述第三逻辑地址为所述至少一个第一逻辑地址中的地址;若是,所述SSD根据所述第一映射表和所述第三逻辑地址确定与所述第三逻辑地址存在映射关系的第一物理地址;所述SSD将所述待写入数据中与所述第三逻辑地址对应的数据写入与所述第三逻辑地址存在映射关系的第一物理地址,并将所述第一属性表中所述第三逻辑地址的属性更新为已写入,将所述第二属性表中与所述第三逻辑地址存在映射关系的第一物理地址的属性更新为有效。该方案,提供了在写指令对应的逻辑地址中包括属性为预分配的第三逻辑地址时,所述SSD的数据处理方法。
在一种可能的实现方式中,还包括:所述SSD从所述主机接收TRIM指令;所述SSD,根据所述第一属性表判断所述TRIM指令对应的逻辑地址中是否包括属性为预分配的第四逻辑地址,所述第四逻辑地址为所述至少一个第一逻辑地址中的地址;若是,所述SSD根据所述第一映射表和所述第四逻辑地址确定与所述第四逻辑地址存在映射关系的第一物理地址;所述SSD将所述第一属性表中的所述第四逻辑地址的属性更新为空闲,将所述第二属性表中与所述第四逻辑地址存在映射关系的第一物理地址的属性更新为空闲;所述SSD将所述第一映射表中所述四逻辑地址映射的第一物理地址更新为无效地址或零。该方案,提供了在TRIM指令对应的逻辑地址中包括属性为预分配的第四逻辑地址时,所述SSD的数据处理方法。
在一种可能的实现方式中,所述SSD中还记录有第二映射表,所述第二映射表用于记录预分配的物理地址和预分配的逻辑地址的映射关系;当所述SSD执行垃圾回收操作时,所述SSD根据所述第二属性表判断待擦除目标块对应的物理地址中是否包括属性为预分配的第二物理地址;若是,则所述SSD重新为与所述第二物理地址映射的第二逻辑地址在所述SSD映射一个第三物理地址;所述SSD将所述第二映射表和所述第一映射表中的所述第二物理地址更新为所述第三物理地址,将所述第二属性表中所述第三物理地址的属性更新为预分配,将所述第二物理地址的属性更新为空闲。该方案,提供了待擦除目标块对应的物理地址中包括属性为预分配的第二物理地址时,所述SSD的数据处理。第二映射表的设置,可以加快SSD在垃圾回收操作后对第一映射表的更新。
在一种可能的实现方式中,还包括:当所述SSD执行垃圾回收操作时,所述SSD根据所述第二属性表判断待擦除目标块对应的物理地址中是否包括属性为预分配的第二物理地址;若是,则所述SSD重新为与所述第二物理地址映射的第二逻辑地址在所述SSD映射一个第三物理地址;所述SSD将所述第一映射表中的所述第二物理地址更新为所述第三物理地址,将所述第二属性表中所述第三物理地址的属性更新为预分配,将所述第二物理地址的属性更新为空闲。该方案,提供了待擦除目标块对应的物理地址中包括属性为预分配的第二物理地址时,所述SSD的数据处理。
在一种可能的实现方式中,在接收到所述预分配指令后,将所述第二属性表中的第四物理地址的属性更新为无效,所述第四物理地址为在接收到所述预分配指令之前,所述第六逻辑地址在所述第一映射表中映射的物理地址,所述第六逻辑地址为所述至少一个逻辑地址中的地址。
第四方面,本申请提供一种数据处理的装置,所述装置包括用于执行第二方面或第二方面任一种可能实现方式中的数据处理的方法的各个模块。
第五方面,本申请提供一种数据处理的装置,所述装置包括用于执行第三方面或第三方面任一种可能实现方式中的数据处理的方法的各个模块。
第六方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
第七方面,本申请提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本申请通过在为SSD中预分配存储空间,提前分配预留的存储区域。数据写入时,可以根据预分配存储空间的逻辑地址和物理地址的映射关系,将数据写入到预分配的存储区域,避免触发垃圾回收,实现数据快速写入,提高数据写入速度。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请提供的系统架构图一;
图2为本申请提供的系统架构图二;
图3为本申请提供的数据处理方法的交互图一;
图4为本申请提供的一种写指令处理过程的示意图;
图5为本申请提供的一种读指令处理过程的示意图;
图6为本申请提供的一种TRIM指令处理过程的示意图;
图7为本申请提供的一种垃圾回收操作处理过程的示意图;
图8为本申请提供的另一种垃圾回收操作处理过程的示意图;
图9为本申请提供的数据处理的系统的结构示意图一;
图10为本申请提供的数据处理的装置的结构示意图二;
图11为本申请提供的数据处理的装置的结构示意图三。
具体实施方式
下面对本申请涉及的相关名词进行说明。
本申请的存储盘可为在写入数据至一物理地址时,若该物理地址上已经写有数据,需要将之前写入的数据擦除后,才能写入新的数据的存储盘。当存储盘为硬盘时,可以为固态硬盘(solid state drive,SSD)。
逻辑地址:本申请中的逻辑地址是存储盘的逻辑地址,表现为存储盘对外提供的存储空间的地址。可以理解的是,若存储盘为SSD,则本申请中的逻辑地址是SSD的逻辑地址,表现为SSD对外提供的存储空间的地址。
物理地址:本申请中的物理地址指的是存储器内部存储单元的地址,又叫实际地址或绝对地址。可以理解的是,若存储盘为SSD,则本申请中的物理地址是SSD的物理地址。
目前,在写入数据时,存储器根据相应的映射算法确定写入指令对应的逻辑地址映射的存储盘的物理地址,从而将写入指令中待写入数据写入该物理地址对应的实际存储空间。
下面以存储盘为SSD为例,说明本实施例的数据处理方法和系统。
图1为本申请提供的系统架构图一。参见图1,本实施例的系统架构包括:主机11和SSD12,SSD内部设备有控制器13。其中,主机11中存储有SSD12的信息,SD12的信息包括:SSD12的盘符和盘容量,其中SSD12的盘符用于标识SSD,根据盘容量可以确定SSD12的起始逻辑地址和终止逻辑地址。主机11包括中央处理器(central processing unit,CPU)。
主机11和SSD12之间通过第一存储传输协议进行通信。第一存储传输协议为如下中的任一项:非易失性高速传输总线(Non-volatile Memory Express,NVMe)协议、基于网络的非易失性高速传输总线(NVMe over Fabrics,NoF)协议、因特网小型计算机系统接口(Internet Small Computer System Interface,iSCSI)协议,小型计算机系统接口(Internet Small Computer System Interface,SCSI)协议。
在图1所示的系统架构下,主机11和SSD12属于同一设备的两个结构,同一个系统架构中包括多个SSD,图1仅示出了一个SSD。作为一个可能的实施例,主机11位于第一设备,多个SSD12位于第二设备,该第一设备和该第二设备不相同。作为另一种可能的实施例,图2为本申请提供的系统架构图。图2所示的系统架构中还包括独立磁盘冗余阵列(redundantarray of independent disks,RAID)控制器,RAID控制器可以由软件实现,也可以由硬件实现,该RAID控制器可以与主机位于同一个设备中,也可以是独立的设备。为了便于描述,本申请的以下实施例中,以RAID控制器与主机位于同一设备,且RAID控制器由主机中软件实现为例进行描述。
接下来结合图2所示的系统架构,介绍本实施例说明本实施例提供的数据处理方法。
图3为本申请提供的数据处理方法的交互图一。参见图3,该方法,包括:
步骤S101、主机向SSD发送预分配指令;该预分配指令包括起始逻辑地址和长度。
具体地,由于本实施例基于的系统架构包括多个SSD,因此,主机在向SSD发送预分配指令之前,需要先确定SSD是否具有预分配功能。其中,预分配功能是指可以根据主机发送的预分配指令,在SSD的存储空间中预分配第一存储空间。
在一种可能的方式中,主机向每个SSD发送功能检查指令,每个SSD接收到功能检查指令后,向RAID控制器发送第一响应,第一响应中携带相应的SSD是否具有预分配功能,主机根据各第一响应,确定各SSD是否具有预分配功能。其中,对于SSD的预分配功能的标识可以通过设置特定的功能寄存器实现。
在主机获知各SSD是否具有预分配功能后,根据当前的业务需求在多个具有预分配功能的SSD中确定需要预分配映射的物理地址的M段逻辑地址,根据该M段逻辑地址确定预分配指令中携带的起始逻辑地址和长度,其中M为正整数。本实施例中的一段逻辑地址对应一个起始逻辑地址和长度,也就是具有一定大小的存储空间。可以理解的是,发送给某一SSD的预分配指令包括的起始逻辑地址和长度是根据M段逻辑地址中属于该SSD中的S段逻辑地址各自对应的起始逻辑地址和长度确定的,S为正整数,且S≤M。可以理解的是,M段逻辑地址与哪些SSD对应,RAID控制器就向哪些SSD发送预分配指令。
作为一个可能的实施例,一个预分配指令中除了仅包括一个起始逻辑地址和长度外,还可以包括两个或两个以上起始逻辑地址和长度,即一个预分配指令可包括多组起始逻辑地址和长度,每组起始逻辑地址和长度包括一个起始逻辑地址和一个长度。比如一个预分配指令中包括起始逻辑地址1和相应的长度1,……,起始逻辑地址n和相应的长度n,……,起始逻辑地址N和相应的长度N,1≤n≤N,N≥1。起始逻辑地址1和相应的长度1对应一段逻辑地址,起始逻辑地址n和相应的长度n对应另一段逻辑地址。
示例性地,当主机中包括RAID控制器时,当前的业务需求可以包括:在RAID组的数据盘发生故障时,快速的将根据故障数据盘中的数据重构出的数据写入RAID组的热备盘。具体地,RAID控制器创建RAID组时,需要为RAID组分配热备盘(或者称为热备空间),在RAID组中任一数据盘故障时,热备盘用于故障数据盘的数据恢复,则在该业务需求下,确定分配的热备空间为上述M段逻辑地址对应的存储空间的至少部分。或者说,热备空间包括至少一个预分配的存储空间;其中,一个预分配的存储空间为上述M段逻辑地址中的一段逻辑地址对应的存储空间,也为一个预分配指令中包括的一组起始逻辑地址和长度对应的逻辑地址所对应的存储空间。热备盘的大小与各个RAID组的组成规则有关,比如,RAID 5中包括数据盘和热备盘,同一RAID组中各个盘的大小相同,若每个盘大小均为500G,则需要500G的存储空间作为该RAID组的热备盘。组成热备盘的预分配的存储空间可以是连续的存储空间,也可以是间断的存储空间。另外,组成热备盘的预分配的存储空间可以来自同一个SSD的一个或多个存储区域,也可以是来自不同SSD的多个存储区域,本申请不作限定。
在一种可能的方式中,在创建RAID组时,RAID控制器可以一次性为该RAID组分配与RAID组的数据盘的存储空间大小相匹配的存储空间作为热备盘。也可以先为RAID组分配第一子热备空间,第一子热备空间与该RAID组所需的热备盘大小的比例大于或等于第一值,第一值可以根据业务需求设置,例如,第一值可以为0.3、0.5或0.8。RAID控制器再根据该RAID组中数据写入情况,动态增加该RAID组的热备盘的大小,保证第一子热备空间的大小始终大于第二值,第二值为该RAID组中数据写入最多的盘的数据写入量。例如,RAID组1的热备盘需要500G,预设值为0.3,此时,第一子热备空间需要大于或等于150G。随着RAID组中数据不断写入,第一子热备空间大小需要不断增加,保证第一子热备空间大小始终大于或等于该RAID组中数据盘写入最多的盘的数据写入量。
可选地,此时向SSD发送预分配指令的可为主机包括的RAID控制器,RAID控制器向SSD发送预分配指令的时机可为:在RAID控制器为RAID控制器创建的RAID组分配热备空间后,向所述SSD发送所述预分配指令。
示例性地,当前的业务需求包括:需要做掉电保护,以在主机对应的系统发生掉电时,主机对应的系统可将保存的操作系统、文件系统或其它应用的元数据快速写入到SSD中。具体地,主机在初始化时需要为操作系统、文件系统或其它应用预先在至少一个SSD中分配用于存储紧急数据(紧急数据为上述保存的操作系统、文件系统或其它应用的元数据)的存储空间,则在该业务需求下,确定主机在初始化时需要为操作系统、文件系统或其它应用预先在至少一个SSD分配用于存储紧急数据的存储空间为上述M段逻辑地址对应的存储空间的至少部分。
可选地,此时主机向SSD发送预分配指令的时机可为:当主机对应的系统初始化时,主机向SSD发送预分配指令。
示例性地,当前的业务需求包括:提前为其它未预料到的大量的数据的写入在SSD中准备存储空间,比如结合TRIM指令确定预分配指令中携带的起始逻辑地址和长度,此时,确定主机在发送该次发送预分配指令之前的预设时长内发送的至少一个TRIM指令对应的逻辑地址所对应的存储空间上述M段逻辑地址对应的存储空间的至少部分。
可以理解的是,当空闲存储空间小于或等于预设值时,可以通过TRIM指令清除无效数据,预留部分存储空间用于上述预分配。另外,在系统初始化阶段或存储空间充足的情况下,也可以直接下发预分配指令,不需要执行TRIM指令清除无效数据以获得空闲的存储空间。
可选地,此时主机向SSD发送预分配指令的时机可为:当主机对应的系统的输入/输出(input/output,I/O)负载小于或等于第一阈值时,主机向SSD发送预分配指令。
步骤S102、SSD根据起始逻辑地址和长度确定至少一个第一逻辑地址,并为至少一个第一逻辑地址中的每个逻辑地址在SSD中映射一个第一物理地址,得到第一存储空间。其中,第一存储空间为空闲的存储空间。
具体地,可以理解的是,执行该步骤的实际上为SSD的控制器。
SSD接收预分配指令后,对于预分配指令包括的一组起始逻辑地址和长度,SSD会将起始逻辑地址和长度对应的存储空间进行切片,切片得到的每个子存储空间对应一个第一逻辑地址,从而得到至少一个第一逻辑地址;SSD为该至少一个第一逻辑地址中的每个第一逻辑地址在SSD中映射一个第一物理地址,得到第一存储空间,第一存储空间为空闲的存储空间。其中,SSD为第一逻辑地址在SSD中映射一个第一物理地址,也就是SSD为第一逻辑地址在SSD中预分配一个映射的第一物理地址,或者说,SSD预先为第一逻辑地址在SSD中映射一个第一物理地址。因此,可以认为,SSD为第一逻辑地址在SSD中映射的一个第一物理地址与该第一逻辑地址存在映射关系。
由于为该至少一个第一逻辑地址中的每个第一逻辑地址在SSD中映射了一个第一物理地址,因此,具有至少一个第一物理地址,第一存储空间为该至少一个第一物理地址组成的存储空间。第一存储空间可为连续的存储空间,也可为离散的存储空间。
可以理解的是,预分配命令的一组起始逻辑地址和长度对应一个第一存储空间;第一存储空间即为步骤S101中的预分配的存储空间。
示例性地,若预分配指令中携带一组起始逻辑地址和长度:起始逻辑地址1和相应的长度1,则SSD根据起始逻辑地址1和相应的长度1确定一组逻辑地址,可称为A组逻辑地址,该A组逻辑地址包括至少一个第一逻辑地址,然后为该A组逻辑地址包括的每个第一逻辑地址在SSD中映射一个第一物理地址,得到第一存储空间A,该第一存储空间A为A组逻辑地址包括的各个第一逻辑地址各自在SSD中映射的多个第一物理地址组成的存储空间。
示例性地,若预分配指令中携带两组起始逻辑地址和长度:起始逻辑地址1和相应的长度1,起始逻辑地址2和相应的长度2,则SSD根据起始逻辑地址1和相应的长度1确定一组逻辑地址,可称为A组逻辑地址,该A组逻辑地址包括至少一个第一逻辑地址,然后为该A组逻辑地址包括的每个第一逻辑地址在SSD中映射一个第一物理地址,得到第一存储空间A,该第一存储空间A为该A组逻辑地址包括的各第一逻辑地址各自在SSD中映射的各第一物理地址组成的存储空间;SSD还根据起始逻辑地址2和相应的长度2确定一组逻辑地址,可称为B组逻辑地址,该B组逻辑地址包括至少一个第一逻辑地址,然后为该B组逻辑地址包括的每个第一逻辑地址在SSD中映射一个第一物理地址,得到第一存储空间B,该第一存储空间B为该B组逻辑地址包括的各第一逻辑地址各自在SSD中映射的各第一物理地址组成的存储空间。
可以理解的是,若SSD根据一组起始逻辑地址和长度确定的至少一个第一逻辑地址中存在非按页对齐的逻辑地址,则将该非按页对齐的逻辑地址舍弃,不为其预分配第一物理地址。
进一步地,SSD中存储有第一映射表、第一属性表和第二属性表,第一映射表用于标识逻辑地址和物理地址的映射关系,第一属性表用于标识每个逻辑地址的预分配属性,每个逻辑地址的预分配的属性包括预分配、空闲和已写入;第二属性表,用于标识每个物理地址的分配属性,每个物理地址的分配属性包括空闲、预分配、有效和失效;其中,空闲的逻辑地址(属性为空闲的逻辑地址)是指未写入数据的且SSD也未根据预分配指令预先在SSD中为其映射一个物理地址的逻辑地址,预分配的逻辑地址(属性为预分配的逻辑地址)为在第一映射表中存在与其映射的物理地址的逻辑地址,已写入的逻辑地址(属性为已写入的逻辑地址)是指对应的物理地址已经写入数据的逻辑地址;空闲的物理地址(属性为空闲的物理地址)为未写入数据的物理地址,预分配的物理地址(属性为预分配的物理地址)为与预分配的逻辑地址具有映射关系的物理地址,有效的物理地址(属性为有效的物理地址)为已写入数据且数据有效的物理地址,失效的物理地址(属性为失效的物理地址)为已经写入的数据但数据无效已物理地址。
其中,第一映射表、第一属性表和第二属性表均可以采用数组实现;也可以通过使用位图或者链表实现;还可以采用文本或数据库实现。
在系统初始化时,将第一映射表中每个逻辑地址映射的物理地址初始化为一个无效地址或零,如表1所示;将第一属性表中每个逻辑地址的属性初始化为空闲,如表2所示;将第二属性表中每个物理地址的属性初始化为空闲,如表3所示。
表1一种第一映射表的示例
参见表1,表1中的第一行中的数字指示逻辑地址,第一行中的MAX指示SSD的最后一个逻辑地址,第二行中N指示无效地址,即指示SSD对的控制器未预先在SSD中为相应的逻辑地址映射一个物理地址。
可以理解的是,表1只是第一映射表的一种实现方式,还具有其它的实现方式,比如:第一映射表的实现形式除了如表1所示的数组外,还可为没有表1中的第一行,而是第一行作为数组的下标。
表2一种第一属性表的示例
参见表2,表2中的第一行中的数字指示逻辑地址,第一行中的MAX指示SSD的最后一个逻辑地址,第二行中X指示逻辑地址的属性为空闲。
可以理解的是,表2只是第一属性表的一种实现方式,还具有其它的实现方式,比如:第一属性的实现形式除了如表2所示的数组外,还可为没有表2中的第一行,而是第一行作为数组的下标。
表3一种第二属性表的示例
参见表3,表3中的第一行中的数字指示物理地址,第一行中的MAX指示SSD的最后一个物理地址,第二行中F指示物理地址的属性为空闲。
可以理解的是,表3只是第二属性表的一种实现方式,还具有其它的实现方式,比如:第二属性的实现形式除了如表3所示的数组外,还可为没有表3中的第一行,而是第一行作为数组的下标。
在接收到预分配指令后,将第一映射表中第一逻辑地址映射的物理地址更新为SSD根据预分配指令为该第一逻辑地址在SSD中映射的第一物理地址,将第一属性表中的第一逻辑地址的属性更新为预分配,将第二属性表中的第一物理地址的属性更新为预分配。
通过上述过程,实现了为逻辑地址预先在SSD中映射物理地址的目的。
在上述需要预分配映射的物理地址的M段逻辑地址对应的存储空间包括RAID组的热备空间时,由于通过上述过程可为该M段逻辑地址对应的每个逻辑地址均预先在SSD中映射一个物理地址,因此,在RAID组的某一数据盘发生损坏时,对于热备空间对应的各SSD中的每个SSD,主机中的RAID控制器向该SSD发送写指令,写指令对应的逻辑地址为该M段逻辑地址对应的至少部分逻辑地址,该SSD根据第一映射表获取预先为该写指令对应的逻辑地址在SSD中映射的物理地址,将该写指令中的待写入数据(根据损坏的数据盘中的数据重构出的至少部分数据)直接写入至预先为该写指令对应的逻辑地址在SSD中映射的物理地址,无需采用映射算法实时计算该写指令对应的逻辑地址映射的物理地址,又由于预先为该写指令对应的逻辑地址在SSD中映射的物理地址对应的存储空间为空闲的存储空间,因此,也不会触发垃圾回收的操作,提高了写入的速度。
在上述需要预分配映射的物理地址的M段逻辑地址对应的存储空间包括主机为操作系统、文件系统或其它应用预先在至少一个SSD分配的用于存储紧急数据的存储空间时,由于通过上述过程可为该M段逻辑地址对应的每个逻辑地址均预先在SSD中映射一个物理地址,因此,在主机对应的系统发生掉电时,对于用于存储紧急数据的存储空间对应的各SSD中的每个SSD,主机向该SSD发送写指令,写指令对应的逻辑地址为该M段逻辑地址对应的至少部分逻辑地址,该SSD根据第一映射表获取预先为该写指令对应的逻辑地址在SSD中映射的物理地址,将该写指令中的待写入数据(紧急数据中的至少部分数据)直接写入至预先为该写指令对应的逻辑地址在SSD中映射的物理地址中,无需采用映射算法实时计算该写指令对应的逻辑地址映射的物理地址,又由于预先为该写指令对应的逻辑地址在SSD中映射的物理地址对应的存储空间为空闲的存储空间,因此,也不会触发垃圾回收的操作,提高了写入的速度。
在上述需要预分配映射的物理地址的M段逻辑地址对应的逻辑地址包括主机获取该次发送预分配指令之前的预设时长内发送的至少一个TRIM指令对应的逻辑地址时,相当于一直存在已经预分配好物理地址的逻辑地址,当有数据写入时,可以先写入为该M段逻辑地址对应的至少部分逻辑地址预先在SSD中映射的物理地址中,参照上述的分析,可以提高写入的速度。
本实施例的数据处理方法,通过在为SSD中预分配存储空间,提前分配预留的存储区域。数据写入时,可以根据预分配存储空间的逻辑地址和物理地址的映射关系,将数据写入到预分配的存储区域,避免触发垃圾回收,实现数据快速写入,提高数据写入速度。
下面在图3所述方法基础上,结合图4至图8分别以写指令、读指令、TRIM指令和垃圾回收过程为例,进一步介绍本申请提供的数据处理方法。图4至图8所示的实施例中SSD执行的方法实际上为SSD的控制器执行的方法。
图4为本申请提供的一种写指令处理过程的示意图。参见图4,本实施例的方法包括:
步骤S201、主机向SSD发送写指令,该写指令包括待写入数据。
具体地,当需要向SSD写入数据时,主机向SSD发送写指令,该写指令包括待写入数据;可以理解的是,该写指令还包括起始逻辑地址和长度。
步骤S202、SSD根据第一属性表判断写指令对应的逻辑地址中是否包括属性为预分配的第三逻辑地址;
具体地,SSD接收到该写指令后,根据该写指令中包括的起始逻辑地址和长度确定至少一个逻辑地址,该至少一个逻辑地址即为该写指令对应的逻辑地址。接着,SSD根据第一属性表判断该写指令对应的逻辑地址中是否存在属性为预分配的第三逻辑地址。
可以理解的是,该写指令对应的逻辑地址中可能具有1个属性为预分配的第三逻辑地址,也可能具有多个属性为预分配的第三逻辑地址,还有可能具有0个属性为预分配的第三逻辑地址。
步骤S203、若是,则SSD根据第一映射表和第三逻辑地址确定与第三逻辑地址存在映射关系的第一物理地址。
若该写指令对应的逻辑地址中存在属性为预分配的第三逻辑地址,则SSD根据第一映射表和第三逻辑地址确定与第三逻辑地址存在映射关系的第一物理地址。其中,与第三逻辑地址存在映射关系的第一物理地址指的是SSD在SSD中预先为该第三逻辑地址映射的物理地址,也是第一映射表中该第二逻辑地址映射的第一物理地址。
步骤S204、SSD将待写入数据中与第三逻辑地址对应的数据写入与该第三逻辑地址存在映射关系的第一物理地址,并将第一属性表中该第三逻辑地址的属性更新为已写入,将第二属性表中与该第三逻辑地址存在映射关系的第一物理地址的属性更新为有效。
进一步地,在一种实施方式中,SSD在接收到预分配指令后,将第二属性表中的第四物理地址的属性更新为无效,该第四物理地址为在接收到所述预分配指令之前,第六逻辑地址在上述第一映射表中映射的物理地址,该第六逻辑地址为上述至少一个逻辑地址中的地址。
本实施例提供了写指令对应的逻辑地址存在属性为预分配的第三逻辑地址时的数据处理方法。
图5为本申请提供的一种读指令处理过程的示意图,参见图5,本实施例的方法包括:
步骤S301、主机向SSD发送读指令。
具体地,当需要从SSD读数据时,主机向SSD发送读指令,该读指令包括起始逻辑地址和长度。
步骤S302、SSD根据第一属性表判断读指令对应的逻辑地址中是否包括属性为预分配的第二逻辑地址。
SSD接收到该读指令后,根据该读指令中包括的起始逻辑地址和长度确定至少一个逻辑地址,该至少一个逻辑地址即为该读指令对应的逻辑地址。接着,SSD根据第一属性表判断该读指令对应的逻辑地址中是否存在属性为预分配的第二逻辑地址。
可以理解的是,该读指令对应的逻辑地址中可能具有1个属性为预分配的第二逻辑地址,也可能具有多个属性为预分配的第二逻辑地址,还有可能具有0个属性为预分配的第二逻辑地址。
步骤S303、若是,SSD向主机发送读响应,读响应包括预置结果,预置结果用于指示与该第二逻辑地址存在映射关系的第一物理地址未写过数据。
若该读指令对应的逻辑地址中存在属性为预分配的第二逻辑地址,则说明与该第二逻辑地址存在映射关系的第一物理地址没有存储数据,因此,SSD向主机发送的读响应中包括预置结果,预置结果用于指示与该第二逻辑地址存在映射关系的第一物理地址未写过数据。其中,与该第二逻辑地址存在映射关系的第一物理地址为SSD为该第二逻辑地址预先在SSD中映射的物理地址,也是第一映射表中该第二逻辑地址映射的第一物理地址。
可选地,预置结果可为1或者0。
若该读指令对应的逻辑地址中全部是属性为预分配的地址,则根据该次读指令,SSD向主机发送的读响应中包括的均是预置结果;若该读指令对应的逻辑地址中部分是属性为预分配的地址,则根据该次读指令,SSD向主机发送的读响应中部分信息为预置结果。
本实施例提供了读指令对应的逻辑地址中存在属性为预分配的第二逻辑地址时的数据处理方法。
图6为本申请提供的一种TRIM指令处理过程的示意图,参见图6,本实施例的方法包括:
步骤S401、主机向SSD发送TRIM指令。
具体地,主机向SSD发送TRIM指令,该TRIM指令包括起始逻辑地址和长度。
下面对TRIM指令进行说明;
当一个文件在支持TRIM的系统里被删除后,操作系统会发个TRIM指令给SSD,让SSD获知这个文件的数据不再被使用,其所在的页(page)可以被回收。SSD接收到TRIM指令后,会解除该文件对应的逻辑地址和物理地址的映射关系,使该文件的数据对应的物理地址处于失效状态,后期垃圾回收时可回收该文件的数据所在的页。
步骤S402、SSD根据第一属性表判断该TRIM指令对应的逻辑地址中是否包括属性为预分配的第四逻辑地址。
具体地,SSD接收到该TRIM指令后,根据该TRIM指令中包括的起始逻辑地址和长度确定至少一个逻辑地址,该至少一个逻辑地址即为该TRIM指令对应的逻辑地址。接着,SSD根据第一属性表判断该TRIM指令对应的逻辑地址中是否存在属性为预分配的第四逻辑地址。
可以理解的是,该TRIM指令对应的逻辑地址中可能具有1个属性为预分配的第四逻辑地址,也可能具有多个属性为预分配的第四逻辑地址,还有可能具有0个属性为预分配的第四逻辑地址。
步骤S403、若是,SSD根据第一映射表和该第四逻辑地址确定与该第四逻辑地址存在映射关系的第一物理地址。
具体地,若该TRIM指令对应的逻辑地址中存在属性为预分配的第四逻辑地址,则SSD根据第一映射表和该第四逻辑地址确定与该第四逻辑地址存在映射关系的第一物理地址。其中,与该第四逻辑地址存在映射关系的第一物理地址为SSD预先为第四逻辑地址在SSD中映射的物理地址,也是第一映射表中该第四逻辑地址映射的第一物理地址。
步骤S404、SSD将第一属性表中的该第四逻辑地址的属性更新为空闲,将第二属性表中与该第四逻辑地址存在映射关系的第一物理地址的属性更新为空闲。
步骤S405、SSD将第一映射表中与该第四逻辑地址存在映射关系的第一物理地址更新为无效地址或0。
也就是解除为该第四逻辑地址以及为该第四逻辑地址在SSD中映射的第一物理地址之间的映射关系。也就是说,TRIM指令可以解除逻辑地址以及预先为该逻辑地址在SSD中映射的物理地址之间的映射关系。
本实施例提供了TRIM指令对应的逻辑地址中存在属性为预分配的第四逻辑地址时的数据处理方法。
图7为本申请提供的一种垃圾回收操作处理过程的示意图,参见图7,本实施例的方法包括:
步骤S501、当SSD执行垃圾回收操作时,SSD根据第二属性表判断待擦除目标块对应的物理地址中是否包括属性为预分配的第二物理地址。
为了使得SSD具有足够的空闲存储空间,需要对SSD执行垃圾回收,此时,SSD根据第二属性表判断待擦除目标块对应的物理地址中是否包括属性为预分配的第二物理地址。
具体地,本实施例的应用场景为SSD中还存储有第二映射表的情况。
步骤S502、若是,SSD重新为与该第二物理地址映射的第五逻辑地址在SSD映射一个第三物理地址。
若待擦除目标块对应的物理地址中是否包括属性为预分配的第二物理地址,SSD重新为与第二物理地址映射的第五逻辑地址在SSD映射一个第三物理地址。
可以理解的是,第三物理地址与第二物理地址不相同。
步骤S503、SSD将第二映射表和第一映射表中的第二物理地址更新为该第三物理地址,将第二属性表中该第三物理地址的属性更新为预分配,将第二物理地址的属性更新为空闲;第二映射表用于记录预分配的物理地址和预分配的逻辑地址之间的映射关系。其中,与第二物理地址映射的第五逻辑地址为执行该垃圾回收操作前第一映射表或者第二映射表中与该第二物理地址映射的逻辑地址。
也就是说第二映射表中包括属性为预分配的物理地址和属性为预分配的逻辑地址,不包括属性不为预分配的物理地址和逻辑地址,而第一映射表中包括SSD中所有的逻辑地址。第二映射表可如表4所示。
表4一种第二映射表的示意图
物理地址 | 2 | 3 | 4 | 5 |
逻辑地址 | 4 | 5 | 6 | 7 |
由于垃圾回收过程中拷贝有效数据时涉及物理地址到逻辑地址的反向查找,由于第一映射表中的地址太多,且第一映射表对应的是逻辑地址到物理地址的查找,若采用第一映射表查找属性为预分配的物理地址对应的逻辑地址,则比较麻烦,因此,可建立第二映射表。由于第二映射表不包括属性不为预分配的物理地址和逻辑地址,且对应的是物理地址到逻辑地址的查找,因此查找属性为预分配的物理地址对应的逻辑地址比较方便,即在本实施例的场景下更新第一映射表的速度比较快。
本实施例相当于为第二映射表和/或第一映射表中的第五逻辑地址重新在SSD中映射一个第二物理地址。
本实施例提供了垃圾回收时对应的物理地址中存在属性为预分配的第二物理地址时的数据处理方法。
图8为本申请提供的一种垃圾回收操作处理过程的示意图,参见图8,本实施例的方法包括:
步骤S601、当SSD执行垃圾回收操作时,SSD根据第二属性表判断待擦除目标块对应的物理地址中是否包括属性为预分配的第二物理地址。
具体地,本实施例的应用场景为SSD中未存储有第二映射表的情况。
步骤S602、若是,SSD重新为与该第二物理地址映射的第五逻辑地址在SSD映射一个第三物理地址。
步骤S603、SSD将一映射表中的第二物理地址更新为该第三物理地址,将第二属性表中该第三物理地址的属性更新为预分配,将第二物理地址的属性更新为空闲。其中,与第二物理地址映射的第五逻辑地址为执行该垃圾回收操作前第一映射表或者第二映射表中与该第二物理地址映射的逻辑地址。
本实施例提供了垃圾回收时对应的物理地址中存在属性为预分配的第二物理地址时的一种数据处理方法。
可以理解的是,图4~图8所示的数据处理方法,也同样适用于图1所示的系统架构,不同的是,在图1所示的架构下,若没有RAID应用场景,则与SSD或者与SSD的控制器进行交互的可为主机或者主机包括的CPU。
上文中结合图1至图8,详细描述了根据本申请所提供的数据处理的方法,下面将结合图9-11,描述根据本申请所提供的数据处理的装置。
图9为本申请提供的数据处理的装置的结构示意图一,参见图9,本实施例的数据处理的装置200包括:生成模块21、发送模块22和接收模块23;
所述生成模块21,用于生成预分配指令,所述预分配指令包括起始逻辑地址和长度;所述预分配指令用于指示SSD在所述SSD中分配第一存储空间,所述起始逻辑地址和长度用于所述SSD确定至少一个第一逻辑地址,所述第一逻辑地址为需要所述SSD在SSD中映射第一物理地址的地址。所述第一存储空间为空闲的存储空间。
所述发送模块22,用于向所述SSD发送所述预分配指令;
其中,所述数据处理的装置通过第一存储传输协议与所述SSD进行通信。所述第一存储传输协议可为如下中的任一项:非易失性高速传输总线NVMe协议、基于网络的非易失性高速传输总线NoF协议、因特网小型计算机系统接口iSCSI协议、小型计算机系统接口SCSI协议。
可选地,所述发送模块22,还用于:
当数据处理的装置所在的系统的输入/输出I/O负载小于或等于第一阈值时,向所述SSD发送所述预分配指令;或者,
当数据处理的装置所在的系统初始化时,向所述SSD发送所述预分配指令;或者,
在所述数据处理的装置为所述数据处理的装置创建的RAID组分配热备空间后,向所述SSD发送所述预分配指令。
可选地,若所述数据处理的装置创建了RAID组,则所述RAID的热备盘包括至少一个所述第一存储空间,在所述RAID组中任一数据盘故障时,所述热备盘用于故障数据盘的数据恢复。
可选地,所述发送模块22,还用于向所述SSD发送读指令;
所述接收模块23,用于从所述SSD接收读响应,所述读响应包括预置结果,所述预置结果用于指示与第二逻辑地址存在映射关系的第一物理地址未写过数据;所述第二逻辑地址为所述读指令对应的逻辑地址中的地址,且所述第二逻辑地址为所述至少一个逻辑地址中的地址。
根据本申请的数据处理装置可对应于执行本申请中描述的方法,并且数据处理装置中的各个模块的和其它操作和/或功能分别为了实现图3至图8中的各个方法的主机对应的相应流程,为了简洁,在此不再赘述。
本实施例中的数据处理的装置,通过其包括的生成模块生成预分配指令,通过其包括的发送模块向SSD发送预分配指令,使得SSD根据该预分配指令在为SSD中预分配存储空间,提前分配预留的存储区域。这样,当SSD中有数据写入时,可以根据预分配存储空间的逻辑地址和物理地址的映射关系,将数据写入到预分配的存储区域,避免触发垃圾回收,实现数据快速写入,提高数据写入速度。
应理解的是,本实施例的数据处理的装置可以通过专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logicdevice,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logicaldevice,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现图3~图8所示的数据处理方法时,本申请的数据处理的装置及其各个模块也可以为软件模块。
图10为本申请提供的数据处理的装置的结构示意图二,参见图10,本实施例的数据处理的装置300包括:接收模块31和确定模块32;
所述接收模块31,用于从主机接收预分配指令,所述预分配指令包括起始逻辑地址和长度;所述主机通过第一存储传输协议与所述数据处理的装置进行通信;所述第一存储传输协议包括非易失性高速传输总线NVMe协议、基于网络的非易失性高速传输总线NoF协议、因特网小型计算机系统接口iSCSI协议、小型计算机系统接口SCSI协议;
所述确定模块32,用于根据所述起始逻辑地址和所述长度确定至少一个第一逻辑地址,并为所述至少一个第一逻辑地址中每个第一逻辑地址在所述数据处理的装置中映射一个第一物理地址,得到所述第一存储空间。所述第一存储空间为空闲的存储空间。
可选地,所述数据处理的装置中包括第一映射表、第一属性表和第二属性表,所述第一映射表用于标识所述数据处理的装置的逻辑地址和物理地址的映射关系,所述第一属性表用于标识各个逻辑地址的预分配属性,所述预分配的属性包括预分配、空闲和已写入;所述第二属性表,用于标识各个物理地址的分配属性,所述分配属性包括空闲、预分配、有效和失效。所述确定模块32,还用于在所述数据处理装置初始化时,将所述第一映射表中每个逻辑地址映射的物理地址初始化为一个无效地址或零;以及,将所述第一属性表中每个逻辑地址的属性初始化为空闲,将所述第二属性表中每个物理地址的属性初始化为空闲;在所述接收模块31从主机接收预分配指令之后,将所述第一映射表中所述第一逻辑地址映射的物理地址更新为所述确定模块32根据所述预分配指令为所述第一逻辑地址在所述数据处理的装置中映射的第一物理地址;以及,将所述第一属性表中的所述第一逻辑地址的属性更新为预分配,将所述第二属性表中的所述第一物理地址的属性更新为预分配。
可选地,所述接收模块31,还用于从所述主机接收读指令;所述确定模块32,还用于根据所述第一属性表判断所述读指令对应的逻辑地址中是否包括属性为预分配的第二逻辑地址,所述第二逻辑地址为所述至少一个第一逻辑地址中的地址;若是,则向所述主机发送读响应,所述读响应包括预置结果,所述预置结果用于指示与所述第二逻辑地址存在映射关系的第一物理地址未写过数据。
可选地,所述接收模块31,还用于从所述主机接收写指令;所述确定模块32,还用于根据所述第一属性表判断所述写指令对应的逻辑地址中是否包括属性为预分配的第三逻辑地址,所述第三逻辑地址为所述至少一个第一逻辑地址中的地址;若是,则根据所述第一映射表和所述第三逻辑地址确定与所述第三逻辑地址存在映射关系的第一物理地址;以及,将所述待写入数据中与所述第三逻辑地址对应的数据写入与所述第三逻辑地址存在映射关系的第一物理地址,并将所述第一属性表中所述第三逻辑地址的属性更新为已写入,将所述第二属性表中与所述第三逻辑地址存在映射关系的第一物理地址的属性更新为有效。
可选地,所述接收模块31,还用于:从所述主机接收TRIM指令;所述确定模块32,还用于根据所述第一属性表判断所述TRIM指令对应的逻辑地址中是否包括属性为预分配的第四逻辑地址,所述第四逻辑地址为所述至少一个第一逻辑地址中的地址,若是,则根据所述第一映射表和所述第四逻辑地址确定与所述第四逻辑地址存在映射关系的第一物理地址;以及,将所述第一属性表中的所述第四逻辑地址的属性更新为空闲,将所述第二属性表中与所述第四逻辑地址存在映射关系的第一物理地址的属性更新为空闲,将所述第一映射表中所述四逻辑地址映射的第一物理地址更新为无效地址或零。
可选地,所述数据处理装置中还记录有第二映射表,所述第二映射表用于记录预分配的物理地址和预分配的逻辑地址的映射关系;当所述数据处理的装置执行垃圾回收操作时,所述确定模块32还用于根据所述第二属性表判断待擦除目标块对应的物理地址中是否包括属性为预分配的第二物理地址;若是,则所述SSD重新为与所述第二物理地址映射的第二逻辑地址在所述SSD映射一个第三物理地址;以及,将所述第二映射表和所述第一映射表中的所述第二物理地址更新为所述第三物理地址,将所述第二属性表中所述第三物理地址的属性更新为预分配,将所述第二物理地址的属性更新为空闲。
可选地,当所述数据处理的装置执行垃圾回收操作时,所述确定模块32还用于根据所述第二属性表判断待擦除目标块对应的物理地址中是否包括属性为预分配的第二物理地址;若是,则所述SSD重新为与所述第二物理地址映射的第二逻辑地址在所述SSD映射一个第三物理地址;以及,将所述第一映射表中的所述第二物理地址更新为所述第三物理地址,将所述第二属性表中所述第三物理地址的属性更新为预分配,将所述第二物理地址的属性更新为空闲。
可选地,所述确定模块32,还用于在接收到所述预分配指令后,将所述第二属性表中的第四物理地址的属性更新为无效,所述第四物理地址为在接收到所述预分配指令之前,所述第六逻辑地址在所述第一映射表中映射的物理地址,所述第六逻辑地址为所述至少一个逻辑地址中的地址。
根据本申请的数据处理装置可对应于执行本申请中描述的方法,并且数据处理装置中的各个模块和其它操作和/或功能分别为了实现图3至图8中的各个方法的SSD对应的相应流程,为了简洁,在此不再赘述。
本实施例中的数据处理的装置,通过其包括的接收模块接收预分配指令,通过其包括的确定模块根据该预分配指令在该数据处理的装置中预分配存储空间,提前分配预留的存储区域。这样,当本实施例的数据处理的装置中有数据写入时,可以根据预分配存储空间的逻辑地址和物理地址的映射关系,将数据写入到预分配的存储区域,避免触发垃圾回收,实现数据快速写入,提高数据写入速度。
应理解的是,本实施例的数据处理的装置可以通过专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logicdevice,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logicaldevice,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现图3~图8所示的数据处理方法时,本申请的数据处理的装置及其各个模块也可以为软件模块。
图11为本发明实施例提供的数据处理装置的结构示意图三。如图所示,所述数据处理装置包括处理器601、通信接口602、第一存储器603、总线604、固态硬盘605;其中,处理器601、通信接口602、第一存储器603、固态硬盘605通过总线604进行通信;第一存储器603用于存储指令,处理器601用于执行第一存储器603存储的指令;固态硬盘605包括控制器6051和第二存储器6052,第二存储器6052用于存储指令,控制器6051用于执行第二存储器6052存储的指令。
具体地,第一存储器603存储有第一程序代码6031,且处理器601可以调用第一存储器603中存储的第一程序代码6031执行以下操作:向固态硬盘605发送预分配指令,所述预分配指令用于指示所述固态硬盘605在所述固态硬盘605中分配第一存储空间,所述预分配指令包括起始逻辑地址和长度。
第二存储器6052存储有控制器6051的第二程序代码6053,且处理器控制器6051可以调用第二存储器6052中存储的第二程序代码6053执行以下操作:接收所述预分配指令,根据所述起始逻辑地址和所述长度确定至少一个第一逻辑地址,以及为所述至少一个第一逻辑地址中每个第一逻辑地址在所述固态硬盘605中映射一个第一物理地址,得到所述第一存储空间。
可选地,本实施例的数据处理的装置还可包括RAID控制器606;RAID控制器606与处理器601可以是同一个结构,也可以是独立的两个结构。
本实施例的数据处理装置中的处理器601或者RAID控制器606可为图1或图2中所示的系统中的主机,本实施例中的固态硬盘605可为图1或图2中所示的系统中的SSD。
进一步地,本实施例的数据处理的装置的处理器601或者RAID控制器606,还可以与另一数据处理的装置的固态硬盘通过无线传输等手段实现通信;本实施例的数据处理的装置的固态硬盘605,还可以与另一数据处理的装置的处理器或者RAID控制器通过无线传输等手段实现通信。其中,本实施例的数据处理的装置和该另一数据处理的装置的结构相同。
应理解,在本申请实施例中,该处理器601可以是CPU,该处理器601还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
该第一存储器603可以包括只读存储器和随机存取存储器,并向处理器601提供指令和数据。存储器第一存储器603还可以包括非易失性随机存取存储器。例如,第一存储器603还可以存储设备类型的信息。
该第二存储器6052可以包括只读存储器和随机存取存储器,并向控制器6051提供指令和数据。该第二存储器6052还可以包括非易失性随机存取存储器。例如,第二存储器6052还可以存储设备类型的信息。
该第一存储器603和第二存储器6052均可以是易失性存储器或非易失性存储器,或均可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data dateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。
该总线604除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线604。
本实施的数据处理的装置,处理器或者RAID控制器可向固态硬盘发送预分配指令,固态硬盘根据该预分配指令在固态硬盘中预分配存储空间,提前分配预留的存储区域,因此,当固态硬盘中数据写入时,固态硬盘可以根据预分配存储空间的逻辑地址和物理地址的映射关系,将数据写入到预分配的存储区域,避免触发垃圾回收,实现数据快速写入,从而提高了数据写入速度。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (16)
1.一种数据处理的系统,其特征在于,所述系统包括主机和固态硬盘SSD,所述主机通过第一存储传输协议与所述SSD进行通信:
所述主机,用于向所述SSD发送预分配指令,所述预分配指令用于指示所述SSD在所述SSD中分配第一存储空间,所述预分配指令包括起始逻辑地址和长度;
所述SSD,用于接收所述预分配指令,根据所述起始逻辑地址和所述长度确定至少一个第一逻辑地址,以及为所述至少一个第一逻辑地址中每个第一逻辑地址在所述SSD中映射一个第一物理地址,得到所述第一存储空间。
2.根据权利要求1所述系统,其特征在于,所述主机,还用于:
当所述系统的输入/输出I/O负载小于或等于第一阈值时,向所述SSD发送所述预分配指令;或者,
当所述系统初始化时,向所述SSD发送所述预分配指令;或者,
在所述主机为所述主机创建的RAID组分配热备空间后,向所述SSD发送所述预分配指令。
3.根据权利要求1或2所述系统,其特征在于,所述SSD中包括第一映射表、第一属性表和第二属性表,所述第一映射表用于标识所述SSD的逻辑地址和物理地址的映射关系,所述第一属性表用于标识各个逻辑地址的预分配属性,所述预分配属性包括预分配、空闲和已写入;所述第二属性表,用于标识各个物理地址的分配属性,所述分配属性包括空闲、预分配、有效和失效;
所述SSD,还用于在所述系统初始化时,将所述第一映射表中每个逻辑地址映射的物理地址初始化为一个无效地址或零;将所述第一属性表中每个逻辑地址的属性初始化为空闲;将所述第二属性表中每个物理地址的属性初始化为空闲;在接收所述预分配指令后,将所述第一映射表中所述第一逻辑地址映射的物理地址更新为所述SSD根据所述预分配指令为所述第一逻辑地址在所述SSD中映射的第一物理地址,将所述第一属性表中的所述第一逻辑地址的属性更新为预分配,将所述第二属性表中的所述第一物理地址的属性更新为预分配。
4.根据权利要求1至3任一所述系统,其特征在于,若所述主机创建了RAID组,所述RAID组的热备空间包括至少一个所述第一存储空间,在所述RAID组中任一数据盘故障时,所述热备空间用于故障数据盘的数据恢复。
5.根据权利要求3所述系统,其特征在于,
所述主机,还用于向所述SSD发送读指令;
所述SSD,还用于根据所述第一属性表判断所述读指令对应的逻辑地址中是否包括属性为预分配的第二逻辑地址,若是,则向所述主机发送读响应,所述读响应包括预置结果,所述预置结果用于指示与所述第二逻辑地址存在映射关系的第一物理地址未写过数据;所述第二逻辑地址为所述至少一个第一逻辑地址中的地址。
6.根据权利要求3或5所述系统,其特征在于,
所述主机,还用于向所述SSD发送写指令,所述写指令包括待写入数据;
所述SSD,还用于根据所述第一属性表判断所述写指令对应的逻辑地址中是否包括属性为预分配的第三逻辑地址,若是,则根据所述第一映射表和所述第三逻辑地址确定与所述第三逻辑地址存在映射关系的第一物理地址,将所述待写入数据中与所述第三逻辑地址对应的数据写入与所述第三逻辑地址存在映射关系的第一物理地址,并将所述第一属性表中所述第三逻辑地址的属性更新为已写入,将所述第二属性表中与所述第三逻辑地址存在映射关系的第一物理地址的属性更新为有效;其中,所述第三逻辑地址为所述至少一个第一逻辑地址中的地址。
7.根据权利要求3、5或6所述系统,其特征在于,
所述主机,还用于向所述SSD发送TRIM指令;
所述SSD,还用于根据所述第一属性表判断所述TRIM指令对应的逻辑地址中是否包括属性为预分配的第四逻辑地址,若是,则将所述第一属性表中的所述第四逻辑地址的属性更新为空闲;根据所述第一映射表和所述第四逻辑地址确定与所述第四逻辑地址存在映射关系的第一物理地址,将所述第二属性表中与所述第四逻辑地址存在映射关系的第一物理地址的属性更新为空闲,并将所述第一映射表中所述四逻辑地址映射的第一物理地址更新为无效地址或零;其中,所述第四逻辑地址为所述至少一个第一逻辑地址中的地址。
8.根据权利要求3、5~7任一所述系统,其特征在于,所述SSD中还记录有第二映射表,所述第二映射表用于记录预分配的第一物理地址和预分配的第一逻辑地址之间的映射关系;
所述SSD,还用于当执行垃圾回收操作时,根据第二属性表判断待擦除目标块对应的物理地址中是否包括属性为预分配的第二物理地址,若是,则重新为与所述第二物理地址映射的第五逻辑地址在所述SSD映射一个第三物理地址,并将所述第二映射表和所述第一映射表中的所述第二物理地址更新为所述第三物理地址;将所述第二属性表中的所述第三物理地址的属性更新为预分配,所述第二物理地址的属性更新为空闲。
9.根据权利要求3、5~7任一所述系统,其特征在于,所述SSD,还用于当执行垃圾回收操作时,根据第二属性表判断待擦除目标块对应的物理地址中是否包括属性为预分配的第二物理地址,若是,则重新为与所述第二物理地址映射的第五逻辑地址在所述SSD映射一个第三物理地址,并将所述第一映射表中的所述第二物理地址更新为所述第三物理地址;将所述第二属性表中的所述第三物理地址的属性更新为预分配,所述第二物理地址的属性更新为空闲。
10.一种数据处理的方法,其特征在于,包括:
主机生成预分配指令,所述预分配指令包括起始逻辑地址和长度;所述预分配指令用于指示SSD在所述SSD中分配第一存储空间,所述起始逻辑地址和长度用于所述SSD确定至少一个第一逻辑地址,所述第一逻辑地址为需要所述SSD在所述SSD中映射一个第一物理地址的地址;
所述主机向所述SSD发送所述预分配指令;
其中,所述主机通过第一存储传输协议与所述SSD进行通信。
11.根据权里要求10所述的方法,其特征在于,所述主机向所述SSD发送所述预分配指令,包括,
当所述主机所在的系统的输入/输出I/O负载小于或等于第一阈值时,所述主机向所述SSD发送所述预分配指令;或者,
当所述主机所在的系统初始化时,所述主机向所述SSD发送所述预分配指令;或者,
在所述主机为所述主机创建的RAID组分配热备空间后,所述主机向所述SSD发送所述预分配指令。
12.根据权利要求10所述的方法,其特征在于,若所述主机创建了RAID组,所述RAID组的热备空间包括至少一个所述第一存储空间,在所述RAID组中任一数据盘故障时,所述热备空间用于故障数据盘的数据恢复。
13.一种数据处理的方法,其特征在于,包括
固态硬盘SSD从主机接收预分配指令,所述预分配指令包括起始逻辑地址和长度;所述主机通过第一存储传输协议与所述SSD进行通信;
所述SSD,根据所述起始逻辑地址和所述长度确定至少一个第一逻辑地址,并为所述至少一个第一逻辑地址中每个第一逻辑地址在所述SSD中映射一个第一物理地址,得到所述第一存储空间。
14.根据权利要求13所述的方法,其特征在于,所述SSD中包括第一映射表、第一属性表和第二属性表,所述第一映射表用于标识所述SSD中逻辑地址和物理地址的映射关系,所述第一属性表用于标识各个逻辑地址的预分配属性,所述预分配的属性包括预分配、空闲和已写入;所述第二属性表,用于标识各个物理地址的分配属性,所述分配属性包括空闲、预分配、有效和失效;
在所述SSD初始化时,所述SSD将所述第一映射表中每个逻辑地址映射的物理地址初始化为一个无效地址或零;以及,将所述第一属性表中每个逻辑地址的属性初始化为空闲;将所述第二属性表中每个物理地址的属性初始化为空闲;
在所述SSD从主机接收预分配指令之后,还包括:
所述SSD将所述第一映射表中所述第一逻辑地址映射的物理地址更新为所述SSD根据所述预分配指令为所述第一逻辑地址在所述SSD中映射的第一物理地址;
所述SSD将所述第一属性表中的所述第一逻辑地址的属性更新为预分配,将所述第二属性表中的所述第一物理地址的属性更新为预分配。
15.根据权利要求13或14所述的方法,其特征在于,所述SSD中还记录有第二映射表,所述第二映射表用于记录预分配的物理地址和预分配的逻辑地址的映射关系;
当所述SSD执行垃圾回收操作时,所述SSD根据所述第二属性表判断待擦除目标块对应的物理地址中是否包括属性为预分配的第二物理地址;
若是,则所述SSD重新为与所述第二物理地址映射的第二逻辑地址在所述SSD映射一个第三物理地址;
所述SSD将所述第二映射表和所述第一映射表中的所述第二物理地址更新为所述第三物理地址,将所述第二属性表中所述第三物理地址的属性更新为预分配,将所述第二物理地址的属性更新为空闲。
16.根据权利要求13或14所述的方法,其特征在于,
当所述SSD执行垃圾回收操作时,所述SSD根据所述第二属性表判断待擦除目标块对应的物理地址中是否包括属性为预分配的第二物理地址;
若是,则所述SSD重新为与所述第二物理地址映射的第二逻辑地址在所述SSD映射一个第三物理地址;
所述SSD将所述第一映射表中的所述第二物理地址更新为所述第三物理地址,将所述第二属性表中所述第三物理地址的属性更新为预分配,将所述第二物理地址的属性更新为空闲。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811064458.8A CN110895445B (zh) | 2018-09-12 | 2018-09-12 | 数据处理方法和系统 |
PCT/CN2019/094139 WO2020052321A1 (zh) | 2018-09-12 | 2019-07-01 | 数据处理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811064458.8A CN110895445B (zh) | 2018-09-12 | 2018-09-12 | 数据处理方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110895445A true CN110895445A (zh) | 2020-03-20 |
CN110895445B CN110895445B (zh) | 2021-09-14 |
Family
ID=69778180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811064458.8A Active CN110895445B (zh) | 2018-09-12 | 2018-09-12 | 数据处理方法和系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110895445B (zh) |
WO (1) | WO2020052321A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737051A (zh) * | 2020-06-12 | 2020-10-02 | 苏州浪潮智能科技有限公司 | 一种SSD固态硬盘的trim数据校验测试方法、装置及系统 |
CN112199045A (zh) * | 2020-10-12 | 2021-01-08 | 长江存储科技有限责任公司 | 存储装置以及数据操作方法 |
CN113032013A (zh) * | 2021-01-29 | 2021-06-25 | 成都商汤科技有限公司 | 一种数据传输方法、芯片、设备和存储介质 |
CN113741816A (zh) * | 2021-08-31 | 2021-12-03 | 杭州海康威视数字技术股份有限公司 | 块设备的操作方法、装置、设备及机器可读存储介质 |
CN113986123A (zh) * | 2021-10-22 | 2022-01-28 | 深圳忆联信息系统有限公司 | 基于行为监控的ssd优化管理方法、装置及计算机设备 |
CN114741327A (zh) * | 2022-04-22 | 2022-07-12 | 中科驭数(北京)科技有限公司 | 一种垃圾回收方法及装置 |
CN114817093A (zh) * | 2022-06-30 | 2022-07-29 | 苏州浪潮智能科技有限公司 | 一种数据传输方法、系统、装置及存储介质 |
CN115878052A (zh) * | 2023-03-08 | 2023-03-31 | 苏州浪潮智能科技有限公司 | Raid阵列巡检方法、巡检装置和电子设备 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102546740B1 (ko) | 2020-10-20 | 2023-06-26 | 성균관대학교산학협력단 | 스토리지 장치, 스토리지 장치의 동작 방법, 및 스토리지 장치를 포함하는 스토리지 시스템 |
CN112286720B (zh) * | 2020-10-28 | 2023-08-01 | 四川效率源信息安全技术股份有限公司 | Sm2246en主控的固态硬盘启用trim命令后提取被删除数据的方法 |
CN112559564B (zh) * | 2020-11-19 | 2022-08-12 | 山东云海国创云计算装备产业创新中心有限公司 | 一种应用层状态信息的存取方法、装置和介质 |
CN112527195B (zh) * | 2020-12-04 | 2023-01-06 | 四川效率源信息安全技术股份有限公司 | 一种提取固态硬盘物理数据的方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436419A (zh) * | 2010-09-29 | 2012-05-02 | 三星电子株式会社 | 非易失性存储器系统及管理其电源的方法 |
CN102576333A (zh) * | 2009-10-05 | 2012-07-11 | 马维尔国际贸易有限公司 | 非易失性存储器中的数据高速缓存 |
US20120215966A1 (en) * | 2011-02-22 | 2012-08-23 | Nec Corporation | Disk array unit and control method thereof |
CN103019971A (zh) * | 2012-11-25 | 2013-04-03 | 向志华 | 快速响应trim命令的方法、SSD控制器及系统 |
CN103425600A (zh) * | 2013-08-23 | 2013-12-04 | 中国人民解放军国防科学技术大学 | 一种固态盘闪存转换层中的地址映射方法 |
CN103699337A (zh) * | 2013-12-04 | 2014-04-02 | 华为技术有限公司 | 一种基于独立磁盘冗余阵列raid的写控制方法及系统 |
CN106527971A (zh) * | 2016-10-08 | 2017-03-22 | 华中科技大学 | 一种提升ssd在垃圾回收器件期间读性能的方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101458668A (zh) * | 2008-12-19 | 2009-06-17 | 成都市华为赛门铁克科技有限公司 | 缓存数据块的处理方法和硬盘 |
US8341340B2 (en) * | 2010-07-21 | 2012-12-25 | Seagate Technology Llc | Multi-tier address mapping in flash memory |
CN102567257B (zh) * | 2011-12-26 | 2014-08-27 | 华中科技大学 | 一种控制多通道固态盘数据读写的方法 |
CN102841851B (zh) * | 2012-07-19 | 2015-09-09 | 深圳市江波龙电子有限公司 | 闪存管理方法和闪存设备 |
CN104346287B (zh) * | 2013-08-09 | 2019-04-16 | Lsi公司 | 在固态介质中使用多级别映射的修整机制 |
US9766814B2 (en) * | 2015-08-10 | 2017-09-19 | Intel Corporation | Method and apparatus for defect management in a non-volatile memory device |
-
2018
- 2018-09-12 CN CN201811064458.8A patent/CN110895445B/zh active Active
-
2019
- 2019-07-01 WO PCT/CN2019/094139 patent/WO2020052321A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102576333A (zh) * | 2009-10-05 | 2012-07-11 | 马维尔国际贸易有限公司 | 非易失性存储器中的数据高速缓存 |
CN102436419A (zh) * | 2010-09-29 | 2012-05-02 | 三星电子株式会社 | 非易失性存储器系统及管理其电源的方法 |
US20120215966A1 (en) * | 2011-02-22 | 2012-08-23 | Nec Corporation | Disk array unit and control method thereof |
CN103019971A (zh) * | 2012-11-25 | 2013-04-03 | 向志华 | 快速响应trim命令的方法、SSD控制器及系统 |
CN103425600A (zh) * | 2013-08-23 | 2013-12-04 | 中国人民解放军国防科学技术大学 | 一种固态盘闪存转换层中的地址映射方法 |
CN103699337A (zh) * | 2013-12-04 | 2014-04-02 | 华为技术有限公司 | 一种基于独立磁盘冗余阵列raid的写控制方法及系统 |
CN106527971A (zh) * | 2016-10-08 | 2017-03-22 | 华中科技大学 | 一种提升ssd在垃圾回收器件期间读性能的方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737051A (zh) * | 2020-06-12 | 2020-10-02 | 苏州浪潮智能科技有限公司 | 一种SSD固态硬盘的trim数据校验测试方法、装置及系统 |
CN112199045A (zh) * | 2020-10-12 | 2021-01-08 | 长江存储科技有限责任公司 | 存储装置以及数据操作方法 |
CN113032013A (zh) * | 2021-01-29 | 2021-06-25 | 成都商汤科技有限公司 | 一种数据传输方法、芯片、设备和存储介质 |
CN113741816A (zh) * | 2021-08-31 | 2021-12-03 | 杭州海康威视数字技术股份有限公司 | 块设备的操作方法、装置、设备及机器可读存储介质 |
CN113986123A (zh) * | 2021-10-22 | 2022-01-28 | 深圳忆联信息系统有限公司 | 基于行为监控的ssd优化管理方法、装置及计算机设备 |
CN114741327A (zh) * | 2022-04-22 | 2022-07-12 | 中科驭数(北京)科技有限公司 | 一种垃圾回收方法及装置 |
CN114741327B (zh) * | 2022-04-22 | 2024-04-19 | 中科驭数(北京)科技有限公司 | 一种垃圾回收方法及装置 |
CN114817093A (zh) * | 2022-06-30 | 2022-07-29 | 苏州浪潮智能科技有限公司 | 一种数据传输方法、系统、装置及存储介质 |
CN114817093B (zh) * | 2022-06-30 | 2022-12-02 | 苏州浪潮智能科技有限公司 | 一种数据传输方法、系统、装置及存储介质 |
WO2024001338A1 (zh) * | 2022-06-30 | 2024-01-04 | 苏州元脑智能科技有限公司 | 一种数据传输方法、系统、装置及存储介质 |
CN115878052A (zh) * | 2023-03-08 | 2023-03-31 | 苏州浪潮智能科技有限公司 | Raid阵列巡检方法、巡检装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2020052321A1 (zh) | 2020-03-19 |
CN110895445B (zh) | 2021-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110895445B (zh) | 数据处理方法和系统 | |
US8738874B2 (en) | Storage controller and storage control method for snapshot acquisition and remote copying of a snapshot | |
US11347655B2 (en) | Memory system and method for controlling nonvolatile memory | |
US20200073586A1 (en) | Information processor and control method | |
CN110109915B (zh) | 用于管理哈希表的方法、设备和计算机程序产品 | |
US10503424B2 (en) | Storage system | |
US11874815B2 (en) | Key-value storage device and method of operating the same | |
US10891074B2 (en) | Key-value storage device supporting snapshot function and operating method thereof | |
US7257675B2 (en) | Disk array device having snapshot simulation function | |
JP2002366423A (ja) | フラッシュメモリの管理方法 | |
US10877701B2 (en) | Scale-out type storage system | |
CN112596667A (zh) | 在固态驱动器中组织nand块并放置数据以便于随机写入的高吞吐量的方法和系统 | |
EP3748509A1 (en) | System garbage collection method and method for collecting garbage in solid state hard disk | |
CN114372007A (zh) | 存储器系统及控制非易失性存储器的控制方法 | |
WO2019184012A1 (zh) | 数据写入方法、客户端服务器和系统 | |
CN110737394B (zh) | 管理缓存的方法、装置和计算机程序产品 | |
US20080301393A1 (en) | Apparatus and method of processing data of non-volatile memory | |
KR102648391B1 (ko) | 메모리 내의 데이터를 액세스하는 방법과 이를 이용하는 메모리 장치 | |
CN115639970B (zh) | 基于磁盘阵列卡的存储虚拟化方法、系统、装置及设备 | |
US11042316B1 (en) | Reordered data deduplication in storage devices | |
KR20210068699A (ko) | 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법 | |
US9569113B2 (en) | Data storage device and operating method thereof | |
CN111124257B (zh) | 用于管理独立盘冗余阵列的方法、设备和计算机程序产品 | |
US11947419B2 (en) | Storage device with data deduplication, operation method of storage device, and operation method of storage server | |
US10146466B1 (en) | Merging mapping metadata to promote reference counting efficiency |
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 |