CN114946154A - 具有加密的数据存储设备遥测数据的存储系统 - Google Patents

具有加密的数据存储设备遥测数据的存储系统 Download PDF

Info

Publication number
CN114946154A
CN114946154A CN202180006573.3A CN202180006573A CN114946154A CN 114946154 A CN114946154 A CN 114946154A CN 202180006573 A CN202180006573 A CN 202180006573A CN 114946154 A CN114946154 A CN 114946154A
Authority
CN
China
Prior art keywords
data
encryption key
telemetry
storage device
message
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
Application number
CN202180006573.3A
Other languages
English (en)
Inventor
D·赫尔米克
T·哈利特
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 CN114946154A publication Critical patent/CN114946154A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/062Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本公开描述了用于加密的存储设备遥测数据的系统和方法。可针对遥测消息收集存储设备遥测数据,诸如非易失性存储器快速(NVMe)遥测命令,并且使用第一加密密钥对该存储设备遥测数据进行加密。可使用一个或多个第二加密密钥对该第一加密密钥进行加密,并且可将加密的第一加密密钥添加到该遥测消息中。客户端系统可接收该遥测消息,对加密的第一加密密钥进行解密,并且使用该第一加密密钥对该加密的存储设备遥测数据进行解密。

Description

具有加密的数据存储设备遥测数据的存储系统
发明人:
Daniel Helmick
Timothy Hallett
技术领域
本公开大体上涉及数据存储设备遥测数据,且更具体地,涉及对数据存储设备遥测数据进行加密以传送到一个或多个客户端系统。
背景技术
存储系统利用多个离散的存储设备,例如固态驱动器、硬盘驱动器、混合驱动器、磁带驱动器等来代表主机存储大量数据。这些存储系统可能从通过外围存储接口直接支持主机系统的单个数据存储设备到包括多个数据存储设备的多设备存储系统(通常支持多个主机系统)而异,多设备存储系统的多个数据存储设备布置在由公共通信结构互连的驱动器阵列中,并且在许多情况下由存储控制器、独立磁盘冗余阵列(RAID)控制器或通用控制器控制,用于协调跨驱动器阵列的存储和系统活动。
在一些系统中,每个数据存储设备可以收集各种类型的操作数据,例如工作负载数据、错误数据、调试数据、事件日志、固件管理数据等。虽然这些数据可以支持各个存储设备的各种内部存储管理功能,但其中一些或全部可能对主机或客户端系统有用,特别是当这些系统利用或管理大量存储设备和数据输入/输出操作时,例如大规模分布式存储系统。一些存储设备可以支持一个或多个协议,这些协议用于通过遥测数据(即用于远程监控存储设备的数据)与一个或多个其他系统(例如主机或客户端系统)共享操作数据。例如,支持非易失性存储器快速(NVMe)协议的存储设备可以包括遥测命令,用于通过存储设备和/或结构接口向主机或客户端系统提供NVMe日志和/或自监控和报告技术(SMART)日志。
在一些存储系统中,多个用户、所有者和/或制造商可以参与存储系统的部署、使用、管理和维护。例如,存储设备制造商可以销售集成到服务器、存储阵列和其他计算设备的存储设备。服务器和存储阵列又可以集成到支持其他用户的云应用的分布式存储系统中。这条链中的任何一方,从存储设备制造商到存储系统原始设备制造商(OEM)到存储系统客户到最终用户,都可能对遥测数据及其监控、汇总和分析感兴趣。然而,并非所有遥测数据都可适合于所有方,并且一方或多方可能实现专有遥测数据和/或可能暴露各方所运行的存储设备或系统的潜在专有配置或使用数据的遥测数据。虽然这些系统可以通过系统级安全和数据加密实现内部安全,和/或通过各种加密协议支持主机数据在静止状态下和/或传输中的安全,但遥测数据可能暴露给有权合法访问系统的各方。
防止未经授权方访问遥测数据的加密的遥测数据可能是有利的。可能需要一种有效的方式来协调和执行各方的安全遥测数据访问权。
发明内容
描述了对数据存储设备遥测数据进行加密的各种方面,尤其是用多层加密对遥测消息进行格式化。
一个一般方面包括一种系统,该系统包括加密引擎和消息处理程序。加密引擎被配置为:接收存储设备遥测数据;使用第一加密密钥对存储设备遥测数据进行加密;并且使用第二加密密钥对第一加密密钥进行加密。消息处理程序被配置为:格式化遥测消息,其中遥测消息包括加密的存储设备遥测数据和基于第二加密密钥的加密的第一加密密钥;并且将遥测消息发送到第一客户端系统,该第一客户端系统被配置为:基于第二加密密钥从加密的第一加密密钥中解密第一加密密钥;并且从加密的存储设备遥测数据中解密存储设备遥测数据。
实施方式可包括下列特征中的一者或多者。加密引擎可被进一步配置为使用第三加密密钥对第一加密密钥进行加密。遥测消息还可包括基于第三加密密钥的加密的第一加密密钥。消息处理程序可被进一步配置为将遥测消息发送到第二客户端系统,该第二客户端系统被配置为:基于第三加密密钥从加密的第一加密密钥中解密第一加密密钥;并且从加密的存储设备遥测数据中解密存储设备遥测数据。第一加密密钥可以是对称密钥,第二加密密钥可以是公-私密钥对的公共密钥,并且第一客户端系统可以包括用于第二加密密钥的公-私密钥对的私用加密密钥。系统还可包括数据存储设备,该数据存储设备被配置为定期收集遥测数据集并且将多个数据集中的每个遥测数据集发送到加密引擎,其中加密引擎可被进一步配置为对每个遥测数据集进行加密,并且消息处理程序可被进一步配置为将每个加密的遥测数据集发送到第一客户端系统。数据存储设备可包括加密引擎和消息处理程序;数据存储设备可被进一步配置为为每个遥测数据集生成新的第一加密密钥;并且加密引擎可被进一步配置为使用不同的第一加密密钥对每个遥测数据集进行加密。数据存储设备可被进一步配置为使用非易失性存储器快速(NVMe)存储协议;并且消息处理程序可被进一步配置为使用NVMe遥测命令来发送遥测消息。遥测消息还可包括:多个数据区段,该多个数据区段包括存储设备遥测数据;以及目录,该目录被配置为指示多个数据区段中的每个数据区段。加密引擎可被进一步配置为对目录进行加密。加密引擎可被进一步配置为使用第一加密密钥对多个数据区段中的第一数据区段进行加密;以及使用第二加密密钥对多个数据区段中的第二数据区段进行加密。目录可被进一步配置为指示用于对多个数据区段中的每个数据区段进行加密的加密密钥。系统还可包括第一客户端系统,该第一客户端系统包括:遥测数据管理器,该遥测数据管理器被配置为接收遥测消息,确定加密的存储设备遥测数据并且基于第二加密密钥确定加密的第一加密密钥;以及解密引擎,该解密引擎被配置为基于第二加密密钥从加密的第一加密密钥中解密第一加密密钥并且从加密的存储设备遥测数据中解密存储设备遥测数据。遥测数据管理器可被进一步配置为:存储来自用于第二加密密钥的公-私密钥对的私用加密密钥;以及在用户界面上显示存储设备遥测数据。存储设备遥测数据可包括从以下各项中选择的至少一种数据类型:自监控和报告技术(SMART)数据;非易失性存储器快速(NVMe)数据日志;动态存储设备配置数据;事件数据日志;调试数据;固件管理数据;错误数据;和工作负载数据。解密引擎可被进一步配置为使用私用加密密钥从加密的第一加密密钥中解密第一加密密钥。
另一个一般方面包括一种计算机实现的方法,包括:收集存储设备遥测数据;使用第一加密密钥对存储设备遥测数据进行加密;使用第二加密密钥对第一加密密钥进行加密;格式化遥测消息,其中该遥测消息包括加密的存储设备遥测数据和基于第二加密密钥的加密的第一加密密钥;将遥测消息发送到第一客户端系统;由第一客户端系统接收遥测消息;由第一客户端系统基于第二加密密钥从加密的第一加密密钥中解密第一加密密钥;并且由第一客户端系统从加密的存储设备遥测数据中解密存储设备遥测数据。
实施方式可包括下列特征中的一者或多者。计算机实现的方法可包括:使用第三加密密钥对第一加密密钥进行加密,其中遥测消息还包括基于第三加密密钥的加密的第一加密密钥;将遥测消息发送到第二客户端系统;由第二客户端系统基于第三加密密钥从加密的第一加密密钥中解密第一加密密钥;并且由第二客户端系统从加密的存储设备遥测数据中解密存储设备遥测数据。计算机实现的方法可包括由第一客户端系统确定用于第二加密密钥的公-私密钥对的私用加密密钥,其中:从加密的第一加密密钥中解密第一加密密钥使用私用加密密钥;第一加密密钥是对称密钥;并且第二加密密钥是公-私密钥对的公共密钥。计算机实现的方法可包括:定期收集遥测数据集;对每个遥测数据集进行加密;将每个加密的遥测数据集发送到第一客户端系统;并且由第一客户端系统对每个加密的遥测数据集进行解密。计算机实现的方法可包括:为每个遥测数据集生成新的第一加密密钥;并且使用不同的第一加密密钥对每个遥测数据集进行加密。收集存储设备遥测数据可包括从被配置为使用非易失性存储器快速(NVMe)存储协议的存储设备中收集存储设备遥测数据,并且发送遥测消息可包括使用NVMe遥测命令。计算机实现的方法可包括对遥测消息中的目录进行加密,其中遥测消息包括多个数据区段,该多个数据区段包括存储设备遥测数据,并且目录指示多个数据区段中的每个数据区段。计算机实现的方法可包括:使用第一加密密钥对多个数据区段中的第一数据区段进行加密;并且使用第二加密密钥对多个数据区段中的第二数据区段进行加密,其中目录还指示用于对多个数据区段中的每个数据区段进行加密的加密密钥。计算机实现的方法可包括:将来自用于第二加密密钥的公-私密钥对的私用加密密钥存储在第一客户端系统中,其中对加密的第一加密密钥进行解密包括使用私用加密密钥;并且将来自用于第二加密密钥的公-私密钥对的公共加密密钥存储在数据存储设备中,其中对第一加密密钥进行加密包括使用公共加密密钥。
另一个一般方面包括一种存储系统,该存储系统包括:数据存储设备,该数据存储设备包括存储设备控制器,该存储设备控制器包括控制器处理器和控制器存储器;和存储介质;客户端系统,该客户端系统包括客户端处理器和客户端存储器;用于从数据存储设备收集存储设备遥测数据的装置;用于使用第一加密密钥对存储设备遥测数据进行加密的装置;用于使用第二加密密钥对第一加密密钥进行加密的装置;用于格式化遥测消息的的装置,其中该遥测消息包括加密的存储设备遥测数据和基于第二加密密钥的加密的第一加密密钥;用于将遥测消息发送到客户端系统的装置;用于由客户端系统接收遥测消息的装置;用于由客户端系统基于第二加密密钥从加密的第一加密密钥中解密第一加密密钥的装置;用于由客户端系统从加密的存储设备遥测数据中解密存储设备遥测数据的装置;以及用于由客户端系统在用户界面上显示存储设备遥测数据的装置。
各种实施方案有利地应用数据存储设备和/或存储系统的教导来改进此类计算机系统的功能。各种实施方案包括克服或至少减少先前存储系统中遇到的问题的操作,因此比其他计算系统更为安全和/或可靠。也就是说,本文所公开的各种实施方案包括硬件和/或软件,该硬件和/或软件具有例如通过使用多层加密格式化遥测消息以供多方访问来提高遥测数据安全性的功能。因此,本文所公开的实施方案为存储网络和/或存储系统提供了各种改善。
应当理解,本公开中使用的语言主要是出于可读性和指导目的而选择的,并不限制本文公开的主题的范围。
附图说明
图1示意性地示出具有加密的遥测数据的存储系统。
图2示意性地示出可由图1存储系统使用的用于遥测数据的多层加密的架构。
图3示意性地示出可由图1存储系统使用的安全遥测数据消息格式。
图4示意性地示出图1存储系统的主机或客户端节点。
图5示意性地示出图1至图4的存储系统的一些元件的更多细节。
图6是遥测数据多层加密的示例性方法的流程图。
图7是支持定期遥测命令的示例性方法的流程图。
图8是支持遥测消息内的多个加密的数据区段的示例性方法的流程图。
图9是使用具有访问遥测数据权限的不同方的公-私密钥对的示例性方法的流程图。
具体实施方式
图1示出了示例性数据存储系统100的实施方案,该系统具有通过存储接口110互连的多个数据存储设备120。虽然示出了一些示例性特征部,但是为了简洁起见且为了不模糊本文公开的示例性实施方案的相关方面,并未示出各种其他特征部。为此,作为非限制性示例,数据存储系统100包括一个或多个数据存储设备120(有时也称为信息存储设备、存储设备,磁盘驱动器或驱动器)。在一些实施方案中,存储设备120可被配置在服务器或存储阵列刀片或类似的存储单元中,以在数据中心存储机架或机箱中使用。存储设备120可与一个或多个主机102连接并为或通过那些主机系统提供数据存储和检索能力。在一些实施方案中,主机102可支持被配置为访问存储设备120中的或关于该存储设备的数据的一个或多个客户端118。例如,客户端118可包括一个或多个应用程序,该应用程序通过网络108和主机102和/或通过网络结构和存储接口110访问存储设备120中的数据。在一些实施方案中,存储设备120可被配置在存储层级结构中,该存储层级结构包括存储节点、存储控制器和/或存储设备120与主机102之间的其他中间部件。例如,每个存储控制器可负责对应的一组存储节点及其各自的存储设备,这些存储设备通过对应的背板网络和/或网络结构连接,但本公开仅示出了存储设备120和主机102。
在所示的实施方案中,多个存储设备120附接到公共存储接口110以用于主机通信。例如,存储设备120可包括布置在存储阵列中的多个驱动器,例如共享数据中心的公共机架、单元、或刀片或全闪存阵列中的固态驱动器(SSD)的存储设备。在一些实施方案中,存储设备120可共享背板网络、网络交换器和/或可以通过存储接口110进行访问的其他硬件和软件部件。例如,存储设备120可通过多个物理端口连接件连接到存储接口110,该多个物理端口连接件定义了用于与不同部件和子部件建立通信以建立到主机102的通信通道的物理、传输和其他逻辑通道。在一些实施方案中,存储接口110可提供用于存储设备管理和主机数据传输的主要主机接口,以及包括与主机的有限连接以例如通过基板管理控制器(BMC)实现低层级控制功能的控制接口。
在一些实施方案中,数据存储设备120是或包括固态驱动器(SSD)。每个数据存储设备120.1-120.n可包括基于计算资源(处理器和存储器)的非易失性存储器(NVM)或存储设备控制器130以及用于数据存储的多个NVM或介质设备140(例如,一个或多个NVM装置,诸如一个或多个闪存存储器设备)。在一些实施方案中,一个或多个数据存储设备中的相应数据存储设备120包括一个或多个NVM控制器,诸如闪存控制器或信道控制器(例如,用于在多个存储器通道中具有NVM设备的存储设备)。在一些实施方案中,数据存储设备120可各自封装在外壳中,诸如具有限定形状因子的多部件密封外壳以及用于与存储接口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上的物理存储位置,该物理存储位置也可对应于一个或多个逻辑存储位置。在一些实施方案中,介质段可包括一系列连续的物理存储位置,诸如存储介质上的相邻数据单元,并且对于闪存存储器设备,该介质段可对应于一个或多个介质擦除或编程块。逻辑数据组可包括不管存储位置如何可在逻辑基础上分组的多个逻辑数据单元,诸如数据对象、文件或由多个主机块构成的其他逻辑数据构造。在一些配置中,可在存储设备120内将逻辑和/或物理区分配为为指定主机数据管理目的而分配的数据块组。
在一些实施方案中,主机或主机系统102可通过网络接口耦接到数据存储系统100,该网络接口是包括存储接口110作为主机结构接口的主机结构网络的一部分。在一些实施方案中,多个主机系统102(图1中仅示出了其中一个)和/或客户端118通过结构网络耦接到数据存储系统100,该结构网络可包括存储网络接口或能够支持与多个主机系统102进行通信的其他接口。在一下实施方案中,结构网络可在网络108上运行,并且网络108可包括可以合适的方式耦接以用于传输数据的有线和/或无线网络(例如,任何数量和/或配置的公共和/或私用计算机网络)。例如,网络108可包括常规数据通信网络的任何装置,诸如局域网(LAN)、广域网(WAN)、电话网络诸如公共交换电话网络(PSTN)、内联网、互联网或任何其他合适的通信网络或通信网络的组合。
主机系统102和/或客户端系统118或具有多个主机或客户端的系统中的相应主机或客户端可以是任何合适的计算机设备,诸如计算机、计算机服务器、膝上型计算机、平板设备、上网本、互联网消息亭、个人数字助理、移动电话、智能电话、游戏设备、或任何其他计算设备。主机系统102有时被称为主机、客户端或客户端系统,这取决于相应的角色、配置和上下文。在一些实施方案中,主机系统102是服务器系统,例如数据中心中的服务器系统,或存储系统,例如数据中心中的存储阵列。在一些实施方案中,客户端系统118是配置有一个或多个应用程序和/或被配置为访问主机系统102上的一个或多个应用程序的用户装置。例如,主机102可被配置为收集和存储来自存储设备120的遥测数据,并且客户端118可包括遥测数据管理器118.1,该遥测数据管理器被配置为访问、分析和显示由主机102收集的聚合遥测数据。在一些实施方案中,一个或多个主机系统102可以是与存储控制器或容纳多个存储设备120的存储节点不同的一个或多个主机设备。一个或多个主机系统102可被配置为存储和访问多个存储设备120中的数据。
主机系统102可包含一个或多个中央处理单元(CPU)或处理器104,用于执行计算操作或通过存储接口110访问存储设备120的指令。在一些实施方案中,处理器104可与用于执行存储操作和与存储接口110和存储设备120兼容的存储接口协议的操作存储器106相关联。在一些实施方案中,单独的存储接口单元(未示出)可提供存储接口协议和相关的处理器和存储器资源。从存储设备120的角度来看,存储接口110可以被称为主机接口并且提供存储设备120与主机102之间的主机数据路径。
主机系统102可包括被配置为支持各种数据访问和管理功能(通常支持一个或多个应用程序)的存储器106。存储器106可包括随机存取存储器(RAM)或存储供存储处理器104执行的信息和指令的另一类型的动态存储设备和/或只读存储器(ROM)或存储供存储处理器104使用的静态信息和指令的另一类型的静态存储设备和/或任何合适的存储元件诸如硬盘或固态存储元件。例如,存储器106可包括一个或多个动态随机存取存储器(DRAM)设备,由存储设备120用于命令、管理参数和/或主机数据的存储和传送。在一些实施方案中,存储设备120可被配置为例如使用远程直接存储器访问(RDMA)协议通过存储接口110进行直接存储器访问(DMA)以与主机102交互。
主机系统102可被配置为从存储设备120接收安全遥测数据。例如,主机系统102可基于来自存储设备120的遥测命令在定期或按需基础上接收加密的遥测消息并且对遥测数据进行解密以供主机系统102和/或客户端118使用。主机系统102可包括多个模块或子系统,这些模块或子系统存储在存储器106中和/或在存储器中实例化,以供处理器104作为指令或操作执行。例如,存储器106可包括消息处理器112,该消息处理器被配置为使用如NVMe等存储协议从存储设备120接收遥测消息。例如,存储器106可包括加密引擎114,该加密引擎包括用于解密遥测消息中的加密的数据的一个或多个密码。例如,存储器106可包括支持用于多级加密的加密密钥的密钥管理器,例如对称卸载加密和非对称访问控制加密。
在一些实施方案中,消息处理器112、加密引擎114和密钥管理器116可包括接口协议和/或功能、参数和/或数据结构集,用于接收、解析、解密和存储来自遥测消息的遥测数据。例如,消息处理器112可从存储设备120中的一个存储设备接收遥测命令中的遥测消息。消息处理器112可解析遥测消息以识别报头、目录、加密密钥和/或含有加密遥测数据的一个或多个数据区段。消息处理器112可调用加密引擎114进行一个或多个解密任务。例如,加密引擎114可包括基于一个或多个密码(例如,基于一个或多个加密密钥的对称或非对称密码)的解密处理逻辑。在一些实施方案中,消息处理器112可访问密钥管理器116,以获取用于解密遥测消息的一个或多个存储的加密密钥。例如,可以使用作为公-私密钥对的一部分的公共加密密钥对遥测消息的一个或多个部分进行加密,并且可以由密钥管理器116检索对应私用加密密钥以供加密引擎114使用。在一些实施方案中,消息处理器112、加密引擎114和密钥管理器116可支持多级加密,其中它们使用访问控制加密密钥来解密遥测消息中包括的加密的卸载加密密钥,然后使用解密的卸载加密密钥来解密遥测数据。
在一些实施方案中,客户端118可包括用于访问或使用主机102收集的遥测数据的一个或多个应用程序。例如,客户端118可包括被配置为访问、分析、显示和/或自动响应聚合遥测数据的遥测数据管理器118.1。遥测数据管理器118.1可包括接口协议和/或功能、参数和/或数据结构集,用于在监控期间与消息处理器112从一个或多个存储设备120接收并存储的聚合遥测数据通过接口连接。例如,遥测数据管理器118.1可提供用户界面、分析工具和/或系统管理功能或接口,以使得用户能够使用遥测数据来监控存储设备120的性能和状态和/或它们在一个或多个层级部件中的聚合性能,例如存储控制器、存储阵列、RAID组等。在一些实施方案中,遥测数据管理器118.1可被配置为自动响应遥测数据中的一个或多个触发器或事件以启动存储设备120和/或存储系统100中的其他部件的操作配置参数的维护或改变。
在一些实施方案中,数据存储系统100包括一个或多个处理器、一种或多种类型的存储器、显示器和/或其他用户界面部件诸如键盘、触摸屏显示器、鼠标、触控板,和/或任何数量的添加功能的补充设备。在一些实施方案中,数据存储系统100不具有显示器和其他用户界面部件。
图2示出了用于遥测数据消息的多级加密架构的示意图,该遥测数据消息可以由类似于图1存储系统100配置的存储系统200使用。多个主机102.1-102.n可与存储设备120通信以接收遥测数据并使用包括对称和非对称加密的多级加密来解密遥测数据。在一些实施方案中,主机102的功能可由消息处理器112在加密引擎114和密钥管理器116的辅助下执行,并且存储设备120的功能可由存储设备控制器130执行。例如,遥测数据收集器210、遥测消息格式器212、对称密钥生成器230、加密引擎234和公共密钥管理器244可以体现在存储设备控制器硬件中,例如处理器、存储器和/或硬件加密引擎。
遥测数据收集器210可被配置为收集遥测数据以用于存储设备120。例如,遥测数据收集器210可包括用于收集存储设备的各种操作参数的调度事件和/或基于命令的触发器。在一些实施方案中,遥测数据可包括与存储设备读取/写入操作、存储介质空间和性能、传感器和/或存储设备管理有关的一个或多个参数。例如,遥测数据可包括工作负载数据、错误数据、调试数据、事件数据日志、动态存储配置数据(即,改变的存储设备配置参数)、固件管理数据、供应商定义的数据日志、NVMe数据日志和/或SMART数据日志。在一些实施方案中,遥测数据收集器210可从一个或多个存储设备子系统和/或存储器寄存器或用于收集目标操作参数的数据储存库中接收遥测数据。在一些实施方案中,遥测数据收集器210可包括一个或多个日志以及用于在存储设备操作期间将数据添加到那些日志的对应逻辑。遥测数据收集器210可向遥测消息格式器212转发遥测数据集,例如定义的收集周期、请求或事件的遥测数据。
遥测消息格式器212可包括用于将从遥测数据收集器210接收到的遥测数据映射到定义的遥测消息格式的逻辑,例如NVMe遥测命令或类似的存储协议遥测命令的语法要求。例如,遥测消息格式器212可在遥测消息220中格式化接收到的遥测数据。在一些实施方案中,遥测消息220可包括遥测报头222、遥测子报头224、目录226和用于遥测数据本身的一个或多个数据区段228。例如,遥测报头222可包括命令标识符、参数和/或对用于存储设备120与主机102之间的命令通信的通信协议指定遥测命令或消息的其他协议要求。子报头224可包括供应商或实施特定标识符、参数和/或为存储设备120和/或存储系统200指定遥测命令或消息的特定实施的其他协议要求。目录226可识别遥测消息220中数据区段228的位置和/或布局,和/或包括与那些数据区段有关的其他标识符或参数。数据区段228.1-228.n可包括遥测数据的各个部分。例如,每个数据区段可对应于相关参数、时间段、数据源或数据类型和/或遥测数据的其他组织方案的子集。
遥测消息格式器212可被配置为对遥测消息220的一个或多个部分进行加密。例如,遥测消息格式器212可被配置为对数据区段228、目录226和/或子报头224进行加密。在一些实施方案中,可使用对称加密密钥232对遥测消息220内的字段进行加密。例如,对称密钥生成器230可被配置为在对遥测数据进行加密时生成对称加密密钥232以供加密引擎234使用。在一些实施方案中,对称密钥生成器230可被配置为为每个遥测消息生成随机加密密钥。例如,可为每个遥测消息生成新的卸载加密密钥,使得每个遥测消息使用不同的对称加密密钥232。在一个消息的密钥泄露的情况下,它可能无法对其他遥测消息进行解密。加密引擎234可包括对称密码236以使用对称加密密钥232对遥测消息220的所选部分进行加密。对称密码236可以是使用相同密钥对目标数据进行加密和解密的加密算法。在一些实施方案中,遥测消息格式器212可包括遥测消息中的对称加密密钥232,以供接收节点诸如主机102使用,用于对加密的遥测数据进行解密。
遥测消息格式器212可被配置用于多级加密,其中对称加密密钥232使用另一加密算法和对应的密钥来加密。例如,加密引擎234还可包括由遥测消息格式器212调用的非对称密码240,该密码用于在将对称加密密钥232添加到加密的遥测消息之前对其进行加密。非对称密码240可以是使用不同密钥进行加密和解密的加密算法,例如公-私加密密钥对。在一些实施方案中,遥测消息格式器212可支持多个访问控制密钥选择性地允许主机102具有用于访问加密的遥测数据的不同加密密钥。例如,存储设备120可包括对应于多方、节点和/或主机102的多个公共加密密钥242.1-242.n。在一些实施方案中,公共密钥管理器244可存储多个公共加密密钥242以供非对称密码240使用,并且每个主机102可包括对应于公共加密密钥242的私用加密密钥272。遥测消息格式器212可包括加密遥测消息中的对称加密密钥232的多个加密版本,以供主机102与对应私用加密密钥272一起使用。
遥测消息格式器212可经由通过加密引擎234处理遥测消息220的所选部分来生成加密的遥测消息250。例如,加密的遥测消息250可包括:对应于遥测报头222的遥测报头252;对应于子报头224的加密版本的安全子报头254;对应于目录226的加密版本的安全目录256;对应于对称加密密钥232的一个或多个加密版本的安全密钥258;以及对应于数据区段228的加密版本的加密数据260。在一些实施方案中,安全密钥258可包括对应于公共加密密钥242的对称加密密钥323的多个加密密钥258.1-258.n。存储设备120可将加密的遥测消息250发送到主机102。例如,根据NVMe遥测命令协议,可在存储设备120与主机102之间通过网络结构发送加密的遥测消息250。
主机102可包括非对称密码270和被配置为解密安全密钥258并返回对称加密密钥232的私用加密密钥272。主机102可包括被配置为解密加密数据260、安全子报头254和/或安全目录256以返回原始遥测消息内容280的对称密码274。例如,遥测报头282可对应于原始遥测报头222,安全子报头254中的子报头284可对应于原始子报头224,安全目录256中的目录286可对应于原始安全目录226,并且加密数据260的数据区段288.1等可对应于原始数据区段228.1等。在一些实施方案中,每个主机102中的消息处理器,例如图1中的消息处理器112,可接收并处理加密的遥测消息250。每个主机102的加密引擎,例如图1中的加密引擎114,可包括对称密码270和对称密码274。每个主机102的密钥管理器,例如图1中的密钥管理器116,可存储私用加密密钥272。在一些实施方案中,主机102可被配置为通过遥测数据管理器应用程序,如图1中的遥测数据管理器118.1,存储、分析和/或显示原始遥测消息内容280中的遥测数据。
图3示出了可以由图1的存储系统100使用的安全遥测数据消息格式300的示意图。例如,存储设备120可使用安全遥测数据消息格式300将遥测数据消息发送到主机102。在一些实施方案中,存储设备120可被配置为使用不同的加密算法和密钥选择性地加密遥测数据的不同数据区段,例如使用卸载加密密钥的对称加密和使用多个访问控制加密密钥的非对称加密。在所示的实例中,加密的遥测消息310可包括与参考图2描述的遥测报头252和安全子报头254类似的遥测报头312和安全子报头314。安全密钥318可类似地包括作为加密密钥318.1-318.n的卸载加密密钥的加密版本。在一些实施方案中,安全目录316可包括用于识别用于每个数据区段的加密的附加字段或参数,并且每个数据区段322.1-322.n可包括不同级别的加密或根本不加密。
在一些实施方案中,安全目录316可包括多个目录条目330,其中每个目录条目330与数据区段322相关。每个目录条目330可包括多个字段或参数,例如区段标识符332、密钥标识符334和数据位置336。例如,区段标识符332.1可对应于数据区段322.1的标识符,密钥标识符334.1可包括用于数据区段322.1的加密的标识符,并且数据位置226.1可为数据区段322.1提供加密的遥测消息310中的开始和结束存储器位置。每个目录条目330可类似地对应于数据区段332.1-322.n。
在所示的实例中,安全数据区段322.1可以是包括授权由所有授权实体访问的遥测数据的数据区段。例如,安全数据区段322.1可以仅通过卸载加密算法和对应的卸载加密密钥进行加密,以用于加密的遥测消息310。具有加密密钥318.1-318.n的有效私用加密密钥的任何授权实体可解密卸载加密密钥和安全数据区段322.1。安全目录316中的密钥标识符334.1可包括识别用于加密安全数据区段322.1的卸载加密密钥的参数。
密钥1数据区段322.2可以是包括授权仅由控制第一访问控制加密密钥的私用密钥的实体访问的遥测数据的数据区段。例如,可使用访问控制加密算法和第一访问控制加密密钥对密钥1数据区段322.2进行加密。密钥n数据区段322.3可以是包括授权仅由控制不同访问控制加密密钥n的私用密钥的实体访问的遥测数据的数据区段。例如,可使用访问控制加密算法和访问控制加密密钥n对密钥n数据区段322.3进行加密。在一些实施方案中,加密的遥测消息310可支持具有对应访问控制加密密钥的任何数量的访问控制实体,例如公-私密钥对,其中公共密钥存储在存储设备中并且私用密钥由一个或多个主机或客户端系统使用。安全目录316中相应的密钥标识符334.2和334.3可识别所使用的相应加密密钥、用于334.2的访问控制加密密钥1和用于334.3访问控制加密密钥n。
安全数据区段322.4可以是授权由所有授权用户访问的另一数据区段,具有与安全数据区段322.1相同的访问控制。在一些实施方案中,安全遥测消息310可支持未加密的遥测数据以及加密的遥测数据。例如,不安全数据区段322.5可包括未加密的遥测数据,其可由安全遥测消息310的任何接收方访问,而不需要任何访问控制加密密钥。可以使用利用各种加密算法和访问控制的任何数量和组合的数据区段。例如,可存在针对访问控制加密密钥1安全的多个数据区段,诸如密钥1数据区段322.2和密钥1数据区段322.n。安全目录316可以提供数据区段322.1-322.n的索引,使得消息的接收方能够确定他们有权访问哪些数据区段。在一些实施方案中,安全目录316可包括多个目录,这些目录条目限于使用单个访问控制凭证集可访问的那些目录条目。例如,安全目录316的第一版本可仅包括所有授权用户可访问的条目,例如安全数据区段322.1、安全数据区段322.4和不安全数据区段322.5,并且用卸载加密密钥进行加密。安全目录316的第二版本可包括控制访问控制加密密钥1的授权实体可访问的条目,例如安全数据区段322.1、密钥1数据区段322.2、安全数据区段322.4、不安全数据区段322.5和密钥1数据区段322.n,并且用访问控制加密密钥1进行加密。可针对每个访问控制加密密钥和/或不安全数据区段(未加密的目录中的)包括目录的附加版本。
图4示出了示例性主机系统102和/或客户端系统118的示意图。主机系统102可包括总线410、处理器420、本地存储器430、一个或多个任选的输入单元440、一个或多个任选的输出单元450和通信接口460。总线410可包括允许在主机102的部件之间进行通信的一个或多个导体。处理器420,有时称为主机处理器或客户端处理器,可包括解释和执行指令的任何类型的常规处理器或微处理器。本地存储器430,有时称为主机存储器或客户端存储器,可包括随机存取存储器(RAM)或存储供处理器420执行的信息和指令的另一类型的动态存储设备和/或只读存储器(ROM)或存储供处理器420使用的静态信息和指令的另一类型的静态存储设备和/或任何合适的存储元件诸如硬盘或固态存储元件。例如,图1中的消息处理器112、加密引擎114和密钥管理器116可在本地存储器430中存储的指令、操作或固件中实例化,以供处理器420执行。任选的输入单元440可包括允许操作者向主机102输入信息的一个或多个常规机构,诸如键盘、鼠标、笔、语音识别和/或生物识别机构等。任选的输出单元450可包括向操作者输出信息的一个或多个常规机构,诸如显示器、打印机、扬声器等。通信接口460可包括使主机102能够与其他设备和/或系统通信的任何收发器状机构。在一些实施方案中,通信接口460可包括一个或多个外围接口,例如用于连接到存储设备120的外围部件互连快速(PCIe)接口和/或通过结构网络与存储设备120通信的网络接口。
在一些实施方案中,图1中的客户端118可与主机102类似地配置,并且包括图4中所示和描述的部件。例如,客户端118可包括总线410、处理器420、本地存储器430、一个或多个任选的输入单元440、一个或多个任选的输出单元450和通信接口460。遥测数据管理器118.1可存储在存储器430中以供处理器420执行,并且通信接口460可以例如通过结构网络实现与主机102和/或存储设备120的网络通信。
图5示意性地示出存储系统500的所选模块,该所选模块被配置用于从存储设备到其他节点诸如主机或客户端系统的安全遥测消息。存储系统500可与类似图1至图4所示的元件和配置相结合。例如,存储系统500可包括被配置为存储系统100中的存储设备120的一个或多个存储设备,其中存储设备包括总线510、处理器512、存储器514(实例化主机接口530、存储管理器536和加密/解密引擎540)以及存储设备控制器130中的存储接口516和NVM设备140中的非易失性存储器520。存储系统500可包括被配置为存储系统100中的主机102和/或客户端118的一个或多个主机或客户端系统,其中主机或客户端系统包括总线510、处理器512和存储器106或430中的存储器514(实例化加密/解密引擎540和遥测数据管理器550)。
存储设备500可包括与至少一个处理器512、至少一个存储器514和至少一个接口诸如存储接口516互连的总线510。总线510可包括允许在存储设备500的部件之间进行通信的一个或多个导体。处理器512可包括任何类型的解释和执行指令或操作的处理器或微处理器。存储器514可包括随机存取存储器(RAM)或存储供处理器512执行的信息和指令的另一类型的动态存储设备和/或只读存储器(ROM)或存储供处理器512使用的静态信息和指令的另一类型的静态存储设备和/或任何合适的存储元件诸如硬盘或固态存储元件。
存储接口516可包括用于使用支持存储设备访问的接口协议在存储设备与主机或客户端之间进行通信的物理接口。例如,存储接口516可包括PCIe、串行高级技术附件(SATA)、串行附接的小计算机系统接口(SCSI)(SAS)或支持NVMe访问包括非易失性存储器设备520的固态介质的类似的存储接口连接器。在一些实施方案中,存储接口516可包括连接到或包含用于连接到结构网络和/或其他网络的网络接口。例如,存储接口516可通过背板网络和/或支持结构上NVMe(NVMeoF)协议的存储网络接口控制器连接到网络结构接口。在一些实施方案中,存储系统500的存储设备、主机、客户端和/或其他部件可以配置为NVMeoF拓扑中的节点,并且使用所支持的NVMe命令诸如NVMe遥测命令进行通信。
存储设备500可包括被配置为存储主机数据520.1的一个或多个非易失性存储器设备520。例如,非易失性存储器设备520可包括被组织为可寻址存储器阵列的多个闪存封装。在一些实施方案中,非易失性存储器设备520可包括由单级单元(SLC)、多级单元(MLC)或三级单元组成的NAND或NOR闪存存储器设备。在一些实施方案中,非易失性存储器设备520可包括存储设备的存储介质,例如存储设备120中的NVM设备140。
存储系统500可包括多个模块或子系统,这些模块或子系统存储在存储器514中和/或在存储器中实例化,以供处理器512作为指令或操作执行。例如,存储器514可包括主机接口530,该主机接口被配置为接收、处理和响应来自客户端或主机系统的主机数据请求和/或管理命令。存储器514可包括存储管理器536,该存储管理器被配置为管理对包括非易失性存储器520的介质设备的存储和管理操作。存储器514可包括加密/解密引擎540,该加密/解密引擎被配置为使用所选加密算法和对应的加密密钥对目标数据进行加密和/或解密。存储器514可包括遥测数据管理器550,该遥测数据管理器被配置为接收、处理、存储和分析和/或显示来自一个或多个存储设备的遥测数据。
主机接口530可包括接口协议和/或功能、参数和/或数据结构集,用于接收、解析、响应以及以其他方式管理来自主机的主机数据请求。例如,主机接口530可包括用于根据主机通信和存储协议接收和处理的针对读取、写入、修改或以其他方式操纵数据块和其相应客户端或主机数据和/或元数据的主机请求的功能。主机接口530还可支持主机或存储设备启动的管理命令和/或管理操作,例如配置改变、垃圾收集、日志访问、固件管理、操作参数(例如,遥测数据)的报告等。例如,主机接口530可支持用于配置命名空间、队列控制、日志访问、特征识别和配置、安全设置和/或遥测数据报告的管理命令集。在一些实施方案中,主机接口530可通过存储接口516实现直接存储器访问和/或通过NVMe协议访问。例如,主机接口530可包括与PCIe、SATA、SAS和/或支持使用NVMe和/或RDMA协议进行数据访问的另一总线接口兼容的主机通信协议。主机接口530还可包括与配置和启用从存储设备到一个或多个主机或客户端的安全遥测消息兼容的主机通信协议。例如,主机接口530可在定期、基于事件或主机响应的基础上收集、格式化、加密和发送存储设备中的遥测数据。
在一些实施方案中,主机接口530可包括多个硬件模块和/或软件模块,该硬件模块和/或软件模块被配置为使用处理器512和存储器514处理或管理主机接口530的定义操作。例如,主机接口530可包括存储接口协议532,该存储接口协议被配置为符合由主机支持的用于通过存储接口516通信的物理、传输和存储应用程序协议。例如,存储接口协议532可包括与PCIe和NVMe两者兼容的通信、命令、语法功能、程序和数据结构。在一些实施方案中,主机接口530可包括遥测消息处理程序534,该遥测消息处理程序被配置为处理用于将遥测数据从存储设备发送到一个或多个主机的一个或多个命令类型。在一些实施方案中,主机接口530可包括用于输入/输出(I/O)命令、缓冲区管理、存储设备配置和管理以及其他主机侧功能的附加模块(未示出)。
在一些实施方案中,遥测消息处理程序534可被配置为处理加密的遥测消息,以将遥测数据安全地传送到多个主机。例如,遥测消息处理程序534可包括消息触发器543.1、遥测数据收集器534.2、消息格式器534.3、数据区段配置534.4、目录建立器534.5、加密逻辑534.6、卸载密钥生成器534.7和密钥管理器534.8。
消息触发器534.1可包括被配置为确定何时和哪些操作数据应包括在用于一个或多个遥测消息的遥测数据集中的逻辑。例如,消息触发器534.1可包括用于启动与一个或多个操作参数相关的遥测消息的多个基于规则的条件。在一些实施方案中,消息触发器534.1可选自基于定期时间的触发器(例如,报告存储参数、I/O工作负载、错误率等的固定间隔)、基于事件的触发器(例如,在功率循环事件之前或之后、在错误情况和相关转储之后、在固件更新之后等)和/或基于请求的触发器(例如,来自一个或多个主机的遥测数据请求)。
遥测数据收集器534.2可包括用于定位特定遥测消息的遥测数据集的逻辑和/或数据结构。例如,响应于消息触发器534.1中的遥测消息触发器,遥测数据收集器534.2可确定对应于将在遥测消息中报告的遥测数据的操作参数集。在一些实施方案中,消息触发器534.1可映射到遥测数据收集器534.2可用来确定遥测数据集的一组操作参数、日志、寄存器和/或选择标准(诸如时间段、参数类型等)。例如,遥测数据收集器534.2可从遥测数据520.2中的相应存储位置和/或由存储管理器536维护的寄存器或数据结构读取参数或日志值或内容,将这些参数和值组织到遥测数据集中,并且将遥测数据集转发到消息格式器534.3。
消息格式器534.3可包括根据一个或多个遥测命令(诸如,存储接口协议532支持的遥测命令)的语法要求来格式化遥测数据集的逻辑。例如,消息格式器534.3可将一个或多个报头、目录和数据区段应用于遥测数据集。在一些实施方案中,消息格式器534.3可包括用于填充遥测报头和子报头诸如遥测命令报头和供应商特定子报头的模板。消息格式器534.3可包括或访问数据区段配置534.4,该数据区段配置被配置为定义可以分配部分遥测数据集的多个数据区段。例如,数据区段配置534.4可基于数据类型、时间段和/或对不同长度的多个数据区段的访问权来将类似的操作参数进行分组。在一些实施方案中,数据区段配置534.4可包括数据区段配置表,该数据区段配置表包括用于定义每个区段的内容以及对应区段标识符的参数和/或访问参数,例如加密类型、授权实体、授权密钥标识符等。消息格式器534.3可包括或访问目录建立器534.5,该目录被配置为生成特定遥测消息使用的数据区段配置的至少一个目录。例如,目录建立器534.5可生成表,该表包括对应于不同数据区段的多个表条目,并且包括描述遥测消息中的数据区段的位置(例如,起始位置和结束位置或起始位置和长度)的区段标识符和位置数据。
遥测消息处理程序534可支持遥测消息的一个或多个部分的加密。例如,消息格式器534.3可被配置为调用加密逻辑534.6用来加密遥测数据集、其部分、目录和/或报头。在一些实施方案中,加密逻辑534.6可支持多级加密以支持卸载加密算法以及一个或多个访问控制加密算法,如上文关于图2和图3所描述的。例如,加密逻辑534.6可调用加密/解密引擎540,以使用卸载密码542选择性地加密遥测数据集,并且使用访问控制密码544选择性地加密用于卸载密码542的卸载加密密钥。消息格式器534.3可被进一步配置为将加密的卸载加密密钥添加到遥测消息,例如添加在安全密钥字段中。
在一些实施方案中,遥测消息处理程序534可包括卸载密钥生成器534.7,该卸载密钥生成器被配置为生成用于对遥测数据集和/或遥测消息的其他部分进行加密的卸载加密密钥。例如,卸载密钥生成器534.7可以为每个遥测数据集和/或对应的遥测消息生成新的卸载加密密钥。在一些实施方案中,卸载密钥生成器534.7可被配置为定期和/或响应于事件或命令而生成新的密钥,而不是为每个遥测消息生成新的密钥。在一些实施方案中,遥测消息处理程序534可包括密钥管理器534.8,该密钥管理器被配置为管理用于一个或多个对应的授权实体和/或主机/客户端系统的一个或多个访问控制加密密钥。例如,授权实体可具有用于选择性解密遥测消息的部分的相应公-私密钥对,并且公共密钥可由密钥管理器534.8存储在公共密钥数据520.3中,以供加密/解密引擎540使用。
存储管理器536可包括用于读取、写入和删除非易失性存储器设备520中的数据单元的接口协议和/或功能、参数和数据结构集。例如,存储管理器536可包括用于执行与通过主机接口530接收的主机存储命令有关的主机数据操作的功能。例如,PUT或写入命令可被配置为通过写入处理器将主机数据单元写入非易失性存储器设备520。GET或读取命令可被配置为通过读取处理器从非易失性存储器设备520读取数据。DELETE命令可被配置为从非易失性存储器设备520中删除数据,或者至少标记待删除的数据位置,直到未来垃圾收集或类似操作实际删除该数据或者针对另一目的重新分配物理存储位置。在一些实施方案中,存储管理器536可包括闪存转换层(FTL)管理、数据状态机、读/写缓冲区管理、NVM设备接口协议、NVM设备配置/管理/维护以及其他设备侧功能。存储管理器536可包括生成操作参数的各种功能,这些操作参数例如工作负载数据、错误率、配置参数、物理参数、存储参数(例如,用于/可用于/标记用于垃圾收集、磨损均衡统计等的聚合存储空间)、错误日志、事件日志,以及可以在遥测数据中聚合和报告的其他操作参数。
加密/解密引擎540可包括用于对目标数据进行加密的接口和功能、参数和数据结构集。例如,加密/解密引擎540可接收目标数据并使用所选密码和加密密钥返回对应的加密的目标数据,和/或接收加密的目标数据并使用所选密码和加密(或解密)密钥返回对应的目标数据。在一些实施方案中,加密和解密功能可置于具有冗余和/或共享功能的单独的加密引擎和解密引擎中,其中通过加密以及解密操作使用类似功能。在一些实施方案中,加密/解密引擎540可包括体现在离散处理器设备中的硬件加密引擎,例如芯片上系统(SoC)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他硬件部件。加密/解密引擎540可体现在消息发送节点和消息接收节点两者中,例如发送遥测消息的存储设备和接收遥测消息的主机/客户端。在一些实施方案中,加密/解密引擎540可实现用于目标遥测消息数据或其部分的一个或多个所选加密算法和标准,例如高级加密标准(AES)-128或另一加密标准。
在一些实施方案中,加密/解密引擎540可包括多个硬件和/或软件模块,该硬件模块和/或软件模块被配置为使用处理器512和存储器514(和/或离散加密/解密引擎的专用处理器和存储器)来处理或管理加密/解密引擎540的定义操作。例如,加密/解密引擎540可包括或启用卸载密码542和访问控制密码544。卸载密码542可包括对称加密算法,该对称加密算法使用卸载加密密钥来加密和解密遥测数据和/或由遥测消息处理程序534生成的和/或由遥测数据管理器550接收的遥测消息的其他部分。访问控制密码544可包括非对称加密算法,该非对称加密算法使用一个或多个访问控制加密密钥来加密和解密遥测数据和/或由消息处理程序534生成的和/或由遥测数据管理器550接收的遥测消息的其他部分。在一些实施方案中,访问控制密码544可基于公-私密钥对,其中对应的公共加密密钥用于对目标数据进行加密,并且对应的私用加密密钥用于对目标数据进行解密。
遥测数据管理器550可包括接口协议和/或功能、参数和/或数据结构集,用于接收、解析、存储、分析和以其他方式管理来自一个或多个存储设备的遥测数据消息。例如,遥测数据管理器550可支持用于遥测数据报告的一个或多个管理命令集,并且向用户或另一系统部件提供对应的存储、聚合、分析和呈现。遥测数据管理器550还可包括与配置和启用来自存储设备或一个或多个其他主机或客户端的安全遥测消息兼容的存储设备通信协议。
在一些实施方案中,遥测数据管理器550可包括多个硬件模块和/或软件模块,该硬件模块和/或软件模块被配置为使用处理器512和存储器514来处理或管理遥测数据管理器550的定义操作。例如,遥测数据管理器550可包括遥测数据接收器552,该遥测数据接收器被配置为处理用于从存储设备和/或其他节点接收遥测消息的一个或多个命令类型。在一些实施方案中,遥测数据管理器550可包括密钥管理器554,该密钥管理器被配置为管理一个或多个加密密钥以用于对遥测数据接收器552接收的遥测消息进行解密。在一些实施方案中,遥测数据管理器550可包括消息处理器556,该消息处理器被配置为解析遥测消息并存储从这些消息接收的遥测数据。在一些实施方案中,遥测数据管理器550可包括遥测数据分析器558,该遥测数据分析器被配置为分析聚合遥测数据以用于呈现和/或启动存储设备和相关存储系统部件和应用程序的自动化管理。在一些实施方案中,遥测数据管理器550可包括用户界面560,该用户界面被配置为通过图形用户界面和/或用户系统诸如客户端系统的显示器向用户呈现遥测数据。
遥测数据接收器552可包括用于从一个或多个存储设备接收遥测消息的接口,例如命令接口或应用程序协议接口(API)。例如,遥测数据接收器552既可包括NVMe兼容通信、命令和语法功能、程序,也可包括用于从存储设备和/或其他节点接收NVMe遥测命令的数据结构。在一些实施方案中,遥测数据接收器552可基于遥测报头接收遥测消息,该遥测报头被配置为将遥测命令路由到目标节点,例如包括遥测数据管理器550的主机或客户端系统。遥测数据接收器552可接收和识别遥测消息并将其转发到消息处理器556进行处理。
在一些实施方案中,遥测数据管理器550可被配置为处理包括一个或多个加密部分(例如加密的遥测数据、目录和/或子报头)的安全遥测消息。遥测数据管理器550可包括密钥管理器554,该密钥管理器被配置为存储用于访问安全遥测消息的遥测数据的至少一个访问控制加密密钥。例如,密钥管理器554可包括与公-私密钥对相对应的私用加密密钥554.1,其中存储设备使用对应的公共加密密钥对遥测消息的至少一部分进行加密。在一些实施方案中,私用加密密钥554.1可用于加密的卸载加密密钥、目录、子报头和/或旨在使用私用加密密钥554.1进行选择性访问的一个或多个数据区段进行解密。例如,消息处理器556可从密钥管理器554中检索私用加密密钥554.1,并且将其提供给加密/解密引擎540以用于解密遥测消息的一个或多个部分。
在一些实施方案中,消息处理器556可被配置为解析由遥测数据接收器552接收的遥测消息,并且使用加密/解密引擎540来选择性地使用对应的加密密钥对遥测消息的相关部分进行解密。例如,消息处理器556可从由遥测数据接收器552接收的遥测命令接收加密的遥测消息,通过解密相关部分处理加密的遥测消息,并且返回遥测数据以供遥测数据管理器550使用。在一些实施方案中,消息处理器556可包括用于解析遥测消息的特定部分以读取或提取所需的字段或参数的掩码、模板和/或逻辑。例如,消息处理器556可被配置为识别报头、子报头、目录、加密密钥以及包括遥测消息中的定义字段的遥测数据的一个或多个数据部分。
在一些实施方案中,消息处理器556可包括卸载密钥逻辑556.1,该卸载密钥逻辑被配置为确定用于解密遥测消息的一个或多个部分的卸载加密密钥。例如,卸载密钥逻辑556.1可确定遥测消息内含有已使用分配给遥测数据管理器550的访问控制加密密钥加密的卸载加密密钥的版本的位置。卸载密钥逻辑556.1可从密钥管理器554访问私用加密密钥554.1,并使用加密/解密引擎540来解密加密的卸载加密密钥并返回解密的卸载加密密钥。在一些实施方案中,卸载密钥逻辑556.1可被配置为从遥测消息中识别多个加密密钥并进行解密。
在一些实施方案中,消息处理器556可包括报头/目录逻辑556.2,该报头/目录逻辑被配置为确定一个或多个报头、目录或用于解析遥测消息的其他描述性参数。例如,报头/目录逻辑556.2可确定遥测消息内含有报头、子报头和至少一个目录的位置。在一些实施方案中,报头/目录逻辑556.2可支持加密的报头和/或目录数据。例如,报头/目录逻辑556.2可使用设置有遥测消息的卸载加密密钥和/或存储在密钥管理器554中的加密密钥对加密的报头或加密的目录进行解密。在一些实施方案中,遥测消息可包括多个报头和/或目录,并且报头/目录逻辑556.2可识别适合分配给遥测数据管理器550的访问权和/或访问控制加密密钥的报头和/或目录。在一些实施方案中,目录内的每个目录条目可包括由具有适当访问权的节点选择性地解密的单独加密,如上文相对于图3所描述的,并且报头/目录逻辑556.2可被配置为解析单独的目录条目,并确定用于选择性调用加密/解密引擎540的适当加密算法和密钥。
在一些实施方案中,消息处理器556可包括遥测数据逻辑556.2,该遥测数据逻辑被配置为确定含有遥测数据的一个或多个数据区段并且存储这些遥测数据以供管理器550使用。例如,遥测消息中的目录可定义含有遥测数据的不同部分的多个数据区段,并且遥测数据逻辑556.2可解析数据区段中的值,将它们与适当的参数或数据类型相关联,并将它们存储在遥测数据存储区中以用于通过遥测数据管理器550聚合使用。在一些实施方案中,可使用一个或多个加密算法和密钥对一个或多个数据区段进行加密,并且遥测数据逻辑556.2可被配置为选择性地调用加密/解密引擎540以对加密的遥测数据进行解密和返回解密的遥测数据。例如,可使用设有遥测消息的卸载加密密钥来加密整个遥测数据有效负载,和/或可使用访问控制加密密钥来加密一个或多个数据区段。在一些实施方案中,遥测数据逻辑556.2可包括遥测数据表或用于确定接收到的遥测数据的存储位置以供未来使用的其他数据结构。
遥测数据分析器558可包括或提供一个或多个数据分析工具或库的接口,用于分析由遥测数据管理器550接收和存储的聚合遥测数据。例如,遥测数据分析器558可包括一个或多个分析算法,该一个或多个分析算法针对来自一个或多个存储设备的聚合操作数据,用于监控性能、确定趋势和/或识别触发进一步动作或处理的事件。在一些实施方案中,遥测数据分析器558可包括用于在达到通知阈值时通知用户或其他系统部件的可配置的用户警报集。例如,可将存储设备的聚合错误率阈值和/或相关变化值与用于生成需要进一步监控、维护和/或更换设备的用户警报的阈值参数值进行比较。在一些实施方案中,遥测数据分析器558可被配置为以一个或多个存储池、阵列或层级配置跨存储设备聚合遥测数据中的操作参数。
用户界面560可被配置为提供图形用户界面,以显示用户设备上的遥测数据和相关分析和导航。例如,用户界面560可通过网络浏览器或在个人计算机、膝上型计算机或移动设备上运行的其他应用程序来显示用于遥测数据管理器550的图形用户界面,以提供对遥测数据管理器550的访问。在一些实施方案中,用户界面560可使用户能够导航并显示由遥测数据管理器550收集的聚合遥测数据。例如,用户界面560可使用户能够选择遥测数据集以显示为数据表、图表和/或其他可视化表示。用户界面560可被配置为显示聚合遥测数据中的导出数据和参数,例如由遥测数据分析器558确定的数据。在一些实施方案中,用户界面560还可使用户能够管理遥测数据管理器550的配置,例如选择监控哪些存储设备、收集哪些遥测数据、数据收集触发器、基于被监控的遥测数据的警报等。
如图6所示,可根据对遥测消息中的遥测数据进行多层加密的示例性方法,即根据图6中框610至框634所示的方法600,操作存储系统500。
在框610处,可确定遥测消息触发器。例如,存储设备控制器中的遥测消息处理程序可确定已满足用于收集遥测数据集并将其发送到一个或多个主机的一个或多个基于规则的触发器。
在框612处,可收集存储设备遥测数据。例如,遥测消息处理程序可确定存储设备中用于收集例如工作负载数据、错误率、日志数据等遥测数据的一个或多个存储位置,并为遥测消息组装遥测数据集。
在框614处,可确定卸载加密密钥。例如,遥测消息处理程序可生成用于此遥测消息的卸载加密密钥。
在框616处,可使用卸载加密密钥对遥测数据进行加密。例如,遥测消息处理程序可调用加密引擎使用对称密码,使用卸载加密密钥对遥测数据进行加密。
在框618处,可确定访问控制加密密钥。例如,遥测消息处理程序可包括一个或多个访问控制加密密钥,例如与由一个或多个授权实体控制的对应私用密钥相关联的公共密钥。
在框620处,可使用访问控制加密密钥对卸载加密密钥进行加密。例如,遥测消息处理程序可调用加密引擎使用非对称密码,使用访问控制加密密钥对卸载加密密钥进行加密。
在框622处,可格式化遥测消息。例如,遥测消息处理程序可根据与遥测命令兼容的消息格式来格式化加密的遥测数据和加密的卸载加密密钥以及一个或多个报头、子报头和/或目录。
在框624处,可发送遥测消息。例如,遥测消息处理程序可使用对应的存储接口协议和用于接收遥测命令的目标节点发送遥测命令。
在框626处,可接收遥测消息。例如,包括遥测数据管理器的一个或多个主机或客户端系统可从存储设备接收遥测命令。
在框628处,可确定访问控制加密密钥。例如,遥测数据管理器可包括或访问一个或多个访问控制加密密钥,例如与用于加密遥测消息的一个或多个部分的对应公共密钥相关联的私用密钥。
在框630处,可使用访问控制加密密钥对卸载加密密钥进行解密。例如,遥测数据管理器可调用加密引擎使用非对称密码,使用访问控制加密密钥对加密的卸载加密密钥进行解密,并返回解密的卸载加密密钥。
在框632处,可使用卸载加密密钥对遥测数据进行解密。例如,遥测数据管理器可调用加密引擎使用对称密码,使用解密的卸载加密密钥对加密的遥测数据进行解密,并返回解密的遥测数据。
在框634处,可存储遥测数据。例如,遥测数据管理器可存储解密的遥测数据以供主机或客户端将来使用。
如图7所示,可根据支持定期遥测命令的示例性方法,即根据图7中框710至框718所示的方法700,操作存储系统500。在一些实施方案中,方法700的一个或多个框可以与图6中的方法600结合使用。
在框710处,可由存储设备定期收集遥测数据集。例如,存储设备控制器中的遥测消息处理程序可评估定期遥测消息触发器,例如以基于固定时间的间隔或基于一个或多个重复触发条件报告遥测数据。
在框712处,可为每个数据集生成新的卸载加密密钥。例如,遥测消息处理程序可包括密钥生成器并且为每个遥测消息生成新的卸载加密密钥。
在框714处,可使用新的卸载加密密钥对每个遥测数据集进行加密。例如,当每个遥测数据集被处理成遥测消息时,加密引擎可使用来自框712的新的卸载加密密钥对遥测消息的一个或多个区段进行加密。
在框716处,可根据NVMe遥测命令格式化遥测消息。例如,遥测消息处理程序可格式化遥测消息,包括加密的遥测数据,以符合NVMe遥测命令的语法、参数和协议。
在框718处,可使用NVMe遥测命令来发送遥测消息。例如,遥测消息处理程序可使用NVMe遥测命令将遥测消息发送到一个或多个NVMe主机节点。
如图8所示,可根据支持遥测消息内的多个加密的数据区段的示例性方法,即根据图8中框810至框824所示的方法800,操作存储系统500。在一些实施方案中,方法700的一个或多个框可以与图6中的方法600结合使用。
在框810处,可收集遥测数据集。例如,存储设备的存储设备控制器中的遥测消息处理程序可收集用于遥测消息的遥测数据值、参数或日志的集。
在框812处,可确定对应于遥测数据集的部分的数据区段。例如,遥测消息处理程序可将来自遥测数据集的遥测数据分组成与相关参数、时间段、源部件或日志等相对应的多个遥测数据部分,并且将每个部分分配给遥测消息中的对应数据区段。
在框814处,可确定每个数据区段的加密逻辑和/或加密密钥。例如,遥测消息处理程序可包括用于定义数据区段并且使每个区段与诸如加密类型或算法以及加密密钥信息等一个或多个访问凭证集相关联的参数。
在框816处,可格式化遥测消息的目录。例如,遥测消息处理程序可包括用于安装指示数据区段中的每个数据区段的目录的逻辑。
在框818处,可根据对应的加密逻辑对数据区段进行加密。例如,遥测消息处理程序可针对一个或多个安全遥测数据区段选择性地调用加密引擎,指示要使用的密码和加密密钥。
在框820处,可对目录进行加密。例如,遥测消息处理程序可使用卸载加密密钥或一个或多个访问控制加密密钥来对目录进行加密。可完成遥测消息的格式化,并且可将遥测消息从存储设备发送到有权选择性地访问遥测消息中的一个或多个数据区段的一个或多个主机或客户端系统。
在框822处,可对目录进行解密。例如,接收遥测消息的主机系统可包括遥测数据管理器,该遥测数据管理器被配置为解析遥测消息中的各种字段、识别和/或解密任何所需的卸载加密密钥,并且解密目录以识别遥测消息中包括的授权数据区段。
在框824处,可选择性地对一个或多个数据区段进行解密。例如,遥测数据管理器可使用目录中的信息来确定其具有访问授权的一个或多个数据区段和对应的加密密钥,然后使用加密引擎和加密密钥对授权的数据区段进行解密。
如图9所示,可根据针对具有访问遥测数据权限的不同方使用公-私密钥对的示例性方法,即根据图9中框910至框924所示的方法900,操作存储系统500。在一些实施方案中,方法700的一个或多个框可以与图6中的方法600结合使用。
在框910处,可确定具有遥测数据访问权的一方。例如,属于授权方的主机系统中的遥测数据管理器可被配置为从一个或多个存储设备接收安全遥测消息。
在框912处,可确定公-私密钥对。例如,遥测数据管理器可接收或在可访问遥测数据管理器的加密引擎中生成用于非对称密码的公-私密钥对。
在框914处,可将公共加密密钥发送到一个或多个存储设备。例如,遥测数据管理器可将公-私密钥对中的公共加密密钥发送到存储设备,遥测数据管理器将从这些存储设备接收安全遥测数据。
在框916处,可将公共加密密钥存储到存储设备中。例如,接收公共加密密钥的存储设备可包括安全密钥管理器,用于安全存储用于加密遥测消息的公共密钥。
在框918处,可存储私用密钥。例如,遥测数据管理器可包括安全密钥管理器,用于安全存储用于解密遥测消息的私用密钥。
在框920处,可接收遥测消息。例如,遥测数据管理器可从被配置用于安全遥测消息的存储设备中接收遥测消息。
在框922处,可利用私用加密密钥对遥测消息内容进行解密。例如,遥测数据管理器可使用私用加密密钥和具有对应对称密码的加密引擎对安全遥测消息的一个或多个部分进行解密,例如卸载加密密钥和/或子报头、目录和/或旨在仅用于使用私用加密密钥进行访问的数据区段。
尽管在本技术的前述详细描述中已经呈现了至少一个示例性实施方案,但应当理解,可存在大量变化。还应当理解,一个或多个示例性实施方案是示例,并且不旨在以任何方式限制技术的范围、适用性或配置。相反,前面的详细描述将为本领域技术人员提供用于实现本技术的示例性实施方案的便利指导方针,应当理解,在不脱离如所附权利要求及其合法等同物所阐述的技术范围的情况下,可以对示例性实施方案中描述的元件的功能和/或布置进行各种修改。
如本领域普通技术人员将理解的,本技术的各个方面可以体现为系统、方法、或计算机程序产品。因此,本技术的一些方面可以采取完全为硬件的实施方案、完全为软件的实施方案(包括固件、驻留软件、微代码等)、或硬件和软件方面的组合的形式,这些方面通常都可以在本文中称为电路、模块、系统和/或网络。此外,本技术的各个方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,包括在其上体现的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或物理计算机可读存储介质。例如,物理计算机可读存储介质可以是但不限于电子、磁性、光学、晶体、聚合物、电磁、红外或半导体系统、装置或设备等,或前述的任何合适组合。物理计算机可读存储介质的非限制性示例可包括但不限于包括一个或多个电线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器、光纤、紧凑式光盘只读存储器(CD-ROM)、光学处理器、磁处理器等,或前述的任何合适的组合。在本文档的上下文中,计算机可读存储介质可以是可包含或存储用于供指令执行系统、装置、和/或设备使用或与其结合的程序或数据的任何有形介质。
计算机可读介质上体现的计算机代码可以使用任何适当的介质来传输,包括但不限于无线、有线、光纤电缆、射频(RF)等,或者前述的任何合适组合。用于执行本技术的各方面的操作的计算机代码可以用任何静态语言编写,诸如C编程语言或其他类似的编程语言。计算机代码可以完全在用户的计算设备上执行,部分在用户的计算设备上执行,作为独立的软件包,部分在用户的计算设备上并且部分在远程计算设备上执行,或者完全在远程计算设备或服务器上执行。在后一种情况下,远程计算设备可以通过任何类型的网络或通信系统连接到用户的计算设备,包括但不限于,可以对外部计算机(例如,通过使用互联网服务提供商的互联网)建立局域网(LAN)或广域网(WAN)、聚合网络或连接。
以上可以参考方法、装置、系统和计算机程序产品的流程图图示和/或框图来描述本技术的各方面。应当理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可以由计算机程序指令实现。可以将这些计算机程序指令提供给通用计算机、专用计算机、或其他可编程数据处理装置的处理设备(处理器)以生产机器,使得可经由处理设备或其他可编程数据处理装置执行的指令创建用于实现在流程图中和/或框图的一个或多个框中指定的操作/动作的装置。
一些计算机程序指令还可以存储在计算机可读介质中,该计算机可读介质可以指示计算机、其他可编程数据处理装置或一个或多个其他设备以特定方式操作,使得该指令存储在计算机可读介质中以产生包括实现在流程图中和/或框图的一个或多个框中指定的操作/动作的指令的制品。一些计算机程序指令也可以被加载到计算设备、其他可编程数据处理装置、或一个或多个其他设备上,以致使在计算设备、其他可编程装置、或一个或多个其他设备上执行一系列操作步骤以产生计算机实现的过程,使得由计算机或其他可编程装置执行的指令提供用于实现在流程图中和/或框图的一个或多个框中指定的一个或多个操作/一个或多个动作的一个或多个过程。
以上附图中的流程图和/或框图可以示出根据本技术的各方面的装置、系统、方法和/或计算机程序产品的可能具体实施的架构、功能和/或操作。在这方面,流程图或框图中的框可以表示代码的模块、片段或部分,其可以包括用于实现一个或多个指定逻辑功能的一个或多个可执行指令。还应当指出,在一些另选的方面中,框中示出的一些功能可以不按图中所示的顺序发生。例如,事实上,连续示出的两个框可基本上同时执行,或者这些框有时可以采用相反的顺序执行,这取决于所涉及的操作。还应当注意,框图和/或流程图图示的框或框图和/或流程图图示中的框的组合可以由可执行一个或多个指定操作或动作的基于专用硬件的系统,或专用硬件和计算机指令的组合来实现。
虽然已经详细说明和讨论了本技术的一个或多个方面,但本领域普通技术人员将理解,在不脱离如所附权利要求中阐述的本技术的范围的情况下,可以对各个方面进行修改和/或调整。

