CN114868117A - 通过控制总线进行的对等存储设备消息传送 - Google Patents
通过控制总线进行的对等存储设备消息传送 Download PDFInfo
- Publication number
- CN114868117A CN114868117A CN202180006561.0A CN202180006561A CN114868117A CN 114868117 A CN114868117 A CN 114868117A CN 202180006561 A CN202180006561 A CN 202180006561A CN 114868117 A CN114868117 A CN 114868117A
- Authority
- CN
- China
- Prior art keywords
- peer
- data
- control bus
- storage
- internal operation
- 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 395
- 238000011084 recovery Methods 0.000 claims abstract description 112
- 238000004891 communication Methods 0.000 claims abstract description 63
- 238000000034 method Methods 0.000 claims abstract description 47
- 230000004044 response Effects 0.000 claims abstract description 29
- 230000015654 memory Effects 0.000 claims description 88
- 238000005192 partition Methods 0.000 claims description 6
- 238000013500 data storage Methods 0.000 description 28
- 230000006870 function Effects 0.000 description 25
- 238000007726 management method Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 13
- 239000004744 fabric Substances 0.000 description 11
- 238000012545 processing Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 8
- 239000007787 solid Substances 0.000 description 7
- 230000001351 cycling effect Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 239000000872 buffer Substances 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- 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/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/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
-
- 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/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了用于通过控制总线进行对等存储设备消息传送以卸载和备份内部操作数据的系统和方法。存储设备可包括被配置为连接到主机系统的主机接口和用于连接到控制总线的控制总线接口。对等存储设备可通过该控制总线接口建立对等通信,选择内部操作数据,以及通过该控制总线将该内部操作数据发送到其他对等存储设备。响应于恢复事件,对等存储设备可从另一个对等存储设备接收卸载的内部操作数据。
Description
技术领域
本公开整体涉及通过低带宽总线互连的计算系统设备,并且更具体地涉及在无主机系统干预的情况下通过低带宽控制总线进行的对等设备通信。
背景技术
一些计算系统(诸如存储阵列)可包括多个存储设备,这些存储设备通过外围或存储接口总线(诸如外围组件互连快速(PCIe)、串行高级技术附件(SATA)或串行附接的[小型计算机串行接口(SCSI)](SAS))支持一个或多个主机系统。这些接口可被配置用于高带宽传输率,诸如3千兆比特(Gb)/秒(s)、6Gb/s、8Gb/s、12Gb/s、16Gb/s等,以实现向/从存储设备的快速且可靠的数据传输,其中一些版本支持高达512Gb/s。
多设备存储系统利用多个分立的存储设备,通常为磁盘驱动器(固态驱动器、硬盘驱动器、混合驱动器、磁带驱动器等)用于存储大量数据。这些多设备存储系统通常被布置成由公共通信结构互连的驱动器阵列,并且在许多情况下,由存储控制器、独立磁盘冗余阵列(RAID)控制器或通用控制器控制,以用于协调跨驱动器阵列的存储和系统活动。存储在阵列中的数据可根据定义的RAID级别、RAID模式的组合或用于提供所需数据冗余、性能和容量利用的其他配置来存储。一般来讲,这些数据存储配置可涉及冗余副本(镜像)、数据剥离和/或奇偶校验(计算和存储)的某种组合,并且可结合其他数据管理、纠错和数据恢复过程,有时特定于所使用的磁盘驱动器的类型(例如,固态驱动器与硬盘驱动器)。
多设备存储系统中的每个存储设备可使用用于存储设备的适当存储协议(诸如用于访问全闪存阵列的固态驱动器(SSD)或存储刀片的非易失性存储器快速(NVMe))通过至少一个高带宽接口(诸如PCIe)连接到主机系统。一些多设备存储系统采用能够通过高带宽接口在互连结构和/或网络结构上彼此通信和/或与主机系统通信的存储设备。此类基于结构的分布式存储系统可包括配置有直接存储器访问的存储设备,以能够更有效地向/从主机和其他系统传输数据。
在一些配置中,每个存储设备还可包括被配置用于电源管理和/或与共享相同公用设施或控制总线的计算设备进行低带宽通信的另一个接口。例如,存储设备可包括符合内部集成电路(I2C)、改进内部集成电路(I3C)、系统管理总线(SMBus)或类似低带宽控制总线协议的控制总线接口。这些命令总线可将多设备存储系统内的存储设备互连并且提供同步的、多主的、分组交换的串行通信总线。在一些计算系统中,可包括控制总线引脚作为物理外围设备接口连接器的一部分。因此,例如,PCIe物理接口连接器可在用于提供低带宽控制接口的连接器的一个端部处包括一组I2C、I3C或SMBus引脚。对于与用于数据传输的高带宽外围设备接口的比较,这些低带宽控制总线接口可支持约3至30兆比特(Mb)/s并且可以低至100千比特(kb)/s进行操作。
在一些系统中,低带宽控制总线可针对存储设备的引导周期中的早期通信进行初始化,以辅助电源管理、发现和访问外部资源,诸如温度传感器、风扇控制器、发光二极管(LED)指示器等。存储设备在通过高带宽外围总线建立主机通信或控制之前可能已访问控制总线。
存储设备可能在通过高带宽外围总线建立主机之前遇到错误和/或可能经历阻止主机通信的故障。因此,各个存储设备中的内部操作数据诸如重置事件、调试数据、设备日志和配置信息可能丢失,特别是在强制系统或存储设备重置的不可恢复错误的情况下。
在不等待或不依赖主机系统的情况下卸载和/或备份内部操作数据可能是有利的。可能需要一种在主机前操作期间和/或在不依赖于与主机的外围或存储总线通信的情况下卸载内部操作数据的可靠方式。
发明内容
本发明描述了对等存储设备通信的各个方面,特别是通过低带宽控制总线在对等存储设备之间进行消息传送,以用于卸载或备份内部操作数据。
一个一般性方面包括一种系统,该系统包括第一设备,该第一设备可包括:处理器;存储器;被配置为连接到主机系统的主机接口;被配置为连接到控制总线的控制总线接口,其中多个对等设备被配置为连接到控制总线;以及对等共享服务。对等共享服务可被配置为:通过控制总线接口建立与多个对等设备中的目标对等设备的对等通信;选择用于第一设备的内部操作数据;将所选择的内部操作数据发送到目标对等设备;以及响应于恢复事件而从目标对等设备接收所选择的内部操作数据。
实施方式可包括下列特征中的一者或多者。第一设备还可包括:被配置为存储通过主机接口接收的主机数据的存储介质;被配置用于通过主机接口与主机系统通信的存储接口协议;以及被配置为管理存储介质的数据输入/输出的非易失性存储器设备控制器。存储介质可包括至少一个非易失性存储器设备。存储接口协议可以是非易失性存储器快速(NVMe)协议。多个对等设备可包括多个对等存储设备,并且多个对等存储设备中的每个对等存储设备可包括:被配置为使用NVMe协议连接到主机系统的对等主机接口;对等存储介质可包括至少一个非易失性存储器;以及被配置为连接到控制总线的对等控制总线接口。对等共享服务还可包括发现服务,该发现服务被配置为:通过控制总线接口广播第一设备的设备标识符;通过控制总线接口从多个对等设备接收对等设备标识符;以及将对等设备标识符存储在对等设备注册表中。对等共享服务可被进一步配置为:确定目标对等设备的对等设备标识符;以及将包括所选择的内部操作数据的对等消息格式化为消息有效载荷。发送所选择的内部操作数据可包括使用用于寻址的对等设备标识符将对等消息发送到目标对等设备。对等共享服务还可包括加密服务,该加密服务被配置为在发送对等消息之前对所选择的内部操作数据进行加密。内部操作数据可选自:重置事件数据;调试数据;设备操作日志数据;或最后一个良好配置数据。对等共享服务可被进一步配置为:通过控制总线接口从多个对等设备中的至少一个对等设备接收对等内部操作数据;将对等内部操作数据存储在存储器中的对等数据分区中;以及响应于对等恢复事件而将对等内部操作数据发送到至少一个对等设备。该系统还可包括多个对等设备,其中多个对等设备存储从第一设备接收的内部操作数据,并且对等共享服务还可包括恢复服务,该恢复服务被配置为:确定恢复事件;响应于恢复事件并且通过控制总线接口向多个对等设备中的至少一个对等设备发送恢复请求;从至少一个对等设备接收恢复内部操作数据;以及将恢复内部操作数据存储在内部操作存储器位置。恢复事件可在处于主机前操作状态时发生。恢复内部操作数据可包括最后一个良好配置数据页面,并且第一设备可被进一步配置为使用从至少一个对等设备接收的最后一个良好配置数据页面完成主机前操作。
另一个一般性方面包括一种计算机实现的方法:从第一设备建立与多个对等设备中的目标对等设备的对等通信,其中第一设备和多个对等设备中的每个对等设备包括:被配置为连接到主机系统的主机接口和被配置为连接到控制总线的控制总线接口;选择用于第一设备的内部操作数据;从第一设备并且通过控制总线结构将所选择的内部操作数据发送到目标对等设备;以及通过控制总线接口将来自目标对等设备的所选择的内部操作数据接收到第一设备,其中接收所选择的内部操作数据是对恢复事件的响应。
实施方式可包括下列特征中的一者或多者。第一设备和多个对等设备中的每个对等设备可包括:被配置为存储通过主机接口接收的主机数据的存储介质;被配置用于通过主机接口与主机系统通信的存储接口协议;以及被配置为管理存储介质的数据输入/输出的非易失性存储器设备控制器。该计算机实现的方法还可包括:通过控制总线接口广播第一设备的设备标识符;通过控制总线接口从多个对等设备接收对等设备标识符;以及在第一设备中将对等设备标识符存储在对等设备注册表中。该计算机实现的方法还可包括:由第一设备确定目标对等设备的对等设备标识符;以及将包括所选择的内部操作数据的对等消息格式化为消息有效载荷,其中发送所选择的内部操作数据包括使用用于寻址的对等设备标识符将对等消息发送到目标对等设备。该计算机实现的方法还可包括在发送对等消息之前对所选择的内部操作数据进行加密。内部操作数据可选自:重置事件数据;调试数据;设备操作日志数据;或最后一个良好配置数据。该计算机实现的方法可包括:在第一设备处并且通过控制总线接口从多个对等设备中的至少一个对等设备接收对等内部操作数据;在第一设备的存储器中将对等内部操作数据存储在存储器中的对等数据分区中;以及由第一设备并且响应于对等恢复事件而将对等内部操作数据发送到至少一个对等设备。该计算机实现的方法还可包括:由第一设备确定恢复事件;响应于恢复事件并且通过控制总线接口向多个对等设备中的至少一个对等设备发送恢复请求;从至少一个对等设备并且通过控制总线接口接收恢复内部操作数据;以及将恢复内部操作数据存储在内部操作存储器位置。该计算机实现的方法还可包括由第一设备使用从目标对等设备接收的最后一个良好配置数据页面完成主机前操作,其中恢复事件在处于主机前操作状态时发生并且所选择的内部操作数据包括最后一个良好配置数据页面。
又一个一般性方面包括一种存储系统,该存储系统包括控制总线和多个对等存储设备,其中多个对等存储设备中的每个对等存储设备可包括:处理器;存储器;被配置为连接到主机系统的主机接口;被配置为连接到控制总线的控制总线接口;用于通过控制总线接口建立多个对等存储设备之间的对等通信的装置;用于从内部操作存储器位置选择内部操作数据的装置;用于将所选择的内部操作数据发送到多个对等存储设备中的至少一个其他对等存储设备的装置;以及用于响应于恢复事件而从多个对等存储设备中的至少一个其他对等存储设备接收所选择的内部操作数据的装置。
各种实施方案有利地应用存储设备和/或多设备存储系统的教导内容,以改进此类计算机系统的功能。各种实施方案包括克服或至少减少存储阵列和/或系统中先前遇到的问题的操作,因此比其他计算系统更为可靠和/或有效。即,本文公开的各种实施方案包括硬件和/或软件,这些硬件和/或软件具有诸如借助使用存储设备之间的通过控制总线进行的对等消息传送来改进内部操作数据的通信和备份的功能。因此,本文所公开的实施方案为存储网络和/或存储系统提供了各种改善。
应当理解,本公开中使用的语言主要是出于可读性和指导目的而选择的,并不限制本文公开的主题的范围。
附图说明
图1示意性地示出了具有存储接口总线和控制总线的多设备存储系统。
图2示意性地示出了可由图1的多设备存储系统使用的对等发现架构。
图3示意性地示出了可由图1的多设备存储系统使用的对等消息传送架构。
图4示意性地示出了图1的多设备存储系统的主机节点。
图5更加详细地示意性地示出了图1至图5的存储设备的一些元件。
图6是使用控制总线在对等存储设备之间发送对等消息的示例性方法的流程图。
图7是从对等存储设备恢复内部操作数据的示例性方法的流程图。
图8是支持内部操作数据的对等恢复的示例性方法的流程图。
具体实施方式
图1示出了示例性数据存储系统100的实施方案,该系统具有通过存储接口总线108和控制总线110两者互连的数据存储设备120。虽然示出了一些示例性特征部,但是为了简洁起见且为了不模糊本文公开的示例性实施方案的相关方面,并未示出各种其他特征部。为此,作为非限制性示例,数据存储系统100包括一个或多个数据存储设备120(有时也被称为信息存储设备、存储设备、磁盘驱动器或驱动器)。在一些实施方案中,存储设备120可被配置在服务器或存储阵列刀片中或配置在用于数据中心存储机架或机柜中的类似存储单元中。存储设备120可与一个或多个主机102进行交互并且为那些主机系统提供数据存储和检索能力或通过那些主机系统提供数据存储和检索能力。在一些实施方案中,存储设备120可被配置在包括存储节点、存储控制器和/或存储设备120与主机102之间的其他中间部件的存储层级结构中。例如,每个存储控制器可负责存储节点及其通过对应的背板网络连接的相应存储设备的对应集,尽管仅示出了存储设备120和主机102。
在所示的实施方案中,多个存储设备120附接到公共存储接口总线108以用于主机通信。例如,存储设备120可包括布置在存储阵列中的多个驱动器,诸如共享数据中心中的共用机架、单元或刀片的存储设备或者全闪存阵列中的SSD。在一些实施方案中,存储设备120可共享背板网络、网络交换机和/或通过存储接口总线108和/或控制总线110访问的其他硬件和软件部件。例如,存储设备120可通过多个物理端口连接而连接到存储接口总线108和/或控制总线110,这些物理端口连接定义物理、传输和其他逻辑信道,用于建立与用于建立到主机102的通信信道的不同部件和子部件的通信。在一些实施方案中,存储接口总线108可提供用于存储设备管理和主机数据传输的主机接口,并且控制接口总线110可包括对主机的有限连接性以用于低层控制功能。
在一些实施方案中,存储设备120可被称为对等组或对等存储设备,因为它们通过存储接口总线108和/或控制总线110互连。在一些实施方案中,存储设备120可被配置用于在有或没有主机102辅助的情况下,通过存储接口总线108进行的存储设备120之间的对等通信。例如,存储设备120可被配置用于使用一个或多个协议(诸如非易失性存储器快速(NVMe)、远程直接存储器访问(RDMA)、结构上的NVMe(NVMeOF)等)来直接访问存储器,以使用高带宽存储接口和存储接口总线108在存储设备之间提供命令消息传送和数据传输。
在一些实施方案中,存储设备120可被配置用于使用符合低带宽接口标准的多主发现和消息传送进行对等通信。例如,存储设备120可被配置用于使用低带宽总线协议(诸如内部集成电路(I2C))、改进内部集成电路(I3C)、系统管理总线(SMBus)等)通过控制总线110进行基于分组的消息传送。存储设备120可通过公共控制总线互连,以提供与主机102和其他系统部件的低带宽通信信道,从而辅助电源管理、发现和访问外部资源,诸如温度传感器、风扇控制器、发光二极管(LED)指示器等。例如,控制总线110可将存储设备120连接到基板管理控制器(BMC),以监视主机102的存储设备120的物理状态。存储设备120可基于其与共享控制总线110的连接而被定义为对等存储设备。
在一些实施方案中,数据存储设备120为固态驱动器(SSD)或包括SSD。每个数据存储设备120.1-120.n可包括基于计算资源(处理器和存储器)的非易失性存储器(NVM)或设备控制器130和用于数据存储的多个NVM或介质设备140(例如,一个或多个NVM设备,诸如一个或多个闪存存储器设备)。在一些实施方案中,一个或多个数据存储设备中的相应数据存储设备120包括一个或多个NVM控制器,诸如闪存控制器或信道控制器(例如,用于在多个存储器通道中具有NVM设备的存储设备)。在一些实施方案中,数据存储设备120可各自封装在外壳中,诸如具有限定形状因数的多部件密封外壳以及用于与存储接口总线108和/或控制总线110互连的端口和/或连接器。
在一些实施方案中,相应的数据存储设备120可包括单个介质设备,而在其他实施方案中,相应的数据存储设备120包括多个介质设备。在一些实施方案中,介质设备包括NAND型闪存存储器或NOR型闪存存储器。在一些实施方案中,数据存储设备120可包括一个或多个硬盘驱动器(HDD)。在一些实施方案中,数据存储设备120可包括闪存存储器设备,该闪存存储器设备继而包括一个或多个闪存存储器管芯、一个或多个闪存存储器封装、一个或多个闪存存储器通道等。然而,在一些实施方案中,数据存储设备120中的一个或多个可具有其他类型的非易失性数据存储介质(例如,相变随机存取存储器(PCRAM)、电阻式随机存取存储器(ReRAM)、自旋转移扭矩随机存取存储器(STT-RAM)、磁阻式随机存取存储器(MRAM)等)。
在一些实施方案中,每个存储设备120包括设备控制器130,该设备控制器包括被配置为在一个或多个程序中执行指令的一个或多个处理单元(有时也被称为CPU或处理器或微处理器或微控制器)。在一些实施方案中,一个或多个处理器由在设备控制器的功能内并在一些情况下超出其功能的一个或多个部件共享。介质设备140通过连接件耦接到设备控制器130,这些连接件除了传输数据之外通常还传输命令,并且除了传输要存储在介质设备中的数据值和从介质设备140读取的数据值之外,还可选地传输元数据、纠错信息和/或其他信息。介质设备140可包括任何数量(即,一个或多个)的存储器设备,该存储器设备包括但不限于非易失性半导体存储器设备,诸如一个或多个闪存存储器设备。
在一些实施方案中,存储设备120中的介质设备140被划分为多个可寻址和可单独选择的块,有时被称为擦除块。在一些实施方案中,可单独选择的块是闪存存储器设备中尺寸最小的可擦除单元。换句话讲,每个块包含可被同时擦除(即,在单个擦除操作中)的最小数量的存储器单元。每个块通常进一步划分为多个页面和/或字线,其中每个页面或字线通常是块中最小的可单独存取(可读)部分的实例。然而,在一些实施方案(例如,使用某些类型的闪存存储器)中,数据集的最小可单独访问单元是扇区或码字,该扇区或码字是页面的子单元。也就是说,一个块包括多个页面,每个页面包含多个扇区或码字,并且每个扇区或码字是用于从闪存存储器设备读取数据的最小数据单元。
数据单元可描述数据的任何大小分配,诸如主机块、数据对象、扇区、页面、多平面页面、擦除/编程块、介质设备/封装等。存储位置可包括存储设备120上的物理位置和/或逻辑位置,并且可取决于存储介质、存储设备/系统配置和/或上下文以不同粒度水平描述和/或分配。例如,出于主机读取/写入目的,存储位置可按主机逻辑块地址(LBA)数据单元大小和可寻址性来分配,但在其他上下文中作为具有管理在介质闪存转换层(FTL)中的存储设备寻址的页面来管理。介质段可包括存储设备120上的物理存储位置,该物理存储位置也可对应于一个或多个逻辑存储位置。在一些实施方案中,介质段可包括一系列连续的物理存储位置,诸如存储介质上的相邻数据单元,并且对于闪存存储器设备,该介质段可对应于一个或多个介质擦除或编程块。逻辑数据组可包括不管存储位置如何可在逻辑基础上分组的多个逻辑数据单元,诸如数据对象、文件或由多个主机块构成的其他逻辑数据构造。
在一些实施方案中,主机或主机系统102可通过网络接口耦接到数据存储系统100,该网络接口作为包括作为主机结构接口的存储接口总线108的主机结构网络的一部分。在一些实施方案中,多个主机系统102(图1中仅示出了其中一个)通过结构网络耦接到数据存储系统100,该结构网络可以是存储网络接口或能够支持与多个主机系统102进行通信的其他接口。结构网络可包括可以合适的方式耦接以用于传输数据的有线和/或无线网络(例如,任何数量和/或配置的公共和/或专用计算机网络)。例如,结构网络可包括常规数据通信网络的任何装置,诸如局域网(LAN)、广域网(WAN)、电话网络诸如公共交换电话网络(PSTN)、内联网、互联网或任何其他合适的通信网络或通信网络的组合。
主机系统102或具有多个主机的系统中的相应主机可以是任何合适的计算机设备,诸如计算机、计算机服务器、膝上型计算机、平板设备、上网本、互联网信息亭、个人数字助理、移动电话、智能电话、游戏设备或任何其他计算设备。主机系统102有时被称为主机、客户端或客户端系统。在一些实施方案中,主机系统102是服务器系统(诸如数据中心中的服务器系统)或存储系统(诸如数据中心中的存储阵列)。在一些实施方案中,一个或多个主机系统102是不同于容纳多个存储设备120的存储控制器或存储节点的一个或多个主机设备。一个或多个主机系统102可被配置为存储和访问多个存储设备120中的数据。
主机系统102可包括一个或多个中央处理单元(CPU)104,用于执行通过存储接口总线108访问存储设备120的计算操作或指令。在一些实施方案中,CPU 104可包括处理器并且与操作存储器(未示出)相关联,用于执行存储操作和与存储接口总线108和存储设备120兼容的存储接口协议两者。在一些实施方案中,单独的存储接口单元(未示出)可提供存储接口协议和相关的处理器和存储器资源。从存储设备120的角度来看,存储接口总线108可被称为主机接口总线并且提供存储设备120与主机102之间的主机数据路径。
主机系统102可包括BMC 106,该BMC被配置为监视主机102、存储设备120和/或数据存储系统100的其他部件的物理状态。在一些实施方案中,BMC 106可包括处理器、存储器、传感器和集成在BMC 106中和/或能够通过控制总线110访问的其他资源。BMC 106可被配置为测量在主机102或数据存储系统100内的外壳、相邻部件和/或来自部件本身的内部变量,诸如温度、湿度、电源电压、风扇速度、通信参数和/或操作系统(OS)功能。BMC 106可使系统和部件能够在控制总线110上通过控制信号进行电力循环或根据需要重新引导。在一些实施方案中,BMC 106可被配置为在通过存储接口总线108初始化主机通信之前,在引导循环期间通过控制总线110从存储设备120接收状态通信。
在一些实施方案中,数据存储系统100包括一个或多个处理器、一种或多种类型的存储器、显示器和/或其他用户界面部件诸如键盘、触摸屏显示器、鼠标、触控板,和/或任何数量的添加功能的补充设备。在一些实施方案中,数据存储系统100不具有显示器和其他用户界面部件。
图2示出了示例性存储系统200的示意图,诸如图1中的多设备数据存储系统100,其配置有对等发现架构以支持通过控制总线110的对等消息传送。存储设备120可各自连接到控制总线110,用于与低层物理管理和电源控制子系统(诸如图1中的BMC 106)的低带宽通信。在一些实施方案中,控制总线110支持多主的基于分组的消息传送系统,该消息传送系统可使存储设备120.1能够通过控制总线110与对等存储设备建立通信,此外它们还具有与BMC 106或其他系统部件的通信。通过控制总线110的对等消息传送可独立于通过主机接口或结构接口(诸如图1的存储接口总线108)的任何通信。
连接到控制总线110的每个对等存储设备120.1-120.n可被配置为发起发现消息210。发现消息210可在启动或初始化期间广播到控制总线110。例如,存储设备120可使用控制总线协议来建立控制总线110的优先级或临时主控制,并且发送由连接到控制总线110的所有其他设备接收的广播消息。存储设备120.1可由此将发现消息210.1发送到存储设备120.2-120.n,并且每个对等存储设备可在系统初始化、电力循环或重新引导期间依次执行相同操作。连接到控制总线110的每个对等存储设备120可从每个其他对等存储设备120接收发现消息。
在一些实施方案中,发现消息210可包括设备标识符212和供应商标识符214。设备标识符212可包括相对于连接到控制总线110的所有其他设备的存储设备的唯一标识符。在一些实施方案中,设备标识符212可包括分配给特定存储设备的产品序列号和/或唯一地址。例如,可为连接到控制总线110的每个设备分配唯一地标识控制总线110上的该设备的7位地址。旨在用于该存储设备的消息将包括消息序列中的地址,并且仅具有匹配地址的存储设备将处理消息的内容。消息也可用保留广播或用于由所有设备接收和处理的消息的通用呼叫地址发送。
供应商标识符214可包括指定满足具体标准集的存储设备(诸如由特定公司制造或销售的存储设备或根据特定对等消息传送协议或标准配置的存储设备)的组标识符。例如,供应商标识符214可包括来自特定供应商的被用于通过控制总线的对等消息传送的存储设备的数字标识符。可根据工作组或标准协议来定义和分配供应商标识符,或通过其他方式来确保供应商标识符是唯一的并且用于正确地标识与特定对等消息传送协议和内容兼容的存储设备。
在一些实施方案中,每个存储设备120可使用从对等存储设备接收到的发现消息210来填充用于存储一个或多个对等存储设备的地址的内部数据结构。例如,每个存储设备120可维持内部存储器位置中的对等设备表220,以列出附接到控制总线110的每个其他对等存储设备的地址、设备标识符212和/或供应商标识符214。在一些实施方案中,对等设备表220可包括对等设备标识符条目222的系列、列表或阵列。例如,每次接收到具有不同设备标识符212的发现消息(并且包括表示设备作为用于消息传送目的的对等存储设备的对应供应商标识符214),该设备标识符212可作为新的对等设备标识符条目222输入对等设备表220中。在已接收到所有发现消息210之后,每个存储设备120可包括完整的对等设备表220,其中包含通过控制总线110向每个其他对等存储设备发送消息的必要信息。
图3示出了示例性存储系统300的示意图,诸如图1中的多设备数据存储系统100,其配置有对等消息架构以支持通过控制总线110的各种类型的对等消息310、320、330。存储设备120可各自连接到控制总线110,用于与低层物理管理和电源控制子系统(诸如图1中的BMC 106)的低带宽通信。在一些实施方案中,控制总线110支持多主的基于分组的消息传送系统,该消息传送系统可使存储设备120.1能够通过控制总线110与对等存储设备建立通信,此外它们还具有与BMC 106或连接到控制总线110的其他系统部件的通信。例如,每个存储设备可能能够请求或断言主控制或优先级,以便通过控制总线110将消息发送到作为从属设备操作的对等存储设备。通过控制总线110的对等消息传送可独立于通过主机接口或结构接口(诸如图1的存储接口总线108)的任何通信。
连接到控制总线110的每个对等存储设备120.1-120.n可被配置为使用由控制总线110支持的寻址和消息语法来发起一个或多个消息310、320、330。虽然示出的每个示例性消息来自特定存储设备120,但每个存储设备120可被配置为使用任何或所有消息类型。对等消息310可由存储设备120用来将直接消息发送到目标对等存储设备,诸如包含要卸载或备份的所选择的内部操作数据和/或请求先前存储的内部操作数据以进行恢复的消息。广播消息320可由存储设备120用来一次将消息发送到所有对等存储设备,诸如包含要冗余存储的内部操作数据或请求恢复先前存储的内部操作数据(其中多于一个对等存储设备可包含所需数据)的消息。响应消息330可由存储设备120用来将消息发送回具有所请求数据的对等存储设备,诸如通过发送所请求的内部操作数据来响应恢复请求。需注意,响应消息330包括数据有效载荷,并且在一些实施方案中,可能要求发送存储设备具有主控制或优先级,并且可与可能是从属设备的消息处理协议的一部分的简单确认消息区分开来。
在一些实施方案中,对等消息310可包括发送方标识符312、目标标识符314、供应商标识符316和数据有效载荷318。例如,发送方标识符312可包括发送存储设备的设备标识符和/或发送存储设备的控制总线地址。目标标识符314可包括目标存储设备的设备标识符和/或目标存储设备的控制总线地址。在一些实施方案中,目标标识符314可包括与由控制总线110上的设备使用的控制总线地址分开以确定目标设备的设备标识符。供应商标识符316可包括如上文关于图2中的供应商标识符214所述的供应商标识符。数据有效载荷318可包括由发送存储设备诸如存储设备120.1生成的数据,该数据将由目标对等存储设备存储。例如,数据有效载荷318可包括被标识用于在其他存储设备上卸载或备份的内部操作数据。在一些实施方案中,数据有效载荷318可包括恢复参数,这些参数描述发送存储设备进行数据恢复所需的先前卸载或存储的数据,诸如恢复丢失事件日志、调试数据或最后一个良好页面数据。
在一些实施方案中,广播消息320可包括发送方标识符322、广播地址324、供应商标识符326和数据有效载荷328。例如,发送方标识符322可包括发送存储设备的设备标识符和/或发送存储设备的控制总线地址。广播地址324可包括保留地址、标头标签或类似标识符,以表示应发送到控制总线110上的所有设备的广播消息。供应商标识符326可包括如上文关于图2中的供应商标识符214所述的供应商标识符。数据有效载荷328可包括由发送存储设备诸如存储设备120.1生成的数据,该数据将由一个或多个目标对等存储设备存储。例如,数据有效载荷328可包括被标识用于在其他存储设备上卸载或备份的内部操作数据。在一些实施方案中,数据有效载荷318可包括恢复参数,这些参数描述发送存储设备进行数据恢复所需的先前卸载或存储的数据,诸如恢复丢失事件日志、调试数据或最后一个良好页面数据。
在一些实施方案中,响应消息330可包括发送方标识符332、目标标识符334、供应商标识符336和数据有效载荷338。响应消息330可与对等消息310不同,因为它可能是对收到对等消息310的响应。例如,对等消息310可包括具有描述先前存储的内部操作数据的参数的恢复请求,并且响应消息330可利用所请求的恢复数据来响应对等消息310。发送方标识符332可包括发送存储设备的设备标识符和/或发送存储设备的控制总线地址。目标标识符334可包括目标存储设备的设备标识符和/或目标存储设备的控制总线地址,目标存储设备一般来讲是接收到恢复请求的存储设备。供应商标识符336可包括如上文关于图2中的供应商标识符214所述的供应商标识符。数据有效载荷338可包括由发送存储设备先前存储的来自请求存储设备并且关于请求存储设备的数据,请求存储设备可能现在是用于响应消息330的目标对等存储设备。例如,数据有效载荷318可包括被标识用于恢复到请求恢复数据的目标存储设备的内部操作数据。
图4示出了示例性主机系统102的示意图。主机系统102可包括总线410、处理器420、本地存储器430、一个或多个任选的输入单元440、一个或多个任选的输出单元450以及通信接口460。总线410可包括允许在主机102的部件之间进行通信的一个或多个导体。处理器420可包括解释和执行指令的任何类型的常规处理器或微处理器。本地存储器430可包括随机存取存储器(RAM)或存储供处理器420执行的信息和指令的另一类型的动态存储设备和/或只读存储器(ROM)或存储供处理器420使用的静态信息和指令的另一类型的静态存储设备和/或任何合适的存储元件诸如硬盘或固态存储元件。任选的输入单元440可包括允许操作者向主机102输入信息的一个或多个常规机构,诸如键盘、鼠标、笔、语音标识和/或生物识别机构等。任选的输出单元450可包括向操作者输出信息的一个或多个常规机构,诸如显示器、打印机、扬声器等。通信接口460可包括使主机102能够与其他设备和/或系统通信的任何收发器状机构。在一些实施方案中,通信接口460可包括一个或多个外围设备接口,诸如用于连接到存储设备120的PCIe接口。
图5示意性地示出了被配置用于对等消息传送的存储设备500的所选模块,诸如存储设备120。存储设备500可结合与图1至图4所示的那些类似的元件和配置。例如,存储设备500可被配置为由控制总线互连的一组对等存储设备中的存储设备120,并且包括用于向/从多设备数据存储系统中的主机传输数据的主机或存储总线接口。
存储设备500可包括互连至少一个处理器512、至少一个存储器514和至少一个接口的总线510,诸如存储总线接口516和控制总线接口518。总线510可包括允许在存储设备500的部件之间进行通信的一个或多个导体。处理器512可包括解释和执行指令的任何类型的处理器或微处理器。存储器514可包括随机存取存储器(RAM)或存储供处理器512执行的信息和指令的另一类型的动态存储设备和/或只读存储器(ROM)或存储供处理器512使用的静态信息和指令的另一类型的静态存储设备和/或诸如硬盘或固态存储元件的任何合适的存储元件。
存储总线接口516可包括用于使用支持存储设备访问的接口协议连接到主机的物理接口。例如,存储总线接口516可包括PCIe、SATA、SAS或支持NVMe访问包括非易失性存储器设备520在内的固态介质的类似存储接口连接器。控制总线接口518可包括用于使用用于计算部件之间的低层控制消息的低带宽接口协议连接到控制总线的物理接口。例如,控制总线接口518可包括I2C、I3C、SMBus或支持部件到部件消息传送(诸如通过双线总线进行的多主的基于分组的消息传送)的类似总线接口连接器。
存储设备500可包括被配置为存储主机数据的一个或多个非易失性存储器设备520。例如,非易失性存储器设备520可包括被组织为可寻址存储器阵列的多个闪存存储器封装。在一些实施方案中,非易失性存储器设备520可包括由单层单元(SLC)、多层单元(MLC)或三层单元组成的NAND或NOR闪存存储器设备。
存储设备500可包括多个模块或子系统,这些模块或子系统被存储和/或实例化在存储器514中以供处理器512按指令或操作执行。例如,存储器514可包括被配置为接收、处理和响应来自客户端或主机系统的主机数据请求的主机接口530。存储器514可包括被配置为管理对非易失性存储器设备520的读取操作和写入操作的非易失性存储器(NVM)控制器534。存储器514可包括被配置用于低层操作系统和存储设备500内独立于主机命令执行的固件功能的主机前操作,尤其是在设备上电、初始化、电力循环或非平稳停机(ungracefulshutdown,UGSD)期间。存储器514可包括被配置为根据确定的协议或标准管理通过控制总线接口518进行的通信的控制总线协议。存储器514可包括内部操作数据550,该内部操作数据被配置为存储用于设备管理和故障排除的存储设备500的低层操作数据。存储器514可包括对等共享服务560,该对等共享服务被配置为用于附接到与存储设备500相同的控制总线的存储设备之间的通信。
主机接口530可包括用于接收、解析、响应以及以其他方式管理来自主机的主机数据请求的接口协议和/或功能和参数的集。例如,主机接口530可包括用于根据主机通信和存储协议来接收和处理用于读取、写入、修改或以其他方式操纵数据块和其相应客户端或主机数据和/或元数据的主机请求的功能。在一些实施方案中,对于存储在非易失性存储器设备520中的主机数据单元520.3,主机接口530可以进行直接存储器访问和/或通过存储总线接口516利用NVMe协议进行访问。例如,主机接口530可包括与PCIe、SATA、SAS和/或支持使用NVMe协议对主机数据520.3进行数据访问的另一总线接口兼容的主机通信协议。
在一些实施方案中,主机接口530可包括多个硬件模块和/或软件模块,这些硬件模块和/或软件模块被配置为使用处理器512和存储器514来处理或管理主机接口530的限定操作。例如,主机接口530可包括存储接口协议532,该存储接口协议被配置为符合主机支持的用于通过存储总线接口516进行通信的物理、传输和存储应用协议。例如,存储接口协议532可包括PCIe和NVMe均兼容的通信、命令和语法功能、程序和数据结构。在一些实施方案中,主机接口530可包括用于命令处理、缓冲区管理、存储设备管理和报告以及其他主机侧功能的附加模块(未示出)。
NVM控制器534可包括接口协议和/或用于读取、写入和删除非易失性存储器设备520中的数据单元的功能和参数的集。例如,主机接口530可包括用于执行与通过主机接口530接收的主机存储命令有关的主机数据操作的功能。例如,PUT或写入命令可被配置为将主机数据单元写入非易失性存储器设备520。GET或读取命令可被配置为从非易失性存储器设备520读取数据。DELETE命令可被配置为从非易失性存储器设备520删除数据,或者至少标记待删除的数据位置直到未来垃圾收集或类似操作实际删除该数据或将物理存储位置重新分配给另一目的。在一些实施方案中,NVM控制器534可包括闪存转换层(FTL)管理、数据状态机、读/写缓冲区管理、NVM设备接口协议、NVM设备配置/管理/维护以及其他设备侧功能。在一些实施方案中,NVM控制器534可被配置为分配非易失性存储器设备520中的存储器位置的一部分,用于存储除主机数据520.3之外的数据。例如,NVM控制器534可分配设备数据520.1,作为保留给内部设备数据(包括设备配置、参数和内部操作数据)的存储器位置。在一些实施方案中,NVM控制器534可分配对等数据520.2,作为保留给从对等存储设备接收的并且关于对等存储设备的内部设备数据(包括来自那些对等存储设备的内部操作数据)的存储器位置。在一些实施方案中,分配给设备数据520.1和/或对等数据520.2的存储空间可包括从可用于主机数据520.3的存储容量排除的设备数据分区和/或对等数据分区,诸如从主机隐藏的用于存储内部操作数据、FTL表、更换不良块等的预配过度的存储位置。
主机前操作540可包括用于管理存储设备500的低层设备操作的功能和参数。例如,主机前操作540可包括在通过主机接口530建立主机通信之前在存储设备500的启动或初始化期间执行的操作,表示为主机前操作状态。在一些实施方案中,主机前操作540还可包括用于在主机通信可能暂时变得不可用的停机、电力循环、错误或故障状态期间管理低层设备操作的功能和参数。例如,主机前操作540可包括只读存储器、引导加载器、固件和/或操作系统操作,这些操作将存储设备500的基本操作作为一组互连的计算部件和接口监管,独立于较高层的主机数据存储功能。
在一些实施方案中,主机前操作540可包括多个硬件模块和/或软件模块,这些硬件模块和/或软件模块被配置为使用处理器512和存储器514来处理或管理预定义的主机前操作540。例如,主机前操作540可包括只读存储器(ROM)542,该只读存储器被配置为提供由处理器512在启动时执行的初始指令集以初始化基本部件检测、配置和内部总线510上的部件之间的通信。主机前操作540可包括引导加载器544,该引导加载器被配置为提供和发起启动或引导时间任务和过程以实例化操作系统和/或存储设备500及其在存储器514中的部件的固件546。主机前操作540可包括固件546,该固件被配置为实例化存储设备500的部件的数据结构、功能和界面以交互和执行本文所述的各种功能。在一些实施方案中,固件546可包括主机接口530、NVM控制器534、控制总线协议548和对等共享服务560的初始化。在一些实施方案中,只读存储器542、引导加载器544和/或固件546的执行可生成内部操作数据550,诸如重置事件552、调试数据554、设备日志556和最后一个良好配置数据558。
控制总线协议548可包括用于使用与低带宽接口标准兼容的多主发现和消息传送的主机或相关联的基板管理控制器(BMC)内的通信的接口、功能和参数。例如,存储设备500可被配置用于使用低带宽总线协议(诸如I2C、I3C、SMBus等)通过控制总线接口518进行的基于分组的消息传送。控制总线协议548可包括多个硬件模块和/或软件模块,这些硬件模块和/或软件模块被配置为使用处理器512、存储器514和控制总线接口518,用于使用所连接的控制总线支持的控制总线协议与主机部件(包括同一控制总线上的对等存储设备)的通信。在一些实施方案中,控制总线协议548可提供与主机和其他系统部件之间的低带宽通信信道,以辅助电源管理、发现和访问外部资源,诸如温度传感器、风扇控制器、发光二极管(LED)指示器等。例如,控制总线接口518可将存储设备500连接到BMC,用于监视存储设备500的物理状态。在一些实施方案中,控制总线协议548可提供由对等共享服务560使用的发现和消息传送功能。
内部操作数据550可包括数据结构和相关功能,用于实例化与存储器514中的内部操作存储器位置中的内部存储设备操作相关的数据和/或非易失性存储器设备520中的设备数据520.1。例如,内部操作数据550可包括由内部管理过程诸如主机前操作540生成并写入设备数据520.1的数据。在一些实施方案中,内部操作数据550可包括重置事件552、调试数据554、设备日志556和/或最后一个良好配置数据558。
例如,重置事件552可包括在由固件546触发重置和/或通过控制总线接口518发起硬件或软件重置时用于存储设备500的操作状态参数的重置事件数据集。重置事件552可包括ROM 542、引导加载器544和/或固件546操作期间的重置发生。操作状态参数集可从存储器514中用于表示存储设备500的当前操作状态的寄存器或其他数据结构中抽取,并且在重置操作期间存储到设备数据520.1。调试数据554可包括由存储设备500内的任何失败过程或服务生成的状态参数、跟踪数据或类似调试输出的集。例如,调试数据554可包括表示在发生致命断言或崩溃之前存储设备500和/或其中的任何过程的状态的过程参数。设备日志556可包括与在操作日志数据中随时间推移记录的内部操作相关的一个或多个操作参数集,并且可表示在存储设备500中操作的过程,而不论错误、故障或电力循环状态如何。在一些实施方案中,设备日志556可包括功率模式日志,功率模式日志包括功率模式改变,诸如进入低功率模式和/或返回到正常功率模式。当存储设备500最后一次开始和/或正常操作时,最后一个良好配置数据558可包括使用中的配置参数集。例如,最后一个良好配置数据558可包括描述由存储设备500写入的最后一个良好页面和/或在最后一个良好配置数据页面中针对稳定配置处理的最后一个固件更新的参数。在一些实施方案中,作为初始化或电力循环期间的设备恢复过程的一部分,可能需要找到并加载最后一个良好页面写入数据和/或稳定固件版本。例如,正在恢复的存储设备可被配置为查询用于固件字段更新的对等存储设备、恢复最当前版本(通过比较与存储设备当前固件版本/更新以及从对等设备可用的固件版本/更新相关联的版本号),并且将其用于恢复过程。在一些实施方案中,最近固件版本可能不是设备使用的先前固件版本,而是当存储设备离线或以其他方式无法接收更新和/或成功地安装此类更新时释放的固件字段更新。
对等共享服务560可包括接口协议以及功能和参数的集,用于发现对等存储设备、利用那些对等存储设备发送和接收消息和/或从那些对等存储设备恢复数据。例如,对等共享服务560可包括使用控制总线协议548通过控制总线接口518利用低带宽通信的功能。在一些实施方案中,对等共享服务560可包括管理非易失性存储器设备520中的对等数据520.2以用于存储对等内部操作数据,和/或可支持数据加密以用于在传输中加密内部操作数据和/或以加密状态存储对等数据520.2。
在一些实施方案中,对等共享服务560可包括多个硬件模块和/或软件模块,这些硬件模块和/或软件模块被配置为使用处理器512和存储器514来处理或管理对等共享服务560的限定操作。例如,对等共享服务560可包括发现服务562、加密服务564、消息传送服务566和/或恢复服务568。例如,发现服务562可被配置为发现共享控制总线上的对等存储设备并且存储其地址以供消息传送服务566和/或恢复服务568使用。加密服务564可被配置为针对到对等数据520.2的传输、存储和/或到设备数据520.1的恢复和存储,加密和/或解密用于消息传送服务566的有效载荷数据。消息传送服务566可被配置为通过共享控制总线向/从对等存储设备发送和接收一对一和/或广播消息。恢复服务568可被配置为从对等存储设备请求和接收数据,以辅助存储设备500的恢复任务。
发现服务562可包括用于发现控制总线上的对等设备并确定供对等共享服务560使用的对等设备地址的数据结构、功能和接口。例如,在存储设备500的初始化或启动期间,发现服务562可广播其设备标识符或地址并且从其他设备接收类似广播,以累积控制总线上的其他设备的设备信息。在一些实施方案中,发现服务562可包括对等设备注册表562.1,该对等设备注册表被配置为存储存储设备标识符、控制总线地址和/或其他对等存储设备信息以建立和支持与对等存储设备的通信。例如,对等设备注册表562.1可在存储器514和/或设备数据520.1中包括数据表或其他数据结构,这些数据表或其他数据结构包括与对应的控制总线地址相关联的多个设备标识符条目。在一些实施方案中,发现服务562可包括设备ID广播方562.2,该设备ID广播方被配置为确定存储设备500的存储设备标识符和/或控制总线地址以及在控制总线上广播消息以使得控制总线上的其他设备能够发现存储设备500。例如,响应于来自另一设备的发现消息和/或根据控制总线协议548的另一设备发现触发事件,可在存储设备500的启动或初始化时在ROM、引导加载器或固件执行期间触发设备ID广播方562.2。在一些实施方案中,发现服务562可包括对等ID接收方562.3,该对等ID接收方被配置为监视通过控制总线接口518进行的通信、标识来自其他存储设备的发现广播以及在对等设备注册表520.1中添加对应设备标识符条目。例如,控制总线协议548可定义广播消息的语法,诸如广播地址、标签或用于指定发现广播的类似参数,以及包括存储设备标识符、控制总线地址、供应商标识符等的数据有效载荷,并且对等ID接收方562.3可根据满足该语法来提取对等存储设备标识符的解析消息进行配置。
加密服务564可包括用于加密和解密内部操作数据550以便共享和/或存储的数据结构、功能和接口。例如,加密服务564可包括与对等存储设备的加密密钥交换以在对等存储设备之间建立加密的消息传送,和/或仅局部加密以能够共享和/或存储加密的内部操作数据,其中仅源对等存储设备能够解密加密的数据。在一些实施方案中,由于存储设备500中的内部操作生成内部操作数据550,因此所选择的内部操作数据可由加密服务564加密并存储在设备数据520.1中和/或通过消息传送服务566发送到对等存储设备。消息传送服务566可将加密密钥发送到对等存储设备,以能够在存储为对等数据之前或后续访问对等数据时通过对等存储设备解密加密的数据有效载荷。在一些实施方案中,加密服务564可对目标内部操作数据的实施所选择的加密算法和标准,诸如高级加密标准(AES)-128或其他加密标准。
消息传送服务566可包括用于通过控制总线向/从对等设备发送和接收消息的数据结构、功能和接口。例如,消息传送服务566可实施控制总线协议548以利用通过发现服务562标识的其他设备来发送和接收消息。在一些实施方案中,消息传送服务566可使用对等存储设备中的缓冲区之间的块写入和块读取命令通过控制总线发送分组的数据有效载荷。
在一些实施方案中,消息传送服务566可包括共享对等选择器566.1,该共享对等选择器被配置为选择目标或目的地对等存储设备以接收消息。例如,共享对等选择器566.1可包括用于选择对等存储设备以接收特定内部操作数据集的参数设置或算法,诸如用于卸载或备份存储设备500的所选择的对等存储设备或用于在对等存储设备之间分配内部操作数据的算法(随机生成器、轮询调度等)。在一些实施方案中,消息传送服务566可包括共享触发事件566.2,该共享触发事件被配置为确定何时将所选择的内部操作数据发送到一个或多个对等存储设备。例如,共享触发事件566.2可包括用于触发内部操作数据的卸载的多个基于规则的条件,诸如重置事件、操作错误、功率模式改变、成功启动、存储良好页面、非平稳停机、周期性备份时间表等。在一些实施方案中,消息传送服务566可包括共享内容选择器566.3,该共享内容选择器被配置为通过消息传送服务566选择要卸载的内部操作数据集。例如,共享内容选择器566.3可包括用于确定待发送到对等存储设备的内部操作数据类型和范围的参数集。在对等共享服务560支持多个共享触发事件566.2和/或内部操作数据类型的情况下,特定共享触发事件可确定内部操作数据类型和卸载程度,诸如用于触发操作故障的调试数据、用于周期性触发的设备日志数据的定义时间窗口、最近固件更新的内容或用于成功操作的最后一个良好页面等。在一些实施方案中,消息传送服务566可包括共享消息格式化程序566.4,该共享消息格式化程序被配置为根据控制总线协议548格式化对等消息,以将目标对等存储设备的控制总线地址和所选择的内容包括在数据有效载荷中。例如,共享消息格式化程序566.4可生成或确定包含控制总线地址和读/写标记的标头,然后是消息有效载荷和/或其他参数,诸如命令代码和/或错误代码,以传输所选择的内部操作数据。
在一些实施方案中,消息传送服务566可包括对等消息监视器566.5,该对等消息监视器被配置为监视控制总线接口518是否有从对等存储设备(直接或经由广播)寻址到存储设备500的消息。例如,对等消息监视器566.5可通过控制总线接收由对等存储设备发起和/或响应于由消息传送服务566发送的消息的对等消息。对等消息监视器566.5可解析所接收的消息以确定是否需要进一步的动作,诸如将对等数据传输到对等存储管理器566.6或将恢复请求或恢复数据传输到恢复服务568。在一些实施方案中,消息传送服务566可包括对等存储管理器566.6,该对等存储管理器被配置为存储从对等存储设备接收到的对等数据以用于卸载或备份。例如,对等存储管理器566.6可从一个或多个对等存储设备接收内部操作数据并将这些数据存储在对等数据520.2中。在一些实施方案中,对等存储管理器566.6可维护用于通过存储设备标识符、内部操作数据类型和其他参数来找到对等数据以在请求时支持选择性地检索对等数据的参考表或类似数据结构。在一些实施方案中,对等存储管理器566.6还可维护指示哪个对等存储设备已从存储设备500接收到卸载的内部操作数据550的参考表或类似数据结构。
恢复服务568可包括用于通过控制总线从对等设备恢复内部操作数据以供在恢复操作使用的数据结构、功能和接口。例如,可在非平稳停机之后的启动或电力循环期间发起恢复服务568,以从丢失、损坏或不可信的内部操作数据先前所卸载到的对等存储设备请求该内部操作数据。
在一些实施方案中,恢复服务568可包括恢复事件568.1,这些恢复事件被配置为确定何时应该恢复先前卸载的数据以供存储设备500使用。例如,恢复事件568.1可包括触发搜索和检索卸载的内部操作数据的事件条件或参数的基于规则的集,诸如非平稳停机之后的启动、电力循环、功率模式改变或选择的错误条件。在一些实施方案中,即使没有重置事件,存储设备500也可在安装时发起对等恢复特征。例如,存储设备500可配备可从对等存储设备搜索固件更新并“恢复”最新的兼容固件更新的即插即用特征。在一些实施方案中,恢复服务568可包括恢复对等选择器568.2,该恢复对等选择器被配置为确定包含目标恢复数据(或先前卸载的内部操作数据)的对等存储设备。例如,对等选择器568.2可使用对等存储管理器566.6来标识对等存储设备或所期望的恢复数据卸载到的设备(如果已知的话)。在一些实施方案中,存储设备500可能不知道哪个对等存储设备包括期望的恢复数据,并且对等选择器568.2可被配置为使用恢复请求方568.3来轮询对等存储设备以确定其中的任一者是否包含期望的恢复数据。例如,恢复请求方568.3可将恢复请求发送到多个对等存储设备,包含恢复数据的任何对等存储设备可利用恢复数据进行响应。在一些实施方案中,可通过消息传送服务566(或恢复请求方568.3)来发送初始轮询请求,响应消息可指示每个对等存储设备是否包含数据中的一些或全部以及每个对等存储设备在多大程度上包含数据中的一些或全部,并且对等选择器568.2可使用响应来确定哪个对等存储设备应接收恢复请求。在一些实施方案中,恢复服务568可包括恢复请求方568.3,该恢复请求方被配置为通过控制总线向一个或多个对等存储设备发送恢复请求消息。例如,恢复请求方568.3可使用消息传送服务566将恢复消息发送到包含期望的恢复数据中的一些或全部的恢复对等存储设备。恢复请求可标识数据有效载荷中的恢复操作期望的内部操作数据的特定集和/或包括被配置为请求目标恢复数据的命令代码或过程调用。在一些实施方案中,恢复服务568可包括恢复管理器568.4,该恢复管理器被配置为从对等存储设备接收响应性恢复数据并将所接收的恢复数据存储到存储器514和/或设备数据520.1以供在完成恢复操作时使用。例如,可将消息传送服务566接收的恢复数据转发到恢复管理器568.4,并且恢复管理器568.4可针对所恢复的内部操作数据确定设备数据520.1中的一个或多个存储位置。一旦所恢复的内部操作数据返回到设备数据520.1,就可供存储设备500使用以完成恢复操作,诸如主机前操作540或从非平稳停机或操作错误实现的其他恢复。
如图6所示,可根据用于使用控制总线在对等存储设备之间发送对等消息的示例性方法(即根据图6中的框610至624所示的方法600)来操作存储设备500。
在框610处,可通过控制总线将设备标识符广播到对等设备。例如,符合控制总线协议的发现服务可发送标识存储设备及其控制总线地址的广播消息。
在框612处,可通过控制总线从对等设备接收设备标识符。例如,发现服务还可接收标识同一控制总线上的其他存储设备以及它们的控制总线地址的广播消息。这些对等发现消息可响应于在框610处的存储设备的广播而接收,作为每个对等存储设备的启动或初始化的一部分而发起,和/或基于主发现触发事件或广播。
在框614处,来自对等设备的设备标识符可存储在存储设备的对等设备注册表中。例如,发现服务可将与每个对等存储设备相关的存储设备标识符、控制总线地址和/或其他信息存储在对等设备注册表中的对等存储设备条目中。
在框616处,可在对等存储设备之间建立对等通信。例如,对等设备注册表可包含用于针对对等存储设备的寻址消息的必需信息,并且对等消息传送服务可被配置为使用控制总线协议向对等存储设备发送广播和/或直接消息。
在框618处,可选择用于由存储设备卸载的内部操作数据。例如,消息传送服务可基于一个或多个共享触发条件或事件来选择内部操作数据集。
在框620处,可针对卸载消息确定目标对等设备。例如,消息传送服务可从对等设备注册表中选择一个或多个对等存储设备来接收所选择的内部操作数据。
在框622处,可格式化对等消息以符合控制总线协议。例如,消息传送服务可在具有用于目标对等存储设备的适当地址标头的一个或多个对等消息中将所选择的内部操作数据封装为数据有效载荷。
在框624处,可通过控制总线将对等消息从生成内部操作数据的存储设备发送到对等存储设备。例如,消息传送服务可通过控制总线接口发送在框622处生成的对等消息。
如图7所示,可根据用于从对等存储设备恢复内部操作数据的示例性方法(即,根据图7中的框710至720所示的方法700)来操作存储设备500。
在框710处,可确定恢复事件。例如,存储设备的先前卸载的内部操作数据到对等存储设备的恢复服务可检测恢复事件,诸如在非平稳停机、电力循环或功率模式改变之后的启动。
在框712处,可确定对等设备。例如,恢复服务可确定可能已接收期望的恢复数据并选择一个或多个对应对等存储设备来接收恢复请求的对等存储设备。
在框714处,可将恢复请求发送到一个或多个对等存储设备。例如,恢复服务可格式化指定恢复所需的内部操作数据的恢复请求并发送该恢复请求。
在框716处,可接收恢复内部操作数据。例如,恢复服务可从接收恢复请求的对等存储设备接收一个或多个响应消息。恢复响应消息可包括在恢复请求中请求的恢复内部操作数据中的一些或全部。
在框718处,可存储恢复内部操作数据。例如,恢复服务可将从对等存储设备恢复的内部操作数据存储到用于存储设备的内部操作数据的设备数据存储库,诸如在内部操作数据缺失、损坏或不可靠的存储位置中。
在框720处,可使用恢复内部操作数据来完成操作。例如,存储设备可使用从对等存储设备恢复的内部操作数据来完成一个或多个内部操作,诸如ROM、引导加载器或用于启动、错误恢复、功率模式改变等的固件过程。
如图8所示,可根据用于支持内部操作数据的对等恢复的示例性方法(即根据图8中的框810至820所示的方法800)来操作存储设备500。
在框810处,可从对等存储设备接收对等内部操作数据。例如,消息传送服务可接收将内部操作数据卸载到接收存储设备的对等消息。
在框812处,可由接收存储设备存储对等内部操作数据。例如,存储设备可包括分配给存储对等内部操作数据的存储空间并且存储所接收的对等内部操作数据,该对等内部操作数据具有的元数据足以标识、检索所存储的对等内部操作并将所存储的对等内部操作与其源自的对等存储设备相关联。
在框814处,可接收恢复请求。例如,消息传送服务可接收对等消息并将其标识为恢复请求,该恢复请求包含描述恢复所需的内部操作数据的参数。
在框816处,可确定恢复内部操作数据。例如,对等存储管理器可使用恢复请求参数来确定对等数据中所请求的内部操作数据的范围。
在框818处,可检索恢复内部操作数据。例如,对等存储管理器可检索所请求的恢复内部操作数据的哪个部分存储在存储设备中的对等数据中。
在框820处,可发送对等内部操作数据。例如,消息传送服务可将包括在框818处检索到的恢复内部操作数据的一个或多个响应消息发送到发送恢复请求的对等存储设备。
尽管在本技术的前述详细描述中已经呈现了至少一个示例性实施方案,但应当理解,可存在大量变化。还应当理解,一个或多个示例性实施方案是示例,并且不旨在以任何方式限制技术的范围、适用性或配置。相反,前面的详细描述将为本领域技术人员提供用于实现本技术的示例性实施方案的便利指导方针,应当理解,在不脱离如所附权利要求及其合法等同物所阐述的技术范围的情况下,可以对示例性实施方案中描述的元件的功能和/或布置进行各种修改。
如本领域普通技术人员将理解的,本技术的各个方面可以体现为系统、方法、或计算机程序产品。因此,本技术的一些方面可以采取完全为硬件的实施方案、完全为软件的实施方案(包括固件、驻留软件、微代码等)、或硬件和软件方面的组合的形式,这些方面通常都可以在本文中称为电路、模块、系统和/或网络。此外,本技术的各个方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,包括在其上体现的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或物理计算机可读存储介质。例如,物理计算机可读存储介质可以是但不限于电子、磁性、光学、晶体、聚合物、电磁、红外或半导体系统、装置或设备等,或前述的任何合适组合。物理计算机可读存储介质的非限制性示例可包括但不限于包括一个或多个电线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器、光纤、紧凑式光盘只读存储器(CD-ROM)、光学处理器、磁处理器等,或前述的任何合适的组合。在本文档的上下文中,计算机可读存储介质可以是可包含或存储用于供指令执行系统、装置、和/或设备使用或与其结合的程序或数据的任何有形介质。
计算机可读介质上体现的计算机代码可以使用任何适当的介质来传输,包括但不限于无线、有线、光纤电缆、射频(RF)等,或者前述的任何合适组合。用于执行本技术的各方面的操作的计算机代码可以用任何静态语言编写,诸如C编程语言或其他类似的编程语言。计算机代码可以完全在用户的计算设备上执行,部分在用户的计算设备上执行,作为独立的软件包,部分在用户的计算设备上并且部分在远程计算设备上执行,或者完全在远程计算设备或服务器上执行。在后一种情况下,远程计算设备可以通过任何类型的网络或通信系统连接到用户的计算设备,包括但不限于,可以对外部计算机(例如,通过使用互联网服务提供商的互联网)建立局域网(LAN)或广域网(WAN)、聚合网络或连接。
以上可以参考方法、装置、系统和计算机程序产品的流程图图示和/或框图来描述本技术的各方面。应当理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可以由计算机程序指令实现。可以将这些计算机程序指令提供给通用计算机、专用计算机、或其他可编程数据处理装置的处理设备(处理器)以生产机器,使得可经由处理设备或其他可编程数据处理装置执行的指令创建用于实现在流程图中和/或框图的一个或多个框中指定的操作/动作的装置。
一些计算机程序指令还可以存储在计算机可读介质中,该计算机可读介质可以指示计算机、其他可编程数据处理装置或一个或多个其他设备以特定方式操作,使得该指令存储在计算机可读介质中以产生包括实现在流程图中和/或框图的一个或多个框中指定的操作/动作的指令的制品。一些计算机程序指令也可以被加载到计算设备、其他可编程数据处理装置、或一个或多个其他设备上,以致使在计算设备、其他可编程装置、或一个或多个其他设备上执行一系列操作步骤以产生计算机实现的过程,使得由计算机或其他可编程装置执行的指令提供用于实现在流程图中和/或框图的一个或多个框中指定的一个或多个操作/一个或多个动作的一个或多个过程。
以上附图中的流程图和/或框图可以示出根据本技术的各方面的装置、系统、方法和/或计算机程序产品的可能具体实施的架构、功能和/或操作。在这方面,流程图或框图中的框可以表示代码的模块、片段或部分,其可以包括用于实现一个或多个指定逻辑功能的一个或多个可执行指令。还应当指出,在一些另选的方面中,框中示出的一些功能可以不按图中所示的顺序发生。例如,事实上,连续示出的两个框可基本上同时执行,或者这些框有时可以采用相反的顺序执行,这取决于所涉及的操作。还应当注意,框图和/或流程图图示的框或框图和/或流程图图示中的框的组合可以由可执行一个或多个指定操作或动作的基于专用硬件的系统,或专用硬件和计算机指令的组合来实现。
虽然已经详细说明和讨论了本技术的一个或多个方面,但本领域普通技术人员将理解,在不脱离如所附权利要求中阐述的本技术的范围的情况下,可以对各个方面进行修改和/或调整。
Claims (20)
1.一种系统,包括:
第一设备,所述第一设备包括:
处理器;
存储器;
被配置为连接到主机系统的主机接口;
被配置为连接到控制总线的控制总线接口,其中多个对等设备被配置为连接到所述控制总线;和
对等共享服务,所述对等共享服务被配置为:
通过所述控制总线接口建立与所述多个对等设备中的目标对等设备的对等通信;
选择用于所述第一设备的内部操作数据;
将所选择的内部操作数据发送到所述目标对等设备;以及
响应于恢复事件而从所述目标对等设备接收所选择的内部操作数据。
2.根据权利要求1所述的系统,其中所述第一设备还包括:
被配置为存储通过所述主机接口接收的主机数据的存储介质;
被配置用于通过所述主机接口与所述主机系统通信的存储接口协议;和
被配置为管理所述存储介质的数据输入/输出的非易失性存储器设备控制器。
3.根据权利要求2所述的系统,其中:
所述存储介质包括至少一个非易失性存储器设备;
所述存储接口协议是非易失性存储器快速(NVMe)协议;
所述多个对等设备包括多个对等存储设备;并且
所述多个对等存储设备中的每个对等存储设备包括:
被配置为使用所述NVMe协议连接到所述主机系统的对等主机接口;
包括至少一个非易失性存储器的对等存储介质;和
被配置为连接到所述控制总线的对等控制总线接口。
4.根据权利要求1所述的系统,其中所述对等共享服务包括发现服务,所述发现服务被配置为:
通过所述控制总线接口广播所述第一设备的设备标识符;
通过所述控制总线接口从所述多个对等设备接收对等设备标识符;以及
将所述对等设备标识符存储在对等设备注册表中。
5.根据权利要求1所述的系统,其中:
所述对等共享服务被进一步配置为:
确定所述目标对等设备的对等设备标识符;以及
将包括所选择的内部操作数据的对等消息格式化为消息有效载荷;以及
发送所选择的内部操作数据包括使用用于寻址的所述对等设备标识符将所述对等消息发送到所述目标对等设备。
6.根据权利要求5所述的系统,其中所述对等共享服务包括被配置为在发送所述对等消息之前对所选择的内部操作数据进行加密的加密服务。
7.根据权利要求1所述的系统,其中所述内部操作数据选自:
重置事件数据;
调试数据;
设备操作日志数据;或者
最后一个良好配置数据。
8.根据权利要求1所述的系统,其中所述对等共享服务被进一步配置为:
通过所述控制总线接口从所述多个对等设备中的至少一个对等设备接收对等内部操作数据;
将所述对等内部操作数据存储在所述存储器中的对等数据分区中;以及
响应于对等恢复事件而将所述对等内部操作数据发送到所述至少一个对等设备。
9.根据权利要求1所述的系统,还包括所述多个对等设备,其中:
所述多个对等设备存储从所述第一设备接收的所述内部操作数据;并且
所述对等共享服务还包括恢复服务,所述恢复服务被配置为:
确定所述恢复事件;
响应于所述恢复事件并且通过所述控制总线接口向所述多个对等设备中的至少一个对等设备发送恢复请求;
从所述至少一个对等设备接收恢复内部操作数据;以及
将所述恢复内部操作数据存储在内部操作存储器位置。
10.根据权利要求9所述的系统,其中:
所述恢复事件在处于主机前操作状态时发生;
所述恢复内部操作数据包括最后一个良好配置数据页面;并且
所述第一设备被进一步配置为使用从所述至少一个对等设备接收的所述最后一个良好配置数据页面完成主机前操作。
11.一种计算机实现的方法,包括:
从第一设备建立与多个对等设备中的目标对等设备的对等通信,其中所述第一设备和所述多个对等设备中的每个对等设备包括:
被配置为连接到主机系统的主机接口;和
被配置为连接到控制总线的控制总线接口;
选择用于所述第一设备的内部操作数据;
从所述第一设备并且通过所述控制总线结构将所选择的内部操作数据发送到所述目标对等设备;以及
在所述第一设备处并且通过所述控制总线接口接收来自所述目标对等设备的所选择的内部操作数据,其中接收所选择的内部操作数据是对恢复事件的响应。
12.根据权利要求11所述的计算机实现的方法,其中所述第一设备和所述多个对等设备中的每个对等设备包括:
被配置为存储通过所述主机接口接收的主机数据的存储介质;
被配置用于通过所述主机接口与所述主机系统通信的存储接口协议;和
被配置为管理所述存储介质的数据输入/输出的非易失性存储器设备控制器。
13.根据权利要求11所述的计算机实现的方法,还包括:
通过所述控制总线接口广播所述第一设备的设备标识符;
通过所述控制总线接口从所述多个对等设备接收对等设备标识符;以及
在所述第一设备中将所述对等设备标识符存储在对等设备注册表中。
14.根据权利要求11所述的计算机实现的方法,还包括:
由所述第一设备确定所述目标对等设备的对等设备标识符;以及
将包括所选择的内部操作数据的对等消息格式化为消息有效载荷,其中发送所选择的内部操作数据包括使用用于寻址的所述对等设备标识符将所述对等消息发送到所述目标对等设备。
15.根据权利要求14所述的计算机实现的方法,还包括:
在发送所述对等消息之前对所选择的内部操作数据进行加密。
16.根据权利要求11所述的计算机实现的方法,其中所述内部操作数据选自:
重置事件数据;
调试数据;
设备操作日志数据;或者
最后一个良好配置数据。
17.根据权利要求11所述的计算机实现的方法,还包括:
在所述第一设备处并且通过所述控制总线接口从所述多个对等设备中的至少一个对等设备接收对等内部操作数据;
在所述第一设备的存储器中将所述对等内部操作数据存储在所述存储器中的对等数据分区中;以及
由所述第一设备并且响应于对等恢复事件而将所述对等内部操作数据发送到所述至少一个对等设备。
18.根据权利要求11所述的计算机实现的方法,还包括:
由所述第一设备确定所述恢复事件;
响应于所述恢复事件并且通过所述控制总线接口向所述多个对等设备中的至少一个对等设备发送恢复请求;
从所述至少一个对等设备并且通过所述控制总线接口接收恢复内部操作数据;以及
将所述恢复内部操作数据存储在内部操作存储器位置。
19.根据权利要求11所述的计算机实现的方法,还包括:
由所述第一设备使用从所述目标对等设备接收的最后一个良好配置数据页面完成主机前操作,其中:
所述恢复事件在处于主机前操作状态时发生;并且
所选择的内部操作数据包括所述最后一个良好配置数据页面。
20.一种存储系统,包括:
控制总线;和
多个对等存储设备,其中所述多个对等存储设备中的每个对等存储设备包括:
处理器;
存储器;
被配置为连接到主机系统的主机接口;
被配置为连接到所述控制总线的控制总线接口;
用于通过所述控制总线接口建立所述多个对等存储设备之间的对等通信的装置;
用于从内部操作存储器位置选择内部操作数据的装置;
用于将所选择的内部操作数据发送到所述多个对等存储设备中的至少一个其他对等存储设备的装置;和
用于响应于恢复事件而从所述多个对等存储设备中的所述至少一个其他对等存储设备接收所选择的内部操作数据的装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063116287P | 2020-11-20 | 2020-11-20 | |
US63/116,287 | 2020-11-20 | ||
US17/176,461 | 2021-02-16 | ||
US17/176,461 US11531498B2 (en) | 2020-11-20 | 2021-02-16 | Peer storage device messaging over control bus |
PCT/US2021/031955 WO2022108619A1 (en) | 2020-11-20 | 2021-05-12 | Peer storage device messaging over control bus |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114868117A true CN114868117A (zh) | 2022-08-05 |
Family
ID=81658227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180006561.0A Pending CN114868117A (zh) | 2020-11-20 | 2021-05-12 | 通过控制总线进行的对等存储设备消息传送 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11531498B2 (zh) |
CN (1) | CN114868117A (zh) |
DE (1) | DE112021000246T5 (zh) |
WO (1) | WO2022108619A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11537300B2 (en) * | 2021-04-30 | 2022-12-27 | EMC IP Holding Company LLC | Identifying allocated blocks in a storage system |
US11971771B2 (en) * | 2022-01-25 | 2024-04-30 | Western Digital Technologies, Inc. | Peer storage device messaging for power management |
US11983428B2 (en) | 2022-06-07 | 2024-05-14 | Western Digital Technologies, Inc. | Data migration via data storage device peer channel |
US20240143518A1 (en) * | 2022-10-26 | 2024-05-02 | Western Digital Technologies, Inc. | Using Control Bus Communication to Accelerate Link Negotiation |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070277012A1 (en) * | 2006-05-23 | 2007-11-29 | Hitachi, Ltd. | Method and apparatus for managing backup data and journal |
US20090030986A1 (en) * | 2007-07-27 | 2009-01-29 | Twinstrata, Inc. | System and method for remote asynchronous data replication |
CN101657802A (zh) * | 2006-12-06 | 2010-02-24 | 弗森多系统公司(dba弗森-艾奥) | 用于远程直接存储器存取固态存储设备的装置、系统及方法 |
US20100088531A1 (en) * | 2008-10-08 | 2010-04-08 | Lenovo (Beijing) Limited | Hybrid-system computer |
US20100124196A1 (en) * | 2005-06-29 | 2010-05-20 | Jumpstart Wireless Corporation | System and method for dynamic automatic communication path selection, distributed device synchronization and task delegation |
US7783777B1 (en) * | 2003-09-09 | 2010-08-24 | Oracle America, Inc. | Peer-to-peer content sharing/distribution networks |
CN106716333A (zh) * | 2014-04-23 | 2017-05-24 | 数据隐藏技术有限责任公司 | 用于完成安全擦除操作的方法 |
US20180341548A1 (en) * | 2017-05-25 | 2018-11-29 | Western Digital Technologies, Inc. | Parity Generation Offload Using Peer-to-Peer Data Transfers in Data Storage System |
WO2020027910A1 (en) * | 2018-08-03 | 2020-02-06 | Western Digital Technologies, Inc. | Storage systems with peer data scrub |
US20200042217A1 (en) * | 2018-08-03 | 2020-02-06 | Western Digital Technologies, Inc. | Storage System Fabric with Multichannel Compute Complex |
US20200042389A1 (en) * | 2018-08-03 | 2020-02-06 | Western Digital Technologies, Inc. | Rebuild Assist Using Failed Storage Device |
CN111373362A (zh) * | 2018-06-30 | 2020-07-03 | 西部数据技术公司 | 具有分布式读取/写入处理的多设备存储系统 |
CN111433732A (zh) * | 2018-06-30 | 2020-07-17 | 西部数据技术公司 | 在对等存储设备上具有托管服务的多设备存储系统 |
CN111480148A (zh) * | 2018-08-03 | 2020-07-31 | 西部数据技术公司 | 具有对等数据恢复的存储系统 |
US20200257590A1 (en) * | 2017-05-25 | 2020-08-13 | Western Digital Technologies, Inc. | Data Storage Drive Rebuild with Parity Generation Offload Using Peer-to-Peer Data Transfers |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010044879A1 (en) | 2000-02-18 | 2001-11-22 | Moulton Gregory Hagan | System and method for distributed management of data storage |
US7117211B2 (en) | 2001-09-27 | 2006-10-03 | Paxar Corporation | Internet label production system |
US7418714B2 (en) | 2002-02-26 | 2008-08-26 | Microsoft Corporation | Employing three parameter buffer access in connection with SMBus notifications |
US7127636B2 (en) | 2003-09-08 | 2006-10-24 | International Business Machines Corporation | Autonomic recovery of PPRC errors detected by PPRC peer |
US7177211B2 (en) | 2003-11-13 | 2007-02-13 | Intel Corporation | Memory channel test fixture and method |
KR20090087498A (ko) * | 2006-12-06 | 2009-08-17 | 퓨전 멀티시스템즈, 인크.(디비에이 퓨전-아이오) | 고-용량, 비-휘발성 스토리지를 위한 캐시로서의 솔리드-스테이트 스토리지 장치, 시스템 및 방법 |
US8239597B2 (en) | 2008-07-18 | 2012-08-07 | Intersil Americas Inc. | Device-to-device communication bus for distributed power management |
US8203985B2 (en) | 2008-12-31 | 2012-06-19 | Intel Corporation | Power saving in peer-to-peer communication devices |
US8984216B2 (en) | 2010-09-09 | 2015-03-17 | Fusion-Io, Llc | Apparatus, system, and method for managing lifetime of a storage device |
US9025495B1 (en) | 2013-01-16 | 2015-05-05 | Pmc-Sierra Us, Inc. | Flexible routing engine for a PCI express switch and method of use |
US9448614B2 (en) | 2014-05-13 | 2016-09-20 | Netapp, Inc. | Low power archival data storage enclosure |
US10481990B2 (en) | 2016-06-13 | 2019-11-19 | Intel Corporation | Apparatuses and methods for a multiple master capable debug interface |
KR102631351B1 (ko) | 2016-10-07 | 2024-01-31 | 삼성전자주식회사 | 피어-투 피어 통신을 수행할 수 있는 저장 장치와 이를 포함하는 데이터 저장 시스템 |
US10580512B2 (en) | 2018-02-21 | 2020-03-03 | Western Digital Technologies, Inc. | Storage device with debug namespace |
US11182232B2 (en) * | 2019-11-18 | 2021-11-23 | Microsoft Technology Licensing, Llc | Detecting and recovering from fatal storage errors |
-
2021
- 2021-02-16 US US17/176,461 patent/US11531498B2/en active Active
- 2021-05-12 CN CN202180006561.0A patent/CN114868117A/zh active Pending
- 2021-05-12 DE DE112021000246.5T patent/DE112021000246T5/de active Pending
- 2021-05-12 WO PCT/US2021/031955 patent/WO2022108619A1/en active Application Filing
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7783777B1 (en) * | 2003-09-09 | 2010-08-24 | Oracle America, Inc. | Peer-to-peer content sharing/distribution networks |
US20100124196A1 (en) * | 2005-06-29 | 2010-05-20 | Jumpstart Wireless Corporation | System and method for dynamic automatic communication path selection, distributed device synchronization and task delegation |
US20070277012A1 (en) * | 2006-05-23 | 2007-11-29 | Hitachi, Ltd. | Method and apparatus for managing backup data and journal |
CN101657802A (zh) * | 2006-12-06 | 2010-02-24 | 弗森多系统公司(dba弗森-艾奥) | 用于远程直接存储器存取固态存储设备的装置、系统及方法 |
US20090030986A1 (en) * | 2007-07-27 | 2009-01-29 | Twinstrata, Inc. | System and method for remote asynchronous data replication |
US20100088531A1 (en) * | 2008-10-08 | 2010-04-08 | Lenovo (Beijing) Limited | Hybrid-system computer |
CN106716333A (zh) * | 2014-04-23 | 2017-05-24 | 数据隐藏技术有限责任公司 | 用于完成安全擦除操作的方法 |
US20180341548A1 (en) * | 2017-05-25 | 2018-11-29 | Western Digital Technologies, Inc. | Parity Generation Offload Using Peer-to-Peer Data Transfers in Data Storage System |
US20200257590A1 (en) * | 2017-05-25 | 2020-08-13 | Western Digital Technologies, Inc. | Data Storage Drive Rebuild with Parity Generation Offload Using Peer-to-Peer Data Transfers |
CN111373362A (zh) * | 2018-06-30 | 2020-07-03 | 西部数据技术公司 | 具有分布式读取/写入处理的多设备存储系统 |
CN111433732A (zh) * | 2018-06-30 | 2020-07-17 | 西部数据技术公司 | 在对等存储设备上具有托管服务的多设备存储系统 |
WO2020027910A1 (en) * | 2018-08-03 | 2020-02-06 | Western Digital Technologies, Inc. | Storage systems with peer data scrub |
CN111433746A (zh) * | 2018-08-03 | 2020-07-17 | 西部数据技术公司 | 使用故障存储设备的重建助手 |
US20200042389A1 (en) * | 2018-08-03 | 2020-02-06 | Western Digital Technologies, Inc. | Rebuild Assist Using Failed Storage Device |
CN111480148A (zh) * | 2018-08-03 | 2020-07-31 | 西部数据技术公司 | 具有对等数据恢复的存储系统 |
US20200042217A1 (en) * | 2018-08-03 | 2020-02-06 | Western Digital Technologies, Inc. | Storage System Fabric with Multichannel Compute Complex |
Also Published As
Publication number | Publication date |
---|---|
DE112021000246T5 (de) | 2022-09-15 |
WO2022108619A1 (en) | 2022-05-27 |
US11531498B2 (en) | 2022-12-20 |
US20220164139A1 (en) | 2022-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7084528B2 (ja) | 管理装置及びその動作方法 | |
US11531498B2 (en) | Peer storage device messaging over control bus | |
DK3179359T3 (en) | PROCEDURE FOR SENDING DATA, PROCEDURE FOR RECEIVING DATA AND STORAGE UNIT | |
US10592341B2 (en) | Self-healing using a virtual boot device | |
US11665046B2 (en) | Failover port forwarding between peer storage nodes | |
US11803412B2 (en) | Containerized application management system and management method | |
US11137918B1 (en) | Administration of control information in a storage system | |
CN105068836A (zh) | 一种基于sas网络的远程可共享的启动系统 | |
US10860224B2 (en) | Method and system for delivering message in storage system | |
US11544205B2 (en) | Peer storage devices sharing host control data | |
JP4322240B2 (ja) | 再起動方法、システム及びプログラム | |
US10915405B2 (en) | Methods for handling storage element failures to reduce storage device failure rates and devices thereof | |
US20180253360A1 (en) | Database Failure Recovery in an Information Handling System | |
US11983428B2 (en) | Data migration via data storage device peer channel | |
US10956245B1 (en) | Storage system with host-directed error scanning of solid-state storage devices | |
US20220377054A1 (en) | Data storage device data recovery using remote network storage | |
US11829248B2 (en) | Firmware recovery by image transfusion | |
US20240143518A1 (en) | Using Control Bus Communication to Accelerate Link Negotiation | |
US11853163B2 (en) | Selective rebuild of interrupted devices in data storage device arrays | |
JP2010033379A (ja) | 仮想化システム及び仮想化の復旧方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |