CN110955610A - 操作存储装置的方法、存储装置和存储系统 - Google Patents
操作存储装置的方法、存储装置和存储系统 Download PDFInfo
- Publication number
- CN110955610A CN110955610A CN201910455931.3A CN201910455931A CN110955610A CN 110955610 A CN110955610 A CN 110955610A CN 201910455931 A CN201910455931 A CN 201910455931A CN 110955610 A CN110955610 A CN 110955610A
- Authority
- CN
- China
- Prior art keywords
- data
- disks
- target
- write operation
- log
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 126
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000011084 recovery Methods 0.000 claims description 60
- 238000013507 mapping Methods 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 34
- 101100386054 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) CYS3 gene Proteins 0.000 description 8
- 230000003252 repetitive effect Effects 0.000 description 8
- 101150035983 str1 gene Proteins 0.000 description 8
- 101100535994 Caenorhabditis elegans tars-1 gene Proteins 0.000 description 4
- 101150108015 STR6 gene Proteins 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 101150075071 TRS1 gene Proteins 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 101150101057 PBA1 gene Proteins 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- 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
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- 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
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- 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
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- 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
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
Abstract
公开一种操作存储装置的方法、存储装置和存储系统。在一种操作包括多个盘的存储装置的方法中,所述多个盘被分别划分为多个日志区和多个数据区。当接收到对所述多个盘之中的多个目标盘的写入命令时,执行第一写入操作,以将待写入的目标数据存储到所述多个目标盘的日志区中。所述多个目标盘包括在同一阵列中。在第一写入操作完成之后,执行第二写入操作,以将目标数据存储到所述多个目标盘的数据区中。
Description
本申请要求于2018年9月27日提交到韩国知识产权局(KIPO)的第10-2018-0114813号韩国专利申请的优先权,所述韩国专利申请的内容通过整体引用包含于此。
技术领域
示例实施例总体涉及半导体集成电路,更具体地讲,涉及操作存储装置的方法、执行所述方法的存储装置和包括所述存储装置的存储系统。
背景技术
存储系统包括主机装置和存储装置,存储装置可以是包括存储器控制器和存储器装置或者仅包括存储器装置的存储器系统。在存储系统中,主机装置和存储装置通过各种接口标准(诸如,通用闪存(UFS)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、串行连接SCSI(SAS)、嵌入式多媒体卡(eMMC)等)彼此连接。
最近,为了数据持久性和性能目的,许多存储系统使用日志方案。这样的存储系统存储两个数据副本:一个在日志部分,另一个在数据部分。在这样的存储系统中,可能需要额外的元件或装置来建立日志部分。
发明内容
本公开的至少一个示例实施例提供一种能够防止数据写入操作中的写入孔(write-hole)的操作存储装置的方法。
本公开的至少一个示例实施例提供一种执行所述方法并且能够防止数据写入操作中的写入孔的存储装置。
本公开的至少一个示例实施例提供一种包括所述存储装置的存储系统。
根据示例实施例,在一种操作包括多个盘的存储装置的方法中,所述多个盘分别被划分为多个日志区和多个数据区。当接收到对所述多个盘之中的多个目标盘的写入命令时,执行第一写入操作,以将待写入的目标数据存储到所述多个目标盘的日志区中。所述多个目标盘包括在同一阵列中。在第一写入操作完成之后,执行第二写入操作,以将目标数据存储到所述多个目标盘的数据区中。
根据示例实施例,一种存储装置,包括:多个盘,被配置为:分别被划分为多个日志区和多个数据区。当接收到对所述多个盘之中的多个目标盘的写入命令时,执行第一写入操作,以将待写入的目标数据存储到所述多个目标盘的日志区中,所述多个目标盘包括在同一阵列中。在第一写入操作完成之后,执行第二写入操作以将目标数据存储到所述多个目标盘的数据区中。
根据示例实施例,一种存储系统,包括:主机装置以及存储装置。存储装置被主机装置控制并且包括分别被划分为多个日志区和多个数据区的多个盘。当写入命令和待写入的目标数据从主机装置提供时,存储装置执行第一写入操作,以将目标数据存储到所述多个盘之中的多个目标盘的日志区中,并且在第一写入操作完成之后执行第二写入操作,以将目标数据存储到所述多个目标盘的数据区中。所述多个目标盘包括在同一阵列中。
根据示例实施例,一种由非易失性存储器系统执行的方法包括:(1)从非易失性存储器系统外部的主机装置接收第一写入命令;(2)响应于第一写入命令,执行将从主机装置接收的第一目标数据写入与第一逻辑地址相关联的非易失性存储器系统的第一物理位置中的第一写入操作;以及(3)在完成第一写入命令之后,执行第二写入操作,使得存储第一目标数据的非易失性存储器系统的物理地址被与第一逻辑地址不同的第二逻辑地址标识。
在操作存储装置的方法中,盘内日志方案可被实现,使得所述多个盘中的每个具有用于自身的日志区,并且日志方案可在存储装置中没有额外的元件或装置的情况下被采用。此外,当电源故障和/或盘故障发生时,基于日志方案(例如,盘内日志方案),重放写入操作或数据恢复操作可被有效地执行。因此,存储装置的性能和可靠性可被改善或增强。
附图说明
通过以下结合附图进行的详细描述,将会更清楚地理解说明性的、非限制性的示例实施例。
图1是示出根据示例实施例的操作存储装置的方法的流程图。
图2是示出根据示例实施例的存储装置和包括存储装置的存储系统的框图。
图3是示出根据示例实施例的包括在存储装置中的日志区的示例的示图。
图4是示出执行图1的方法中的第一写入操作和第二写入操作的示例的流程图。
图5A、图5B、图5C、图5D和图6是用于描述图4中的第一写入操作和第二写入操作的示图。
图7是示出执行图1的方法中的第一写入操作和第二写入操作的另一示例的流程图。
图8和图9是用于描述图7中的第一写入操作和第二写入操作的示图。
图10是示出执行图1的方法中的第一写入操作和第二写入操作的另一示例的流程图。
图11是用于描述图10中的第一写入操作和第二写入操作的示图。
图12是示出根据示例实施例的操作存储装置的方法的流程图。
图13是示出执行图12的方法中的重放写入操作的示例的流程图。
图14A、图14B、图14C和图15是用于描述图13中的重放写入操作的示图。
图16是示出根据示例实施例的包括在存储装置中的日志区的另一示例的示图。
图17是示出执行图12的方法中的重放写入操作的另一示例的流程图。
图18A、图18B和图18C是用于描述图17中的重放写入操作的示图。
图19是示出根据示例实施例的操作存储装置的方法的流程图。
图20是示出执行图19的方法中的数据恢复操作的示例的流程图。
图21A、图21B和图21C是用于描述图20中的数据恢复操作的示图。
图22是示出执行图19的方法中的数据恢复操作的另一示例的流程图。
图23A、图23B和图23C是用于描述图22中的数据恢复操作的示图。
图24是示出根据示例实施例的包括在存储装置中的日志区的另一示例的示图。
图25是示出包括在图24的日志区中的元块的示例的示图。
图26是示出执行图19的方法中的数据恢复操作的另一示例的流程图。
图27A、图27B和图27C是用于描述图26中的数据恢复操作的示图。
图28是示出根据示例实施例的存储装置和包括存储装置的存储系统的框图。
图29是示出根据示例实施例的电子系统的框图。
具体实施方式
将参照示出了实施例的附图更充分地描述各种示例实施例。然而,本公开可以以许多不同的形式实施,并且不应被解释为限于在此阐述的实施例。贯穿本申请,相同的参考标号表示相同的元件。
图1是示出根据示例实施例的操作存储装置的方法的流程图。
参照图1,执行或实施根据示例实施例的方法的存储装置包括多个盘(disk)。多个盘中的每个形成独立的存储空间。
此外,存储装置设置了独立盘冗余阵列(RAID)架构,以提高操作速度和稳定性。具有RAID架构的存储装置通常包括多个盘(例如,多个非易失性存储器装置),并且输入数据分布在多个盘上。具有RAID架构的存储装置能够通过并行地(或同时地)访问多个盘来提高操作速度。此外,具有RAID架构的存储装置能够与输入数据一起存储奇偶校验数据。因此,尽管在向多个盘写入数据和/或从多个盘读取数据期间发生物理错误,但是具有RAID架构的存储装置能够使用共存储的(co-stored)奇偶校验数据来恢复错误的(或“损坏的”)数据。这样,具有RAID架构的存储装置提供增强的数据可靠性或稳定性。
在根据示例实施例的操作存储装置的方法中,分别将多个盘划分为多个日志区和多个数据区(步骤S100)。换句话说,多个盘中的每个可在内部具有用于自身的日志区或写入日志(例如,以通过自身临时存储数据)。
在一些示例实施例中,可在制造存储装置的时间或者在存储装置的初始操作时间执行步骤S100,以在多个盘中设置多个日志区和多个数据区。在制造存储装置的时间或存储装置的初始操作时间之后,可通过加载设置多个日志区和多个数据区的结果来代替步骤S100。
当接收到对多个盘之中的多个目标盘的写入命令时,执行第一写入操作,以将待写入的目标数据存储到多个目标盘的日志区中(步骤S200)。多个目标盘包括在同一阵列(例如,RAID架构的同一阵列)中。在第一写入操作完成之后,执行第二写入操作,以将目标数据存储到多个目标盘的数据区中(步骤S300)。换句话说,目标数据可首先被写入日志区中,然后,在对日志区的写入操作完成之后,目标数据可被写入数据区(例如,最终位置)中。
在第二写入操作完成之后,可释放存储在多个目标盘的日志区中的目标数据(步骤S400)。如果第二写入操作成功完成,则存储在多个目标盘的日志区中的目标数据可不再被需要,因此目标数据可从日志区释放。
根据示例实施例的存储装置基于日志方案或日志文件系统来驱动。在日志方案中,准备了名为“日志”的区域。当特定的写入操作发生时,数据和/或元数据首先被存储在日志区中,而不直接存储在存储装置的存储位置中。与一个写入操作相关联的所有数据和元数据存储在日志区中,并且这样的数据和元数据的流被分组为事务(transaction)单元。以这种方式,若干个事务被写入日志区中,然后,基于后台作业、工作或任务,被完全写入日志区中的特定事务被写入存储装置的存储位置(例如,数据区的最终位置)中。如果包括在特定事务中的所有数据和元数据被完全存储在数据区中,则特定事务从日志区中被删除,以获得另一个写入操作所需的日志区的空间。
在使用如上所述的日志方案的情况下,即使在存储装置上发生电源故障,也可保持存储装置的一致性。例如,如果特定写入操作被电源故障中断,则特定写入操作的结果将分别被保留在数据区和日志区中。根据日志文件系统,已被写入数据区但已被中断的写入操作可以是以完整和完全写入日志区中的事务的形式存在的作业。在这个示例中,通过在重启或重新挂载(remount)存储装置时扫描日志区,中断的写入操作可被快速完成。在被写入日志区中的同时,另一个写入操作可能已被中断。在这个示例中,未完成的事务将被存储在日志区中,并且通过在重启或重新挂载存储装置时忽略未完成的事务,文件系统的一致性可被保持。换句话说,通过采取步骤来恢复或忽略在电源故障时可能发生的所有情况,存储装置的一致性可被保持。
在根据示例实施例的操作存储装置的方法中,盘内日志(in-disk journaling)方案可被实现,使得多个盘中的每个具有用于自身的日志区,并且日志方案可在存储装置中没有附加的元件或装置的情况下被采用。此外,当电源故障和/或盘故障发生时,基于日志方案(例如,盘内日志方案),重放(replay)写入操作或数据恢复操作可被有效地执行。因此,存储装置的性能和数据可靠性可被改善或增强。
图2是示出根据示例实施例的存储装置和包括存储装置的存储系统的框图。
参照图2,存储系统100包括主机装置200和存储装置300。
主机装置200控制存储系统100的整体操作。主机装置200可包括处理器210和主机存储器220。
处理器210可控制主机装置200的操作。例如,处理器210可执行操作系统(OS)。操作系统可包括用于文件管理的文件系统和用于在操作系统层控制包括存储装置300的外围装置的装置驱动器。例如,处理器210可包括各种处理单元(例如,中央处理器(CPU)等)中的至少一个。
主机存储器220可存储由处理器210执行和/或处理的指令和/或数据。主机存储器220可以是具有相对高或快的操作速度的任意存储器装置。例如,主机存储器220可包括各种易失性存储器装置(例如,动态随机存取存储器(DRAM)等)中的至少一个。
存储装置300由主机装置200访问并且包括多个盘310、320、……、330。多个盘310~330中的每个被划分为各自的日志区JA和各自的数据区DA。如上所述,数据区DA是数据将被实际存储的区域,日志区JA是用于日志方案的区域,其中,数据在被存储在数据区DA之前被临时和预先存储在日志区JA。例如,数据区DA的大小可大于日志区JA的大小。
多个盘310~330中的每个可以是独立的存储空间。多个盘310~330中的每个可以是由主机装置200以存储器块为单位来访问的任意的存储器装置。例如,多个盘310~330中的每个可包括各种非易失性存储装置(例如,电可擦除可编程只读存储器(EEPROM)、闪存、相变随机存取存储器(PRAM)、电阻式随机存取存储器(RRAM)、纳米浮栅存储器(NFGM)、聚合物随机存取存储器(PoRAM)、磁随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)等)中的至少一个。
在一些示例实施例中,多个盘310~330中的每个可仅包括一个非易失性存储器装置。在其他示例实施例中,多个盘310~330中的每个可包括多个非易失性存储器装置和用于控制多个非易失性存储器装置的存储器控制器。例如,多个盘310~330中的每个可以是固态驱动器(SSD)、多媒体卡(MMC)、嵌入式多媒体卡(eMMC)、通用闪存(UFS)等之一。
当写入命令WCMD、写入地址WADDR和待写入的目标数据WDAT从主机装置200被提供时,存储装置300执行第一写入操作,以将目标数据WDAT存储到包括在同一阵列中的多个目标盘的日志区JA中,并且在第一写入操作完成之后执行第二写入操作,以将目标数据WDAT存储到多个目标盘的数据区DA中。在第二写入操作完成之后,存储装置300可释放存储在多个目标盘的日志区JA中的目标数据WDAT。换句话说,存储装置300可基于来自主机装置200的请求,执行或实施图1中的步骤S100、S200、S300和S400。
在一些示例实施例中,存储装置300可通过块可访问接口连接到主机装置200,其中,块可访问接口可包括例如串行高级技术附件(SATA)总线、非易失性存储器快速(NVMe)总线、串行连接SCSI(SAS)总线等。存储装置300可使用与多个盘310~330的访问大小相应的块可访问地址空间,将块可访问接口提供给主机装置200,以允许以存储器块为单位的针对存储在多个盘310~330中数据的访问。
在一些示例实施例中,图2的存储系统100可以是在主机装置200的操作系统上设置RAID架构而不需要额外的RAID控制器的软件RAID系统。
图3是示出根据示例实施例的包括在存储装置中的日志区的示例的示图。
图3示出分别包括在四个盘(例如,图5A中的DISK1、DISK2、DISK3和DISK4)中的四个日志区JA1、JA2、JA3和JA4。在下文中,将基于四个盘形成一个阵列(例如,一组盘)并且一次对一个阵列中的四个盘执行写入操作的示例(例如,多个目标盘包括四个盘的示例),来描述示例实施例。
参照图3,日志区JA1~JA4可包括:超级块SB1、SB2、SB3和SB4;元块MB01、MB02、MB03、MB04、MB11、MB12、MB13和MB14;以及数据块D01、D02、D03、P0、D11、D12、P1、D13、D21、D22、D23、P2、P3、D31、D32、D33、D41、D42、D43、P4、P5、D51、D52、D53、D61、D62、P6和D63。
在下文中,术语“数据块”可用于包括用于存储将被存储的实际数据的块和用于存储关于实际数据的奇偶校验数据的块。在一些情况下,仅“存储将被存储的实际数据的块”可被称为数据块,存储奇偶校验数据的块可被称为奇偶校验块。
对存储装置300的写入操作可以以条带(stripe)为单位和以事务为单位执行。条带可表示一次被写入多个目标盘中的单位。如参照图1所述,事务可表示用于将日志方案的特定数据进行分组或分束(bundle)的单位。一个条带可包括将被存储的实际数据和关于实际数据的奇偶校验数据。一个事务可包括两个或更多个条带。
在图3的示例中,数据块D01、D02、D03和P0可形成条带STR0,数据块D11、D12、P1和D13可形成条带STR1,数据块D21、D22、D23和P2可形成条带STR2,数据块P3、D31、D32和D33可形成条带STR3,数据块D41、D42、D43和P4可形成条带STR4,数据块P5、D51、D52和D53可形成条带STR5,数据块D61、D62、P6和D63可形成条带STR6。此外,条带STR0、STR1、STR2和STR3可形成事务TRS0,条带STR4、STR5和STR6可形成事务TRS1。每个事务的参考标号中的最后的数字可表示事务标识(ID)。例如,事务ID可顺序地增加。
超级块SB1~SB4可存储日志区JA1~JA4的关键信息或主要信息。例如,超级块SB1~SB4中的每个可存储与初始事务相关联的初始事务信息和日志区JA1~JA4中的每个的大小信息,其中,初始事务信息指示重放写入操作的起始点。初始事务可以是在由于电源故障或系统崩溃而执行重放写入操作的时间有效的第一事务。例如,初始事务信息可包括初始事务的ID信息和指示初始事务的日志区内的块偏移的提交(commit)信息。例如,一个日志区可包括一个超级块。
元块MB01~MB14可存储与当前事务(例如,相应的或每个事务)相关联的信息,具体地讲,存储当前事务所需的信息和包括在当前事务中的每个块的信息。例如,与当前事务相关联的信息可包括当前事务的ID信息、当前事务的最终位置块地址信息、当前事务的属性信息以及用于检查当前事务中的元数据和数据块的有效性的校验和(checksum)信息。例如,一个日志区中的元块的数量可基本上等于事务的数量。
数据块D01~D63可存储当前事务的数据。例如,当前事务的数据可包括将被存储的实际数据和关于实际数据的奇偶校验数据。每个数据块的参考标号中的第一个字母字符“D”和“P”可分别表示实际数据和奇偶校验数据。
例如,第一超级块SB1可存储第一日志区JA1的关键信息或主要信息。第一超级块SB1可包括与第一日志区JA1的第一初始事务相关联的第一初始事务信息(例如,第一初始事务的ID信息和提交信息)和第一日志区JA1的大小信息。例如,如果第一初始事务是事务TRS1,则第一初始事务的ID信息可以是“1”,并且第一初始事务的提交信息可以是作为从第一超级块SB1到事务TRS1的元块MB11的块的数量的“6”。类似地,第二超级块SB2、第三超级块SB3和第四超级块SB4可分别存储第二日志区JA2、第三日志区JA3和第四日志区JA4的关键信息或主要信息。
元块MB01可存储与事务TRS0相关联的信息。在元块MB01中,当前事务的ID信息可以是“0”,当前事务的最终位置块地址信息可包括数据块D01、D11、D21和P3将被存储在包括第一日志区JA1的第一盘的第一数据区中的块地址(例如,物理地址),当前事务的属性信息可包括数据块D01、D11、D21和P3的属性,当前事务的校验和信息可包括用于检查数据块D01、D11、D21和P3的有效性的校验和。类似地,元块MB02、MB03和MB04可分别存储与事务TRS0相关联的信息,元块MB11、MB12、MB13和MB14可分别存储与事务TRS1相关联的信息。
在一些示例实施例中,存储在超级块SB1~SB4和元块MB01~MB14中的信息的至少一部分可由包括在同一阵列中的多个目标盘共享。例如,存储在超级块SB1~SB4中的信息之中的初始事务信息可由多个目标盘共享,存储在元块MB01~MB14中的当前事务的最终位置块地址信息和属性信息可由包括在同一阵列中的多个目标盘共享。
换句话说,第一超级块SB1可存储第一日志区JA1的第一初始事务信息,并且还可存储其他日志区JA2~JA4的初始事务信息。此外,元块MB01可存储数据块D01、D11、D21和P3的最终位置块地址和属性,并且还可存储包括在同一事务(例如,TRS0)中的其他数据块D02、D12、D22、D31、D03、P1、D23、D32、P0、D13、P2和D33的最终位置块地址和属性。如稍后将描述的,这样的共享信息可用于在电源故障和/或盘故障之后执行的重放写入操作和/或数据恢复操作。
图4是示出执行图1的方法中的第一写入操作和第二写入操作的示例的流程图。图5A、图5B、图5C、图5D和图6是用于描述图4中的第一写入操作和第二写入操作的示图。
参照图1、图4、图5A、图5B、图5C、图5D和图6,当执行第一写入操作和第二写入操作时,如图5A中所示,可首先在包括在主机装置200中的主机存储器220中准备待写入的目标数据DX1、DX2、DX3和PX。例如,目标数据DX1、DX2、DX3和PX可对应于一个条带。
如图5B中所示,基于写入命令(例如,图2中的WCMD),可执行第一写入操作,以将目标数据DX1、DX2、DX3和PX一次存储到目标盘DISK1~DISK4的日志区JA1~JA4中(步骤S200)。在第一写入操作期间,目标数据DX1、DX2、DX3和PX可从存储装置300外部的主机存储器220提供。
例如,如图6中所示,可将包括在目标数据DX1、DX2、DX3和PX中的第一数据DX1存储在包括在目标盘DISK1~DISK4之中的第一盘DISK1中的第一数据块D01中(步骤S210)。第一数据块D01可具有物理块地址PBA0、PBA1、……、PBA10、PBA11之中的第一物理块地址PBA0。此外,可将逻辑块地址LBA10、LBA11、……、LBA1000、LBA1001之中的第一逻辑块地址LBA10与第一数据块D01的第一物理块地址PBA0进行映射(步骤S220)。第一逻辑块地址LBA10可指示第一盘DISK1的日志区JA1。图6中的箭头①可对应于图4中的步骤S210,图6中的箭头②可对应于图4中的步骤S220。
类似地,可将其他数据DX2、DX3和PX分别存储在包括在其他盘DISK2~DISK4中的数据块中,并且可将相应的逻辑块地址分别与相应的物理块地址进行映射。
如图5C中所示,在第一写入操作完成之后,可执行第二写入操作,以将目标数据DX1、DX2、DX3和PX一次存储到目标盘DISK1~DISK4的数据区DA1~DA4(步骤S300)。在图4的示例中,在第二写入操作期间,目标数据DX1、DX2、DX3和PX可从存储装置300外部的主机存储器220提供。
例如,如图6中所示,可将第一数据DX1存储在包括在第一盘DISK1中的第二数据块DP1中(步骤S310)。第二数据块DP1可与第一数据块D01区分开,并且可具有与第一物理块地址PBA0不同的第二物理块地址PBA10。此外,可将与第一逻辑块地址LBA10不同的第二逻辑块地址LBA1000与第二数据块DP1的第二物理块地址PBA10进行映射(步骤S320)。第二逻辑块地址LBA1000可指示第一盘DISK1的数据区DA1。图6中的箭头③可对应于图4中的步骤S310,图6中的箭头④可对应于图4中的步骤S320。
类似地,可将其他数据DX2、DX3和PX分别存储在包括在其他盘DISK2~DISK4中的其他数据块中,并且将相应的逻辑块地址分别与相应的物理块地址进行映射。
如图5D中所示,在第二写入操作完成之后,可释放目标数据DX1、DX2、DX3和PX(步骤S400)。可释放主机存储器220中的目标数据DX1、DX2、DX3和PX,并且还可释放存储在目标盘DISK1~DISK4的日志区JA1~JA4中的目标数据DX1、DX2、DX3和PX。例如,如图6中所示,可释放第一逻辑块地址LBA10与第一物理块地址PBA0之间的映射(步骤S410)。图6中的X标记⑤可对应于图4中的步骤S410。
在一些示例实施例中,当在步骤S410中释放映射的同时,可不擦除或删除存储在第一数据块D01中的第一数据DX1。换句话说,步骤S410的操作可足以释放地址映射,并且日志区JA1中的第一数据DX1稍后可通过后台作业被删除。
在图4的示例中,目标数据DX1、DX2、DX3和PX可从外部主机存储器220接收两次,并且目标数据DX1、DX2、DX3和PX可被物理地写入目标盘DISK1~DISK4中两次。此外,目标盘DISK1~DISK4的日志区JA1~JA4和数据区DA1~DA4可在逻辑上和物理上彼此区分。
尽管图5A、图5B、图5C和图5D示出了对一个条带连续地执行第一写入操作和第二写入操作,但是实际上可对包括多个条带的一个事务执行第一写入操作,并且可在第一写入操作完成之后对同一事务执行第二写入操作。
图7是示出执行图1的方法中的第一写入操作和第二写入操作的另一示例的流程图。图8和图9是用于描述图7中的第一写入操作和第二写入操作的示图。将省略关于图4、图5A、图5B、图5C、图5D和图6的重复描述。
参照图1、图7、图8和图9,第一写入操作可与参照图5A和图5B描述的第一写入操作基本相同,图7中的步骤S210和S220可分别与图4中的步骤S210和S220基本相同。图9中的箭头①和②可分别与图6中的箭头①和②基本相同。
如图8中所示,在第一写入操作完成之后,可执行第二写入操作,以将目标数据DX1、DX2、DX3和PX一次存储到目标盘DISK1~DISK4的数据区DA1~DA4中(步骤S300)。在图7的示例中,在第二写入操作期间,目标数据DX1、DX2、DX3和PX可在存储装置300中内部地提供,而不是从外部主机存储器220提供。
例如,如图9中所示,指示第一盘DISK1的数据区DA1的第二逻辑块地址LBA1000可与第一数据块D01的第一物理块地址PBA0进行映射,同时在同一时间释放指示第一盘DISK1的日志区JA1的第一逻辑块地址LBA10与第一物理块地址PBA0之间的映射(步骤S330)。图9中的箭头和X标记③’可对应于图7中的步骤S330。
在一些示例实施例中,基于从主机装置200接收的移动命令或者由存储装置300内部生成的移动命令,步骤S330中的地址映射释放操作和地址重新映射操作可基本上同时地或并发地执行。
在一些示例实施例中,当如参照图7所述执行第二写入操作时,可省略图1中的步骤S400。
图10是示出执行图1的方法中的第一写入操作和第二写入操作的另一示例的流程图。图11是用于描述图10中的第一写入操作和第二写入操作的示图。将省略关于图4、图5A、图5B、图5C、图5D、图6和图8的重复描述。
参照图1、图8、图10和图11,第一写入操作可与参照图5A和图5B描述的第一写入操作基本相同,图10中的步骤S210和S220可分别与图4中的步骤S210和S220基本相同。图11中的箭头①和②可分别与图6中的箭头①和②基本相同。
在第一写入操作完成之后,可与参照图8描述的第二写入操作类似地执行第二写入操作(步骤S300)。例如,如图11中所示,可将指示第一盘DISK1的数据区DA1的第二逻辑块地址LBA1000与第一数据块D01的第一物理块地址PBA0进行映射,同时保持指示第一盘DISK1的日志区JA1的第一逻辑块地址LBA10与第一物理块地址PBA0之间的映射(步骤S340)。图11中的箭头③”可对应于图10中的步骤S340。
在一些示例实施例中,可基于从主机装置200接收的或者由存储装置300内部生成的共享命令,执行步骤S340中的地址复制映射操作。
如参照图5D所述,在第二写入操作完成之后,可释放目标数据DX1、DX2、DX3和PX(步骤S400)。例如,如图11中所示,可释放第一逻辑块地址LBA10与第一物理块地址PBA0之间的映射(步骤S410)。图11中的X标记④”可对应于图10中的步骤S410,并且图10中的步骤S410可与图4中的步骤S410基本相同。
与图7的示例不同,可在图10的示例中的地址复制映射操作之后执行地址映射释放操作,因此,可更有效地处理或应对电源故障和/或盘故障。
在图7和图10的示例中,目标数据DX1、DX2、DX3和PX可一次从外部主机存储器220接收,目标数据DX1、DX2、DX3和PX可一次被物理地写入目标盘DISK1~DISK4中,因此,数据写入成本可降低。此外,目标盘DISK1~DISK4的日志区JA1~JA4和数据区DA1~DA4可在逻辑上彼此区分,但是可不在物理上彼此区分。
图12是示出根据示例实施例的操作存储装置的方法的流程图。将省略关于图1的重复描述。
参照图12,在根据示例实施例的操作存储装置的方法中,图12中的步骤S100可与图1中的步骤S100基本相同。
当在存储装置上发生电源故障之后重启存储装置时,基于多个目标盘的日志区对多个目标盘的数据区执行重放写入操作(步骤S500)。换句话说,可防止由于电源故障导致的文件系统的不一致,并且可使用多个目标盘的日志区来保持文件系统的一致性。
在一些示例实施例中,可在第一写入操作和第二写入操作中的至少一个期间发生电源故障之后重启存储装置时执行重放写入操作。换句话说,尽管没有在图12中示出,但是图1中的步骤S200和S300中的至少一个可包括在图12中的步骤S100与S500之间。
图13是示出执行图12的方法中的重放写入操作的示例的流程图。图14A、图14B、图14C和图15是用于描述图13中的重放写入操作的示图。在图14A和接下来的附图中,表示超级块、元块和数据块的参考标号也可分别用于表示存储在超级块、元块和数据块中的信息和/或数据。
参照图3、图12、图13、图14A、图14B、图14C和图15,当执行重放写入操作时,可在存储系统100在电源故障之后被重启之后,立即从目标盘DISK1~DISK4的日志区JA1~JA4读取超级块SB1~SB4来确定重放写入操作的起始点(步骤S510)。
例如,如图14A中所示,读取的超级块SB1~SB4可被发送到存储装置300外部的主机存储器220。主机装置200可基于包括在超级块SB1~SB4中的初始事务信息来确定重放写入操作的起始点。为了确定重放写入操作的起始点,包括在超级块SB1~SB4中的初始事务信息可由包括在同一阵列中的多个目标盘共享。
在一些示例实施例中,当包括在所有超级块SB1~SB4中的初始事务的ID信息彼此基本相同时,可选择与相同的ID相应的事务作为重放写入操作的起始点。
在其他示例实施例中,当包括在超级块SB1~SB4中的初始事务的ID信息彼此不同时,可选择与最小的ID相应的事务作为重放写入操作的起始点。例如,当包括在超级块SB1、SB3和SB4中的初始事务的ID信息是“1”并且包括在超级块SB2中的初始事务的ID信息是“0”时,可确定与最小的ID相应的事务TRS0尚未在日志区JA1~JA4中被释放,因此可选择事务TRS0作为重放写入操作的起始点(例如,重放写入操作可从事务TRS0开始)。
可通过从目标盘DISK1~DISK4的日志区JA1~JA4读取与重放写入操作的起始点相关联的元块和数据块来检查有效性(步骤S520)。
例如,如图14B中所示,当事务TRS0如上所述被选择作为重放写入操作的起始点时,元块MB之中的用于事务TRS0的元块MB01~MB04和数据块D/P之中的用于事务TRS0的数据块D01、D02、D03和P0可被读出并被发送到外部主机存储器220。尽管图14B示出仅事务TRS0的一些数据块D01、D02、D03和P0被读出,但是实际上事务TRS0的所有数据块D01、D02、D03、P0、D11、D12、P1、D13、D21、D22、D23、P2、P3、D31、D32和D33可被读出。
在一些示例实施例中,可执行读取事务TRS0中的所有数据块D01~D33的信息并将它与元块MB01~MB04的校验和信息进行比较的操作,以进行有效性检查。
当在步骤S520中检查到读取的元块和读取的数据块有效时,可将包括在读取的数据块中的数据写入目标盘DISK1~DISK4的数据区DA1~DA4中(步骤S530)。
在一些示例实施例中,如图14C中所示,数据块D01、D02、D03和P0可从外部主机存储器220接收并被写入数据区DA1~DA4中。换句话说,图14C的操作可类似于图5C的操作。
在其他示例实施例中,如图15中所示,数据块D01、D02、D03和P0可在存储装置300中内部地提供,而不是从外部主机存储器220提供,并且被写入数据区DA1~DA4中。换句话说,图15的操作可类似于图8的操作,并且可基于参照图9和图11描述的移动命令和共享命令中的一个内部地被执行。
当读取的元块和读取的数据块无效时,可对下一个或后续的事务(例如,事务TRS1)重复步骤S520和S530。以这种方式,日志区JA1~JA4中的所有有效事务可被写入数据区DA1~DA4中。
图16是示出根据示例实施例的包括在存储装置中的日志区的另一示例的示图。将省略关于图3的重复描述。
参照图16,日志区JA1~JA4可包括超级块SB1~SB4、元块MB01~MB14、数据块D01~D63以及提交块CB01、CB02、CB03、CB04、CB11、CB12、CB13和CB14。在图16的示例中,数据块D01、D02、D03和P0可形成条带STR0,数据块D11、D12、P1和D13可形成条带STR1,数据块D21、D22、D23和P2可形成条带STR2,数据块P3、D31、D32和D33可形成条带STR3,数据块D41、D42、D43和P4可形成条带STR4,数据块P5、D51、D52和D53可形成条带STR5,数据块D61、D62、P6和D63可形成条带STR6。此外,条带STR0、STR1、STR2和STR3可形成事务TRS0’,条带STR4、STR5和STR6可形成事务TRS1’。
除了图16的示例还包括提交块CB01~CB14之外,图16的示例可与图3的示例基本相同。
提交块CB01~CB14可确保对当前事务的写入操作已成功完成。换句话说,提交块可用于确保包括在一个事务中的所有数据块/奇偶校验块已被完全写入日志区JA1~JA4中。
由于提交块是一个事务中的最后一个块,因此可使用元块确定一个事务中的提交块的位置。例如,元块可自身知道数据块/奇偶校验块的数量,因此可基于数据块/奇偶校验块的数量来获得提交块的位置。因此,在系统重启的情况下,可通过仅读取元块来检查提交块的位置,并且可在不读取数据块/奇偶校验块的情况下执行有效性检查。
图17是示出执行图12的方法中的重放写入操作的另一示例的流程图。图18A、图18B和图18C是用于描述图17中的重放写入操作的示图。将省略关于图13、图14A、图14B、图14C和图15的重复描述。
参照图12、图16、图17、图18A、图18B和18C,当执行重放写入操作时,图17中的步骤S510可与图13中的步骤S510基本相同,图18A的操作可与图14A的操作基本相同。
可通过从目标盘DISK1~DISK4的日志区JA1~JA4读取与重放写入操作的起始点相关联的元块和提交块来检查有效性(步骤S540)。
例如,如图18B中所示,当事务TRS0被选择作为重放写入操作的起始点时,元块MB之中用于事务TRS0的元块MB01~MB04和提交块CB之中用于事务TRS0的提交块CB01~CB04可被读出,并被发送到外部主机存储器220。
当在步骤S540中检查到读取的元块和读取的提交块有效时,可将包括在与读取的元块和读取的提交块相应的数据块中的数据写入目标盘DISK1~DISK4的数据区DA1~DA4中(步骤S550)。
例如,如图18C中所示,数据块D01、D02、D03和P0可在存储装置300内部地提供并被写入数据区DA1~DA4中。图18C的操作可与图15的操作基本相同,并且可基于移动命令和共享命令中的一个内部地执行。
在图17的示例中,数据块D01、D02、D03和P0不被发送到外部主机存储器220,因此数据块D01、D02、D03和P0不会如图14C的操作中那样从外部主机存储器220接收,并且不会被写入数据区DA1~DA4中。此外,可通过使用提交块CB01~CB04而不是将事务中的所有数据块的校验和信息与元块的校验和信息进行比较,来相对简单地检查有效性。因此,重启时间可被减小以具有改善的性能。
图19是示出根据示例实施例的操作存储装置的方法的流程图。将省略关于图1和图12的重复描述。
参照图19,在根据示例实施例的操作存储装置的方法中,图19中的步骤S100可与图1中的步骤S100基本相同。
当在存储装置上发生电源故障并且在至少一个目标盘上发生盘故障之后存储装置被重启时,对故障盘执行数据恢复操作(步骤S600)。
在执行数据恢复操作之后,基于多个目标盘的日志区对多个目标盘的数据区执行重放写入操作(步骤S700)。图19中的步骤S700可类似于图12中的步骤S500。
尽管没有在图19中示出,但是图1中的步骤S200和S300中的至少一个可被包括在图19中的步骤S100与S600之间。
图20是示出执行图19的方法中的数据恢复操作的示例的流程图。图21A、图21B和图21C是用于描述图20中的数据恢复操作的示图。
参照图3、图19、图20、图21A、图21B和图21C所示,当执行数据恢复操作时,可用备用盘代替故障盘(步骤S610)。
例如,如图21A中所示,盘故障可能发生在目标盘DISK1~DISK4之中的第二盘DISK2上(例如,图21A中的X标记)。在这个示例中,如图21B中所示,第二盘DISK2可被备用盘DISKSP代替。
备用盘DISKSP可以是包括在存储装置300中的多个盘310~330中的一个,在正常操作期间不会被使用,并且在盘故障时可用于代替故障盘。与普通盘DISK1~DISK4一样,备用盘DISKSP也可被划分为日志区JASP和数据区DASP。
当发生盘故障时,作为第二盘DISK2中的数据的日志区JA2中的所有超级块SB2、元块MB和数据块D/P以及数据区DA2的数据块可被损坏。可使用同一阵列中的其他未损坏盘DISK1、DISK3和DISK4中的数据来执行数据恢复操作。
例如,可执行第一恢复操作,以基于多个目标盘之中的除了故障盘DISK2之外的盘DISK1、DISK3和DISK4的日志区JA1、JA3和JA4,恢复与故障盘DISK2的日志区JA2相应的备用盘DISKSP的日志区JASP(步骤S620)。此外,可执行第二恢复操作,以基于多个目标盘之中的除了故障盘DISK2之外的盘DISK1、DISK3和DISK4的数据区DA1、DA3和DA4,恢复与故障盘DISK2的数据区DA2相应的备用盘DISKSP的数据区DASP(步骤S630)。
在图20的示例中,如图21C中所示,第一恢复操作和第二恢复操作可基本上同时地或并发地被执行。图21C中的箭头和可对应于第一恢复操作,图21C中的箭头和可对应于第二恢复操作。可基于正常或一般的恢复算法中的至少一个来执行第一恢复操作和第二恢复操作。作为第一恢复操作和第二恢复操作的结果,与存储在盘DISK2中的数据基本相同的数据可被恢复。
在数据恢复操作完成之后,可以以参照图3至图18描述的方式执行重放写入操作。
图22是示出执行图19的方法中的数据恢复操作的另一示例的流程图。图23A、图23B和图23C是用于描述图22中的数据恢复操作的示图。将省略关于图20、图21A、图21B和图21C的重复描述。
参照图3、图19、图22、图23A、图23B和图23C,当执行数据恢复操作时,图22中的步骤S610可与图20中的步骤S610基本相同。例如,如图21A和图21B中所示,故障盘DISK2可被备用盘DISKSP代替。
与图20的示例一样,可执行第一恢复操作和第二恢复操作以恢复故障盘DISK2中的数据。然而,与图20的示例不同,在图22的示例中,第一恢复操作和第二恢复操作可被顺序地执行。此外,存储装置300可在第一恢复操作完成之后在降级模式(degraded mode)下操作,直到第二恢复操作和重放写入操作完成为止。
例如,如图23A中所示。可首先仅执行第一恢复操作以恢复备用盘DISKSP的日志区JASP(步骤S620)。图22中的步骤S620可与图20中的步骤S620基本相同,图23A中的箭头和可与图21C中的箭头和基本相同。为了减少数据恢复时间,可通过仅检查有效日志区来执行恢复操作。
当第一恢复操作完成时,如图23B中所示,可将日志区JA1、JASP、JA3和JA4的有效块发送到外部主机存储器220,并且可形成用于搜索发送的有效块的数据结构(步骤S625)。从数据结构被形成的时间开始,存储装置300可在降级模式下操作(步骤S640)。
如图23C中所示,在第一恢复操作完成之后并且在数据结构形成之后,可执行第二恢复操作以恢复备用盘DISKSP的数据区DASP(步骤S650)。图22中的步骤S650可与图20中的步骤S630基本相同,图23C中的箭头 和可与图21C中的箭头和基本相同。
在数据恢复操作完成之后,可以以参照图13至图18描述的方式执行重放写入操作。
通常,存储装置可在能够在数据恢复操作期间通过多个正常盘的组合来访问故障盘中的数据的降级模式下操作。然而,因为日志区的有效的最新数据没有反映在数据区中,所以在图20的示例中降级模式不会被使用,因此,存储装置不会被访问,直到数据恢复操作和重放写入操作完成为止。
在图22的示例中,可首先恢复日志区,可将日志区中的恢复数据发送到主机存储器220以形成数据结构,然后可在数据恢复操作和重放写入操作期间使用降级模式。例如,当在降级模式下的操作期间从主机装置200接收到访问请求时,可搜索在主机存储器220中形成的日志区的数据结构,以检查最新的数据是否存在于日志区中,并反映最新的数据。如果访问请求与日志区中的数据无关,则数据区中的数据可被反映。当数据区的恢复完成时,日志区的有效数据可反映在数据区中,降级模式可被终止,存储装置300可开始在正常模式下操作。因此,存储装置300的性能可被改善或增强。
图24是示出根据示例实施例的包括在存储装置中的日志区的另一示例的示图。图25是示出包括在图24的日志区中的元块的示例的示图。将省略关于图3的重复描述。
参照图24,日志区JA1~JA4可包括超级块SB1~SB4、元块MB01~MB14以及数据块D01、D02、D03、P0、D12、P1、D13、D21、P2、P3、D31、D32、D33、D42、P4、P5、D51、D52、D53、D61、D62、P6和D63。
与图3相比较,仅一个条带中的修改的数据块可被存储在图24中的日志区JA1~JA4中。
在图3的示例中,当现有数据(或旧数据)被新数据更新时,包括在一个条带中的所有数据块不会总是被修改。例如,一些数据块可被修改并且一些其他数据块可被保持。然而,写入操作应该总是以条带为单位执行,因此即使仅数据块的一部分被修改,修改的数据块和未修改的数据块二者也应被一次写入数据区。例如,在图3中,条带STR0中的所有数据块D01、D02、D03和P0可被写入日志区JA1~JA4中,而不管它们是否被修改,然后日志区JA1~JA4中的数据块D01、D02、D03和P0可被写入数据区DA1~DA4中。
另一方面,在图24的示例中,仅修改的数据块可被写入日志区JA1~JA4中。例如,在条带STR0中,所有数据块D01、D02和D03可被修改和写入,因此奇偶校验块P0可被修改和写入。在条带STR1中,仅一些数据块D12和D13可被修改和写入,数据块D11不会被修改并且不会被写入,因此奇偶校验块P1可被修改和写入。如果一个条带中的一个或多个数据块被修改,则奇偶校验块应始终被修改。当条带STR1将被写入数据区DA1~DA4中时,日志区JA2、JA3和JA4中的块D12、P1和D13以及数据区DA1中的现有数据块(例如,D11)可用于将条带STR1写入数据区DA1~DA4中。
类似地,在条带STR2和STR3中,仅一些数据块D21、D31、D32和D33可被修改和写入,因此奇偶校验块P2和P3可被修改和写入。在条带STR4、STR5和STR6中,仅一些数据块D42、D51、D52、D53、D61、D62和D63可被修改和写入,因此奇偶校验块P4、P5和P6可被修改和写入。
如上所述,通过仅存储修改的数据块,可节省日志区JA1~JA4的存储空间。这样的方案可被称为小写入方案(small write scheme)或小写入优化操作方案(small writeoptimization operation scheme)。
参照图25,在图25中示出了与事务TRS0相应的元块MB01~MB04的示例。
如参照图24所述,当仅修改的数据块被存储到日志区JA1~JA4中时,可在元块中标记:未修改的块尚未被写入日志区。
例如,由于条带STR0、STR2和STR3的数据块D01、D21和P3被写入盘DISK1的日志区JA1中,并且块P3存储奇偶校验数据,所以“存在(EST)”可被标记在条带STR0、STR2和STR3的属性中,并且“不存在(NEST)”可被标记在条带STR1的属性中。此外,“奇偶校验(PRT)”可被标记在条带STR3的属性中。类似地,盘DISK2,DISK3,……中的条带STR0、STR1、STR2和STR3的属性可被标记。
此外,由于包括在同一条带中的盘的块地址被布置在同一行上,因此“下一非地址(NADDR)”可被标记在盘DISK1的最后一个条带STR3的属性中,并且盘DISK2,DISK3,……的最终位置块地址可被省略。换句话说,当标记“非地址(NADDR)”时,其他盘DISK2,DISK3,……的最终位置块地址可与盘DISK1的最终位置块地址基本相同。
另外,在使用小写入方案的情况下,由于包括在同一事务中的元块的偏移彼此不同,所以所有盘的元块的偏移信息可被记录在超级块中。元块MB01~MB04可共享最终位置块地址信息和属性信息。
图26是示出执行图19的方法中的数据恢复操作的另一示例的流程图。图27A、图27B和图27C是用于描述图26中的数据恢复操作的示图。将省略关于图20、图21A、图21B、图21C、图22、图23A、图23B和图23C的重复描述。
参照图19、图24、图25、图26、图27A、图27B和图27C,当执行数据恢复操作时,图26中的步骤S610可与图20中的步骤S610基本相同。例如,如图27A和图27B中所示,故障盘DISK4可被备用盘DISKSP代替。
与图20的示例一样,可执行第一恢复操作和第二恢复操作以恢复故障盘DISK4中的数据。在图26的示例中,因为数据基于参照图24和图25描述的小写入方案被存储,所以日志区的恢复操作可被改变。
例如,可执行第一恢复操作,以基于多个目标盘之中的除了故障盘DISK4之外的盘DISK1、DISK2和DISK3的日志区和数据区,恢复与故障盘DISK4的日志区JA4相应的备用盘DISKSP的日志区JASP(步骤S660)。由于修改的数据块DX1N和修改的奇偶校验块PXN分别存储在日志区JA1和JA4中,并且由于未修改的数据块DX20和DX30分别存储在数据区DA2和DA3中,所以可通过使用日志区JA1和数据区DA2以及DA3来恢复日志区JA4。图27C中的箭头和可对应于第一恢复操作。
可执行第二恢复操作以恢复备用盘DISKSP的数据区DASP(步骤S670)。步骤S670可与图20的步骤S630中一样,与第一恢复操作同时执行,或者可与图22的步骤S650中一样,在第一恢复操作完成之后执行。
图28是示出根据示例实施例的存储装置和包括存储装置的存储系统的框图。将省略关于图2的重复描述。
参照图28,存储系统100a包括主机装置200和存储装置300a。
除了图28中的存储装置300a还包括存储控制器301之外,图28中的存储系统100a和存储装置300a可分别与图2中的存储系统100和存储装置300基本相同。
存储控制器301可控制存储装置300a的操作。图28的存储系统100a可以是硬件RAID系统,在硬件RAID系统中,RAID架构有RAID控制器(例如,存储控制器301)。
尽管没有在图28中示出,但是存储装置300a还可包括连接到存储控制器301的辅助电源。
图29是示出根据示例实施例的电子系统的框图。
参照图29,电子系统4000包括至少一个处理器4100、通信模块4200、显示/触摸模块4300、存储装置4400和缓冲存储器4500。
处理器4100控制电子系统4000的操作。处理器4100可执行操作系统和至少一个应用,以提供互联网浏览器、游戏、视频等。通信模块4200被实现为执行与外部装置的无线或有线通信。显示/触摸模块4300被实现为显示由处理器4100处理的数据和/或通过触摸板接收数据。存储装置4400被实现为存储用户数据,并且基于根据示例实施例的操作存储装置的方法来驱动。缓冲存储器4500临时存储用于处理电子系统4000的操作的数据。
本公开可应用于各种电子装置和包括存储装置与存储系统的电子系统。例如,本公开可应用于诸如移动电话、智能电话、平板电脑、膝上型计算机、个人数字助理(PDA)、便携式多媒体播放器(PMP)、数码相机、便携式游戏机、音乐播放器、摄像机、视频播放器、导航装置、可穿戴装置、物联网(IoT)装置、万物互联网(IoE)装置、电子书阅读器、虚拟现实(VR)装置、增强现实(AR)装置、机器人装置等的系统。
如在本领域中的传统,可按照执行描述的功能的块来描述和示出实施例。在此可被称为单元或模块等的这些块由诸如逻辑门、集成电路、微处理器、微控制器、存储器电路、无源电子元件、有源电子元件、光学元件、硬连线电路等的模拟和/或数字电路来物理实现,并且可通过固件和/或软件来可选择地驱动。所述电路可例如实现在一个或多个半导体芯片中,或者实现在诸如印刷电路板等的基板支撑件上。构成块的电路可由专用硬件、或者由处理器(例如,一个或多个编程的微处理器和相关联的电路)或者由执行块的一些功能的专用硬件与执行块的其他功能的处理器的组合来实现。在不脱离本公开的范围的情况下,可将实施例的每个块在物理上分为两个或多个相互作用和分立的块。同样地,在不脱离本公开的范围的情况下,可将实施例的块在物理上组合为更复杂的块。
前述是对示例实施例的说明,并且将不被解释为对示例实施例的限制。虽然已经描述了一些示例实施例,但是本领域的技术人员将容易理解,在实质不脱离示例实施例的新颖教导和优点的情况下,很多修改在示例实施例中是可行的。因此,所有这样的修改意图包括在如权利要求中限定的示例实施例的范围内。因此,将理解,前述是对各个示例实施例的说明并且将不被解释为限于公开的特定示例实施例,对公开的示例实施例以及其他示例实施例的那些修改意图包括在所附权利要求的范围内。
Claims (20)
1.一种操作包括多个盘的存储装置的方法,所述方法包括:
分别将所述多个盘划分为多个日志区和多个数据区;
当接收到对所述多个盘之中的多个目标盘的写入命令时,执行第一写入操作,以将待写入的目标数据存储到所述多个目标盘的日志区中,所述多个目标盘包括在同一阵列中;以及
在第一写入操作完成之后,执行第二写入操作,以将目标数据存储到所述多个目标盘的数据区中。
2.根据权利要求1所述的方法,其中,
执行第一写入操作的步骤包括:
将包括在目标数据中的第一数据存储到包括在所述多个目标盘之中的第一盘中的第一数据块中,第一数据块具有第一物理块地址;以及
将指示第一盘的日志区的第一逻辑块地址与第一物理块地址进行映射,
执行第二写入操作的步骤包括:
将第一数据存储到包括在第一盘中的第二数据块中,第二数据块具有第二物理块地址;以及
将指示第一盘的数据区的第二逻辑块地址与第二物理块地址进行映射。
3.根据权利要求1所述的方法,其中,
执行第一写入操作的步骤包括:
将包括在目标数据中的第一数据存储到包括在所述多个目标盘之中的第一盘中的第一数据块中,第一数据块具有第一物理块地址;以及
将指示第一盘的日志区的第一逻辑块地址与第一物理块地址进行映射,
执行第二写入操作的步骤包括:基于移动命令,将指示第一盘的数据区的第二逻辑块地址与第一物理块地址进行映射,同时释放第一逻辑块地址与第一物理块地址之间的映射。
4.根据权利要求1所述的方法,其中,
执行第一写入操作的步骤包括:
将包括在目标数据中的第一数据存储到包括在所述多个目标盘之中的第一盘中的第一数据块中,第一数据块具有第一物理块地址;以及
将指示第一盘的日志区的第一逻辑块地址与第一物理块地址进行映射,
执行第二写入操作的步骤包括:基于共享命令,将指示第一盘的数据区的第二逻辑块地址与第一物理块地址进行映射,同时保持第一逻辑块地址与第一物理块地址之间的映射。
5.根据权利要求1所述的方法,还包括:在第二写入操作完成之后,释放存储在所述多个目标盘的日志区中的目标数据。
6.根据权利要求1所述的方法,其中,
以条带为单位和以包括两个或更多个条带的事务为单位,对所述多个目标盘一次执行第一写入操作和第二写入操作中的每个,
所述多个日志区中的每个包括:
超级块,被配置为:存储与初始事务相关联的指示重放写入操作的起始点的初始事务信息和所述多个日志区中的每个的大小信息;
元块,被配置为:存储当前事务的标识信息、当前事务的最终位置块地址信息、当前事务的属性信息以及用于检查当前事务的有效性的校验和信息;以及
数据块,被配置为存储当前事务的数据。
7.根据权利要求6所述的方法,其中,存储在超级块和元块中的信息的至少一部分被包括在同一阵列中的所述多个目标盘共享。
8.根据权利要求6所述的方法,其中,所述多个日志区中的每个还包括:提交块,被配置为:确保对当前事务的写入操作成功完成。
9.根据权利要求6所述的方法,其中,仅一个条带中的数据块之中的修改的数据块被存储在所述多个日志区中。
10.根据权利要求1所述的方法,还包括:当在存储装置上发生电源故障之后存储装置被重启时,基于所述多个目标盘的日志区对所述多个目标盘的数据区执行重放写入操作。
11.根据权利要求10所述的方法,其中,执行重放写入操作的步骤包括:
通过从所述多个目标盘的日志区读取超级块来确定重放写入操作的起始点;
通过从所述多个目标盘的日志区读取与重放写入操作的起始点相关联的元块和数据块来检查有效性;以及
当读取的元块和读取的数据块有效时,将包括在读取的数据块中的数据写入所述多个目标盘的数据区中。
12.根据权利要求11所述的方法,其中,将包括在数据块中的数据写入所述多个目标盘的数据区中的操作由存储装置基于移动命令或者共享命令内部地执行。
13.根据权利要求10所述的方法,其中,执行重放写入操作的步骤包括:
通过从所述多个目标盘的日志区读取超级块来确定重放写入操作的起始点;
通过从所述多个目标盘的日志区读取与重放写入操作的起始点相关联的元块和提交块来检查有效性;以及
当读取的元块和读取的提交块有效时,将包括在读取的数据块中的数据写入所述多个目标盘的数据区中,数据块包括在所述多个目标盘的日志区中并且对应于元块和提交块。
14.根据权利要求1所述的方法,还包括:当在存储装置上发生电源故障并且在所述多个目标盘之中的第一盘上发生盘故障之后存储装置被重启时,对第一盘执行数据恢复操作。
15.根据权利要求14所述的方法,其中,执行数据恢复操作的步骤包括:
用备用盘代替第一盘;
基于所述多个目标盘之中的除了第一盘之外的盘的日志区,执行第一恢复操作,以恢复与第一盘的日志区相应的备用盘的日志区;以及
基于所述多个目标盘之中的除了第一盘之外的盘的数据区,执行第二恢复操作,以恢复与第一盘的数据区相应的备用盘的数据区。
16.根据权利要求15所述的方法,其中,第一恢复操作和第二恢复操作被同时执行。
17.根据权利要求15所述的方法,其中,第二恢复操作在第一恢复操作完成之后被执行。
18.根据权利要求14所述的方法,其中,执行数据恢复操作的步骤包括:
用备用盘代替第一盘;
基于所述多个目标盘之中的除了第一盘之外的盘的日志区和数据区,执行第一恢复操作,以恢复与第一盘的日志区相应的备用盘的日志区;以及
基于所述多个目标盘之中的除了第一盘之外的盘的数据区,执行第二恢复操作,以恢复与第一盘的数据区相应的备用盘的数据区。
19.一种存储装置,包括:
多个盘,被配置为:分别被划分为多个日志区和多个数据区,其中,
当接收到对所述多个盘之中的多个目标盘的写入命令时,执行第一写入操作,以将待写入的目标数据存储到所述多个目标盘的日志区中,所述多个目标盘包括在同一阵列中,
在第一写入操作完成之后,执行第二写入操作,以将目标数据存储到所述多个目标盘的数据区中。
20.一种存储系统,包括:
主机装置;以及
存储装置,被主机装置控制并且包括多个盘,所述多个盘被配置为:分别被划分为多个日志区和多个数据区,其中,
当写入命令和待写入的目标数据从主机装置提供时,存储装置被配置为:执行第一写入操作,以将目标数据存储到所述多个盘之中的多个目标盘的日志区中,并且在第一写入操作完成之后执行第二写入操作,以将目标数据存储到所述多个目标盘的数据区中,
所述多个目标盘包括在同一阵列中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0114813 | 2018-09-27 | ||
KR1020180114813A KR20200035592A (ko) | 2018-09-27 | 2018-09-27 | 스토리지 장치의 구동 방법, 이를 수행하는 스토리지 장치 및 이를 포함하는 스토리지 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110955610A true CN110955610A (zh) | 2020-04-03 |
Family
ID=66677078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910455931.3A Pending CN110955610A (zh) | 2018-09-27 | 2019-05-29 | 操作存储装置的方法、存储装置和存储系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11487663B2 (zh) |
EP (1) | EP3629142B1 (zh) |
KR (1) | KR20200035592A (zh) |
CN (1) | CN110955610A (zh) |
SG (1) | SG10201907405QA (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112463306A (zh) * | 2020-12-03 | 2021-03-09 | 南京机敏软件科技有限公司 | 一种虚拟机中共享盘数据一致性的方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200035592A (ko) | 2018-09-27 | 2020-04-06 | 삼성전자주식회사 | 스토리지 장치의 구동 방법, 이를 수행하는 스토리지 장치 및 이를 포함하는 스토리지 시스템 |
KR102226184B1 (ko) * | 2020-02-25 | 2021-03-10 | 한국과학기술원 | 디스크 배열을 위한 캐시베리어 명령 처리 방법 및 이를 위한 장치 |
US11861198B2 (en) * | 2022-04-25 | 2024-01-02 | Netapp, Inc. | Journal replay optimization |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1959827A (zh) * | 2005-11-03 | 2007-05-09 | 日立环球储存科技荷兰有限公司 | 存储装置上的数据的微日志 |
CN101661414A (zh) * | 2008-08-27 | 2010-03-03 | 株式会社日立制作所 | 计算机系统及其备份方法 |
CN102945201A (zh) * | 2011-09-11 | 2013-02-27 | 微软公司 | 已验证数据集合的非易失性介质日志记录 |
CN106502587A (zh) * | 2016-10-19 | 2017-03-15 | 华为技术有限公司 | 磁盘数据管理方法和磁盘控制装置 |
CN107111528A (zh) * | 2015-03-04 | 2017-08-29 | 闪迪技术有限公司 | 用于存储错误管理的系统和方法 |
US20180052768A1 (en) * | 2016-08-16 | 2018-02-22 | Samsung Electronics., Ltd. | Memory controller, nonvolatile memory system, and operating method thereof |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7240235B2 (en) | 2002-03-13 | 2007-07-03 | Intel Corporation | Journaling technique for write transactions to mass storage |
JP2004259079A (ja) * | 2003-02-27 | 2004-09-16 | Hitachi Ltd | データ処理システム |
US7533298B2 (en) | 2005-09-07 | 2009-05-12 | Lsi Corporation | Write journaling using battery backed cache |
JP4749112B2 (ja) * | 2005-10-07 | 2011-08-17 | 株式会社日立製作所 | 記憶制御システム及び方法 |
EP2024809A2 (en) * | 2006-05-03 | 2009-02-18 | Data Robotics Incorporated | Filesystem-aware block storage system, apparatus, and method |
US20100138603A1 (en) | 2008-12-03 | 2010-06-03 | Atul Mukker | System and method for preventing data corruption after power failure |
KR100981064B1 (ko) | 2009-02-18 | 2010-09-09 | 한국과학기술원 | 저널링 파일 시스템을 이용한 소프트웨어 레이드에서의 일관성 유지방법 |
KR101562794B1 (ko) | 2009-08-04 | 2015-10-26 | 삼성전자주식회사 | 데이터 저장 장치 |
WO2013070273A1 (en) | 2011-04-01 | 2013-05-16 | Nexsan Corporation | Journaling raid system |
US9396067B1 (en) * | 2011-04-18 | 2016-07-19 | American Megatrends, Inc. | I/O accelerator for striped disk arrays using parity |
US9146684B2 (en) * | 2012-09-28 | 2015-09-29 | Netapp, Inc. | Storage architecture for server flash and storage array operation |
US9423978B2 (en) * | 2013-05-08 | 2016-08-23 | Nexgen Storage, Inc. | Journal management |
KR102025180B1 (ko) * | 2013-08-08 | 2019-09-26 | 삼성전자주식회사 | 스토리지 시스템 및 그것의 쓰기 방법 |
IN2013KO01274A (zh) | 2013-11-08 | 2015-05-15 | Lsi Corp | |
KR20200035592A (ko) | 2018-09-27 | 2020-04-06 | 삼성전자주식회사 | 스토리지 장치의 구동 방법, 이를 수행하는 스토리지 장치 및 이를 포함하는 스토리지 시스템 |
-
2018
- 2018-09-27 KR KR1020180114813A patent/KR20200035592A/ko not_active Application Discontinuation
-
2019
- 2019-05-29 CN CN201910455931.3A patent/CN110955610A/zh active Pending
- 2019-05-30 EP EP19177544.4A patent/EP3629142B1/en active Active
- 2019-06-18 US US16/444,998 patent/US11487663B2/en active Active
- 2019-08-13 SG SG10201907405QA patent/SG10201907405QA/en unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1959827A (zh) * | 2005-11-03 | 2007-05-09 | 日立环球储存科技荷兰有限公司 | 存储装置上的数据的微日志 |
CN101661414A (zh) * | 2008-08-27 | 2010-03-03 | 株式会社日立制作所 | 计算机系统及其备份方法 |
CN102945201A (zh) * | 2011-09-11 | 2013-02-27 | 微软公司 | 已验证数据集合的非易失性介质日志记录 |
CN107111528A (zh) * | 2015-03-04 | 2017-08-29 | 闪迪技术有限公司 | 用于存储错误管理的系统和方法 |
US20180052768A1 (en) * | 2016-08-16 | 2018-02-22 | Samsung Electronics., Ltd. | Memory controller, nonvolatile memory system, and operating method thereof |
CN106502587A (zh) * | 2016-10-19 | 2017-03-15 | 华为技术有限公司 | 磁盘数据管理方法和磁盘控制装置 |
Non-Patent Citations (1)
Title |
---|
游理通;王振杰;黄林鹏;: "一个基于日志结构的非易失性内存键值存储系统", 计算机研究与发展, no. 09 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112463306A (zh) * | 2020-12-03 | 2021-03-09 | 南京机敏软件科技有限公司 | 一种虚拟机中共享盘数据一致性的方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3629142A3 (en) | 2020-04-15 |
KR20200035592A (ko) | 2020-04-06 |
US11487663B2 (en) | 2022-11-01 |
EP3629142B1 (en) | 2024-05-08 |
SG10201907405QA (en) | 2020-04-29 |
EP3629142A2 (en) | 2020-04-01 |
US20200104257A1 (en) | 2020-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391027B (zh) | 廉价磁盘冗余阵列存储设备及其管理方法 | |
KR102567140B1 (ko) | 데이터 관리 방법 및 이를 수행하는 저장 장치 | |
US8850114B2 (en) | Storage array controller for flash-based storage devices | |
US10216578B2 (en) | Data storage device for increasing lifetime and RAID system including the same | |
EP3629142B1 (en) | Method of operating storage device, storage device performing the same and storage system including the same | |
US8788876B2 (en) | Stripe-based memory operation | |
EP2359252B1 (en) | Storage system snapshot assisted by ssd technology | |
US8046528B2 (en) | Data writing method for flash memory, and flash memory controller and storage device thereof | |
US8738963B2 (en) | Methods and apparatus for managing error codes for storage systems coupled with external storage systems | |
US8762661B2 (en) | System and method of managing metadata | |
US9304685B2 (en) | Storage array system and non-transitory recording medium storing control program | |
JP3682256B2 (ja) | ディスクアレイ装置及び同装置におけるパリティ処理方法 | |
US20070186047A1 (en) | Method, system, and program for demoting tracks from cache | |
US20100235568A1 (en) | Storage device using non-volatile memory | |
US10963160B2 (en) | Apparatus and method for checking valid data in block capable of storing large volume data in memory system | |
US20200034081A1 (en) | Apparatus and method for processing data in memory system | |
WO2015077186A1 (en) | Method and system for forward reference logging in a persistent datastore | |
CN111435334B (zh) | 在存储器系统中检查有效数据的设备和方法 | |
US10942678B2 (en) | Method of accessing data in storage device, method of managing data in storage device and storage device performing the same | |
US11256435B2 (en) | Method and apparatus for performing data-accessing management in a storage server | |
CN113687769A (zh) | 用于提高数据处理系统中的操作效率的设备和方法 | |
CN114647594A (zh) | 非易失性存储器系统中的日志记录设备和方法 | |
CN114360620A (zh) | 检查非易失性存储器装置的错误的设备和方法 | |
JP3798773B2 (ja) | ディスク制御装置及び冗長化論理ディスクドライブの一貫性回復方法 | |
KR20220147292A (ko) | 메타 데이터 관리를 수행하는 스토리지 장치 및 이의 동작 방법 |
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 |