CN111433746B - 使用故障存储设备的重建助手 - Google Patents

使用故障存储设备的重建助手 Download PDF

Info

Publication number
CN111433746B
CN111433746B CN201980006215.5A CN201980006215A CN111433746B CN 111433746 B CN111433746 B CN 111433746B CN 201980006215 A CN201980006215 A CN 201980006215A CN 111433746 B CN111433746 B CN 111433746B
Authority
CN
China
Prior art keywords
storage device
data
storage
failed
running
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
Application number
CN201980006215.5A
Other languages
English (en)
Other versions
CN111433746A (zh
Inventor
A·库尔卡尼
V·保可霍维汀
B·W·欧卡拉夫卡
S·苏巴拉奥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of CN111433746A publication Critical patent/CN111433746A/zh
Application granted granted Critical
Publication of CN111433746B publication Critical patent/CN111433746B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1088Reconstruction on already foreseen single or plurality of spare disks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Abstract

本发明公开了用于使用故障存储设备的一个或多个正在运行的计算资源和/或存储资源在存储系统中重组数据并重建故障存储设备的方法、系统和其他方面。例如,一种方法可包括:响应于在存储系统中检测到故障存储设备,在存储系统中的一个或多个正在运行的存储设备中定位数据和冗余信息,以用于重组故障存储设备的数据;向一个或多个正在运行的存储设备发布对等命令,以从一个或多个正在运行的存储设备获得数据和冗余信息;以及基于从一个或多个正在运行的存储设备获得的数据和冗余信息重组故障存储设备的数据,其中故障计算设备的正在运行的计算资源至少部分地执行定位、发布和重组中的一者或多者。

Description

使用故障存储设备的重建助手
背景技术
本公开涉及存储系统。在更具体的示例中,本公开涉及用于使用故障存储设备的一个或多个正在运行的计算资源和/或存储资源在存储系统中重组数据并重建故障存储设备的方法和系统。
具有多个存储设备的存储系统通常采用数据冗余技术(例如,独立磁盘冗余阵列(RAID)镜像或奇偶校验、纠删码)来实现数据的重组和故障存储设备的重建。然而,用于故障存储设备的常规数据重组和重建过程可能导致系统性能显著劣化,因为系统中剩余的正在运行的存储设备可能需要用于重组丢失的数据,这可能需要大量的CPU时间以及存储系统互连器的带宽。
例如,当RAID阵列中的存储设备已发生故障时,在常规系统中,故障存储设备被推出阵列,并且RAID控制器(独立的或由主机CPU托管)向剩余的正在运行的存储设备发送附加命令以重组故障存储设备的丢失的数据。数据的重组通常由RAID控制器使用异或(XOR)或伽罗瓦域(GF)运算来执行。
发明内容
本公开涉及用于使用故障存储设备的一个或多个正在运行的计算资源和/或存储资源在存储系统中重组数据并重建故障存储设备的方法和系统。
如上所述,与用于故障存储设备的常规数据重组和重建过程相关联的问题是,这些过程可能导致在数据恢复期间系统性能显著劣化。鉴于此,需要一种用于在存储系统中重组数据并重建故障存储设备的改进的方法。
如本文所公开的本公开的各种实施方案可使用故障存储设备的一个或多个正在运行的计算资源和/或存储资源在存储系统中重组数据并且/或者重建故障存储设备。在至少一些实施方案中,故障存储设备本身可通过以对等(P2P)方式与存储系统中的剩余的正在运行的存储设备通信来参与故障存储设备数据重组和/或重建过程。此外,在至少一些实施方案中,在执行设备重建时可考虑故障存储设备的实际故障机制。例如,在故障存储设备表现出仅部分介质故障的情况下,数据重组可限于在介质的仅故障部分上执行。
因此,本公开的一个或多个实施方案可提供多个技术特征和优点,包括但不限于以下中的一个或多个:
(1)通过使用故障存储设备的正在运行的计算资源和/或存储资源来重组故障存储设备的数据,改善了故障存储设备数据重组和/或重建过程期间的系统性能。
(2)在故障存储设备中的数据部分丢失的情况下,通过具体地针对介质的故障部分执行数据重组过程,改善了故障存储设备数据重组和/或重建过程期间的系统性能。在这些情况下,系统性能的劣化可与仅实际数据损失量成比例,而不是与故障存储设备的所有数据成比例。
本公开包括但不限于以下方面:
根据一个创新方面,一种方法包括:响应于在存储系统中检测到故障存储设备,在存储系统中的一个或多个正在运行的存储设备中定位数据和冗余信息,以用于重组故障存储设备的数据;向所述一个或多个正在运行的存储设备发布一个或多个对等命令,以从所述一个或多个正在运行的存储设备获得所述数据和所述冗余信息;以及基于从该一个或多个正在运行的存储设备获得的数据和冗余信息重组故障存储设备的数据,其中故障计算设备的正在运行的计算资源至少部分地执行定位、发布和重组中的一者或多者。
根据另一个创新方面,一种装置包括:一个或多个处理器;以及逻辑部件,该逻辑部件可由该一个或多个处理器执行,该逻辑部件被配置为执行操作,这些操作包括:响应于在存储系统中检测到故障存储设备,在存储系统中的一个或多个正在运行的存储设备中定位数据和冗余信息,以用于重组故障存储设备的数据;向所述一个或多个正在运行的存储设备发布一个或多个对等命令,以从所述一个或多个正在运行的存储设备获得所述数据和所述冗余信息;以及基于从该一个或多个正在运行的存储设备获得的数据和冗余信息重组故障存储设备的数据,其中故障计算设备的正在运行的计算资源至少部分地执行定位、发布和重组中的一者或多者。
根据又一个创新方面,一种装置包括:具有一个或多个处理器的控制器;以及耦接到控制器的存储阵列,该存储阵列包括多个存储设备,其中控制器和存储阵列被配置为执行操作,这些操作包括:由控制器检测存储阵列中的故障存储设备;由所述故障存储设备在所述存储阵列中的一个或多个正在运行的存储设备中定位数据和冗余信息,以用于重组所述故障存储设备的数据;由所述故障存储设备向所述一个或多个正在运行的存储设备发布一个或多个对等命令,以从所述一个或多个正在运行的存储设备获得所述数据和所述冗余信息;由所述故障存储设备基于从所述一个或多个正在运行的存储设备获得的所述数据和所述冗余信息重组所述故障存储设备的所述数据;以及由控制器将故障存储设备的重组数据写入到存储阵列中的一个或多个可用位置。
这些和其他具体实施可各自任选地包括以下特征中的一个或多个:该方法或操作还包括将故障存储设备的重组数据写入到存储系统中的一个或多个可用位置;故障存储设备的正在运行的计算资源为设备控制器;该一个或多个对等命令包括由故障存储设备发布和执行的读取命令;方法还包括在存储系统中限定条带,条带与故障存储设备的数据以及该一个或多个正在运行的存储设备中的数据和冗余信息相关联;方法或操作还包括识别故障存储设备的包含可恢复数据的介质区段,以及将可恢复数据从故障存储设备的介质区段中的第一位置复制到故障存储设备的介质区段中的第二位置;并且故障存储设备的介质区段为存储器单元。
这些方面中的一个或多个的其他实施方式包括对应的系统、装置和计算机程序,其被配置为执行编码在计算机存储设备上的方法的动作。应当理解,本公开中使用的语言主要是出于可读性和指导目的而选择的,并不限制本文公开的主题的范围。
附图说明
本文介绍的技术通过示例而非限制的方式在附图中示出,在附图中,相同的附图标记用于指相似的元件。
图1描绘了根据一个实施方案的包括主机和存储系统的示例性计算系统的框图。
图2描绘了根据一个实施方案的用于图1所示的存储系统的示例性系统控制器的框图。
图3描绘了根据一个实施方案的用于图1所示的存储系统的示例性设备控制器的框图。
图4描绘了根据一个实施方案的用于图1所示的存储系统的示例性方法的流程图,该方法用于使用故障存储设备的一个或多个正在运行的计算资源和/或存储资源经由对等通信重组故障存储设备的数据。
图5描绘了根据一个实施方案的用于图1所示的存储系统的示例性方法的流程图,该方法用于使用故障存储设备的一个或多个正在运行的计算资源和/或存储资源经由对等通信重建故障存储设备。
图6描绘了根据一个实施方案的用于图1所示的存储系统的示例性存储阵列的框图。
图7描绘了根据一个实施方案的用于图6所示的存储阵列的示例性方法的流程图,该方法用于使用故障存储设备的一个或多个正在运行的计算资源和/或存储资源经由对等通信重建故障存储设备。
图8描绘了根据一个实施方案的用于图1所示的计算系统的示例性方法的流程图,该方法用于根据分布式全局闪存转换层(FTL)数据管理方案来执行数据管理请求(例如,读取请求)。
具体实施方式
公开了新型数据处理技术,诸如但不限于用于使用故障存储设备的一个或多个正在运行的计算资源和/或存储资源在存储系统中重建故障存储设备的系统、设备和方法。虽然下面在各种情况下的特定系统架构的上下文中描述了这种技术,但是应当理解,系统和方法可应用于硬件的其他架构和组织。更具体地讲,应当注意,虽然参考某些实施方案进行了以下描述,但本公开可应用于实现已知或设想的数据冗余的任何存储系统。
图1描绘了根据一个实施方案的包括主机101和存储系统110的示例性计算系统100的框图。
主机101可以为任何合适的计算机设备或系统中的一者或多者,诸如服务器计算机、台式计算机、膝上型计算机、平板电脑、移动电话或能够向存储系统110提出请求的任何其他电子设备。在一些实施方案中,主机101可包括一个或多个处理器、一个或多个存储器设备以及用于向主机101添加功能的任何其他合适的部件。
主机101可通过网络诸如局域网(LAN)、广域网(WAN)、交换结构、有线或无线网络、专用或公共网络等通信地耦接到存储系统110。
主机101可执行向存储系统110提出存储请求(例如,读取、写入等)的一个或多个应用程序。在一些实施方案中,该一个或多个应用程序可以为在主机101上运行的专用软件应用程序,或者可另选地驻留在其他合适的计算设备上并且可由主机101远程执行。
存储系统110可包括系统控制器120和通过传输介质耦接到系统控制器的存储阵列130,该传输介质诸如基于以太网、无限带宽技术、PCI Express(PCIe)、NVM ExpressOver Fabric(NVMeOF)等的内部结构。如下文参考图2更详细地描述的,系统控制器120可包括一个或多个计算设备和/或软件(在本公开中统称为“逻辑部件”),该一个或多个计算设备和/或软件被配置为管理存储阵列130的操作并向该存储阵列提供外部接口(例如,用于与主机101通信)。例如,系统控制器120可协调并执行对存储阵列130的存储设备的各种操作,包括数据冗余和/或恢复、存储设备重建和/或垃圾收集。此外,在一些实施方案中,系统控制器120可协调主机101和存储阵列130之间的通信,包括将来自主机101的读取或写入请求转发到对应的存储设备(包括执行如下面进一步描述的任何必要的地址转换),以及在将数据返回到主机101之前,以逻辑方式(例如,可将区块组装成条带)从存储设备检索数据。在一些实施方案中,系统控制器120可以为NVM Express(NVMe)控制器。
在一些实施方案中,系统控制器120可在如下文参考图4、图5和图7所述针对故障存储设备执行数据构造和/或重建过程时,将其动作与计算机系统100中的其他部件诸如主机101和/或存储阵列130的动作协调。系统控制器120可使用例如如下文参考图8进一步所述的分布式全局闪存转换层(FTL)数据管理方案结合数据重组和/或重建过程来执行并协调这些动作。在一些实施方案中,系统控制器120可以不是如图1所示的单独部件,而是可以集成到主机101中或集成到存储设备140a、140b、…、140n中的一者或多者中。
存储阵列130可包括多个存储设备140a、140b、…、140n(每个存储设备在后文通常将各自称为存储设备140),这些存储设备中的每一者可包括具有合适特性的易失性或非易失性非暂态存储器设备,诸如闪存存储器(例如,固态驱动器(SSD))、持久性存储器(PM)和/或包括叠瓦式磁记录(SMR)磁盘的硬盘介质、混合存储设备等。存储阵列130中的存储设备140a、140b、…、140n可通过传输介质诸如基于以太网、无限带宽技术、PCIe、NVMeOF等的内部结构彼此通信地耦接。
每个存储设备140包括设备控制器142和存储介质143。如下文参考图3更详细地描述的,设备控制器142可包括一个或多个计算设备和/或软件(在本公开中统称为“逻辑部件”),该一个或多个计算设备和/或软件被配置为管理存储介质143的操作并向相应的存储设备140提供外部接口。在一些实施方案中,如下文参考图4、图5和图7所述,这些操作可包括执行与存储阵列130中的其他存储设备的对等通信(例如,数据传输)。
存储介质143可包括一个或多个易失性或非易失性存储器介质,该一个或多个易失性或非易失性存储器介质包括一个或多个介质区段144,该一个或多个介质区段包括用于存储数据的存储介质的物理或逻辑部分,诸如管芯、磁盘、存储器单元、扇区和/或页面。在一些实施方案中,可将数据以区块的形式组织在每个存储设备140的存储介质143中,其中每个区块可由一个或多个块构成。此外,可使用合适的数据结构化方法诸如结构化日志将区块以条带的形式写入到存储阵列130中的存储设备140a、140b、…、140n。这在下文中参考图6进一步详细地示出和描述。
如下文参考图4、图5和图7所述,存储系统110可使用合适的冗余方案诸如RAID或纠删码来配置,使得在存储设备140a、140b、…、140n中的一者或多者发生故障(在后文中称为故障存储设备140’)的情况下,可执行如下所述的数据重组和/或重建过程以从该一个或多个故障存储设备恢复数据。
在本公开中,“故障存储设备”可以指存储阵列中在任何方面不正常运行的任何存储设备,包括:(1)仍然可操作但可基于早期警告指示被视为“故障”的存储设备,以及(2)仅已部分发生故障的存储设备。例如,在一些实施方案中,故障存储设备可包括已部分或完全故障的一个或多个存储资源(例如,存储介质143)和保持至少部分地正在运行的(例如,能够执行其预期功能中的至少一些)一个或多个计算资源(例如,设备控制器142)。存储阵列中除故障存储设备之外的该一个或多个存储设备可称为“正在运行的存储设备”。
图2描绘了根据一个实施方案的用于图1所示的存储系统110的示例性系统控制器120的框图。如前所述,系统控制器120可用于管理存储阵列130的操作并向该存储阵列提供外部接口(例如,用于与主机101通信)。系统控制器120可在如下文参考图4、图5和图7所述针对故障存储设备执行数据重组和/或重建过程时,使用例如如下文参考图8所述的分布式全局FTL数据管理方案将其动作与计算机系统100中的其他部件诸如主机101和/或存储阵列130的动作协调。
如图2所示,除其他部件之外,系统控制器120可包括一个或多个接口205、处理器210、包含软件、固件和/或数据的存储器220,该存储器包括但不限于存储管理引擎222。总线250可用于通信地耦接系统控制器120的各种部件。应当理解,根椐配置,诸如组合元件的配置、在硬件和软件中实现元件的配置等,系统控制器120可包括另选的、附加的和/或更少的部件。
该一个或多个接口205可将系统控制器120通信地耦接到主机101和/或存储阵列130。该一个或多个接口205可包括但不限于使用一个或多个适当的通信协议与主机101和/或存储阵列130通信的输入/输出(I/O)接口电路。
可包括一个或多个处理单元的处理器210可用于执行存储器220中包含的各种软件程序的指令。处理器210可包括一个或多个处理单元和/或芯、可编程集成电路诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA),或它们的某种组合。处理器210可基于各种计算架构,包括复杂指令集计算机(CISC)架构、精简指令集计算机(RISC)架构、或实现指令集组合的架构。应当理解,处理器210的其他配置是可能的。
可包括一个或多个非暂态存储设备的存储器220可存储由处理器210执行或以其他方式处理的软件程序、固件和/或数据。存储器220可包括,例如易失性存储器诸如一个或多个动态随机存取存储器(DRAM)设备、一个或多个静态随机存取存储器(SRAM)设备,非易失性存储器诸如电可擦除可编程只读存储器(EEPROM)或闪存存储器设备,前述的组合和/或一些其他合适类型的数据存储介质。
包含在存储器220中的存储管理引擎222可包括例程和/或指令,这些例程和/或指令在由处理器210执行时可针对存储阵列130执行各种存储器管理操作中的一个或多个,包括与地址转换、数据恢复和重组、存储设备重建和/或垃圾收集相关的操作。
在一些实施方案中,存储管理引擎222可包括地址映射225,该地址映射包含由存储管理引擎222用于将结合从主机101接收的读取或写入请求接收的逻辑地址或名称空间转换成用于访问存储阵列130中的存储设备的物理地址的地址信息,如下文参考图4、图5和图7所述。在一些实施方案中,存储管理引擎222可包括条带映射227,该条带映射与将数据到存储阵列130中的条带的写入或读取结合使用,如下文参考图7所述。
在一些实施方案中,可采用一个或多个硬件逻辑模块230(诸如ASIC、FPGA等)来代替存储器220中的软件和/或固件,或者作为其补充,以执行由存储管理引擎222、地址映射225和/或条带映射227提供的上述功能中的一种或多种。
图3描绘了根据一个实施方案的用于图1所示的存储系统110的示例性设备控制器142的框图。如前所述,设备控制器142可用于管理相应的存储设备140的操作并向该存储设备提供外部接口。
如图3所示,除其他部件之外,设备控制器142可包括一个或多个接口305、处理器310、包含软件、固件和/或数据的存储器320,该存储器包括介质管理引擎322、冗余编码奇偶校验引擎323和对等数据传输引擎324。总线350可用于通信地耦接设备控制器142的各种部件。应当理解,根椐配置,诸如组合元件的配置、在硬件和软件中实现元件的配置等,设备控制器142可包括另选的、附加的和/或更少的部件。
该一个或多个接口305可将设备控制器142通信地耦接到系统控制器120和/或存储阵列130中的其他存储设备。该一个或多个接口305可包括但不限于使用一个或多个适当的通信协议与系统控制器120和/或其他存储设备通信的输入/输出(I/O)接口电路。
可包括一个或多个处理单元的处理器310可用于执行存储器320中包含的各种软件程序的指令。处理器310可包括一个或多个处理单元和/或芯、可编程集成电路诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA),或它们的某种组合。处理器310可基于各种计算架构,包括复杂指令集计算机(CISC)架构、精简指令集计算机(RISC)架构、或实现指令集组合的架构。应当理解,处理器310的其他配置是可能的。
可包括一个或多个非暂态存储设备的存储器320可存储由处理器310执行或以其他方式处理的软件程序、固件和/或数据。存储器320可包括,例如易失性存储器诸如一个或多个动态随机存取存储器(DRAM)设备、一个或多个静态随机存取存储器(SRAM)设备,非易失性存储器诸如电可擦除可编程只读(EEPROM)或闪存存储器设备,前述的组合和/或一些其他合适类型的数据存储介质。
包含在存储器320中的介质管理引擎322可包括例程和/或指令,这些例程和/或指令在由处理器310执行时可针对存储介质143执行各种存储器管理操作中的一个或多个,包括与数据恢复和重组和/或设备级垃圾收集相关的操作。
包含在存储器320中的冗余编码奇偶校验引擎323可包括例程和/或指令,这些例程和/或指令在由处理器310执行时可针对存储介质143执行一个或多个数据冗余操作,包括生成并存储冗余信息(例如,奇偶校验块)。
包含在存储器320中的对等数据传输引擎324可包括例程和/或指令,这些例程和/或指令在由处理器310执行时可执行用于与存储阵列130中的其他存储设备进行对等通信的一个或多个动作,诸如发布和执行对等命令以及向其他存储设备传输数据或从其他存储设备传输数据,如下文参考图4、图5和图7所述。对等数据传输引擎324可以各种方式执行对等通信。例如,在一些实施方案中,对等数据传输引擎324可在完全发起方模式下操作,这使得存储设备能够连接、创建命令并将命令发送至其他存储设备。在一些其他实施方案中,主机101可在每个存储设备140中设置共享存储器区域,向源存储设备发送一个或多个命令以将源存储设备中的数据读取到共享存储器区域,然后使用直接存储器访问(DMA)发起从共享存储器区域向目标存储设备的数据发送。
在一些实施方案中,可采用一个或多个硬件逻辑模块330(诸如ASIC、FPGA等)来代替存储器320中的软件和/或固件,或者作为其补充,以执行由介质管理引擎322、冗余编码奇偶校验引擎323和/或对等数据传输引擎324提供的上述功能中的一种或多种。
图4描绘了根据一个实施方案的用于图1所示的存储系统110的示例性方法400的流程图,该方法用于使用故障存储设备140’的一个或多个正在运行的计算资源和/或存储资源经由对等通信(例如,数据传输)重组故障存储设备的数据。例如,在存储设备140的部分介质故障的情况下,可执行图4的数据重组方法。应当注意,在该示例中,框430和440可至少部分地由故障存储设备140’的正在运行的计算资源(例如,设备控制器142)执行。图4所示的剩余框可由存储系统110中的存储设备140(包括故障存储设备140’)、系统控制器120和主机101中的一者或多者或它们的某种组合例如根据如下文参考图8所述的分布式全局FTL数据管理方案来执行。
在框405中,可从主机101接收读取请求或其他命令。框405可在存储系统110的正常操作期间发生。
在框410中,可响应于接收到读取请求而在故障存储设备140’中检测到介质故障包括丢失的数据。在本公开中,丢失的数据可被视为由于存储介质143的一个或多个介质区段144发生故障而不可从存储设备正确地读取的数据,并且相反地,可恢复数据可被视为可从存储设备正确地读取的数据。
在一些实施方案中,在部分介质故障的情况下,框410可包括识别故障存储设备140’中的存储介质143的已发生故障的介质区段144(在下文中称为故障介质区段144'),该介质区段包含丢失的数据,以及故障存储设备的尚未发生故障的介质区段(在下文中称为正在运行的介质区段144”),该介质区段包含可恢复数据。在一些实施方案中,每个介质区段144可包括相应的存储设备140中用于存储数据的存储介质143的一个或多个物理或逻辑部分,诸如管芯、磁盘、存储器单元、扇区和/或页面。
在框420中,数据和冗余信息可位于存储系统110中的尚未发生故障的存储设备140a、140b、…、140n(在下文中称为正在运行的存储设备140”)中的一者或多者中,以用于重建故障存储设备140’的丢失的数据。在一些实施方案中,可使用如下文参考图8所述的分布式全局FTL数据管理方案在一个或多个正在运行的存储设备140”中定位数据和冗余信息。
在框430中,存储系统110中的故障存储设备140’可向存储系统110中的该一个或多个正在运行的存储设备140”发布一个或多个对等命令,以从该一个或多个正在运行的存储设备获得数据和冗余信息。在一些实施方案中,对等命令可以为读取命令。在一些实施方案中,对等命令可由相应的存储设备的设备控制器142中的对等数据传输引擎324发布和执行。
在框440中,存储系统110中的故障存储设备140’可基于从存储系统110中的该一个或多个正在运行的存储设备140”获得的数据和冗余信息重组故障存储设备140’的丢失的数据。在一些实施方案中,故障存储设备的丢失的数据可由存储设备的如上文参考图3所述的设备控制器142中的介质管理引擎322来重组。在一些实施方案中,丢失的数据可通过对数据和冗余信息适当地执行一个或多个XOR或GF运算来重组,如本领域中所已知的。
在框450中,可将故障存储设备140’的重组的丢失的数据例如响应于来自主机的读取请求发送回主机101。在一些实施方案中,框450可根据如下文参考图8所述的分布式全局FTL数据管理方案来执行。
在框460中,可确定存储系统110中一个或多个可用存储位置的存在。如果确定存在可用存储位置,则方法可前进至框470。否则,数据重组可在该点结束,因为不存在用于存储重组的丢失的数据的可用存储位置。在一些实施方案中,该一个或多个可用位置可以为位于存储阵列630中的可用备用空间。
在框470中,可将故障存储设备140’的重组的丢失的数据写入到存储系统110中的在框460中识别的该一个或多个可用存储位置。在一些实施方案中,重组的丢失的数据被写入到的可用位置可位于存储系统110中的故障存储设备140’和/或正在运行的存储设备140”中。在一些实施方案中,框470可根据如下文参考图8所述的分布式全局FTL数据管理方案来执行。
在一些实施方案中,在部分介质故障的情况下,框470可包括将在框410中识别的可恢复数据从故障存储设备140’的正在运行的介质区段144”中的第一位置复制到故障存储设备的正在运行的介质区段中的第二位置。在一些实施方案中,可由发布XCOPY命令的故障存储设备执行复制。
图5描绘了根据一个实施方案的用于图1所示的存储系统110的示例性方法500的流程图,该方法用于使用故障存储设备140’的一个或多个正在运行的计算资源和/或存储资源经由对等通信重建故障存储设备。方法500中的框可例如针对存储阵列130中的每个条带迭代地执行,直到故障存储设备140’的内容已被重建。应当注意,在该示例中,框530和540可至少部分地由故障存储设备140’的正在运行的计算资源(例如,设备控制器142)执行。图5所示的剩余框可由存储系统110中的存储设备140(包括故障存储设备140’)、系统控制器120和主机101中的一者或多者或它们的某种组合例如根据如下文参考图8所述的分布式全局FTL数据管理方案来执行。
在框510中,可在故障存储设备140’中检测介质故障。在一些实施方案中,框510可响应于在存储系统110的正常操作期间从系统控制器120接收的读取请求或其他命令来执行。
在框515中,可识别故障存储设备140’的要重组的一部分(例如,存储阵列130中条带的一个或多个块)。
在框520中,数据和冗余信息可位于存储系统110中的一个或多个正在运行的存储设备140”中,以用于重组故障存储设备140’的所识别部分的数据。
在框530中,存储系统110中的故障存储设备140’可向存储系统110中的该一个或多个正在运行的存储设备140”发布一个或多个对等命令,以从该一个或多个正在运行的存储设备获得数据和冗余信息。在一些实施方案中,对等命令可以为读取命令。在一些实施方案中,对等命令可由相应的存储设备的设备控制器142中的对等数据传输引擎324发布和执行。
在框540中,存储系统110中的故障存储设备140’可基于从存储系统110中的该一个或多个正在运行的存储设备140”获得的数据和冗余信息重组故障存储设备140’的所识别部分的数据。在一些实施方案中,故障存储设备的丢失的数据可由存储设备的如上文参考图3所述的设备控制器142中的介质管理引擎322来重组。在一些实施方案中,丢失的数据可通过对数据和冗余信息适当地执行一个或多个XOR或GF运算来重组,如本领域中所已知的。
在框550中,可将故障存储设备140’的所识别部分的重组数据写入到存储系统110中的一个或多个可用存储位置。在一些实施方案中,重组的丢失的数据被写入到的可用位置可位于存储系统110中的故障存储设备140’和/或正在运行的存储设备140”中。
在框560中,确定是否已重组故障存储设备140’的所有部分。如果是这种情况,则重建过程已完成并且可结束。然而,如果情况并非如此,则框515至框550可迭代地重复,如刚刚针对故障存储设备140’的剩余部分所述,直到故障存储设备的内容已被重建。
图6描绘了根据一个实施方案的用于图1所示的存储系统110的示例性存储阵列630的框图。存储阵列630是图1所示的存储阵列130的实施方案,包括3+1配置的四个固态驱动器(SSD)640a、640b、640c和640d(在下文中也分别称为SSD1、SSD2、SSD3和SSD4)。虽然出于便于说明的目的,存储系统110在图6中被示出为具有四个SSD,但应当注意,在其他实施方案中,存储系统可以任何合适的量采用其他类型的存储设备,诸如硬盘介质或混合存储设备。
如图所示,存储阵列630中的SSD1、SSD2、SSD3和SSD4中的每一者可包含多个区块650,其中区块可包括一个或多个块655。可将存储阵列630中包含的多个区块650组织成一个或多个条带660。
条带660可包括存储阵列630中使用的数据冗余方案的一个或多个数据区块和一个或多个纠错(例如,奇偶校验)区块的适当的组合。如图6所示,条带660包括四个区块650,其中三个区块包含数据(用“D1”、“D2”和“D3”指示),并且一个区块包含奇偶校验信息(用“P”指示)。可使用合适的数据结构化方法诸如结构化日志将数据D1、D2和D3写入到条带660。在结构化日志数据组织中,可将随机写入的数据分组在一起并顺序地写入到条带660。
在下文将参考图7描述的用于重建故障存储设备的方法中,SSD2对应于“故障存储设备”,并且SSD1、SSD3和SSD4对应于“正在运行的存储设备”。
图7描绘了根据一个实施方案的用于图6所示的存储阵列630的示例性方法700的流程图,该方法用于使用故障存储设备SSD2的一个或多个正在运行的计算资源和/或存储资源经由对等通信重建故障存储设备。应当注意,图7所示的方法对应于如上文参考图5所述的应用于存储阵列630的方法。方法700中的框可例如针对存储阵列630中的每个条带迭代地执行,直到故障存储设备SSD2的内容已被重建。应当注意,在该示例中,框730和740可至少部分地由故障存储设备SSD2的正在运行的计算资源(例如,设备控制器142)执行。图7中的剩余块可由存储阵列630中的SSD(包括故障存储设备SSD2)、系统控制器120和主机101中的一者或多者或它们的某种组合例如根据如下文参考图8所述的分布式全局FTL数据管理方案来执行。
在图7所示的方法中,故障存储设备SSD2可被视为发起方设备,并且正在运行的存储设备SSD1、SSD3和SSD4可被视为目标设备。
在框710中,可在故障存储设备SSD2中检测介质故障。在一些实施方案中,可响应于在存储系统110的正常操作期间来自系统控制器120的读取请求执行框710。
在框715中,可识别SSD2中的条带660的要重组的数据区块D2。
在框720中,条带660中的数据区块D1和D3以及奇偶校验区块P可分别位于正在运行的存储设备SSD1、SSD3和SSD4中,以用于重建SSD2的数据区块D2。
在框730中,SSD2可向SSD1、SSD3和SSD4中的一者或多者发布一个或多个对等命令,以获得条带660中的数据区块D1和D3以及奇偶校验区块P。在一些实施方案中,对等命令可以为读取命令。在一些实施方案中,对等命令可由SSD2的设备控制器142中的对等数据传输引擎324发布和执行。
在框740中,SSD2可分别基于从SSD1、SSD3和SSD4获得的数据区块D1和D3以及奇偶校验区块P重组SSD2的数据区块D2。在一些实施方案中,数据区块D2可由SSD2的如上文参考图3所述的设备控制器142中的介质管理引擎322来重组。在一些实施方案中,数据区块D2可通过对数据区块D1和D3以及奇偶校验区块P适当地执行一个或多个XOR或GF运算来重组,如本领域中已知的。
在框750中,SSD2的重组数据区块D2可被写入到存储阵列630中的一个或多个可用存储位置。在一些实施方案中,重组数据区块D2被写入到的该一个或多个可用位置可位于故障存储设备SSD2和/或正在运行的存储设备SSD1、SSD3和SSD4中。
在框760中,确定是否已重组故障存储设备SSD2的所有部分。如果是这种情况,则重建过程已完成并且可结束。然而,如果不是这种情况,则框715至框750可迭代地重复,如刚刚针对SSD2的剩余部分所述,直到SSD2的内容已被重建。
图8描绘了根据一个实施方案的用于图1所示的计算系统100的示例性方法800的流程图,该方法用于根据分布式全局闪存转换层(FTL)数据管理方案来执行数据管理请求(例如,读取请求)。在图8所示的示例中,方法800中的大多数框由系统控制器120执行,尽管在其他实施方案中,方法中的一个或多个框可由存储系统110中的其他设备(例如,主机101或存储设备140)执行。
在框810中,系统控制器120可从主机101接收数据管理请求(例如,读取请求)。
在框820中,系统控制器120可基于数据管理请求确定(例如,使用存储管理引擎222)存储系统110中的一个或多个存储设备140以及要由该一个或多个存储设备140执行的一个或多个数据管理操作。在一些实施方案中,为了确定该一个或多个存储设备140,系统控制器120从主机101接收输入逻辑地址,并且使用输入逻辑地址对地址映射225(该地址映射将逻辑地址映射到存储设备)进行索引,来识别该一个或多个存储设备140。在一些此类实施方案中,系统控制器120使用输入逻辑地址的至少一部分来识别该一个或多个存储设备140。
在框830中,系统控制器120可发起对应于数据管理请求的一个或多个数据管理操作的执行。在一些实施方案中,框830包括向该一个或多个存储设备140发送一个或多个数据管理命令以及发起一个或多个数据传输(在发送该一个或多个数据管理命令之前或之后)。该一个或多个数据传输可包括一个或多个操作,诸如用于在存储系统110中的相应的存储设备140的存储器缓冲器与主机101的存储器缓冲器之间传输数据的直接存储器访问(DMA)操作,和/或存储系统110中的两个或更多个存储设备140之间的内部数据传输。在一些实施方案中,该一个或多个数据传输包括用于在存储系统110中的相应的存储设备140的存储器缓冲器与主机101的存储器缓冲器之间传输数据的DMA操作,和/或存储系统110中的两个或更多个存储设备140之间的内部数据传输。
在框840中,在读取请求的情况下,系统控制器120基于地址映射225确定位于存储系统110中的相应的存储设备140中包含请求数据的一组块。在一些实施方案中,地址映射225将由读取请求(从主机101接收)识别的一个或多个全局逻辑地址映射到存储阵列130中的一个或多个存储设备140,并且任选地映射到每个此类存储设备中的一个或多个本地逻辑地址。本地逻辑地址由相应的存储设备140使用存储设备中的逻辑到物理映射机制映射到存储设备中的物理地址。在一些实施方案中,系统控制器120发起地址映射225的计算。在一些实施方案中,地址映射由系统控制器120外部的一个或多个设备计算。在一些实施方案中,地址映射225存储在/位于相应的存储设备140中。
在框850中,系统控制器120向相应的存储设备140发送一个或多个读取命令以对该组块执行读取操作。在一些实施方案中,系统控制器120使用预定义的命令转换过程将从主机101接收的读取请求转换成该一个或多个读取命令。
在框860中,相应的存储设备140的设备控制器142通过从相应的存储设备中的该组块读取对应的数据来响应该一个或多个读取命令。
在框870中,系统控制器120从相应的存储设备140接收结束通知,该结束通知指示发送到相应的存储设备的读取命令的执行已完成,并且所得的所读取的数据存储在相应的存储设备的设备控制器142的存储器缓冲器中。
在框880中,系统控制器120在接收到结束通知之后,使用DMA操作发起数据传输以将所读取的数据传输(例如,发送)到发送读取请求的主机101。在一些实施方案中,框880包括系统控制器120向存储系统110中的相应的网络接口控制器(未示出)发送数据传输命令,以使用用以传输所读取的数据的DMA或远程直接存储器存取(RDMA)将所读取的数据从系统控制器120的存储器缓冲器传输到主机101的存储器缓冲器。
如上所述使用故障存储设备的一个或多个正在运行的计算资源和/或存储资源在存储系统中重组数据并重建故障存储设备的方法的一个或多个实施方案的优点包括但不限于以下中的一者或多者:
(1)通过使用故障存储设备的正在运行的计算资源和/或存储资源来重组故障存储设备的数据,改善了故障存储设备数据重组和/或重建过程期间的系统性能(并且缩短了完成故障存储设备数据重组和/或重建过程所需的时间)。这利用了故障存储设备的设备控制器在介质故障之后可能闲置的事实。
(2)通过考虑故障存储设备的实际故障机制,改善了故障存储设备数据重组和/或重建过程期间的系统性能(并且缩短了完成故障存储设备数据重组和/或重建过程所需的时间)。例如,在故障存储设备中的数据部分丢失的情况下,具体地针对介质的故障部分执行数据重组过程。因此在这些情况下,系统性能的劣化可与仅实际数据损失量成比例,而不是与故障存储设备的所有数据成比例。
上文描述了用于使用故障存储设备的一个或多个正在运行的计算资源和/或存储资源在存储系统中重组数据并重建故障存储设备的方法和系统。在以上描述中,出于解释的目的,阐述了许多具体细节。然而,将显而易见的是,可以在没有这些具体细节的任何给定子集的情况下实践所公开的技术。在其他情况下,结构和设备以框图形式示出。例如,在上文参考用户界面和特定硬件的一些实施方式中描述了所公开的技术。
本说明书中提到的“一个实施方案”或“实施方案”意味着结合实施方案描述的特定的特征、结构或特性被包括在所公开技术的至少一个实施方案或具体实施中。在本说明书中各处出现的短语“在一个实施方案中”不一定全是指同一实施方案或具体实施。
上文的详细描述的一些部分可根据对计算机存储器内的数据位的操作的过程和符号表示来呈现。过程一般可被认为是导致结果的自相一致的操作序列。操作可涉及物理量的物理操纵。这些量采取能够被存储、传输、组合、比较以及以其他方式操纵的电信号或磁信号的形式。这些信号可被称为位、值、元素、符号、字符、术语、数字等的形式。
这些和类似的术语可与适当的物理量相关联,并且可被认为是应用于这些量的标签。除非从先前的讨论中明显地另外明确说明,否则应当理解,在整个描述中,利用术语例如“处理”或“运算”或“计算”或“确定”或“显示”等的讨论可以指计算机系统或类似电子计算设备的动作和过程,该计算机系统或类似电子计算设备操纵表示为计算机系统寄存器和存储器中的物理(电子)量的数据,并且将该数据转换为类似地表示为计算机系统存储器或寄存器或其他这样的信息存储、传送或显示设备中的物理量的其他数据。
所公开的技术还可涉及用于执行本文操作的装置。该装置可以为所需目的而专门构造,或者其可包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这样的计算机程序可被存储在计算机可读存储介质中,例如但不限于任何类型的盘(包括软盘、光盘、CD-ROM、和磁盘)、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪速存储器(包括具有非易失性存储器的USB密钥)或适用于存储电子指令的任何类型的介质,各自耦接到计算机系统总线。
所公开的技术可采取完全硬件实现、完全软件实现或包含硬件和软件元素的实现的形式。在一些实施方式中,该技术以软件实现,该软件包括但不限于固件、常驻软件、微代码等。
此外,所公开的技术可采取可从非暂时性计算机可用或计算机可读介质访问的计算机程序产品的形式,该计算机可用或计算机可读介质提供程序代码以供计算机或任何指令执行系统使用或与其结合使用。出于该描述的目的,计算机可用或计算机可读介质可以是任何装置,该装置可包含、存储、传送、传播或传输程序以供指令执行系统、装置或设备使用或与其结合使用。
适用于存储和/或执行程序代码的计算系统或数据处理系统将包括直接或通过系统总线间接耦接到存储器元件的至少一个处理器(例如,硬件处理器)。存储器元件可包括在程序代码的实际执行期间采用的本地存储器、大容量存储装置、和高速缓存存储器,该高速缓存存储器提供至少一些程序代码的临时存储,以便减少在执行期间必须从大容量存储装置检索代码的次数。
输入/输出或I/O设备(包括但不限于键盘、显示器、指示设备等)可直接或通过中间I/O控制器耦接到系统。
网络适配器还可耦接到系统,以使得数据处理系统能够通过中间专用或公共网络耦接到其他数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡只是当前可用类型的网络适配器中的少数几种。
术语存储介质、存储设备和数据块在通篇本公开中可互换使用,以指存储数据的物理介质。
最后,本文中呈现的过程和显示可能不固有地与任何特定计算机或其他装置相关。根据本文的教导,各种通用系统可与程序一起使用,或者构建更专用的装置以执行所需的方法操作可证明是方便的。从上面的描述中将显而易见的是各种这些系统所需的结构。另外,没有参考任何特定编程语言来描述所公开的技术。应当理解,可以使用各种编程语言来实现如本文所述的技术的教导。
已经出于说明和描述的目的呈现了对本发明技术和科技的实现的前述描述。它并非旨在是穷尽的或将本发明技术和科技限制为所公开的精确形式。根据以上教导内容,很多修改和变型都是可能的。意图是本发明技术和科技的范围不受该详细描述的限制。本发明技术和科技可以其他具体形式实现而不背离其精神或基本特征。同样,模块、例程、特征、属性、方法和其他方面的特定命名和划分不是强制性的或重要的,并且实现本发明技术和科技或其特征的机制可具有不同的名称、划分和/或格式。此外,本发明技术的模块、例程、特征、属性、方法和其他方面可被实现为软件、硬件、固件或三者的任何组合。此外,无论部件(其示例是模块)在何处被实现为软件,该部件都可被实现为独立程序,实现为较大程序的一部分,实现为多个单独的程序,实现为静态或动态链接库,实现为内核可加载模块,实现为设备驱动程序,并且/或者以现在或将来在计算机编程中已知的每种和任何其他方式实现。另外,本发明技术和科技绝不限于以任何特定编程语言或用于任何特定操作系统或环境的实现。因此,本发明技术和科技的公开内容旨在说明而非限制。

Claims (20)

1.一种计算机实现的方法,包括:
响应于在存储系统中检测到故障存储设备,在所述存储系统中的一个或多个正在运行的存储设备中定位数据和冗余信息,以用于重组所述故障存储设备的数据;
向所述一个或多个正在运行的存储设备发布一个或多个对等命令,以从所述一个或多个正在运行的存储设备获得所述数据和所述冗余信息;以及
基于从所述一个或多个正在运行的存储设备获得的所述数据和所述冗余信息重组所述故障存储设备的所述数据,
其中故障存储设备的正在运行的计算资源至少部分地执行所述定位、所述发布和所述重组中的一者或多者。
2.根据权利要求1所述的计算机实现的方法,还包括:
将所述故障存储设备的所述重组数据写入到所述存储系统中的一个或多个可用位置。
3.根据权利要求1所述的计算机实现的方法,其中所述故障存储设备的所述正在运行的计算资源为设备控制器。
4.根据权利要求1所述的计算机实现的方法,其中所述一个或多个对等命令包括由所述故障存储设备发布和执行的读取命令。
5.根据权利要求1所述的计算机实现的方法,还包括:
在所述存储系统中限定条带,其中所述条带与所述故障存储设备的所述数据以及所述一个或多个正在运行的存储设备中的所述数据和所述冗余信息相关联。
6.根据权利要求1所述的计算机实现的方法,还包括:
识别所述故障存储设备的包含可恢复数据的介质区段;以及
将所述可恢复数据从所述故障存储设备的所述介质区段中的第一位置复制到所述故障存储设备的所述介质区段中的第二位置。
7.根据权利要求6所述的计算机实现的方法,其中所述故障存储设备的所述介质区段为存储器单元。
8.一种存储装置,包括:
一个或多个处理器;和
逻辑部件,所述逻辑部件能够由所述一个或多个处理器执行,所述逻辑部件被配置为执行操作,所述操作包括:
响应于在存储系统中检测到故障存储设备,在所述存储系统中的一个或多个正在运行的存储设备中定位数据和冗余信息,以用于重组所述故障存储设备的数据;
向所述一个或多个正在运行的存储设备发布一个或多个对等命令,以从所述一个或多个正在运行的存储设备获得所述数据和所述冗余信息;以及
基于从所述一个或多个正在运行的存储设备获得的所述数据和所述冗余信息重组所述故障存储设备的所述数据,其中所述故障存储设备的正在运行的计算资源至少部分地执行所述定位、所述发布和所述重组中的一者或多者。
9.根据权利要求8所述的存储装置,其中所述逻辑部件被配置为执行操作,所述操作还包括:
将所述故障存储设备的所述重组数据写入到所述存储系统中的一个或多个可用位置。
10.根据权利要求8所述的存储装置,其中所述故障存储设备的所述正在运行的计算资源为设备控制器。
11.根据权利要求8所述的存储装置,其中所述一个或多个对等命令包括由所述故障存储设备发布和执行的读取命令。
12.根据权利要求8所述的存储装置,其中所述逻辑部件被配置为执行操作,所述操作还包括:
在所述存储系统中限定条带,其中所述条带与所述故障存储设备的所述数据以及所述一个或多个正在运行的存储设备中的所述数据和所述冗余信息相关联。
13.根据权利要求8所述的存储装置,其中所述逻辑部件被配置为执行操作,所述操作还包括:
识别所述故障存储设备的包含可恢复数据的介质区段;以及
将所述可恢复数据从所述故障存储设备的所述介质区段中的第一位置复制到所述故障存储设备的所述介质区段中的第二位置。
14.根据权利要求13所述的存储装置,其中所述故障存储设备的所述介质区段为存储器单元。
15.一种存储装置,包括:
包括一个或多个处理器的控制器;和
耦接到所述控制器的存储阵列,所述存储阵列包括多个存储设备,其中所述控制器和所述存储阵列被配置为执行操作,所述操作包括:
由所述控制器检测所述存储阵列中的故障存储设备;
由所述故障存储设备在所述存储阵列中的一个或多个正在运行的存储设备中定位数据和冗余信息,以用于重组所述故障存储设备的数据;
由所述故障存储设备向所述一个或多个正在运行的存储设备发布一个或多个对等命令,以从所述一个或多个正在运行的存储设备获得所述数据和所述冗余信息;
由所述故障存储设备基于从所述一个或多个正在运行的存储设备获得的所述数据和所述冗余信息重组所述故障存储设备的所述数据;以及
由所述控制器将所述故障存储设备的所述重组数据写入到所述存储阵列中的一个或多个可用位置。
16.根据权利要求15所述的存储装置,其中所述故障存储设备的设备控制器至少部分地执行所述定位、所述发布和所述重组中的一者或多者。
17.根据权利要求15所述的存储装置,其中所述一个或多个对等命令包括由所述故障存储设备发布和执行的读取命令。
18.根据权利要求15所述的存储装置,其中所述控制器和所述存储阵列被配置为执行操作,所述操作还包括:
在所述存储阵列中限定条带,其中所述条带与所述故障存储设备的所述数据以及所述一个或多个正在运行的存储设备中的所述数据和所述冗余信息相关联。
19.根据权利要求15所述的存储装置,其中所述控制器和所述存储阵列被配置为执行操作,所述操作还包括:
识别所述故障存储设备的包含可恢复数据的介质区段;以及
将所述可恢复数据从所述故障存储设备的所述介质区段中的第一位置复制到所述故障存储设备的所述介质区段中的第二位置。
20.根据权利要求19所述的存储装置,其中所述故障存储设备的所述介质区段为存储器单元。
CN201980006215.5A 2018-08-03 2019-06-01 使用故障存储设备的重建助手 Active CN111433746B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/054,972 US10831603B2 (en) 2018-08-03 2018-08-03 Rebuild assist using failed storage device
US16/054,972 2018-08-03
PCT/US2019/035087 WO2020027912A1 (en) 2018-08-03 2019-06-01 Rebuild assist using failed storage device

Publications (2)

Publication Number Publication Date
CN111433746A CN111433746A (zh) 2020-07-17
CN111433746B true CN111433746B (zh) 2023-09-26

Family

ID=69227480

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980006215.5A Active CN111433746B (zh) 2018-08-03 2019-06-01 使用故障存储设备的重建助手

Country Status (4)

Country Link
US (1) US10831603B2 (zh)
CN (1) CN111433746B (zh)
DE (1) DE112019000215T5 (zh)
WO (1) WO2020027912A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110737393B (zh) 2018-07-20 2023-08-11 伊姆西Ip控股有限责任公司 数据读取方法、设备和计算机程序产品
US11340989B2 (en) * 2019-09-27 2022-05-24 Dell Products L.P. RAID storage-device-assisted unavailable primary data/Q data rebuild system
US11962518B2 (en) 2020-06-02 2024-04-16 VMware LLC Hardware acceleration techniques using flow selection
US11829793B2 (en) 2020-09-28 2023-11-28 Vmware, Inc. Unified management of virtual machines and bare metal computers
US11792134B2 (en) 2020-09-28 2023-10-17 Vmware, Inc. Configuring PNIC to perform flow processing offload using virtual port identifiers
US11636053B2 (en) 2020-09-28 2023-04-25 Vmware, Inc. Emulating a local storage by accessing an external storage through a shared port of a NIC
US11593278B2 (en) 2020-09-28 2023-02-28 Vmware, Inc. Using machine executing on a NIC to access a third party storage not supported by a NIC or host
US11736566B2 (en) 2020-09-28 2023-08-22 Vmware, Inc. Using a NIC as a network accelerator to allow VM access to an external storage via a PF module, bus, and VF module
US11531498B2 (en) * 2020-11-20 2022-12-20 Western Digital Technologies, Inc. Peer storage device messaging over control bus
US11863376B2 (en) 2021-12-22 2024-01-02 Vmware, Inc. Smart NIC leader election
US11899594B2 (en) 2022-06-21 2024-02-13 VMware LLC Maintenance of data message classification cache on smart NIC
US11928062B2 (en) 2022-06-21 2024-03-12 VMware LLC Accelerating data message classification with smart NICs
US11928367B2 (en) 2022-06-21 2024-03-12 VMware LLC Logical memory addressing for network devices

Family Cites Families (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5388083A (en) 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
US5530948A (en) 1993-12-30 1996-06-25 International Business Machines Corporation System and method for command queuing on raid levels 4 and 5 parity drives
US5680539A (en) 1995-07-11 1997-10-21 Dell Usa, L.P. Disk array system which performs data reconstruction with dynamic load balancing and user-specified disk array bandwidth for reconstruction operation to maintain predictable degradation
US5742752A (en) 1995-12-29 1998-04-21 Symbios Logic Inc. Method for performing a RAID stripe write operation using a drive XOR command set
US6092215A (en) * 1997-09-29 2000-07-18 International Business Machines Corporation System and method for reconstructing data in a storage array system
US7934074B2 (en) 1999-08-04 2011-04-26 Super Talent Electronics Flash module with plane-interleaved sequential writes to restricted-write flash chips
US7934251B2 (en) 1999-12-02 2011-04-26 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US6738937B1 (en) 2000-12-01 2004-05-18 Lsi Logic Corporation Method for nondisruptive testing of device and host attachment to storage subsystems
US7017107B2 (en) 2001-04-30 2006-03-21 Sun Microsystems, Inc. Storage array employing scrubbing operations at the disk-controller level
US7146524B2 (en) 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
US7275179B1 (en) 2003-04-24 2007-09-25 Network Appliance, Inc. System and method for reducing unrecoverable media errors in a disk subsystem
US7137038B2 (en) 2003-07-29 2006-11-14 Hitachi Global Storage Technologies Netherlands, B.V. System and method for autonomous data scrubbing in a hard disk drive
US7127636B2 (en) 2003-09-08 2006-10-24 International Business Machines Corporation Autonomic recovery of PPRC errors detected by PPRC peer
US7103739B2 (en) 2003-10-09 2006-09-05 International Business Machines Corporation Method and apparatus for providing hardware aware logical volume mirrors
US7945675B2 (en) 2003-11-03 2011-05-17 Apacheta Corporation System and method for delegation of data processing tasks based on device physical attributes and spatial behavior
US7596570B1 (en) 2003-11-04 2009-09-29 Emigh Aaron T Data sharing
US7428691B2 (en) * 2003-11-12 2008-09-23 Norman Ken Ouchi Data recovery from multiple failed data blocks and storage units
US7293133B1 (en) 2003-12-31 2007-11-06 Veritas Operating Corporation Performing operations without requiring split mirrors in a multi-class file system
US7913148B2 (en) 2004-03-12 2011-03-22 Nvidia Corporation Disk controller methods and apparatus with improved striping, redundancy operations and interfaces
US7434107B2 (en) 2004-07-19 2008-10-07 Dell Products L.P. Cluster network having multiple server nodes
US7526686B2 (en) 2004-08-04 2009-04-28 International Business Machines Corporation Apparatus, system, and method for active data verification in a storage system
US7275123B2 (en) 2004-12-06 2007-09-25 Nvidia Corporation Method and apparatus for providing peer-to-peer data transfer within a computing environment
US7571344B2 (en) 2005-08-12 2009-08-04 Silver Peak Systems, Inc. Ensuring data integrity in network memory
US20080250057A1 (en) 2005-09-27 2008-10-09 Rothstein Russell I Data Table Management System and Methods Useful Therefor
US8938591B2 (en) 2005-09-30 2015-01-20 Cleversafe, Inc. Dispersed storage processing unit and methods with data aggregation for use in a dispersed storage system
JP4766240B2 (ja) 2005-11-08 2011-09-07 日本電気株式会社 ファイル管理方法、装置、およびプログラム
US9118698B1 (en) 2005-12-02 2015-08-25 Branislav Radovanovic Scalable data storage architecture and methods of eliminating I/O traffic bottlenecks
US7620841B2 (en) 2006-01-19 2009-11-17 International Business Machines Corporation Re-utilizing partially failed resources as network resources
US7783600B1 (en) 2006-02-27 2010-08-24 Symantec Operating Corporation Redundancy management service for peer-to-peer networks
US7752387B2 (en) 2006-03-21 2010-07-06 International Business Machines Corporation Offloading firmware update tasks from RAID adapter to distributed service processors in switched drive connection network enclosure
US7979771B2 (en) 2006-04-04 2011-07-12 Permabit Technology Corporation Erasure coding technique for scalable and fault tolerant storage system
US20080005382A1 (en) 2006-06-14 2008-01-03 Hitachi, Ltd. System and method for resource allocation in fault tolerant storage system
US8151082B2 (en) 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US8402201B2 (en) 2006-12-06 2013-03-19 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery in solid-state storage
US7975171B2 (en) 2007-09-12 2011-07-05 International Business Machines Corporation Automated file recovery based on subsystem error detection results
US8049980B1 (en) 2008-04-18 2011-11-01 Network Appliance, Inc. Partial disk failures and improved storage resiliency
WO2009149388A1 (en) 2008-06-06 2009-12-10 Pivot3 Method and system for distributing commands to targets
US8086911B1 (en) 2008-10-29 2011-12-27 Netapp, Inc. Method and apparatus for distributed reconstruct in a raid system
US9037541B2 (en) 2009-04-30 2015-05-19 Microsoft Technology Licensing, Llc Metadata for data storage array
US8250283B1 (en) 2009-05-22 2012-08-21 Google Inc. Write-distribute command for RAID mirroring
US8706980B2 (en) 2009-07-30 2014-04-22 Cleversafe, Inc. Method and apparatus for slice partial rebuilding in a dispersed storage network
JP5397148B2 (ja) 2009-10-16 2014-01-22 富士通株式会社 記憶装置、制御装置および記憶装置の制御方法
TWI497293B (zh) 2009-12-17 2015-08-21 Ibm 固態儲存裝置內之資料管理
KR101466592B1 (ko) 2010-06-18 2014-12-01 엘에스아이 코포레이션 스케일러블 스토리지 디바이스들
US20120011200A1 (en) 2010-07-06 2012-01-12 Roxbeam Media Network Corporation Method and apparatus for data storage in a peer-to-peer network
US8726070B2 (en) 2010-09-27 2014-05-13 Dell Products L.P. System and method for information handling system redundant storage rebuild
US8473648B2 (en) 2010-12-16 2013-06-25 Lsi Corporation System and method of I/O path virtualization between a raid controller and an environment service module in a storage area network
US9021178B2 (en) 2011-05-02 2015-04-28 Western Digital Technologies, Inc. High performance path for command processing
US8838931B1 (en) 2012-03-30 2014-09-16 Emc Corporation Techniques for automated discovery and performing storage optimizations on a component external to a data storage system
US8862928B2 (en) 2011-09-20 2014-10-14 Cloudbyte, Inc. Techniques for achieving high availability with multi-tenant storage when a partial fault occurs or when more than two complete faults occur
US9417821B2 (en) 2011-09-30 2016-08-16 Intel Corporation Presentation of direct accessed storage under a logical drive model
US8751861B2 (en) 2012-02-08 2014-06-10 Lsi Corporation System and method for improved rebuild in RAID
US9292205B2 (en) 2012-06-14 2016-03-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Methods and systems for adaptive queue depth management
US20130339784A1 (en) * 2012-06-15 2013-12-19 International Business Machines Corporation Error recovery in redundant storage systems
US9100362B2 (en) 2012-07-06 2015-08-04 Yahoo! Inc. Peer-to-peer architecture for web traffic management
US9262278B2 (en) 2012-07-30 2016-02-16 Ebay Inc. Allocation of replica-sets in a storage cluster
US9268682B2 (en) 2012-10-05 2016-02-23 Skyera, Llc Methods, devices and systems for physical-to-logical mapping in solid state drives
US9152643B2 (en) 2012-12-21 2015-10-06 Zetta Inc. Distributed data store
US9152502B2 (en) 2012-12-21 2015-10-06 Microsoft Technology Licensing, Llc Data error detection and correction using hash values
WO2014110095A1 (en) 2013-01-08 2014-07-17 Violin Memory Inc. Method and system for data storage
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9349476B2 (en) 2013-02-21 2016-05-24 Sandisk Technologies Inc. Methods, systems, and computer readable media for early detection of potential flash failures using an adaptive system level algorithm based on flash program verify
US9122587B2 (en) 2013-03-06 2015-09-01 Seagate Technology Llc Self recovery in a solid state drive
WO2014205286A1 (en) 2013-06-19 2014-12-24 Exablox Corporation Data scrubbing in cluster-based storage systems
US9519577B2 (en) 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
US9448924B2 (en) 2014-01-08 2016-09-20 Netapp, Inc. Flash optimized, log-structured layer of a file system
US9454434B2 (en) 2014-01-17 2016-09-27 Netapp, Inc. File system driven raid rebuild technique
WO2015116197A1 (en) 2014-01-31 2015-08-06 Hewlett-Packard Development Company, L.P. Storing data based on a write allocation policy
WO2015142338A1 (en) 2014-03-20 2015-09-24 Hewlett-Packard Development Company, L.P. Solid state drive operations
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US10380026B2 (en) 2014-09-04 2019-08-13 Sandisk Technologies Llc Generalized storage virtualization interface
US9405928B2 (en) 2014-09-17 2016-08-02 Commvault Systems, Inc. Deriving encryption rules based on file content
US10409769B1 (en) 2014-09-29 2019-09-10 EMC IP Holding Company LLC Data archiving in data storage system environments
US9658923B2 (en) 2014-09-30 2017-05-23 International Business Machines Corporation Optimization of rebuilding in solid state drives
US9692733B2 (en) 2015-02-10 2017-06-27 Red Hat, Inc. Key establishment and management protocol optimizations in view of channel reliability
US9720601B2 (en) 2015-02-11 2017-08-01 Netapp, Inc. Load balancing technique for a storage array
US9785480B2 (en) 2015-02-12 2017-10-10 Netapp, Inc. Load balancing and fault tolerant service in a distributed data system
JP6228347B2 (ja) 2015-02-25 2017-11-08 株式会社日立製作所 ストレージ装置及び記憶デバイス
US10289507B1 (en) * 2015-10-27 2019-05-14 Pavilion Data Systems, Inc. Distributed rebuild of failed storage device
TW201730764A (zh) 2016-02-18 2017-09-01 群暉科技股份有限公司 用來於一儲存系統中進行資料擦洗管理之方法與裝置
US9875052B2 (en) 2016-03-15 2018-01-23 International Business Machines Corporation Storage capacity allocation using distributed spare space
CN107220148B (zh) 2016-03-21 2020-12-04 伊姆西Ip控股有限责任公司 针对独立磁盘冗余阵列的重建方法和设备
US10042721B2 (en) 2016-03-30 2018-08-07 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Peer-to-peer redundant array of independent disks (RAID) lacking a RAID controller
KR102580123B1 (ko) * 2016-05-03 2023-09-20 삼성전자주식회사 Raid 스토리지 장치 및 그것의 관리 방법
TWI604455B (zh) 2016-05-13 2017-11-01 Silicon Motion Inc 資料儲存裝置、記憶體控制器及其資料管理方法與資料區塊管理方法
US10241722B1 (en) 2016-05-27 2019-03-26 Pavilion Data Systems, Inc. Proactive scheduling of background operations for solid state drives
US20180024964A1 (en) 2016-07-19 2018-01-25 Pure Storage, Inc. Disaggregated compute resources and storage resources in a storage system
US10230398B2 (en) 2016-08-19 2019-03-12 Samsung Electronics Co., Ltd. Erasure code data protection and recovery computation system and method
US9971515B2 (en) 2016-09-13 2018-05-15 Western Digital Technologies, Inc. Incremental background media scan
KR102631351B1 (ko) 2016-10-07 2024-01-31 삼성전자주식회사 피어-투 피어 통신을 수행할 수 있는 저장 장치와 이를 포함하는 데이터 저장 시스템
US10310935B2 (en) 2016-11-17 2019-06-04 International Business Machines Corporation Dynamically restoring disks based on array properties
US10725859B2 (en) 2017-05-25 2020-07-28 Western Digital Technologies, Inc. Parity generation offload using peer-to-peer data transfers in data storage system
US10860508B2 (en) 2017-05-25 2020-12-08 Western Digital Technologies, Inc. Offloaded disaggregated storage architecture
US11593036B2 (en) 2017-06-12 2023-02-28 Pure Storage, Inc. Staging data within a unified storage element
US10394634B2 (en) 2017-06-30 2019-08-27 Intel Corporation Drive-based storage scrubbing
US10474528B2 (en) 2017-10-02 2019-11-12 Western Digital Technologies, Inc. Redundancy coding stripe based on coordinated internal address scheme across multiple devices
US10379948B2 (en) 2017-10-02 2019-08-13 Western Digital Technologies, Inc. Redundancy coding stripe based on internal addresses of storage devices
US10585767B2 (en) 2018-02-07 2020-03-10 International Business Machines Corporation Automatic data healing using a storage controller

Also Published As

Publication number Publication date
US20200042389A1 (en) 2020-02-06
WO2020027912A1 (en) 2020-02-06
US10831603B2 (en) 2020-11-10
CN111433746A (zh) 2020-07-17
DE112019000215T5 (de) 2020-08-06

Similar Documents

Publication Publication Date Title
CN111433746B (zh) 使用故障存储设备的重建助手
CN111512289B (zh) 在对等存储系统中使用故障存储设备来执行以存储为中心的任务
CN111433732B (zh) 存储设备以及由存储设备执行的计算机实现的方法
CN111373362B (zh) 具有分布式读取/写入处理的多设备存储系统
US11210170B2 (en) Failed storage device rebuild method
US11243837B2 (en) Data storage drive rebuild with parity generation offload using peer-to-peer data transfers
US10725859B2 (en) Parity generation offload using peer-to-peer data transfers in data storage system
US20180088857A1 (en) Method and system for managing storage system
US20160179395A1 (en) Cooperative data deduplication in a solid state storage array
US10691339B2 (en) Methods for reducing initialization duration and performance impact during configuration of storage drives
US11061827B2 (en) Metadata representation for enabling partial page duplication
CN112513804B (zh) 一种数据处理方法及装置
US11232032B2 (en) Incomplete write group journal
US11314594B2 (en) Method, device and computer program product for recovering data
US10860446B2 (en) Failed storage device rebuild using dynamically selected locations in overprovisioned space
US10552243B2 (en) Corrupt logical block addressing recovery scheme
CN110737395B (zh) I/o管理方法、电子设备和计算机可读存储介质
US10922003B1 (en) Realizing host-assisted device-level data deduplication on solid-state data storage devices with embedded non-volatile memory

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