CN109840232B - 存储设备及存储设备的元件管理方法 - Google Patents
存储设备及存储设备的元件管理方法 Download PDFInfo
- Publication number
- CN109840232B CN109840232B CN201711218681.9A CN201711218681A CN109840232B CN 109840232 B CN109840232 B CN 109840232B CN 201711218681 A CN201711218681 A CN 201711218681A CN 109840232 B CN109840232 B CN 109840232B
- Authority
- CN
- China
- Prior art keywords
- event
- storage device
- host
- subscription
- ssd
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000007726 management method Methods 0.000 title claims abstract description 81
- 238000000034 method Methods 0.000 claims abstract description 38
- 238000004891 communication Methods 0.000 claims description 13
- 238000001514 detection method Methods 0.000 claims description 8
- 239000007787 solid Substances 0.000 claims description 3
- 238000013461 design Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 18
- 230000008859 change Effects 0.000 description 10
- 230000002159 abnormal effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000003780 insertion Methods 0.000 description 6
- 230000037431 insertion Effects 0.000 description 6
- 238000000605 extraction Methods 0.000 description 5
- 230000036541 health Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000003862 health status Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提供了一种存储设备及存储设备的元件管理方法,属于存储技术领域。所述方法包括:侦测主机发送的订阅指令中所指示的订阅事件;当侦测到所述订阅事件时,记录所侦测的订阅事件的事件信息,并通知所述主机,使所述主机发送事件信息获取指令;根据所述事件信息获取指令,将所述事件信息发送至所述主机。基于本公开提供的方法,网络中的主机能够及时获知存储设备中元件的发生的事件以及事件信息。
Description
技术领域
本公开涉及存储技术领域,特别涉及一种存储设备及存储设备的元件管理方法及装置。
背景技术
闪存磁盘框(Just a Bunch of Flash,JBOF)是一种高性能低延迟的存储设备,其包括至少一个固态硬盘(Solid State Drives,SSD)。随着非易失存储器标准(Non-Volatile Memory express,NVMe)协议扩展为NVMe网络访问(NVMe over Fabric,NOF)协议,安装在远程JBOF上的SSD,可以通过网络直接向主机提供存储数据的服务。
由于NOF协议是由NVMe协议扩展来的,所以NOF协议包括NVMe中定义的所有指令,同样也包括NVMe协议提供的订阅指令,订阅指令为一种异步通知机制,主机可以向JBOF中的各个SSD发送该订阅指令,该订阅指令用于指示SSD的控制器侦测SSD中的某个事件,例如写入无效门铃寄存器、发生故障等,当SSD的控制器根据该订阅指令的指示侦测到该订阅指令所订阅的事件发生时,则会通知主机所发生的事件,从而使主机了解到SSD中发生的事件,并作出相应的处理。
然而现有的事件的侦测只能通过SSD的控制器执行,但是在有SSD***或者拔出时,由于主机无法与SSD的控制器通讯,则主机无法通过订阅指令获知SSD的插拔事件,从而无法实现SSD的热插拔,另外,对于JBOF中的其他没有配置控制器的元件,例如,风扇、温度传感器等,主机也没办法通过订阅指令获取这些元件的发生的事件,从而无法对这些元件的事件进行处理。
发明内容
本公开实施例提供了一种存储设备及存储设备的元件管理方法,能够解决相关技术中只能通过SSD的控制器侦测中断事件的问题。所述技术方案如下:
第一方面,提供了一种存储设备的元件管理方法,所述方法包括:
侦测主机发送的订阅指令中所指示的订阅事件;
当侦测到所述订阅事件时,记录所侦测的订阅事件的事件信息,并通知所述主机,使所述主机发送事件信息获取指令;
根据所述事件信息获取指令,将所述事件信息发送至所述主机。
本实施例提供的方法,存储设备可以根据主机的订阅指令侦测元件是否发生订阅指令中所订阅的事件,并将所发生的订阅事件通知给网络中的主机,并将事件信息传输给主机,以便网络中的主机及时获知存储设备中元件的发生的事件以及事件信息。进一步地,采用本实施例提供的方法,能够保证主机及时侦测SSD的拔出,以及风扇、温度传感器等没有配置处理器的元件的订阅事件。
在一种可能的设计中,所述主机与所述存储设备之间通过NVMe协议或者基于NVMe协议发展的包括NVMe协议的指令的协议进行通信,所述存储设备为JBOF,所述存储设备包括元件管理模块,在所述主机与所述存储设备建立连接时,所述存储设备为所述元件管理模块生成一个标识,所述主机根据所述标识为所述元件管理模块生成通信队列,所述存储设备通过运行所述元件管理模块并通过所述通信队列与主机进行通信。
基于本设计,通过在存储设备中设置元件管理模块,将该元件管理模块作为一个虚拟SSD与主机进行信息交互,保证管理存储设备的元件的方式能够兼容现有的NOF协议或者NVMe协议基础上发展出的其他协议,步骤简单有效。
在一种可能的设计中,所述元件为存储设备中的SSD,所述订阅事件为SSD的插拔事件。
基于本设计,主机可以及时获知SSD的插拔事件。
在一种可能的设计中,所述当侦测到所述订阅事件时,记录所侦测的订阅事件的事件信息,包括:
当检测到SSD的槽口的电平信号发生变化时,侦测到所述SSD的插拔事件;
将所述插拔事件的事件状态、元件的标识、所述插拔事件的时间戳、所述SSD的索引号中的至少一项作为事件信息,记录在事件日志中。
在一种可能的设计中,所述方法还包括:
周期性侦测所述存储设备所包括元件的任一事件,记录事件信息;
当接收到主机发送的订阅指令时,从已记录的事件信息中获取所述订阅指令对应的事件,并通知给所述主机。
第二方面,提供了一种存储设备的元件管理装置,应用于存储设备,所述存储设备包括元件管理模块及至少一个元件,所述存储设备通过网络连接至主机,所述元件管理模块包括:
侦测子模块,用于侦测主机发送的订阅指令中所指示的订阅事件;
记录子模块,用于当侦测到所述订阅事件时,记录所侦测的订阅事件的事件信息;
通知子模块,用于通知所述主机,使所述主机发送事件信息获取指令;
发送子模块,用于根据所述主机的事件信息获取指令,将所述事件信息发送至所述主机。
在一种可能的设计中,所述主机与所述存储设备之间通过NVMe协议或者基于NVMe协议发展的包括NVMe协议的指令的协议进行通信,所述存储设备为JBOF,所述存储设备还包括连接模块,所述连接模块用于在所述主机与所述存储设备建立连接时,为所述元件管理模块生成一个标识,所述主机根据所述标识为所述元件管理模块生成通信队列,所述存储设备通过运行所述元件管理模块并通过所述通信队列与主机进行通信。
在一种可能的设计中,所述元件为存储设备中的SSD,所述订阅事件为SSD的插拔事件。
在一种可能的设计中,所述元件管理模块,还用于当检测到SSD的槽口的电平信号发生变化时,侦测到所述SSD的插拔事件;将所述插拔事件的事件状态、元件的标识、所述插拔事件的时间戳、所述SSD的索引号中的至少一项作为事件信息,记录在事件日志中。
在一种可能的设计中,所述侦测子模块,还用于周期性侦测所述存储设备所包括元件的任一事件;
所述记录子模块,还用于记录事件信息;
所述通知子模块,还用于当接收到主机发送的订阅指令时,从已记录的事件信息中获取所述订阅指令对应的事件,并通知给所述主机。
第三方面,提供了一种存储设备,所述存储设备包括处理器和至少一个元件,所述存储设备通过网络连接至主机,所述处理器用于加载至少一条指令,以实现上述存储设备的元件管理方法所执行的操作。
第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现上述存储设备的元件管理方法所执行的操作。
附图说明
图1是本公开实施例提供的一种应用场景的示意图;
图2是NVMe协议提供的一种队列模型的示意图;
图3是本公开实施例提供的一种存储设备的结构示意图;
图4是本公开实施例提供的一种存储设备的元件管理方法的流程图;
图5是本公开实施例提供的存储设备的处理器发送事件信息的处理流程图;
图6是本公开实施例提供的一种存储设备的元件管理模块的结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
图1是本公开实施例的应用场景的示意图。在该应用场景中,存储设备101和主机102之间建立了连接,例如存储设备101可以安装在主机102上,或者存储设备101可以与主机102之间通过网络连接,该网络可以是指互联网。
在存储设备101安装在主机102上时,存储设备101与主机102基于NVMe协议进行交互。当存储设备101与主机102通过网络连接时,存储设备101与主机102基于NOF协议进行交互。其中,NOF协议为在NVMe协议的基础上扩展的协议,包含了NVMe协议中定义的所有指令。
本公开中,存储设备101用于向主机102提供存储数据的服务,可以采用JBOF的形式实现。主机102用于从存储设备101读取数据或向存储设备101写入数据。在JBOF中,每个SSD基于NVMe协议或者NOF协议可以直接与主机102进行通信。每个SSD与主机102主要通过NVMe协议中的队列机制进行通信。参见图2,在主机102的内存中设置有N(N为不小于1的正整数)对队列,每对队列对应一个SSD。每对队列包括一个提交队列(Submission Queue,SQ)和一个完成队列(Completion Queue),SQ和CQ可以统称为通信队列。每对队列中的SQ包括至少一个提交队列实体(Submission Queue Entry,SQE),一个SQE为主机要向SSD发送的一个指令,每对队列中的CQ中包括至少一个完成队列实体(Completion Queue Entry,CQE),每个CQE为SSD执行完SQE后,向主机102反馈的SQE的执行结果。该SQE可以为数据指令也可以为管理指令,本实施例中只介绍该SQE为管理指令的场景。
其中,存储设备101可以为每个SSD分配一个标识,将每个SSD的标识上报给主机102,主机102会根据每个SSD的标识为每个SSD生成对应的队列,以便每个SSD的控制器通过各自的队列与主机102进行信息交互。
现有技术中,NVMe协议提供一种用于订阅SSD的中断事件的订阅指令,主机102可以通过NVME的队列机制首先产生针对一种中断事件的订阅指令,并将该订阅指令作为一个SQE加入该SQ中。
当SSD侦测到所订阅的中断事件发生时,可以产生CQE。该CQE包括事件日志的日志类型标识(Log Page Identifier,LID)、订阅事件的类型标识(Asynchronous Event Type,AET)、订阅事件的事件信息标识(Asynchronous Event Information,AEI)中的至少一项,LID字段用于记录事件日志的类型,AET字段用于记录中断事件的类型,AEI字段用于记录中断事件的信息,SSD的处理器可以向CQE的LID字段中添加事件日志对应的LID,向CQE的AET字段中添加中断事件对应的AET,向CQE中的AEI字段中添加中断事件对应的AEI。示例性的,CQE可以如下表1所示:
表1
Bit | Description |
31:24 | Reserved(保留) |
23:16 | LID |
15:08 | AEI |
07:03 | Reserved |
02:00 | AET |
但是现有技术中的中断事件只包括错误信息、SMART/健康状态、I/O相关信息,该错误信息是指SSD发生某种常见的错误的信息,SMART/健康状态是指SSD发生了SMART事件或健康事件,I/O相关信息是指SSD发生了输入或输出的事件,这些事件都可以由主机向SSD的处理器订阅,通过SSD的处理器对这些事件进行侦测,然后将这些事件的结果反馈给处理器,但对于SSD的***和拔出的事件,如背景技术中所描述的,主机无法通过SSD的处理器侦测,所以无法获知SSD的插拔事件,另外,对于除SSD之外的其他没有控制器的元件,例如,风扇、温度传感器等,主机也无法通过订阅指令获知这些元件的状态,从而无法感知风扇发生故障的事件及存储设备中的温度异常事件。
所以本发明实施例在现有NVME协议的基础上,又定义了几种事件,新定义的事件都可以由主机订阅,成为订阅事件,这几种事件可以包括插拔事件、风扇故障事件、上电事件、温度异常事件。插拔事件是指存储设备在处于通电状态时,存储设备中的元件,例如SSD发生***或拔出的事件,风扇故障事件是指存储设备的风扇出现故障的事件,例如为风扇转速过快的事件或风扇转速过慢的事件。上电事件是指存储设备中任一元件通电启动或断电关闭的事件,温度异常事件是指存储设备的温度过高或过低的事件。
主机可以以与现有技术相同的方式发送订阅指令至存储设备的处理器,由存储设备的处理器根据订阅指令进行中断事件的侦测。关于处理器对事件的侦测将在下文做详细描述。
图3是本公开实施例提供的上述存储设备的结构示意图,参见图3,该存储设备包括:处理器、内存、至少一个元件、总线和网卡。
处理器可以调用存储在内存中的程序代码以实现存储设备所提供的功能,本实施例中,该处理器可以运行内存中的程序代码以实现下述实施例中元件管理方法,从而管理存储设备中各个元件。
其中,处理器可以为现场可编程门阵列(Field-Programmable Gate Array,FPGA)、特定用途集成电路(Application Specific Integrated Circuit,ASIC)。
该至少一个元件安装在存储设备中,与处理器之间建立了电性连接,可以通过电信号与处理器进行通信。其中,各元件可以插在存储设备的槽位上。元件可以为SSD、风扇、温度传感器等。
该网卡用于建立处理器和主机之间的网络连接,例如存储设备的网卡可以以远程直接数据存取(Remote Direct Memory Access,RDMA)的方式与主机的网卡之间互相访问。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由存储设备的处理器执行以完成下述实施例中的存储设备的元件管理方法。例如,该计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本公开提供了一种存储设备的元件管理方法。本公开适用于存储设备与网络中的主机进行通信的场景中,存储设备和网络中的主机可以基于NOF协议或者NVMe协议基础上发展出的其他协议进行交互,存储设备可以根据主机的订阅指令侦测元件是否发生该订阅指令中所订阅的事件,并管理订阅事件发生时产生的事件日志,并将所发生的订阅事件通知给网络中的主机,并将事件日志传输给主机,以便网络中的主机及时获知存储设备中元件的发生的事件以及事件日志。
图4是本公开实施例提供的一种存储设备的元件管理方法的流程图,如图4所示,该方法可以应用于上述实施环境中,交互主体包括主机和存储设备的处理器。该方法包括以下步骤:
401、主机向存储设备的处理器发送订阅指令。
现有技术中,如图2所示,每个SSD在主机中都有一对队列,主机在向其中一个SSD发送订阅指令时,可以将订阅指令作为SQE存储至该SSD对应的SQ中,然后发送至存储设备。该订阅指令包括存储设备的IP地址及SSD的标识,该存储设备的处理器接收到该订阅指令后,即可以根据该SSD的标识将该订阅指令发送至目标SSD,以使目标SSD根据该订阅指令执行该订阅指令所指示的功能,例如当发生输入输出时通知主机。该订阅指令为NVMe协议中定义的异步事件指令。
在本实施例中,在存储设备中设置元件管理模块,存储设备将该元件管理模块作为一个虚拟SSD,并为该元件管理模块分配一个标识,这样,主机在与存储设备建立连接时,会为该元件管理模块建立一对队列。在本实施例中,在主机需要通过该元件管理模块管理该存储设备中的元件时,会在订阅指令中加入元件管理模块的标识。订阅指令还包括所订阅的事件。
402、存储设备的处理器接收该订阅指令,并侦测该订阅指令中所指示的订阅事件。
存储设备在接收到该订阅指令后,会从该订阅指令中获取该元件管理模块的标识,然后根据该元件管理模块的标识运行该元件管理模块,如此,存储设备的处理器即可通过运行该元件管理模块侦测该订阅指令中的订阅事件。
403、存储设备的处理器侦测到存储设备的任一元件的发生该订阅事件时,在事件日志中记录订阅事件的事件信息。
在存储设备运行元件管理模块的过程中,存储设备的处理器可以侦测任一元件的订阅事件,例如当对于存储设备中的SSD,当SSD发生插拔时,存储设备的处理器可以侦测到该SSD的插拔事件。其中,存储设备会具有多个槽口,当SSD***某个槽口时,该槽口的电平信号会发生变化,例如从高电平变化为低电平,存储设备检测到电平信号发生变化时,会侦测到SSD的***事件。而当SSD从某个槽口拔出时,该槽口的电平信号会发生变化,例如从低电平变化为高电平,存储设备检测到电平信号发生变化时,会侦测到SSD的拔出事件。
另外,当风扇转速过快或过慢时,存储设备的处理器可以侦测到风扇的风扇故障事件,当任一元件通电启动或断电关闭时,处理器可以侦测到该元件的上电事件。当温度传感器的温度过高或过低时,存储设备的处理器可以侦测到温度传感器的温度异常事件。其中,对于风扇故障事件、上电事件、温度异常事件,处理器均可以通过检测电平信号是否发生变化来侦测对应的事件。
可选地,为了记录事件信息,当存储设备的处理器侦测到订阅事件时,可以获取事件信息,根据该事件信息生成事件日志,从而将事件信息记录在事件日志中。其中,事件信息包括订阅事件的事件状态,还可以包括元件的标识、订阅事件的时间戳、元件的索引号等。
以下,将对各种类型的事件信息以及生成事件日志的过程进行阐述。
(1)、订阅事件的事件状态。
当订阅事件为插拔事件时,事件状态包括***状态和/或拔出状态。当任一元件***存储设备,存储设备的处理器可以侦测到插拔事件,获知该插拔事件的事件状态为***状态,向事件日志添加***状态。当任一元件拔出存储设备,存储设备的处理器可以侦测到插拔事件,获知该插拔事件的事件状态为拔出状态,向事件日志添加拔出状态。可选地,***状态可以用第一数值表示,拔出状态可以用第二数值表示,向事件日志添加***状态实际可以为向事件日志添加第一数值,向事件日志添加拔出状态实际可以为向事件日志添加第二数值。其中,第一数值和第二数值不同,第一数值可以为1,第二数值可以为0,通过不同的数值可以区分不同的事件状态。
当订阅事件为风扇故障事件时,事件状态为转速,即故障风扇的旋转速度。当风扇出现故障,存储设备的处理器可以侦测到风扇故障事件,获知故障风扇的转速,向事件日志添加转速。
当订阅事件为上电事件时,事件状态为上电时间点和/或下电时间点。在元件通电启动时,存储设备的处理器可以侦测到上电事件,记录当前的时间点,作为上电时间点,向事件日志添加该上电时间点,在元件断电关闭时,处理器也可以侦测到断电事件,可以记录当前的时间点,作为下电时间点,向事件日志添加该下电时间点。
当订阅事件为温度异常事件时,事件状态为温度。在温度传感器温度异常时,处理器可以侦测到温度异常事件,获取该温度传感器当前的温度,向事件日志添加该温度。
需要说明的是,事件日志可以设置有事件状态字段,事件状态字段用于记录订阅事件的事件状态,对于上述各种类型的事件状态来说,向事件日志添加事件状态可以为向事件日志的事件状态字段添加事件状态。其中,该事件状态字段可以在事件日志中占用2个字节,事件状态字段的存储位置可以为从第8字节到第9字节。
(2)、元件的标识。
元件的标识用于唯一确定对应的元件。存储设备的处理器可以获取订阅事件的元件的标识,向事件日志中添加元件的标识,以便通过事件日志记录元件的标识。
元件的标识可以包括生产厂商标识(PCIe VendorID)、厂商设备标识(PCIeDeviceID)、序列号(Serial Number)、型号标识(Model Number)的任意组合,这种格式的元件的标识可以兼容一些支持协议版本较低的老设备。其中,生产厂商标识可以为2字节,厂商设备标识可以为2字节,序列号可以为20字节,型号标识可以为40字节。或者,元件的标识可以为子***NVMe组织认证名称(Subsystem NVMe Qualified Name,SUBNQN),该SUBNQN可以最长为223字节。
针对获取元件的标识的具体过程,当存储设备的处理器侦测到任一元件的订阅事件时,该元件为当前的中断源,存储设备的处理器可以通过检测中断源获取中断源的总线定位信息(BusID、DeviceID、FuntionID,BDF),基于BDF,通过以下两种设计获取元件的标识。
在第一种可能的设计中,存储设备的处理器获取存储设备中BDF对应的槽位上当前连接的元件的标识。存储设备的至少一个总线中的每个总线上可以设置有至少一个槽位,每个槽位上可以连接一个元件,存储设备的处理器可以为每个槽位分配一个BDF,建立槽位与BDF之间的对应关系,当获取元件的BDF后,确定该BDF对应的槽位,获取该槽位上当前连接的元件的标识。
在第二种可能的设计中,当插拔事件为以BDF为索引,存储设备的处理器查询BDF列表,从BDF列表中得到BDF对应的元件的标识。存储设备的处理器可以预先建立BDF列表,该BDF列表用于存储BDF与元件的标识之间的对应关系。另外,该BDF列表还可以存储元件的索引号。可选地,针对BDF列表的建立过程,存储设备的处理器可以在初始化过程中,存储设备的处理器可以获取至少一个BDF,对于至少一个BDF中每个BDF,获取存储设备中该BDF对应的槽位上当前连接的元件的标识,在BDF列表中存储至少一个BDF和至少一个元件的标识之间的对应关系,以便后续发生订阅事件时可以从BDF列表中获取元件的标识。
需要说明的第一点是,当存储设备的处理器侦测到任一元件***时,存储设备的处理器可以通过第一种可能的设计获取元件的标识,还可以对BDF列表进行更新,将原BDF列表中元件的标识更新为当前获取到的元件的标识,以便后续可以直接从BDF列表中查询该元件的标识,而当存储设备的处理器侦测到任一元件拔出时,存储设备的处理器可以通过第二种可能的设计获取元件的标识。
需要说明的第二点是,事件日志可以设置有元件标识字段,元件标识字段用于记录元件的标识,向事件日志添加元件的标识可以为向事件日志的元件标识字段添加元件的标识。其中,该元件标识字段可以在事件日志中占用256个字节,元件标识字段的存储位置可以为从第5字节到第271字节。
(3)、订阅事件的时间戳(Timestamp)。
时间戳用于记录发生订阅事件的时间点,存储设备的处理器可以获取订阅事件的时间戳,向事件日志中添加时间戳,以便通过事件日志记录时间戳。
其中,存储设备的处理器可以在运行过程启动定时器,当侦测到任一元件的订阅事件时,存储设备的处理器可以获取定时器当前记录的时间,作为订阅事件的时间戳。其中,启动定时器的时机可以为存储设备上电复位的时间点,时间戳的精度可以为微秒。
可选地,事件日志可以设置有时间戳字段,时间戳字段用于记录订阅事件的时间戳,向事件日志添加时间戳可以为向事件日志的时间戳字段添加时间戳,该时间戳字段可以在事件日志中占用8个字节,时间戳字段的存储位置可以为从第0字节到第7字节。
(4)、元件的索引号(Index)。
索引号是NVMe协议中现有的一种数据,用于指示对应元件在存储设备的所有元件中的顺序。存储设备的处理器可以在初始化过程中,为存储设备中的每个元件分配一个索引号,从而通过索引号区分不同的元件。其中,索引号的取值范围可以根据存储设备中的元件的数量确定,索引号的最小值可以为0,索引号的最大值可以为元件的总数量减一。
可选地,事件日志可以设置有元件索引号字段,元件索引号字段用于记录元件的索引号,向事件日志添加索引号可以为向事件日志的索引号字段添加索引号,该索引号字段可以在事件日志中占用2个字节。
综上所述,以上阐述了各种类型的事件信息以及生成事件日志的过程。以订阅事件为插拔事件为例,某次插拔事件对应的一条事件日志可以如下表2所示:
表2
Bytes(字节) | Description(描述) |
07:00 | Timestamp(时间戳) |
9:8 | Event(事件状态)1表示***,0表示拔出,其他值为无效值。 |
11:10 | Index(元件的索引号) |
…… | 保留位 |
271:16 | NVMe Unified Name(元件的标识) |
需要说明的第一点是,为了统计已发生的订阅事件,存储设备的处理器还可以在存储空间中设置有变化计数字段,变化计数字段用于统计存储设备曾发生的订阅事件的总次数,以便需要时可以根据总计数统计存储设备侦测到的订阅事件的频繁程度。每当存储设备的处理器侦测到一次订阅事件,生成一条事件日志时,会向变化计数字段所承载的数值加一。
需要说明的第二点是,存储设备的处理器可以基于事件日志的类型,按照分类存储的方式存储不同的事件日志,即,为每种类型的订阅事件的事件日志预先分配各个存储空间,不同类型的订阅事件的事件日志存储于不同的存储空间中,以便后续可以快速找到任一种类型的事件日志。例如,存储设备的处理器可以为插拔事件分配一个统一的存储空间,将各个插拔事件的事件日志均存储于该存储空间中。
需要说明的第三点是,在生成任一条事件日志后,存储设备的处理器可以通过以下方式计算事件日志的存储位置,在该存储位置中存储事件日志:获取已生成的事件日志的总数量N和日志单位长度M,根据N和M,计算事件日志的存储位置,其中,N和M为大于1的正整数。进一步地,当存储空间中已设置变化计数字段时,考虑到变化计数字段的长度,计算存储位置的过程具体可以为:获取变化计数字段的长度W,对N、M和W采用以下公式进行计算,得到事件日志的存储起始位置和存储终止位置:d1=N*M+W+1;d2=(N+1)*M+W。其中,d1表示存储起始位置,d2表示存储终止位置。W为大于1的正整数。
以变化计数字段的长度为8,每条事件日志的长度为272为例,存储空间中插拔事件的事件日志的分布可以如下表3所示。
表3
Bytes | Description |
07:00 | Change Count(变化计数字段) |
279:08 | Hot Swap Entry 0(第1条插拔事件的事件日志) |
551:280 | Hot Swap Entry 1(第2条插拔事件的事件日志) |
… | |
((N+1)*272+7):(N*272+8) | Hot Swap Entry N(第N+1条插拔事件的事件日志) |
需要说明的第四点是,存储设备的处理器可以预先对存储空间进行初始化,以便存储订阅事件的事件日志。其中,对存储空间进行初始化的过程可以为:获取存储设备的槽位总数量以及日志单位长度M,根据槽位总数量和M,分配指定大小的存储空间,向存储空间中填入预置数据。其中,存储设备的处理器可以计算槽位总数量和M的乘积,将该乘积作为要分配的存储空间的大小。该预置数据可以为0或其他数值。
需要说明的第五点是,存储设备的处理器可以预先对各种类型的订阅事件进行注册,以便当侦测到订阅事件时,可以及时获知订阅事件。其中,存储设备的处理器可以获取存储设备中的至少一个BDF,为每个BDF分别注册插拔事件、上电事件等至少一种类型的订阅事件。
404、存储设备的处理器基于事件信息的摘要,生成CQE,向元件管理模块的CQ中写入CQE。
CQE本质为订阅指令的响应,由于CQE通常包含的字节数较少,无法记录完整的事件信息(事件日志),处理器可以根据事件发生通知获取事件信息的摘要(详见以下步骤1),再向CQE添加事件信息的摘要(详见以下步骤2)。由于事件信息的摘要的字节较少,在保证CQE完整承载事件信息的摘要的同时,可以满足通过CQE通知主机订阅事件已经发生的需求。
步骤1、根据事件发生通知获取事件信息的摘要。
事件信息的摘要包括事件日志的日志类型标识(Log Page Identifier,LID)、订阅事件的事件类型标识(Asynchronous Event Type,AET)、事件信息标识(AsynchronousEvent Information,AEI)中的至少一项。
步骤2、生成包含事件信息的摘要的CQE。
CQE中可以包含LID字段、AET字段和AEI字段中的至少一项,LID字段用于记录事件日志的类型,AET字段用于记录订阅事件的类型,AEI字段用于记录订阅事件的信息,存储设备的处理器可以向CQE的LID字段中添加事件日志对应的LID,向CQE的AET字段中添加订阅事件对应的AET,向CQE中的AEI字段中添加订阅事件对应的AEI。示例性的,CQE可以如下表4所示:
表4
Bit | Description |
31:24 | Reserved(保留) |
23:16 | LID |
15:08 | AEI |
07:03 | Reserved |
02:00 | AET |
步骤3、向元件管理模块的CQ写入CQE。
存储设备的处理器可以向主机中元件管理模块对应的CQ中写入CQE,例如以RDMA的方式,向主机的CQ写入CQE。其中,该CQ为一种通信队列,用于存储处理器执行主机的至少一个指令的结果。
需要说明的第一点是,针对LID,可以约定各种数值的LID所表示的日志类型,存储设备的处理器可以确定某一种订阅事件的日志类型所对应的LID。示例性的,各种日志类型对应的LID如下表5所示,其中,数值为09h的LID表示插拔事件的事件日志。另外,虽未在表5中示出,还可以约定表示风扇故障事件的事件日志的LID的具体数值、表示上电事件的事件日志的LID的具体数值、表示温度异常事件的事件日志的LID的具体数值。
表5
LID | Description |
00h | Reserved |
01h | Error Information |
02h | SMART/Health Information |
03h | Firmware Slot Information |
04h | Changed Namespace List |
05h | Command Effects Log |
06h | Device Self-test |
07h | Telemetry Host-Initiated |
08h | Telemetry Controller-Initiated |
09h | NVM Subsystem Hot Swap Information(插拔事件的事件日志) |
09h–6Fh | Reserved |
70h | Discovery(refer to the NVMe over Fabrics specification) |
71h–7Fh | Reserved for NVMe over Fabrics |
80h–BFh | I/O Command Set Specific |
C0h–FFh | Vendor specific |
需要说明的第二点是,针对AET,可以约定表示各种数值的AET所表示的事件类型,存储设备的处理器可以确定某一种订阅事件的事件类型所对应的AET。示例性的,各种日志类型对应的AET如下表6所示。
表6
可选地,可以约定:当订阅事件为插拔事件时,事件类型为提示事件类型;当订阅事件为风扇故障事件时,事件类型为健康事件类型;或,当订阅事件为上电事件时,事件类型为健康事件类型;或,当订阅事件为温度异常事件时,事件类型为健康事件类型。
需要说明的第三点是,针对AEI,可以约定表示各种数值的AEI所表示的事件信息,存储设备的处理器可以确定某一种事件信息所对应的AEI。示例性的,各种事件信息对应的AEI如下表7所示,其中,数值为03h的AEI表示发生了插拔事件。另外,虽未在表4中示出,还可以约定表示风扇故障事件的AEI的具体数值、表示上电事件的AEI的具体数值、表示温度异常事件的AEI的具体数值。
表7
Value | Definition |
0h | Namespace Attribute Changed |
1h | Firmware Activation Starting: |
2h | Telemetry Log Changed |
3h | NVM Subsystem Changed |
4h-FFh | Reserved |
405、主机接收元件管理模块的CQE,向存储设备的处理器发送事件信息获取指令。
本步骤与上述步骤405对应,主机可以从元件管理模块的CQ中读取CQE,解析CQE,获取事件信息的摘要,得到订阅事件已经发生,还可以向存储设备的处理器发送事件信息获取指令,该事件信息获取指令用于指示存储设备的处理器获取事件信息,例如指示存储设备的处理器获取记录事件信息的事件日志,以便得到事件信息。其中,主机可以向元件管理模块的SQ写入事件信息获取指令,从而向存储设备的处理器发送事件信息获取指令。
以下通过(1)-(3)对事件信息获取指令的内容进行详细阐述。
(1)、事件信息获取指令可以指示事件信息在主机中的存储位置.
事件信息获取指令可以携带数据指针(Data Pointer,DPTR),该DPTR指向主机的存储位置,以便存储设备的处理器在主机的存储位置存储事件信息,进而保证事件信息的存储位置符合主机的需求。其中,事件信息获取指令可以携带DPTR字段,主机可以向DPTR字段添加DPTR。NVMe协议所规定的DPTR字段可以如下表8所示。
表8
Bit | Description |
127:00 | DPTR:This field specifies the start of the data buffer。 |
(2)、事件信息获取指令可以指示事件信息在存储设备中的存储位置。
主机可以通过协议的预先约定或者与存储设备之间进行交互获知事件信息的日志长度和偏移量,在事件信息获取指令中携带事件信息的日志长度和事件信息的偏移量,以便存储设备的处理器通过日志长度和偏移量计算存储位置,从该存储位置读取事件信息。其中,事件信息获取指令可以包括日志长度字段和偏移量字段,主机可以向事件信息获取指令的日志长度字段添加日志长度,向事件信息获取指令的偏移量字段添加偏移量。
示例性地,可以约定:事件信息获取指令的DW10指令字可以携带低32位的日志长度字段(参见下表9),事件信息获取指令的DW11指令字可以携带高32位的日志长度字段(参见下表10),事件信息获取指令的DW12指令字可以携带低32位的偏移量字段(参见下表11),事件信息获取指令的DW13指令字可以携带高32位的偏移量字段(参见下表12)。
表9
Bit | Description |
31:28 | Reserved |
27:16 | 低32位的日志长度字段(Number of Dwords Lower,NUMDL): |
15 | 事件置位(Reset Asynchronous Event,RAE)字段 |
16:12 | Reserved |
11:08 | 个别指令特定信息(Log Specific Field,LSP) |
07:00 | LID |
表10
Bit | Description |
31:16 | Reserved |
15:00 | 高32位的日志长度字段(Number of Dwords,NUMDU) |
表11
Bit | Description |
31:00 | 低32位的偏移量字段(Log Page Offset Lower,LPOL) |
表12
Bit | Description |
31:00 | 高32位的偏移量字段(Log Page Offset Upper,LPOU) |
(3)、事件信息获取指令可以指示对订阅事件的事件发生标识进行置位。
本实施例中,存储设备可以设置有事件发生标识,在上述步骤404中,存储设备的处理器在确定存储设备已发生订阅事件时,可以对事件发生标识进行了置位,存储设备的处理器会在事件发生标识置位时,重复通知主机存储设备中已经发生订阅事件。为了通知存储设备的处理器该主机已经得知了订阅事件,以免存储设备的处理器重复上报,主机可以向事件信息获取指令中的RAE字段添加复位标识,复位标识用于指示存储设备的处理器对事件发生标识进行复位。其中,复位标识可以为0,该RAE字段可以携带在事件信息获取指令的DW10指令中,详见上述表9。
406、存储设备的处理器接收事件信息获取指令,向主机发送事件信息。
存储设备的处理器可以从主机的元件管理模块的SQ中读取事件信息获取指令,从而接收到该事件信息获取指令。在接收到事件信息获取指令后,存储设备的处理器可以解析事件信息获取指令,得到事件信息在存储设备中的存储位置,以及事件信息将要存储于主机中的存储位置,从存储设备的存储位置读取事件信息,向该主机的存储位置写入事件信息,即向主机发送事件信息,也即是向主机发送事件日志。
针对确定事件信息在存储设备中的存储位置的具体过程,在解析事件信息获取指令后,存储设备的处理器可以得到事件信息获取指令携带的偏移量和单位日志长度,根据偏移量和单位日志长度,计算事件信息在存储设备中的存储起始位置和存储终止位置,从该存储起始地址开始读取数据,直到读取到存储终止位置时,得到事件信息。其中,存储设备的处理器可以通过以下公式计算得到存储起始位置和存储终止位置:d1=Z;d2=Z+M-1;其中,Z表示偏移量,M表示单位日志长度。
针对确定事件信息在主机中的存储位置的具体过程,在解析事件信息获取指令后,存储设备的处理器可以得到事件信息获取指令携带的DPTR,将该DPTR指向的地址作为主机的存储位置。
针对发送事件信息的具体过程,存储设备的处理器可以采用RDMA的方式,向主机的存储位置写入事件信息。
需要说明的是,存储设备的处理器解析事件信息获取指令时,可以获取事件信息获取指令中的RAE字段,判断该RAE字段是否承载了复位标识,当RAE字段承载了复位标识时,则对事件发生标识进行置位,即清除事件发生标识,当RAE字段未承载了复位标识时,则无需对事件发生标识进行置位。
以复位标识为0为例,参见图5,其示出了存储设备的处理器发送事件信息的处理流程图,其可以包括以下步骤:
S1、接收事件信息获取指令。
S2、判断事件信息获取指令中的RAE字段是否承载0。若RAE字段承载0,执行步骤S3,若RAE字段未承载0,执行步骤S4。
S3、对事件发生标识进行置位。
S4、将事件信息返回给主机。
S5、处理结束。
407、主机接收事件信息。
主机可以从本端的存储位置中读取事件信息,从而得到事件信息,以便根据事件信息进行相应的处理。示例性地,当SSD拔出,存储设备的处理器侦测到插拔事件时,主机可以通过该插拔事件的事件信息,获取SSD的元件的标识,确定后续无法再对该SSD进行读写操作,以免对已拔出的SSD再次尝试进行读写操作时引发进程崩溃等问题,还可以针对该SSD进行unmount(解挂)操作,解除与该SSD之间的挂载关系,还可以通知该主机的上层网络设备该SSD已经拔出。
需要说明的是,本实施例仅是以存储设备接收到订阅指令后开始侦测订阅事件、记录事件信息并通知主机为例,在实施中,存储设备也可以周期性侦测存储设备所包括元件的任一事件并记录事件信息,当接收到订阅指令后,可以从已记录的事件信息中获取订阅指令对应的事件,将事件以及事件信息通知给主机。其中,侦测元件的任一事件的过程与上述步骤402类似,将事件通知给主机的步骤与上述步骤404类似,将事件信息通知给主机的方式与上述步骤406类似,在此不做赘述。
本实施例提供的方法,存储设备可以根据主机的订阅指令侦测元件是否发生订阅指令中所订阅的事件,并将所发生的订阅事件通知给网络中的主机,并将事件信息传输给主机,以便网络中的主机及时获知存储设备中元件的发生的事件以及事件信息。进一步地,采用本实施例提供的方法,能够保证主机及时侦测SSD的***、拔出,以及风扇、温度传感器等没有配置处理器的元件的订阅事件。
图6是本公开实施例提供的一种存储设备的元件管理模块的结构示意图,应用于存储设备,该存储设备包括元件管理模块及至少一个元件,该存储设备通过网络连接至主机,该元件管理模块包括:侦测子模块601、记录子模块602、通知子模块603和发送子模块604。
侦测子模块601,用于侦测主机的订阅指令中所指示的订阅事件;
记录子模块602,用于记录所侦测的订阅事件的事件信息;
通知子模块603,用于通知主机;
发送子模块604,用于将事件信息发送至该主机。
在一种可能的设计中,该存储设备还包括连接模块,该连接模块用于为元件管理模块生成一个标识,根据该标识为该元件管理模块生成通信队列,该存储设备通过运行该元件管理模块并通过该通信队列与主机进行通信。
在一种可能的设计中,该元件为存储设备中的SSD,该订阅事件为SSD的插拔事件。
在一种可能的设计中,该元件管理模块,还用于当检测到SSD的槽口的电平信号发生变化时,侦测到该SSD的插拔事件;将该插拔事件的事件状态、元件的标识、该插拔事件的时间戳、该SSD的索引号中的至少一项作为事件信息,记录在事件日志中。
在一种可能的设计中,该侦测子模块601,还用于周期性侦测该存储设备所包括元件的任一事件;该记录子模块602,还用于记录事件信息;该通知子模块603,还用于当接收到主机发送的订阅指令时,从已记录的事件信息中获取该订阅指令对应的事件,并通知给该主机。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的存储设备的元件管理模块在管理存储设备的元件时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即元件管理模块的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的元件管理模块与存储设备的元件管理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本公开的可选实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (12)
1.一种存储设备的元件管理方法,其特征在于,应用于存储设备,所述存储设备包括至少一个元件以及元件管理模块,所述至少一个元件包括固态硬盘SSD,所述SSD包括SSD控制器,所述存储设备通过网络连接至主机,所述方法包括:
接收主机发送的订阅指令,所述订阅指令包括所述元件管理模块的标识以及订阅的事件,其中,所述元件管理模块与所述SSD控制器不同,所述元件管理模块作为一个虚拟SSD与所述主机通信;
根据所述元件管理模块的标识运行所述元件管理模块以侦测所述元件是否发生所述订阅指令中所指示的订阅事件;
当侦测到所述元件发生所述订阅事件时,记录所侦测的订阅事件的事件信息,并通知所述主机发生了所述订阅事件;
根据所述主机发送的事件信息获取指令将所述元件发生的所述订阅事件的事件信息发送至所述主机。
2.根据权利要求1所述的方法,其特征在于,所述主机与所述存储设备之间通过非易失存储器标准NVMe协议或者基于NVMe协议发展的包括NVMe协议的指令的协议进行通信,所述存储设备为闪存磁盘框JBOF,在所述主机与所述存储设备建立连接时,所述存储设备为所述元件管理模块生成所述元件管理模块的标识,所述主机根据所述标识为所述元件管理模块生成通信队列,所述存储设备通过运行所述元件管理模块并通过所述通信队列与主机进行通信。
3.根据权利要求1所述的方法,其特征在于,所述订阅事件包括所述SSD的插拔事件。
4.根据权利要求3所述的方法,其特征在于,所述当侦测到所述订阅事件时,记录所侦测的订阅事件的事件信息,包括:
当检测到所述SSD的槽口的电平信号发生变化时,侦测到所述SSD的插拔事件;
将所述插拔事件的事件状态、元件的标识、所述插拔事件的时间戳、所述SSD的索引号中的至少一项作为事件信息,记录在事件日志中。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
周期性侦测所述元件所发生的事件,并记录事件信息;
当接收到主机发送的订阅指令时,从已记录的事件信息中获取所述订阅指令中的订阅事件对应的事件信息,并通知给所述主机。
6.一种存储设备,其特征在于,所述存储设备包括元件管理模块及至少一个元件,所述至少一个元件包括固态硬盘SSD,所述SSD包括SSD控制器,所述存储设备通过网络连接至主机,所述元件管理模块包括:
接收子模块,用于接收主机发送的订阅指令,所述订阅指令包括所述元件管理模块的标识以及订阅的事件,其中,所述元件管理模块与所述SSD控制器不同,所述元件管理模块作为一个虚拟SSD与所述主机通信;
侦测子模块,用于侦测所述元件是否发生了主机发送的订阅指令中所指示的订阅事件;
记录子模块,用于当侦测到所述元件发生所述订阅事件时,记录所侦测的订阅事件的事件信息;
通知子模块,用于通知所述主机发生了所述订阅事件;
发送子模块,用于根据所述主机的事件信息获取指令,将所述订阅事件的事件信息发送至所述主机。
7.根据权利要求6所述的存储设备,其特征在于,所述主机与所述存储设备之间通过非易失存储器标准NVMe协议或者基于NVMe协议发展的包括NVMe协议的指令的协议进行通信,所述存储设备为闪存磁盘框JBOF,所述存储设备还包括连接模块,所述连接模块用于在所述主机与所述存储设备建立连接时,为所述元件管理模块生成所述元件管理模块的标识,所述主机根据所述标识为所述元件管理模块生成通信队列,所述存储设备通过运行所述元件管理模块并通过所述通信队列与主机进行通信。
8.根据权利要求6所述的存储设备,其特征在于,所述订阅事件包括所述SSD的插拔事件。
9.根据权利要求8所述的存储设备,其特征在于,所述元件管理模块,还用于:
当检测到所述SSD的槽口的电平信号发生变化时,侦测到所述SSD的插拔事件;
将所述插拔事件的事件状态、元件的标识、所述插拔事件的时间戳、所述SSD的索引号中的至少一项作为事件信息,记录在事件日志中。
10.根据权利要求6所述的存储设备,其特征在于,所述侦测子模块,还用于周期性侦测所述存储设备所包括元件的任一事件;
所述记录子模块,还用于记录事件信息;
所述通知子模块,还用于当接收到主机发送的订阅指令时,从已记录的事件信息中获取所述订阅指令对应的事件,并通知给所述主机。
11.一种存储设备,其特征在于,所述存储设备包括处理器和至少一个元件,所述存储设备通过网络连接至主机,所述处理器用于加载至少一条指令,以实现如权利要求1至权利要求5任一项所述的存储设备的元件管理方法所执行的操作。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至权利要求5任一项所述的存储设备的元件管理方法所执行的操作。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711218681.9A CN109840232B (zh) | 2017-11-28 | 2017-11-28 | 存储设备及存储设备的元件管理方法 |
PCT/CN2018/117608 WO2019105335A1 (zh) | 2017-11-28 | 2018-11-27 | 存储设备及存储设备的元件管理方法 |
EP18884114.2A EP3697060A4 (en) | 2017-11-28 | 2018-11-27 | STORAGE DEVICE, AND PROCESS FOR MANAGING COMPONENTS FOR A STORAGE DEVICE |
US16/884,611 US11422699B2 (en) | 2017-11-28 | 2020-05-27 | Storage device and component management method of storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711218681.9A CN109840232B (zh) | 2017-11-28 | 2017-11-28 | 存储设备及存储设备的元件管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109840232A CN109840232A (zh) | 2019-06-04 |
CN109840232B true CN109840232B (zh) | 2022-05-13 |
Family
ID=66664704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711218681.9A Active CN109840232B (zh) | 2017-11-28 | 2017-11-28 | 存储设备及存储设备的元件管理方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11422699B2 (zh) |
EP (1) | EP3697060A4 (zh) |
CN (1) | CN109840232B (zh) |
WO (1) | WO2019105335A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111064680B (zh) * | 2019-11-22 | 2022-05-17 | 华为技术有限公司 | 一种通信装置及数据处理方法 |
CN112333057B (zh) * | 2020-08-21 | 2023-08-01 | 深圳Tcl新技术有限公司 | 智能家居设备配网测试方法及装置、执行机、存储介质 |
US11561915B2 (en) * | 2020-09-30 | 2023-01-24 | EMC IP Holding Company LLC | Remote sharing of directly connected storage |
US12013749B2 (en) | 2022-06-29 | 2024-06-18 | Western Digital Technologies, Inc. | Failed temperature sensor detection and mitigation within data storage devices |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102055615B (zh) * | 2009-10-28 | 2013-05-01 | 英业达股份有限公司 | 服务器监控方法 |
US9256384B2 (en) | 2013-02-04 | 2016-02-09 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for reducing write latency in a data storage system by using a command-push model |
US9311230B2 (en) * | 2013-04-23 | 2016-04-12 | Globalfoundries Inc. | Local direct storage class memory access |
US9294567B2 (en) * | 2014-05-02 | 2016-03-22 | Cavium, Inc. | Systems and methods for enabling access to extensible storage devices over a network as local storage via NVME controller |
US9565269B2 (en) * | 2014-11-04 | 2017-02-07 | Pavilion Data Systems, Inc. | Non-volatile memory express over ethernet |
KR102358691B1 (ko) * | 2015-10-30 | 2022-02-07 | 삼성전자주식회사 | 저장 장치의 요청 방법 및 호스트의 커맨드 발행 방법 |
CN107038137B (zh) * | 2016-02-04 | 2020-04-28 | 华为技术有限公司 | 一种热插拔的设备及方法 |
KR102522154B1 (ko) | 2016-03-15 | 2023-04-17 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치의 컨트롤러 및 이의 동작 방법 |
CN106095329A (zh) * | 2016-05-27 | 2016-11-09 | 浪潮电子信息产业股份有限公司 | 一种基于NVME接口的Intel SSD硬盘的管理方法 |
US9996477B2 (en) * | 2016-09-14 | 2018-06-12 | Western Digital Technologies, Inc. | Asynchronous drive telemetry data notification |
US11543967B2 (en) * | 2017-02-23 | 2023-01-03 | Samsung Electronics Co., Ltd. | Method for controlling BW SLA in NVME-of ethernet SSD storage systems |
US10713203B2 (en) * | 2017-02-28 | 2020-07-14 | Cisco Technology, Inc. | Dynamic partition of PCIe disk arrays based on software configuration / policy distribution |
US10771340B2 (en) * | 2017-03-16 | 2020-09-08 | Samsung Electronics Co., Ltd. | Automatic ethernet storage discovery in hyperscale datacenter environment |
-
2017
- 2017-11-28 CN CN201711218681.9A patent/CN109840232B/zh active Active
-
2018
- 2018-11-27 WO PCT/CN2018/117608 patent/WO2019105335A1/zh unknown
- 2018-11-27 EP EP18884114.2A patent/EP3697060A4/en not_active Ceased
-
2020
- 2020-05-27 US US16/884,611 patent/US11422699B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3697060A1 (en) | 2020-08-19 |
US20200285395A1 (en) | 2020-09-10 |
US11422699B2 (en) | 2022-08-23 |
CN109840232A (zh) | 2019-06-04 |
WO2019105335A1 (zh) | 2019-06-06 |
EP3697060A4 (en) | 2020-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109840232B (zh) | 存储设备及存储设备的元件管理方法 | |
EP3073381B1 (en) | Virtual intelligent platform management interface (ipmi) satellite controller and method | |
US8898665B2 (en) | System, method and computer program product for inviting other virtual machine to access a memory space allocated to a virtual machine | |
KR102200934B1 (ko) | 스토리지 시스템 및 그것의 동작 방법 | |
EP3614253A1 (en) | Data processing method and storage system | |
CN100365994C (zh) | 用于调试以太网的方法和装置 | |
CN106502814B (zh) | 一种记录pcie设备错误信息的方法及装置 | |
US10289424B2 (en) | System and method for loading and populating system inventory data in an event driven model | |
US20230412742A1 (en) | Apparatus, method, and system for monitoring image-forming apparatus, and storage medium | |
CN107506323B (zh) | 一种热插拔处理方法及装置 | |
CN109446130B (zh) | 一种i/o设备状态信息的获取方法及*** | |
CN116360853B (zh) | 寄存器映射方法、装置、设备及介质 | |
US9563388B2 (en) | Sharing a hosted device in a computer network | |
CN114697440B (zh) | 网络管理方法及移动终端 | |
CN115454896A (zh) | 基于smbus的ssd mctp控制消息验证方法、装置、计算机设备及存储介质 | |
CN115408016A (zh) | 一种计算集群部署方法、装置、电子设备和存储介质 | |
CN113190395B (zh) | 一种状态监控方法及装置 | |
CN109725856B (zh) | 一种共享节点管理方法、装置、电子设备及存储介质 | |
CN111930582A (zh) | ***管理总线检测平台、处理器及***管理总线检测方法 | |
EP4120650A1 (en) | Communication control device and method for controlling communication control device | |
CN116028394B (zh) | 设备信息获取方法、装置、***、通信设备及存储介质 | |
CN116719674A (zh) | 插接检测方法、服务器及机柜服务器 | |
CN115168093A (zh) | 一种基板管理控制器管理方法、装置、设备及介质 | |
CN114003461A (zh) | 服务器故障预测方法、***、终端及存储介质 | |
CN116185689A (zh) | 错误信息注入能力的配置方法、验证方法、设备和介质 |
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 |