Claims (20)

1.一种系统,包括:
加密引擎,所述加密引擎被配置为:
接收存储设备遥测数据;
使用第一加密密钥对所述存储设备遥测数据进行加密;并且
使用第二加密密钥对所述第一加密密钥进行加密;和
消息处理程序,所述消息处理程序被配置为:
格式化遥测消息,其中所述遥测消息包括:
加密的存储设备遥测数据;和
基于所述第二加密密钥的加密的第一加密密钥;并且
将所述遥测消息发送到第一客户端系统,所述第一客户端系统被配置为:
基于所述第二加密密钥从所述加密的第一加密密钥中解密所述第一加密密钥;并且
从所述加密的存储设备遥测数据中解密所述存储设备遥测数据。
2.根据权利要求1所述的系统,其中:
所述加密引擎被进一步配置为使用第三加密密钥对所述第一加密密钥进行加密;
所述遥测消息还包括基于所述第三加密密钥的加密的第一加密密钥;并且
所述消息处理程序被进一步配置为将所述遥测消息发送到第二客户端系统,所述第二客户端系统被配置为:
基于所述第三加密密钥从所述加密的第一加密密钥中解密所述第一加密密钥;并且
从所述加密的存储设备遥测数据中解密所述存储设备遥测数据。
3.根据权利要求1所述的系统,其中:
所述第一加密密钥是对称密钥;
所述第二加密密钥是公-私密钥对的公共密钥;并且
所述第一客户端系统包括用于所述第二加密密钥的所述公-私密钥对的私用加密密钥。
4.根据权利要求1所述的系统,还包括数据存储设备,所述数据存储设备被配置为:
定期收集遥测数据集;并且
将多个数据集中的每个遥测数据集发送到所述加密引擎,其中:
所述加密引擎被进一步配置为对每个遥测数据集进行加密;并且
所述消息处理程序被进一步配置为将每个加密的遥测数据集发送到所述第一客户端系统。
5.根据权利要求4所述的系统,其中:
所述数据存储设备包括:
所述加密引擎;和
所述消息处理程序;
所述数据存储设备被进一步配置为为每个遥测数据集生成新的第一加密密钥;并且
所述加密引擎被进一步配置为使用不同的第一加密密钥对每个遥测数据集进行加密。
6.根据权利要求5所述的系统,其中:
所述数据存储设备被进一步配置为使用非易失性存储器快速(NVMe)存储协议;并且
所述消息处理程序被进一步配置为使用NVMe遥测命令来发送所述遥测消息。
7.根据权利要求1所述的系统,其中:
所述遥测消息还包括:
多个数据区段,所述多个数据区段包括所述存储设备遥测数据;和
目录,所述目录被配置为指示所述多个数据区段中的每个数据区段;并且
所述加密引擎被进一步配置为对所述目录进行加密。
8.根据权利要求7所述的系统,其中:
所述加密引擎被进一步配置为:
使用所述第一加密密钥对所述多个数据区段中的第一数据区段进行加密;并且
使用所述第二加密密钥对所述多个数据区段中的第二数据区段进行加密;并且
所述目录被进一步配置为指示用于对所述多个数据区段中的每个数据区段进行加密的加密密钥。
9.根据权利要求1所述的系统,还包括第一客户端系统,其中所述第一客户端系统包括:
遥测数据管理器,所述遥测数据管理器被配置为:
接收所述遥测消息;
确定所述加密的存储设备遥测数据;并且
基于所述第二加密密钥确定所述加密的第一加密密钥;和
解密引擎,所述解密引擎被配置为:
基于所述第二加密密钥从所述加密的第一加密密钥中解密所述第一加密密钥;并且
从所述加密的存储设备遥测数据中解密所述存储设备遥测数据。
10.根据权利要求9所述的系统,其中:
所述遥测数据管理器被进一步配置为:
存储来自用于所述第二加密密钥的公-私密钥对的私用加密密钥;并且
在用户界面上显示所述存储设备遥测数据;
所述存储设备遥测数据包括从以下各项中选择的至少一种数据类型:
自监控和报告技术(SMART)数据;
非易失性存储器快速(NVMe)数据日志;
动态存储设备配置数据;
事件数据日志;
调试数据;
固件管理数据;
错误数据;和
工作负载数据;并且
所述解密引擎被进一步配置为使用所述私用加密密钥从所述加密的第一加密密钥中解密所述第一加密密钥。
11.一种计算机实现的方法,包括:
收集存储设备遥测数据;
使用第一加密密钥对所述存储设备遥测数据进行加密;
使用第二加密密钥对所述第一加密密钥进行加密;
格式化遥测消息,其中所述遥测消息包括:
加密的存储设备遥测数据;和
基于所述第二加密密钥的加密的第一加密密钥;
将所述遥测消息发送到第一客户端系统;
由所述第一客户端系统接收所述遥测消息;
由所述第一客户端系统基于所述第二加密密钥从所述加密的第一加密密钥中解密所述第一加密密钥;以及
由所述第一客户端系统从所述加密的存储设备遥测数据中解密所述存储设备遥测数据。
12.根据权利要求11所述的计算机实现的方法,还包括:
使用第三加密密钥对所述第一加密密钥进行加密,其中所述遥测消息还包括基于所述第三加密密钥的加密的第一加密密钥;
将所述遥测消息发送到第二客户端系统;
由所述第二客户端系统基于所述第三加密密钥从所述加密的第一加密密钥中解密所述第一加密密钥;以及
由所述第二客户端系统从所述加密的存储设备遥测数据中解密所述存储设备遥测数据。
13.根据权利要求11所述的计算机实现的方法,还包括:
由所述第一客户端系统确定用于所述第二加密密钥的公-私密钥对的私用加密密钥,其中:
从所述加密的第一加密密钥中解密所述第一加密密钥使用所述私用加密密钥;
所述第一加密密钥是对称密钥;并且
所述第二加密密钥是所述公-私密钥对的公共密钥。
14.根据权利要求11所述的计算机实现的方法,还包括:
定期收集遥测数据集;
对每个遥测数据集进行加密;
将每个加密的遥测数据集发送到所述第一客户端系统;以及
由所述第一客户端系统对每个加密的遥测数据集进行解密。
15.根据权利要求14所述的计算机实现的方法,还包括:
为每个遥测数据集生成新的第一加密密钥;以及
使用不同的第一加密密钥对每个遥测数据集进行加密。
16.根据权利要求11所述的计算机实现的方法,其中:
收集所述存储设备遥测数据包括从被配置为使用非易失性存储器快速(NVMe)存储协议的存储设备中收集所述存储设备遥测数据;并且
发送所述遥测消息包括使用NVMe遥测命令。
17.根据权利要求11所述的计算机实现的方法,还包括:
对所述遥测消息中的目录进行加密,其中:
所述遥测消息包括多个数据区段,所述多个数据区段包括所述存储设备遥测数据;并且
所述目录指示所述多个数据区段中的每个数据区段。
18.根据权利要求17所述的计算机实现的方法,还包括:
使用所述第一加密密钥对所述多个数据区段中的第一数据区段进行加密;以及
使用所述第二加密密钥对所述多个数据区段中的第二数据区段进行加密,其中所述目录还指示用于对所述多个数据区段中的每个数据区段进行加密的加密密钥。
19.根据权利要求18所述的计算机实现的方法,还包括:
将来自用于所述第二加密密钥的公-私密钥对的私用加密密钥存储在所述第一客户端系统中,其中对所述加密的第一加密密钥进行解密包括使用所述私用加密密钥;以及
将来自用于所述第二加密密钥的所述公-私密钥对的公共加密密钥存储在数据存储设备中,其中对所述第一加密密钥进行加密包括使用所述公共加密密钥。
20.一种存储系统,包括:
数据存储设备,所述数据存储设备包括:
存储设备控制器,所述存储设备控制器包括控制器处理器和控制器存储器;和
存储介质;
客户端系统,所述客户端系统包括:
客户端处理器;和
客户端存储器;
用于从所述数据存储设备收集存储设备遥测数据的装置;
用于使用第一加密密钥对所述存储设备遥测数据进行加密的装置;
用于使用第二加密密钥对所述第一加密密钥进行加密的装置;
用于格式化遥测消息的装置,其中所述遥测消息包括:
加密的存储设备遥测数据;和
基于所述第二加密密钥的加密的第一加密密钥;
用于将所述遥测消息发送到所述客户端系统的装置;
用于由所述客户端系统接收所述遥测消息的装置;
用于由所述客户端系统基于所述第二加密密钥从所述加密的第一加密密钥中解密所述第一加密密钥的装置;
用于由所述客户端系统从所述加密的存储设备遥测数据中解密所述存储设备遥测数据的装置;和
用于由所述客户端系统在用户界面上显示所述存储设备遥测数据的装置。
CN202180006573.3A 2020-12-17 2021-05-12 具有加密的数据存储设备遥测数据的存储系统 Pending CN114946154A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063126715P 2020-12-17 2020-12-17
US63/126,715 2020-12-17
US17/182,698 US11616767B2 (en) 2020-12-17 2021-02-23 Storage system with encrypted data storage device telemetry data
US17/182,698 2021-02-23
PCT/US2021/031981 WO2022132221A1 (en) 2020-12-17 2021-05-12 Storage system with encrypted data storage device telemetry data

Publications (1)

Publication Number Publication Date
CN114946154A true CN114946154A (zh) 2022-08-26

Family

ID=82021737

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180006573.3A Pending CN114946154A (zh) 2020-12-17 2021-05-12 具有加密的数据存储设备遥测数据的存储系统

Country Status (4)

Country Link
US (1) US11616767B2 (zh)
CN (1) CN114946154A (zh)
DE (1) DE112021000215T5 (zh)
WO (1) WO2022132221A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022135641A (ja) * 2021-03-05 2022-09-15 キオクシア株式会社 I/oコマンド制御装置およびストレージシステム
JP7413300B2 (ja) * 2021-03-15 2024-01-15 株式会社東芝 記憶装置
US20220326887A1 (en) * 2021-04-06 2022-10-13 Micron Technology, Inc. Log management maintenance operation and command
US11689509B2 (en) * 2021-09-14 2023-06-27 The Boeing Company Satellite operations with secure enclave for secure hosted payload operations
US11954239B2 (en) * 2021-12-27 2024-04-09 Dell Products L.P. Data storage system using selective encryption and port identification in communications with drive subsystem
EP4310658A1 (en) * 2022-07-21 2024-01-24 Samsung Electronics Co., Ltd. Electronic device supporting out-of-band communication, and method of operating the same

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001239887A1 (en) * 2000-02-24 2001-09-03 Valicert Corporation Mechanism for efficient private bulk messaging
US7571321B2 (en) * 2003-03-14 2009-08-04 Voltage Security, Inc. Identity-based-encryption messaging system
US9100186B2 (en) 2011-03-07 2015-08-04 Security First Corp. Secure file sharing method and system
US20180062988A1 (en) * 2016-08-31 2018-03-01 Faraday&Future Inc. Ethernet communication of can signals
US9996477B2 (en) 2016-09-14 2018-06-12 Western Digital Technologies, Inc. Asynchronous drive telemetry data notification
US20200202017A1 (en) * 2018-12-20 2020-06-25 Micron Technology, Inc. Secure communication for log reporting in memory sub-systems
US11467950B2 (en) * 2019-04-19 2022-10-11 Salesforce, Inc. Codeless logging in an integration platform
US11544174B2 (en) * 2020-03-27 2023-01-03 Intel Corporation Method and apparatus for protecting trace data of a remote debug session

Also Published As

Publication number Publication date
WO2022132221A1 (en) 2022-06-23
US20220200968A1 (en) 2022-06-23
US11616767B2 (en) 2023-03-28
DE112021000215T5 (de) 2022-09-08

Similar Documents

Publication Publication Date Title
US11616767B2 (en) Storage system with encrypted data storage device telemetry data
JP4931993B2 (ja) ストレージ・システムにおけるデータの暗号化のための方法、システム、およびコンピュータ
US10997297B1 (en) Validating firmware for data storage devices
US8645715B2 (en) Configuring host settings to specify an encryption setting and a key label referencing a key encryption key to use to encrypt an encryption key provided to a storage drive to use to encrypt data from the host
US10402172B1 (en) Multi-source entropy and randomness aggregation and distribution network
US11210430B2 (en) System and method to negotiate encryption responsibilities between an encryption capable controller and a self encrypting drive
KR20210155340A (ko) 손상된 저장 디바이스 펌웨어의 검출
CN102945355A (zh) 基于扇区映射的快速数据加密策略遵从
US11675499B2 (en) Synchronous discovery logs in a fabric storage system
US20120096281A1 (en) Selective storage encryption
CN109726575B (zh) 一种数据加密方法及装置
US11210183B2 (en) Memory health tracking for differentiated data recovery configurations
US9152505B1 (en) Verified hardware-based erasure of data on distributed systems
US7934247B2 (en) Encryption policy based on data context recognition
WO2022108620A1 (en) Peer storage devices sharing host control data
US8738935B1 (en) Verified erasure of data implemented on distributed systems
US20230401321A1 (en) Peer Storage Device Messaging for Vulnerability Management
US20240152630A1 (en) Security system and method for real-time encryption or decryption of data using key management server
US11509719B2 (en) Blockchain technology in data storage system
US20210342674A1 (en) Methods for securing files within a storage device using artificial intelligence and devices thereof
WO2016209199A1 (en) Control of application log content
TWM591647U (zh) 能夠安全地存取及刪除資料的資料管理系統
US20240020050A1 (en) Secure command memory buffer transfers in a low trust environment
CN103001774A (zh) 一种管理集装文件的方法和装置
US20220377054A1 (en) Data storage device data recovery using remote network storage

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