DE112021000215T5 - Speichersystem mit verschlüsselten Telemetriedaten einer Datenspeicherungsvorrichtung - Google Patents

Speichersystem mit verschlüsselten Telemetriedaten einer Datenspeicherungsvorrichtung Download PDF

Info

Publication number
DE112021000215T5
DE112021000215T5 DE112021000215.5T DE112021000215T DE112021000215T5 DE 112021000215 T5 DE112021000215 T5 DE 112021000215T5 DE 112021000215 T DE112021000215 T DE 112021000215T DE 112021000215 T5 DE112021000215 T5 DE 112021000215T5
Authority
DE
Germany
Prior art keywords
telemetry
data
encryption key
storage device
encrypted
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
DE112021000215.5T
Other languages
English (en)
Inventor
Daniel Helmick
Timothy Hallett
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.)
SANDISK TECHNOLOGIES, INC. (N.D.GES. D. STAATE, US
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 DE112021000215T5 publication Critical patent/DE112021000215T5/de
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

Es werden Systeme und Verfahren für verschlüsselte Telemetriedaten von Speicherungsvorrichtungen beschrieben. Telemetriedaten von Speicherungsvorrichtungen können für eine Telemetrienachricht, wie einen NVMe (Non-Volatile Memory Express)-Telemetriebefehl, gesammelt und mit einem ersten Verschlüsselungsschlüssel verschlüsselt werden. Der erste Verschlüsselungsschlüssel kann mit einem oder mehreren zweiten Verschlüsselungsschlüsseln verschlüsselt werden und der verschlüsselte erste Verschlüsselungsschlüssel kann der Telemetrienachricht hinzugefügt werden. Ein Client-System kann die Telemetrienachricht empfangen, den verschlüsselten ersten Verschlüsselungsschlüssel entschlüsseln und den ersten Verschlüsselungsschlüssel zum Entschlüsseln der verschlüsselten Telemetriedaten der Speicherungsvorrichtung verwenden.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung bezieht sich allgemein auf Telemetriedaten von Datenspeicherungsvorrichtungen und insbesondere auf die Verschlüsselung von Telemetriedaten von Datenspeicherungsvorrichtungen zur Kommunikation mit einem oder mehreren Client-Systemen.
  • HINTERGRUND
  • Speichersysteme verwenden mehrere diskrete Datenspeicherungsvorrichtungen wie Festkörperlaufwerke, Festplattenlaufwerke, Hybridlaufwerke, Bandlaufwerke usw., um große Datenmengen im Auftrag eines Hosts zu speichern. Diese Speichersysteme können von einzelnen Datenspeicherungsvorrichtungen, die ein Hostsystem über eine periphere Speicherschnittstelle direkt unterstützen, bis hin zu Speichersystemen mit mehreren Vorrichtungen (die oft mehrere Hostsysteme unterstützen) reichen, die mehrere Datenspeicherungsvorrichtungen einschließen, die in einem Array von Laufwerken angeordnet sind, die über eine gemeinsame Kommunikationsstruktur miteinander verbunden sind und in vielen Fällen von einer Speichersteuerung, einer RAID-Steuerung (Redundant Array of Independent Disks) oder einer allgemeinen Steuerung gesteuert werden, um die Speicher- und Systemaktivitäten über das Array von Laufwerken zu koordinieren.
  • In einigen Systemen kann jede Datenspeicherungsvorrichtung verschiedene Arten von Betriebsdaten sammeln, wie Arbeitslastdaten, Fehlerdaten, Debug-Daten, Ereignisprotokolle, Firmware-Verwaltungsdaten usw. Diese Daten können zwar eine Vielzahl interner Speicherverwaltungsfunktionen für die einzelnen Speicherungsvorrichtungen unterstützen, aber einige oder alle dieser Daten können auch für Host- oder Client-Systeme nützlich sein, insbesondere wenn diese Systeme eine große Anzahl von Speicherungsvorrichtungen und Dateneingabe-/Ausgabevorgängen verwenden oder verwalten, wie beispielsweise bei groß angelegten verteilten Speichersystemen. Einige Speicherungsvorrichtungen können ein oder mehrere Protokolle für den Austausch von Betriebsdaten mit einem oder mehreren anderen Systemen, wie beispielsweise Host- oder Client-Systemen, durch Telemetriedaten, d. h. Daten zur Fernüberwachung der Speicherungsvorrichtungen, unterstützen. Zum Beispiel können Speicherungsvorrichtungen, die nichtflüchtige Express-Speicherprotokolle (NVMe) unterstützen, einen Telemetriebefehl einschließen, um NVMe-Protokolle und/oder Selbstüberwachungs- und Berichterstattungsprotokolle (SMART) für Host- oder Client-Systeme über eine Speicher- und/oder Fabric-Schnittstelle bereitzustellen.
  • Bei einigen Speichersystemen können mehrere Benutzer, Eigentümer und/oder Hersteller an der Einrichtung, Nutzung, Verwaltung und Wartung des Speichersystems beteiligt sein. Ein Hersteller von Speicherungsvorrichtungen kann zum Beispiel Speicherungsvorrichtungen verkaufen, die in einen Server, in Speicher-Arrays und in andere Rechenvorrichtungen integriert sind. Die Server und Speicherarrays können wiederum in ein verteiltes Speichersystem integriert werden, das Cloud-Anwendungen für weitere Benutzer unterstützt. Jede Partei in dieser Kette, vom Hersteller von Speicherungsvorrichtungen über die Hersteller von Speichersystemen (OEMs) bis hin zu den Kunden von Speichersystemen und den Endbenutzern, kann ein Interesse an Telemetriedaten und deren Überwachung, Aggregation und Analyse haben. Es kann jedoch sein, dass nicht alle Telemetriedaten für alle Parteien geeignet sind und dass eine oder mehrere Parteien proprietäre Telemetriedaten und/oder Telemetriedaten implementieren, die zugrundeliegende proprietäre Konfigurations- oder Nutzungsdaten der Speicherungsvorrichtungen oder Speichersysteme, in denen sie arbeiten, offenbaren können. Auch wenn diese Systeme intern durch Sicherheit auf Systemebene und Datenverschlüsselung gesichert sind und/oder die Sicherheit der Hostdaten im Ruhezustand und/oder bei der Übertragung durch verschiedene Verschlüsselungsprotokolle unterstützen, können Telemetriedaten für verschiedene Parteien mit legitimem Zugriff auf das System zugänglich sein.
  • Verschlüsselte Telemetriedaten, die verhindern, dass Unbefugte auf Telemetriedaten zugreifen können, können von Vorteil sein. Möglicherweise ist eine effektive Methode zur Koordinierung und Durchsetzung der Zugriffsrechte verschiedener Parteien auf sichere Telemetriedaten erforderlich.
  • KURZDARSTELLUNG
  • Es werden verschiedene Gesichtspunkte zur Verschlüsselung von Telemetriedaten von Datenspeicherungsvorrichtungen beschrieben, insbesondere die Formatierung von Telemetrienachrichten mit mehrschichtiger Verschlüsselung.
  • Ein allgemeiner Gesichtspunkt schließt ein System ein, das eine Verschlüsselungs-Engine und einen Nachrichtenbearbeiter einschließt. Die Verschlüsselungs-Engine ist eingerichtet zum: Empfangen von Telemetriedaten der Speicherungsvorrichtung; Verschlüsseln, unter Verwendung eines ersten Verschlüsselungsschlüssels, der Telemetriedaten der Speicherungsvorrichtung; Verschlüsseln, unter Verwendung eines zweiten Verschlüsselungsschlüssels, des ersten Verschlüsselungsschlüssels. Der Nachrichtenbearbeiter ist eingerichtet, um eine Telemetrienachricht zu formatieren, wobei die Telemetrienachricht die verschlüsselten Telemetriedaten der Datenspeicherungsvorrichtung und den verschlüsselten ersten Verschlüsselungsschlüssel auf der Grundlage des zweiten Verschlüsselungsschlüssels einschließt, und die Telemetrienachricht an ein erstes Client-System zu senden, das eingerichtet ist, um: den ersten Verschlüsselungsschlüssel aus dem verschlüsselten ersten Verschlüsselungsschlüssel auf der Grundlage des zweiten Verschlüsselungsschlüssels zu entschlüsseln; und die Telemetriedaten der Speicherungsvorrichtung aus den verschlüsselten Telemetriedaten der Speicherungsvorrichtung.
  • Implementierungen können eines oder mehrere der folgenden Merkmale einschließen. Die Verschlüsselungs-Engine kann weiterhin eingerichtet sein, um den ersten Verschlüsselungsschlüssel mit einem dritten Verschlüsselungsschlüssel zu verschlüsseln. Die Telemetrienachricht kann weiterhin den verschlüsselten ersten Verschlüsselungsschlüssel einschließen, der auf dem dritten Verschlüsselungsschlüssel basiert. Der Nachrichtenbearbeiter kann weiterhin eingerichtet sein, um die Telemetrienachricht an ein zweites Client-System zu senden, das eingerichtet ist, um den ersten Verschlüsselungsschlüssel aus dem verschlüsselten ersten Verschlüsselungsschlüssel auf der Grundlage des dritten Verschlüsselungsschlüssels zu entschlüsseln; und die Telemetriedaten der Speicherungsvorrichtung aus den verschlüsselten Telemetriedaten der Speicherungsvorrichtung. Der erste Verschlüsselungsschlüssel kann ein symmetrischer Schlüssel sein, der zweite Verschlüsselungsschlüssel kann ein öffentlicher Schlüssel eines öffentlich-privaten Schlüsselpaares sein, und das erste Client-System kann einen privaten Verschlüsselungsschlüssel für das öffentlich-private Schlüsselpaar des zweiten Verschlüsselungsschlüssels einschließen. Das System kann weiterhin eine Datenspeicherungsvorrichtung einschließen, die eingerichtet ist, um periodisch Telemetriedatensätze zu sammeln und jeden Telemetriedatensatz aus einer Vielzahl von Datensätzen an die Verschlüsselungs-Engine zu senden, wobei die Verschlüsselungs-Engine weiterhin eingerichtet sein kann, um jeden Telemetriedatensatz zu verschlüsseln, und der Nachrichtenbearbeiter weiterhin eingerichtet sein kann, um jeden verschlüsselten Telemetriedatensatz an das erste Client-System zu senden. Die Datenspeicherungsvorrichtung kann die Verschlüsselungs-Engine und den Nachrichtenbearbeiter einschließen; die Datenspeicherungsvorrichtung kann weiterhin eingerichtet sein, um einen neuen ersten Verschlüsselungsschlüssel für jeden Telemetriedatensatz zu generieren; und die Verschlüsselungs-Engine kann weiterhin eingerichtet sein, um jeden Telemetriedatensatz mit einem anderen ersten Verschlüsselungsschlüssel zu verschlüsseln. Die Datenspeicherungsvorrichtung kann weiterhin eingerichtet sein, um ein nichtflüchtiges Express-Speicherprotokoll (NVMe) zu verwenden; und der Nachrichtenbearbeiter kann weiterhin eingerichtet sein, einen NVMe-Telemetriebefehl zu verwenden, um die Telemetrienachricht zu senden. Die Telemetrienachricht kann weiterhin einschließen: eine Vielzahl von Datenabschnitten mit den Telemetriedaten der Speicherungsvorrichtung; und ein Inhaltsverzeichnis, das eingerichtet ist, um jeden Datenabschnitt aus der Vielzahl von Datenabschnitten anzuzeigen. Die Verschlüsselungs-Engine kann weiterhin eingerichtet sein, um das Inhaltsverzeichnis zu verschlüsseln. Die Verschlüsselungs-Engine kann weiterhin eingerichtet sein zum: Verschlüsseln, unter Verwendung des ersten Verschlüsselungsschlüssels, eines ersten Datenabschnitts aus der Vielzahl der Datenabschnitte; und Verschlüsseln, unter Verwendung des zweiten Verschlüsselungsschlüssels, eines zweiten Datenabschnitts aus der Vielzahl von Datenabschnitten. Das Inhaltsverzeichnis kann weiterhin eingerichtet sein, um Verschlüsselungsschlüssel anzugeben, die zur Verschlüsselung jedes Datenabschnitts der Vielzahl von Datenabschnitten verwendet werden. Das System kann weiterhin das erste Client-System einschließen, einschließend: einen Telemetriedatenmanager, der eingerichtet ist, um die Telemetrienachricht zu empfangen, die verschlüsselten Telemetriedaten der Speicherungsvorrichtung zu bestimmen und den verschlüsselten ersten Verschlüsselungsschlüssel basierend auf dem zweiten Verschlüsselungsschlüssel zu bestimmen; und eine Entschlüsselungs-Engine, die eingerichtet ist, um den ersten Verschlüsselungsschlüssel aus dem verschlüsselten ersten Verschlüsselungsschlüssel basierend auf dem zweiten Verschlüsselungsschlüssel und den Telemetriedaten der Speicherungsvorrichtung aus den verschlüsselten Telemetriedaten der Speicherungsvorrichtung zu entschlüsseln. Der Telemetriedatenmanager kann weiterhin eingerichtet sein, um: einen privaten Verschlüsselungsschlüssel aus einem öffentlich-privaten Schlüsselpaar für den zweiten Verschlüsselungsschlüssel zu speichern; und die Telemetriedaten der Speicherungsvorrichtung auf einer Schnittstelle anzuzeigen. Die Telemetriedaten der Speicherungsvorrichtung können mindestens einen Datentyp einschließen, der ausgewählt ist aus: selbstüberwachende Daten und berichtende Technologie (Smart)-Daten; Nichtflüchtigen Express-Speicher (NVMe)-Datenprotokollen; dynamischen Konfigurationsdaten der Speicherungsvorrichtung; Ereignisdatenprotokollen; Debug-Daten; Firmware-Verwaltungsdaten; Fehlerdaten; und Arbeitslastdaten. Die Entschlüsselungs-Engine kann weiterhin eingerichtet sein, um den privaten Verschlüsselungsschlüssel zur Entschlüsselung des ersten Verschlüsselungsschlüssels aus dem verschlüsselten ersten Verschlüsselungsschlüssel zu verwenden.
  • Ein weiterer allgemeiner Gesichtspunkt schließt ein computerimplementiertes Verfahren ein, einschließend: Sammeln von Telemetriedaten der Speicherungsvorrichtung; Verschlüsseln, unter Verwendung eines ersten Verschlüsselungsschlüssels, der Telemetriedaten der Speicherungsvorrichtung; Verschlüsseln, unter Verwendung eines zweiten Verschlüsselungsschlüssels, des ersten Verschlüsselungsschlüssels; Formatieren einer Telemetrienachricht, wobei die Telemetrienachricht die verschlüsselten Telemetriedaten der Speicherungsvorrichtung und den verschlüsselten ersten Verschlüsselungsschlüssel basierend auf dem zweiten Verschlüsselungsschlüssel einschließt; Senden der Telemetrienachricht an ein erstes Client-System; Empfangen der Telemetrienachricht durch das erste Client-System; Entschlüsseln des ersten Verschlüsselungsschlüssels aus dem verschlüsselten ersten Verschlüsselungsschlüssel auf der Grundlage des zweiten Verschlüsselungsschlüssels durch das erste Client-System; und Entschlüsseln der Telemetriedaten der Speicherungsvorrichtung aus den verschlüsselten Telemetriedaten der Speicherungsvorrichtung durch das erste Client-System.
  • Implementierungen können eines oder mehrere der folgenden Merkmale einschließen. Das computerimplementierte Verfahren kann einschließen: Verschlüsseln, unter Verwendung eines dritten Verschlüsselungsschlüssels, des ersten Verschlüsselungsschlüssels, wobei die Telemetrienachricht weiterhin den verschlüsselten ersten Verschlüsselungsschlüssel einschließt, der auf dem dritten Verschlüsselungsschlüssel basiert; Senden der Telemetrienachricht an ein zweites Client-System; Entschlüsseln, durch das zweite Client-System, des ersten Verschlüsselungsschlüssels aus dem verschlüsselten ersten Verschlüsselungsschlüssel auf der Grundlage des dritten Verschlüsselungsschlüssels; und Entschlüsseln, durch das zweite Client-System, der Telemetriedaten der Speicherungsvorrichtung aus den verschlüsselten Telemetriedaten der Speicherungsvorrichtung. Das computerimplementierte Verfahren kann das Bestimmen eines privaten Verschlüsselungsschlüssels für ein öffentlich-privates Schlüsselpaar des zweiten Verschlüsselungsschlüssels durch das erste Client-System einschließen, wobei: das Entschlüsseln des ersten Verschlüsselungsschlüssels aus dem verschlüsselten ersten Verschlüsselungsschlüssel den privaten Verschlüsselungsschlüssel verwendet; der erste Verschlüsselungsschlüssel ein symmetrischer Schlüssel ist; und der zweite Verschlüsselungsschlüssel ein öffentlicher Schlüssel des öffentlich-privaten Schlüsselpaares ist. Das computerimplementierte Verfahren kann Folgendes einschließen: regelmäßiges Sammeln von Telemetriedatensätzen; Verschlüsseln jedes Telemetriedatensatzes; Senden jedes verschlüsselten Telemetriedatensatzes an das erste Client-System; und Entschlüsseln, durch das erste Client-System, jedes verschlüsselten Telemetriedatensatzes. Das computerimplementierte Verfahren kann einschließen: generieren eines neuen ersten Verschlüsselungsschlüssels für jeden Telemetriedatensatz; und Verschlüsseln jedes Telemetriedatensatzes unter Verwendung eines unterschiedlichen ersten Verschlüsselungsschlüssels. Das Sammeln der Telemetriedaten der Speicherungsvorrichtung kann das Sammeln der Telemetriedaten der Speicherungsvorrichtung von einer Speicherungsvorrichtung einschließen, die für die Verwendung eines nichtflüchtigen Express-Speicherprotokolls (NVMe) eingerichtet ist, und das Senden der Telemetrienachricht kann die Verwendung eines NVMe-Telemetriebefehls einschließen. Das computerimplementierte Verfahren kann das Verschlüsseln des Inhaltsverzeichnisses in der Telemetrienachricht einschließen, wobei die Telemetrienachricht eine Vielzahl von Datenabschnitten einschließlich der Telemetriedaten der Speicherungsvorrichtung enthält und das Inhaltsverzeichnis jeden Datenabschnitt der Vielzahl von Datenabschnitten angibt. Das computerimplementierte Verfahren kann einschließen: Verschlüsseln, unter Verwendung eines ersten Verschlüsselungsschlüssels, eines ersten Datenabschnitts der Vielzahl von Datenabschnitten; und Verschlüsseln, unter Verwendung des zweiten Verschlüsselungsschlüssels, eines zweiten Datenabschnitts der Vielzahl von Datenabschnitten, wobei das Inhaltsverzeichnis weiterhin Verschlüsselungsschlüssel angibt, die zum Verschlüsseln jedes Datenabschnitts der Vielzahl von Datenabschnitten verwendet werden. Das computerimplementierte Verfahren kann einschließen: Speichern, in dem ersten Client-System, eines privaten Verschlüsselungsschlüssels aus einem öffentlich-privaten Schlüsselpaar für den zweiten Verschlüsselungsschlüssel, wobei das Entschlüsseln des verschlüsselten ersten Verschlüsselungsschlüssels die Verwendung des privaten Verschlüsselungsschlüssels einschließt; und Speichern, in einer Datenspeicherungsvorrichtung, eines öffentlichen Verschlüsselungsschlüssels aus dem öffentlich-privaten Schlüsselpaar für den zweiten Verschlüsselungsschlüssel, wobei das Verschlüsseln des ersten Verschlüsselungsschlüssels die Verwendung des öffentlichen Verschlüsselungsschlüssels einschließt.
  • Ein noch weiterer allgemeiner Gesichtspunkt schließt ein Speichersystem ein, einschließend: eine Datenspeicherungsvorrichtung, die eine Speicherungsvorrichtungssteuerung mit einem Steuerungsprozessor und einem Steuerungsspeicher einschließt, und ein Speichermedium; ein Client-System, das einen Client-Prozessor und einen Client-Speicher einschließt; Mittel zum Sammeln von Telemetriedaten der Speicherungsvorrichtung von der Datenspeicherungsvorrichtung; Mittel zum Verschlüsseln, unter Verwendung eines ersten Verschlüsselungsschlüssels, der Telemetriedaten der Speicherungsvorrichtung; Mittel zum Verschlüsseln, unter Verwendung eines zweiten Verschlüsselungsschlüssels, des ersten Verschlüsselungsschlüssels; Mittel zum Formatieren einer Telemetrienachricht, wobei die Telemetrienachricht die verschlüsselten Telemetriedaten der Speicherungsvorrichtung und den verschlüsselten ersten Verschlüsselungsschlüssel basierend auf dem zweiten Verschlüsselungsschlüssel einschließt; Mittel zum Senden der Telemetrienachricht an das Client-System; Mittel zum Empfangen, durch das Client-System, der Telemetrienachricht; Mittel zum Entschlüsseln, durch das Client-System, des ersten Verschlüsselungsschlüssels aus dem verschlüsselten ersten Verschlüsselungsschlüssel auf der Grundlage des zweiten Verschlüsselungsschlüssels; Mittel zum Entschlüsseln, durch das Client-System, der Telemetriedaten der Speicherungsvorrichtung aus den verschlüsselten Telemetriedaten der Speicherungsvorrichtung; und Mittel zum Anzeigen, durch das Client-System, der Telemetriedaten der Speicherungsvorrichtung auf einer Benutzerschnittstelle.
  • Die verschiedenen Ausführungsformen wenden vorteilhaft die Lehren von Datenspeicherungsvorrichtungen und/oder Speichersystemen an, um die Funktionalität dieser Computersysteme zu verbessern. Die verschiedenen Ausführungsformen schließen Vorgänge ein, welche die bisher in Speichersystemen aufgetretenen Probleme überwinden oder zumindest verringern und dementsprechend sicherer und/oder zuverlässiger sind als andere Rechensysteme. Das heißt, die verschiedenen hierin offenbarten Ausführungsformen schließen Hardware und/oder Software mit Funktionsweisen ein, um die Sicherheit von Telemetriedaten zu verbessern, wie durch Verwendung einer mehrschichtigen Verschlüsselung zum Formatieren von Telemetrienachrichten für den Zugriff durch mehrere Parteien. Entsprechend stellen die hierin offenbarten Ausführungsformen verschiedene Verbesserungen an Speichernetzwerken und/oder Speichersystemen bereit.
  • Es sei klargestellt, dass die in der vorliegenden Offenbarung verwendete Ausdrucksweise hauptsächlich für Lesbarkeits- und Anweisungszwecke gewählt wurde und den Schutzumfang des hierin offenbarten Gegenstands nicht beschränken soll.
  • Figurenliste
    • 1 veranschaulicht schematisch ein Speichersystem mit verschlüsselten Telemetriedaten.
    • 2 veranschaulicht schematisch eine Architektur für mehrschichtige Verschlüsselung von Telemetriedaten, die von dem Speichersystem aus 1 verwendet werden kann.
    • 3 veranschaulicht schematisch eine sichere Telemetriedaten-Nachricht, die von dem Speichersystem aus 1 verwendet werden kann.
    • 4 veranschaulicht schematisch einen Host- oder Client-Knoten des Speichersystems von 1.
    • 5 veranschaulicht detaillierter schematisch einige Elemente des Speichersystems aus 1-4.
    • 6 ist ein Flussdiagramm eines beispielhaften Verfahrens der mehrschichtigen Verschlüsselung von Telemetriedaten.
    • 7 ist ein Flussdiagramm eines beispielhaften Verfahrens zum Unterstützen periodischer Telemetriebefehle.
    • 8 ist ein Flussdiagramm eines beispielhaften Verfahrens zum Unterstützen mehrerer verschlüsselter Datenabschnitte innerhalb einer Telemetrienachricht.
    • 9 ist ein Flussdiagramm eines beispielhaften Verfahrens zum Verwenden von öffentlich-privaten Schlüsselpaaren für verschiedene Parteien mit Zugriff auf die Telemetriedaten.
  • DETAILLIERTE BESCHREIBUNG
  • 1 zeigt eine Ausführungsform eines beispielhaften Datenspeichersystems 100 mit mehreren Datenspeicherungsvorrichtungen 120, die über eine Speicherschnittstelle 110 miteinander verbunden sind. Obgleich einige beispielhafte Merkmale veranschaulicht sind, wurden verschiedene andere Merkmale zum Zwecke der Kürze, und um nicht unnötig von den sachdienlichen Gesichtspunkten der hierin beschriebenen Ausführungsbeispiele abzulenken, nicht veranschaulicht. Zu diesem Zweck, als nicht einschränkendes Beispiel, schließt das Datenspeichersystem 100 eine oder mehrere Datenspeicherungsvorrichtungen 120 ein (manchmal auch Informationsspeicherungsvorrichtungen, Speicherungsvorrichtungen, Plattenlaufwerke oder Laufwerke genannt). In einigen Ausführungsformen können die Speicherungsvorrichtungen 120 in einem Server- oder Speicherarray-Blade oder einer ähnlichen Speichereinheit für den Einsatz in Speicherracks oder -chassis von Rechenzentren konfiguriert werden. Speicherungsvorrichtungen 120 können eine Schnittstelle zu einem oder mehreren Hosts 102 bilden und Fähigkeiten zur Datenspeicherung und -abfrage für oder durch diese Hostsysteme bereitstellen. In einigen Ausführungsformen kann der Host 102 einen oder mehrere Clients 118 unterstützen, die für den Zugriff auf Daten in oder über Speicherungsvorrichtungen 120 konfiguriert sind. Der Client 118 kann zum Beispiel eine oder mehrere Anwendungen einschließen, die über das Netzwerk 108 und den Host 102 und/oder über eine Netzwerkstruktur und eine Speicherschnittstelle 110 auf Daten von Speicherungsvorrichtungen 120 zugreifen. In einigen Ausführungsformen können die Speicherungsvorrichtungen 120 in einer Speicherhierarchie eingerichtet sein, die Speicherknoten, Speichersteuerungen und/oder andere Zwischenkomponenten zwischen den Speicherungsvorrichtungen 120 und dem Host 102 einschließt. Zum Beispiel kann jede Speichersteuerung für einen entsprechenden Satz von Speicherknoten und ihre jeweiligen Speicherungsvorrichtungen verantwortlich sein, die über ein entsprechendes Backplane-Netzwerk und/oder eine Netzwerkstruktur verbunden sind, obwohl nur die Speicherungsvorrichtungen 120 und der Host 102 dargestellt sind.
  • In der dargestellten Ausführungsform sind mehrere Speicherungsvorrichtungen 120 an eine gemeinsame Schnittstelle 110 für die Host-Kommunikation angeschlossen. Die Speicherungsvorrichtungen 120 können zum Beispiel eine Anzahl von Laufwerken einschließen, die in einem Speicherarray angeordnet sind, beispielsweise Speicherungsvorrichtungen, die ein gemeinsames Rack, eine Einheit oder ein Blade in einem Rechenzentrum teilen, oder die Festkörperlaufwerke (SSDs) in einem All-Flash-Array. In einigen Ausführungsformen können die Speicherungsvorrichtungen 120 ein Backplane-Netzwerk, Netzwerkschalter und/oder andere Hardware- und Softwarekomponenten teilen, auf die über die Speicherschnittstelle 110 zugegriffen wird. Zum Beispiel können die Speicherungsvorrichtungen 120 mit der Speicherschnittstelle 110 über eine Vielzahl von physischen Anschlussverbindungen verbunden werden, die physische, Transport- und andere logische Kanäle zum Herstellen der Kommunikation mit den verschiedenen Komponenten und Unterkomponenten definieren, um einen Kommunikationskanal zum Host 102 herzustellen. In einigen Ausführungsformen kann die Speicherschnittstelle 110 eine primäre Host-Schnittstelle für die Verwaltung der Speicherungsvorrichtung und die Datenübertragung des Hosts bereitstellen sowie eine Steuerungsschnittstelle, die eine begrenzte Konnektivität mit dem Host für Steuerungsfunktionen auf niedriger Stufe einschließt, wie durch eine Baseboard-Management-Steuerung (BMC).
  • In einigen Ausführungsformen sind die Datenspeicherungsvorrichtungen 120 Festkörperlaufwerke (SSDs) oder schließen diese ein. Jede Datenspeicherungsvorrichtung 120.1-120.n kann eine nichtflüchtige Speicher- (NVM) oder Speicherungsvorrichtungssteuerung 130 auf der Grundlage von Rechenressourcen (Prozessor und Speicher) und eine Vielzahl von NVM- oder Medienvorrichtungen 140 für die Datenspeicherung einschließen (z. B. eine oder mehrere NVM-Vorrichtung(en), wie eine oder mehrere Flash-Speicher-Vorrichtungen). In einigen Ausführungsformen schließt eine jeweilige Datenspeicherungsvorrichtung 120 der einen oder der mehreren Datenspeicherungsvorrichtungen eine oder mehrere NVM-Steuerungen, wie Flash-Steuerungen oder Kanal-Steuerungen (z. B. für Speicherungsvorrichtungen mit NVM-Vorrichtungen in mehreren Speicherkanälen), ein. In einigen Ausführungsformen können die Datenspeicherungsvorrichtungen 120 jeweils in einem Gehäuse verpackt sein, wie in einem mehrteiligen versiegelten Gehäuse mit einem definierten Formfaktor und Anschlüssen und/oder Verbindern zurm Verbinden mit der Speicherschnittstelle 110.
  • In einigen Ausführungsformen kann eine jeweilige Datenspeicherungsvorrichtung 120 eine einzelne Medienvorrichtung einschließen, während in anderen Ausführungsformen die jeweilige Datenspeicherungsvorrichtung 120 eine Vielzahl von Medienvorrichtungen einschließt. In einigen Ausführungsformen schließen die Medienvorrichtungen einen NAND-Flash-Speicher oder einen NOR-Flash-Speicher ein. In einigen Ausführungsformen kann die Datenspeicherungsvorrichtung 120 eine oder mehrere Festplattenlaufwerke (HDDs) einschließen. In einigen Ausführungsformen können die Datenspeicherungsvorrichtungen 120 eine Flash-Speicherungsvorrichtung einschließen, die wiederum einen oder mehrere Flash-Speicherchips, ein oder mehrere Flash-Speicherpakete, einen oder mehrere Flash-Speicherkanäle oder dergleichen einschließt. In einigen Ausführungsformen können jedoch eine oder mehrere der Datenspeicherungsvorrichtungen 120 andere Arten von nichtflüchtigen Datenspeichermedien aufweisen (z. B. Phasenänderungs-Direktzugriffsspeicher (PCRAM), resistive Direktzugriffsspeicher (ReRAM), Spin-Transfer-Drehmoment-Direktzugriffsspeicher (STT-RAM), magnetoresistive Direktzugriffsspeicher (MRAM) usw.).
  • In einigen Ausführungsformen schließt jede Speicherungsvorrichtung 120 eine Speicherungsvorrichtungssteuerung 130 ein, die einen oder mehrere Speicherungsvorrichtungsprozessoren (manchmal auch Zentraleinheiten (CPUs), Prozessoreinheiten, Mikroprozessoren oder Mikrocontroller genannt) enthält, die so eingerichtet sind, dass sie Anweisungen in einem oder mehreren Programmen ausführen, die im Speicher der Speicherungsvorrichtung gespeichert sind. In einigen Ausführungsformen werden die ein oder mehreren Prozessoren von einer oder mehreren Komponenten innerhalb und in einigen Fällen über die Funktion der Gerätesteuerungen hinaus geteilt. Die Medienvorrichtungen 140 können mit den Vorrichtungssteuerungen 130 über Verbindungen gekoppelt sein, die üblicherweise zusätzlich zu den Daten auch Befehle und optional Mediendaten, Fehlerkorrekturinformationen und/oder Informationen zusätzlich zu den in Medienvorrichtungen zu speichernden Datenwerten und den von den Medienvorrichtungen 140 gelesenen Datenwerten übermitteln. Die Medienvorrichtungen 140 können eine beliebige Anzahl von (d. h. eine oder mehrere) Arbeitsspeichervorrichtungen einschließen, einschließlich, ohne Einschränkung, nichtflüchtiger Halbleiterspeichervorrichtungen, wie Flash-Speichervorrichtung(en).
  • In einigen Ausführungsformen sind die Medienvorrichtungen 140 in den Speicherungsvorrichtungen 120 in eine Anzahl von adressierbaren und einzeln auswählbaren Blöcken unterteilt, die manchmal als Löschblöcke bezeichnet werden. In einigen Ausführungsformen sind die individuell auswählbaren Blöcke die löschbaren Einheiten mit minimaler Größe in einer Flash-Speichervorrichtung. Mit anderen Worten: jeder Block enthält die minimale Anzahl von Speicherzellen, die gleichzeitig gelöscht werden können (d. h. in einer einzigen Löschoperation). Jeder Block wird in der Regel weiter unterteilt in eine Vielzahl von Seiten und/oder Wortleitungen, wobei jede Seite oder Wortleitung in der Regel eine Instanz des kleinsten individuell zugänglichen (lesbaren) Abschnitts in einem Block ist. In einigen Ausführungsformen (z. B. unter Verwendung einiger Arten von Flash-Speichern) ist die kleinste individuell zugängliche Einheit eines Datensatzes jedoch ein Sektor oder Codewort, der bzw. das eine Untereinheit einer Seite ist. Das heißt, ein Block schließt eine Vielzahl von Seiten ein, wobei jede Seite eine Vielzahl von Sektoren oder Codewörtern enthält, und jeder Sektor oder jedes Codewort die minimale Dateneinheit zum Lesen von Daten aus der Flash-Speichervorrichtung ist.
  • Eine Dateneinheit kann eine beliebige Größenzuordnung von Daten beschreiben, wie einen Hostblock, ein Datenobjekt, einen Sektor, eine Seite, eine Seite mit mehreren Ebenen, einen Lösch-/Programmierblock, eine Medienvorrichtung/ein Paket, usw. Speicherplätze können physische und/oder logische Speicherplätze auf den Speicherungsvorrichtungen 120 einschließen und können je nach Speichermedium, Speicherungsvorrichtung/Systemkonfiguration und/oder Kontext auf verschiedenen Stufen der Granularität beschrieben und/oder zugewiesen werden. Beispielsweise können Speicherplätze bei einer logischen Blockadressierungsdateneinheit (LBA-Dateneinheit) eines Hosts Größe und Adressierbarkeit für Host-Lese/Schreibzwecke zugewiesen werden, aber als Seiten mit Speicherungsvorrichtungsadressierung verwaltet werden, die in der Medien-Flash-Translationsschicht (FTL) in anderen Kontexten verwaltet wird. Die Mediensegmente können physische Speicherplätze auf den Medienvorrichtungen 120 einschließen, die auch einem oder mehreren logischen Speicherplätzen entsprechen können. In einigen Ausführungsformen können Mediensegmente eine kontinuierliche Reihe von physikalischem Speicherplatz wie benachbarte Dateneinheiten auf einem Speichermedium einschließen und können bei Flash-Speichern einem oder mehreren Medien zum Löschen oder Programmieren der Blöcke entsprechen. Eine logische Datengruppe kann eine Vielzahl logischer Dateneinheiten einschließen, die unabhängig von dem Speicherplatz auf einer logischen Basis gruppiert sein können, wie Datenobjekte, Dateien oder andere logische Datenkonstrukte, die aus mehreren Host-Blöcken zusammengesetzt sind. In einigen Konfigurationen können logische und/oder physische Zonen innerhalb der Speicherungsvorrichtungen 120 als Gruppen von Datenblöcken zugewiesen werden, die für bestimmte Zwecke der Host-Datenverwaltung zugewiesen werden.
  • In einigen Ausführungsformen kann der Host oder das Hostsystem 102 mit dem Datenspeichersystem 100 über eine Netzwerkschnittstelle verbunden sein, die Teil des Host-Fabric-Netzwerks ist, das die Speicherschnittstelle 110 als Host-Fabric-Schnittstelle einschließt. In einigen Ausführungsformen sind mehrere Hostsysteme 102 (von denen in 1 nur eines gezeigt ist) und/oder Clients 118 über das Fabric-Netzwerk mit dem Datenspeichersystem 100 verbunden, das eine Speichernetzwerkschnittstelle oder eine andere Schnittstelle einschließen kann, welche in der Lage ist, die Kommunikationen mit mehreren Hostsystemen 102 zu unterstützen. In einigen Ausführungsformen kann das Fabric-Netzwerk über das Netzwerk 108 betrieben werden, und das Netzwerk 108 kann ein drahtgebundenes und/oder drahtloses Netzwerk (z. B. öffentliche und/oder private Computernetzwerke in beliebiger Anzahl und/oder Konfiguration) einschließen, die in geeigneter Art und Weise zur Datenübertragung gekoppelt werden können. Das Netzwerk 108 kann zum Beispiel jedes herkömmliche Datenkommunikationsnetz einschließen, wie ein lokales Netzwerk (LAN), ein Weitverkehrsnetz (WAN), ein Telefonnetz, wie das öffentlich geschaltete Telefonnetz (PSTN), ein Intranet, das Internet oder jedes andere geeignete Kommunikationsnetz oder jede Kombination von Kommunikationsnetzen.
  • Das Hostsystem 102 und/oder das Client-System 118 oder ein entsprechender Host oder Client in einem System mit mehreren Hosts oder Clients kann eine beliebige geeignete Rechnervorrichtung sein, wie beispielsweise ein Computer, ein Computerserver, ein Laptop-Computer, eine Tablet-Vorrichtung, ein Netbook, ein Internet-Kiosk, ein persönlicher digitaler Assistent, ein Mobiltelefon, ein Smartphone, eine Spielvorrichtung oder eine andere Rechenvorrichtung. Das Hostsystem 102 wird manchmal auch als Host, Client oder Client-System bezeichnet, je nach den jeweiligen Rollen, Konfigurationen und Kontexten. In einigen Ausführungsformen ist das Hostsystem 102 ein Serversystem, wie ein Serversystem in einem Rechenzentrum, oder ein Speichersystem, wie beispielsweise ein Speicherarray in einem Rechenzentrum. In einigen Ausführungsformen ist das Client-System 118 eine Benutzervorrichtung, die mit einer oder mehreren Anwendungen eingerichtet ist und/oder eingerichtet ist, um auf eine oder mehrere Anwendungen auf dem Hostsystem 102 zuzugreifen. Zum Beispiel kann der Host 102 eingerichtet, um Telemetriedaten von Speicherungsvorrichtungen 120 zu sammeln und zu speichern, und der Client 118 kann einen Telemetriedatenmanager 118.1 einschließen, der eingerichtet ist, um auf die vom Host 102 gesammelten Telemetriedaten zuzugreifen, sie zu analysieren und anzuzeigen. In einigen Ausführungsformen handelt es sich bei dem einen oder den mehreren Hostsystemen 102 um eine oder mehrere Hostvorrichtungen, die sich von einer Speichersteuerung oder einem Speicherknoten unterscheiden, in dem die Vielzahl von Speicherungsvorrichtungen 120 untergebracht ist. Das eine oder die mehreren Hostsysteme 102 können eingerichtet sein, um Daten in der Vielzahl der Speicherungsvorrichtungen 120 zu speichern und darauf zuzugreifen.
  • Das Hostsystem 102 kann eine oder mehrere Zentraleinheiten (CPUs) oder Prozessoren 104 zum Ausführen von Rechenvorgängen oder Anweisungen für den Zugriff auf Speicherungsvorrichtungen 120 über die Schnittstelle 110 einschließen. In einigen Ausführungsformen kann der Prozessor 104 dem Arbeitsspeicher 106 zugeordnet sein, um sowohl Speichervorgänge als auch ein Speicherschnittstellenprotokoll auszuführen, das mit der Schnittstelle 110 und den Speicherungsvorrichtungen 120 kompatibel ist. In einigen Ausführungsformen kann eine separate Speicherschnittstelleneinheit (nicht gezeigt) das Speicherschnittstellenprotokoll und die zugehörigen Prozessor- und Speicherressourcen bereitstellen. Aus der Sicht der Speicherungsvorrichtungen 120 kann die Speicherschnittstelle 110 als Host-Schnittstelle bezeichnet werden und stellt einen Host-Datenpfad zwischen den Speicherungsvorrichtungen 120 und dem Host 102 bereit.
  • Das Hostsystem 102 kann den Speicher 106 einschließen, der eingerichtet ist, um verschiedene Datenzugriffs- und Verwaltungsfunktionen zu unterstützen, im Allgemeinen zur Unterstützung einer oder mehrerer Anwendungen. Der Speicher 106 kann einen Direktzugriffsspeicher (RAM) oder eine andere Art von dynamischer Speicherungsvorrichtung einschließen, die Informationen und Anweisungen zur Ausführung durch den Prozessor 104 speichert, und/oder einen Nur-lese-Speicher (ROM) oder eine andere Art von statischer Speicherungsvorrichtung, die statische Informationen und Anweisungen zur Verwendung durch den Prozessor 104 speichert, und/oder ein beliebiges geeignetes Speicherelement wie eine Festplatte oder ein Festkörperspeicherelement. So kann der Speicher 106 zum Beispiel einen oder mehrere DRAM-Bausteine (Dynamic Random Access Memory) einschließen, die von den Speicherungsvorrichtungen 120 für die Speicherung und Übertragung von Befehlen, Verwaltungsparametern und/oder Hostdaten verwendet werden. In einigen Ausführungsformen können Speicherungsvorrichtungen 120 für den direkten Speicherzugriff (DMA) konfiguriert werden, wie unter Verwendung von RDMA-Protokollen (Remote Direct Memory Access), über die Schnittstelle 110, um mit dem Host 102 zu interagieren.
  • Das Hostsystem 102 kann eingerichtet sein, um sichere Telemetriedaten von Speicherungsvorrichtungen 120 zu empfangen. Zum Beispiel kann das Hostsystem 102 verschlüsselte Telemetrienachrichten auf der Grundlage von Telemetriebefehlen von Speicherungsvorrichtungen 120 in regelmäßigen Abständen oder bei Bedarf empfangen und die Telemetriedaten zur Verwendung durch das Hostsystem 102 und/oder den Client 118 entschlüsseln. Das Hostsystem 102 kann eine Vielzahl von Modulen oder Untersystemen einschließen, die im Speicher 106 zur Ausführung durch Prozessor 104 als Befehle oder Vorgänge gespeichert und/oder instanziiert sind. Der Speicher 106 kann zum Beispiel den Nachrichtenprozessor 112 einschließen, der eingerichtet ist, um Telemetrienachrichten von der Speicherungsvorrichtung 120 über ein Speicherprotokoll wie NVMe zu empfangen. Zum Beispiel kann der Speicher 106 eine Verschlüsselungs-Engine 114 einschließen, die eine oder mehrere Chiffren zum Entschlüsseln der verschlüsselten Daten in der Telemetrienachricht enthält. Zum Beispiel kann der Speicher 106 einen Schlüsselmanager einschließen, der Verschlüsselungsschlüssel für eine mehrstufige Verschlüsselung unterstützt, wie eine symmetrische Offload-Verschlüsselung und eine asymmetrische Verfahren.
  • In einigen Ausführungsformen können der Nachrichtenprozessor 112, die Verschlüsselungs-Engine 114 und der Schlüsselmanager 116 ein Schnittstellenprotokoll und/oder eine Reihe von Funktionen, Parametern und/oder Datenstrukturen zum Empfangen, Parsen, Entschlüsseln und Speichern von Telemetriedaten aus einer Telemetrienachricht einschließen. Zum Beispiel kann der Nachrichtenprozessor 112 eine Telemetrienachricht in einem Telemetriebefehl von einer der Speicherungsvorrichtungen 120 empfangen. Der Nachrichtenprozessor 112 kann die Telemetrienachricht analysieren, um Kopfzeilen, Inhaltsverzeichnisse, Verschlüsselungsschlüssel und/oder einen oder mehrere Datenabschnitte mit verschlüsselten Telemetriedaten zu identifizieren. Der Nachrichtenprozessor 112 kann die Verschlüsselungs-Engine 114 für eine oder mehrere Entschlüsselungsaufgaben aufrufen. Die Verschlüsselungs-Engine 114 kann zum Beispiel eine Entschlüsselungslogik einschließen, die auf einer oder mehreren Chiffren basiert, wie symmetrischen oder asymmetrischen Chiffren, die auf einem oder mehreren Verschlüsselungsschlüsseln basieren. In einigen Ausführungsformen kann der Nachrichtenprozessor 112 auf den Schlüsselmanager 116 zugreifen, um einen oder mehrere Verschlüsselungsschlüssel für die Entschlüsselung der Telemetrienachricht zu erhalten. Zum Beispiel können ein oder mehrere Abschnitte der Telemetrienachricht mit einem öffentlichen Verschlüsselungsschlüssel verschlüsselt werden, der Teil eines öffentlich-privaten Schlüsselpaares ist, und der entsprechende private Verschlüsselungsschlüssel kann vom Schlüsselmanager 116 zur Verwendung durch die Verschlüsselungs-Engine 114 abgerufen werden. In einigen Ausführungsformen können der Nachrichtenprozessor 112, die Verschlüsselungs-Engine 114 und der Schlüsselmanager 116 eine mehrstufige Verschlüsselung unterstützen, bei der sie einen Zugriffssteuerungsverschlüsselungsschlüssel verwenden, um einen in der Telemetrienachricht eingeschlossenen verschlüsselten Verschlüsselungsschlüssel zu entschlüsseln, und dann den entschlüsselten Verschlüsselungsschlüssel zur Entschlüsselung der Telemetriedaten verwenden.
  • In einigen Ausführungsformen kann der Client 118 eine oder mehrere Anwendungen für den Zugriff auf oder die Verwendung von Telemetriedaten einschließen, die vom Host 102 gesammelt wurden. Der Client 118 kann zum Beispiel einen Telemetriedatenmanager 118.1 einschließen, der eingerichtet ist, um auf aggregierte Telemetriedaten zuzugreifen, sie zu analysieren, anzuzeigen und/oder automatisch darauf reagiert. Der Telemetriedatenmanager 118.1 kann ein Schnittstellenprotokoll und/oder einen Satz von Funktionen, Parametern und/oder Datenstrukturen einschließen, um eine Schnittstelle zu den aggregierten Telemetriedaten zu bilden, die vom Nachrichtenprozessor 112 von einer oder mehreren Speicherungsvorrichtungen 120 über einen Überwachungszeitraum empfangen und gespeichert wurden. Zum Beispiel kann der Telemetriedatenmanager 118.1 eine Schnittstelle, Analysewerkzeuge und/oder Systemverwaltungsfunktionen oder -schnittstellen bereitstellen, die es einem Benutzer ermöglichen, Telemetriedaten zu verwenden, um die Leistung und den Status von Speicherungsvorrichtungen 120 und/oder deren Gesamtleistung in einer oder mehreren hierarchischen Komponenten, wie Speichersteuerungen, Speicherarrays, RAID-Gruppen usw., zu überwachen. In einigen Ausführungsformen kann der Telemetriedatenmanager 118.1 eingerichtet sein, um automatisch auf einen oder mehrere Auslöser oder Ereignisse in den Telemetriedaten zu reagieren, um eine Wartung oder eine Änderung der Betriebskonfigurationsparameter in den Speicherungsvorrichtungen 120 und/oder anderen Komponenten des Speichersystems 100 einzuleiten.
  • In einigen Ausführungsformen schließt das Datenspeichersystem 100 einen oder mehrere Prozessoren, eine oder mehrere Arten von Speicher, ein Display und/oder andere Benutzerschnittstellenkomponenten wie eine Tastatur, einen Touchscreen, eine Maus, ein Trackpad, eine digitale Kamera und/oder eine beliebige Anzahl von zusätzlichen Vorrichtungen ein, um Funktionalität hinzuzufügen. In einigen Ausführungsformen hat das Datenspeichersystem 100 kein Display und keine anderen Benutzerschnittstellenkomponenten.
  • 2 zeigt eine schematische Darstellung einer mehrstufigen Verschlüsselungsarchitektur für Telemetriedaten-Nachrichten, die von einem Speichersystem 200 verwendet werden kann, das ähnlich konfiguriert ist wie das Speichersystem 100 aus 1. Eine Vielzahl von Hosts 102.1-102.n kann mit der Speicherungsvorrichtung 120 kommunizieren, um Telemetriedaten unter Verwendung einer mehrstufigen Verschlüsselung zu empfangen und zu entschlüsseln, die sowohl eine symmetrische als auch eine asymmetrische Verschlüsselung einschließt. In einigen Ausführungsformen können die Funktionen des Hosts 102 vom Nachrichtenprozessor 112 mit Hilfe der Verschlüsselungs-Engine 114 und des Schlüsselmanagers 116 ausgeführt werden, und die Funktionen der Speicherungsvorrichtung 120 können von der Speicherungsvorrichtungssteuerung 130 ausgeführt werden. Zum Beispiel können der Telemetriedatensammler 210, der Telemetrienachrichtenformatierer 212, der symmetrische Schlüsselgenerator 230, die Verschlüsselungs-Engine 234 und der Manager für öffentliche Schlüssel 244 in der Hardware der Speicherungsvorrichtung enthalten sein, wie beispielsweise in Prozessoren, Speichern und/oder Hardware-Verschlüsselungs-Enginen.
  • Der Telemetriedatensammler 210 kann eingerichtet sein, um Telemetriedaten für die Speicherungsvorrichtung 120 zu sammeln. Der Telemetriedatensammler 210 kann zum Beispiel geplante, ereignis- und/oder befehlsbasierte Auslöser für die Erfassung verschiedener Betriebsparameter der Speicherungsvorrichtung einschließen. In einigen Ausführungsformen können die Telemetriedaten einen oder mehrere Parameter einschließen, die sich auf die Lese-/Schreibvorgänge der Speicherungsvorrichtung, den Speichermedienraum und die Leistung, die Sensoren und/oder die Verwaltung der Speicherungsvorrichtung beziehen. Telemetriedaten können zum Beispiel Arbeitslastdaten, Fehlerdaten, Debug-Daten, Ereignisdatenprotokolle, dynamische Speicherkonfigurationsdaten (d. h. sich ändernde Konfigurationsparameter der Speicherungsvorrichtung), Firmware-Verwaltungsdaten, herstellerdefinierte Datenprotokolle, NVMe-Datenprotokolle und/oder SMART-Datenprotokolle einschließen. In einigen Ausführungsformen kann der Telemetriedatensammler 210 Telemetriedaten von einem oder mehreren Speicherungsvorrichtungs-Subsystemen und/oder Speicherregistern oder Datenlagern empfangen, um die Zielbetriebsparameter zu sammeln. In einigen Ausführungsformen kann der Telemetriedatensammler 210 ein oder mehrere Protokolle und eine entsprechende Logik zum Hinzufügen von Daten zu diesen Protokollen während des Vorgangs auf der Speicherungsvorrichtung einschließen. Der Telemetriedatensammler 210 kann einen Satz von Telemetriedaten, wie Telemetriedaten für einen definierten Sammelzeitraum, eine Anfrage oder ein Ereignis an den Telemetrienachrichtenformatierer 212 weiterleiten.
  • Der Telemetrienachrichtenformatierer 212 kann eine Logik einschließen, um die vom Telemetriedatensammler 210 empfangenen Telemetriedaten in ein definiertes Telemetrienachrichtenformat abzubilden, wie die Syntaxanforderungen eines NVMe-Telemetriebefehls oder eines ähnlichen Speicherprotokolltelemetriebefehls. Zum Beispiel kann der Telemetrienachrichtenformatierer 212 die empfangenen Telemetriedaten in der Telemetrienachricht 220 formatieren. In einigen Ausführungsformen kann die Telemetrienachricht 220 eine Telemetriekopfzeile 222, eine Telemetrieunterkopfzeile 224, ein Inhaltsverzeichnis 226 und einen oder mehrere Datenabschnitte 228 für die Telemetriedaten selbst einschließen. Zum Beispiel kann die Telemetriekopfzeile 222 Befehlskennungen, Parameter und/oder andere Protokollanforderungen zum Bezeichnen eines Telemetriebefehls oder einer Telemetrienachricht für die Kommunikationsprotokolle einschließen, die für die Befehlskommunikation zwischen der Speicherungsvorrichtung 120 und den Hosts 102 verwendet werden. Die Unterkopfzeile 224 kann hersteller- oder implementierungsspezifische Identifikatoren, Parameter und/oder andere Protokollanforderungen einschließen, um eine bestimmte Implementierung des Telemetriebefehls oder der Telemetrienachricht für die Speicherungsvorrichtung 120 und/oder das Speichersystem 200 zu bestimmen. Das Inhaltsverzeichnis 226 kann die Positionen und/oder das Layout der Datenabschnitte 228 in der Telemetrienachricht 220 identifizieren und/oder andere Identifikatoren oder Parameter einschließen, die sich auf diese Datenabschnitte beziehen. Die Datenabschnitte 228.1-228.n können verschiedene Abschnitte der Telemetriedaten einschließen. Zum Beispiel kann jeder Datenabschnitt einem Untersatz von verwandten Parametern, Zeiträumen, Datenquellen oder -typen und/oder anderen Organisationsschemata für die Telemetriedaten entsprechen.
  • Der Telemetrienachrichtenformatierer 212 kann eingerichtet sein, um einen oder mehrere Abschnitte der Telemetrienachricht 220 zu verschlüsseln. Zum Beispiel kann der Telemetrienachrichtenformatierer 212 eingerichtet sein, um die Datenabschnitte 228, das Inhaltsverzeichnis 226 und/oder die Unterkopfzeile 224 zu verschlüsseln. In einigen Ausführungsformen können die Felder der Telemetrienachricht 220 mit einem symmetrischen Verschlüsselungsschlüssel 232 verschlüsselt werden. Der symmetrische Schlüsselgenerator 230 kann zum Beispiel eingerichtet sein, um den symmetrischen Verschlüsselungsschlüssel 232 zu generieren, der von der Verschlüsselungs-Engine 234 beim Verschlüsseln der Telemetriedaten verwendet wird. In einigen Ausführungsformen kann der symmetrische Schlüsselgenerator 230 eingerichtet sein, um einen zufälligen Verschlüsselungsschlüssel für jede Telemetrienachricht zu generieren. Zum Beispiel kann für jede Telemetrienachricht ein neuer Offload-Verschlüsselungsschlüssel generiert werden, so dass jede Telemetrienachricht einen anderen symmetrischen Verschlüsselungsschlüssel 232 verwendet. In dem Fall, dass der Schlüssel für eine Nachricht gefährdet ist, kann er möglicherweise die Entschlüsselung anderer Telemetrienachrichten nicht ermöglichen. Die Verschlüsselungs-Engine 234 kann eine symmetrische Chiffre 236 einschließen, um den symmetrischen Verschlüsselungsschlüssel 232 zur Verschlüsselung der ausgewählten Teile der Telemetrienachricht 220 zu verwenden. Bei der symmetrischen Chiffre 236 kann es sich um einen Verschlüsselungsalgorithmus handeln, der denselben Schlüssel zum Verschlüsseln und Entschlüsseln der Zieldaten verwendet. In einigen Ausführungsformen kann der Telemetrienachrichtenformatierer 212 einen symmetrischen Verschlüsselungsschlüssel 232 in die Telemetrienachricht aufnehmen, der von einem empfangenden Knoten, wie dem Host 102, zur Entschlüsselung der verschlüsselten Telemetriedaten verwendet werden kann.
  • Der Telemetrienachrichtenformatierer 212 kann für eine mehrstufige Verschlüsselung konfiguriert werden, bei der der symmetrische Verschlüsselungsschlüssel 232 mit einem anderen Verschlüsselungsalgorithmus und einem entsprechenden Schlüssel verschlüsselt wird. Die Verschlüsselungs-Engine 234 kann zum Beispiel weiterhin eine asymmetrische Chiffre 240 einschließen, die vom Telemetrienachrichtenformatierer 212 aufgerufen wird, um den symmetrischen Verschlüsselungsschlüssel 232 zu verschlüsseln, bevor er der verschlüsselten Telemetrienachricht hinzugefügt wird. Bei der asymmetrischen Chiffre 240 kann es sich um einen Verschlüsselungsalgorithmus handeln, der zum Verschlüsseln und Entschlüsseln unterschiedliche Schlüssel verwendet, wie ein öffentlich-privates Verschlüsselungsschlüsselpaar. In einigen Ausführungsformen kann der Telemetrienachrichtenformatierer 212 mehrere Zugriffssteuerungsschlüssel unterstützen, um den Hosts 102 selektiv verschiedene Verschlüsselungsschlüssel für den Zugriff auf verschlüsselte Telemetriedaten zur Verfügung zu stellen. Zum Beispiel kann die Speicherungsvorrichtung 120 eine Vielzahl von öffentlichen Verschlüsselungsschlüsseln 242.1-242.n einschließen, die einer Vielzahl von Parteien, Knoten und/oder Hosts 102 entsprechen. In einigen Ausführungsformen kann der Manager 244 für öffentliche Schlüssel die mehreren öffentlichen Verschlüsselungsschlüssel 242 zur Verwendung durch die asymmetrische Chiffre 240 speichern und jeder Host 102 kann einen privaten Verschlüsselungsschlüssel 272 einschließen, der einem öffentlichen Verschlüsselungsschlüssel 242 entspricht. Der Telemetrienachrichtenformatierer 212 kann eine Vielzahl verschlüsselter Versionen des symmetrischen Verschlüsselungsschlüssels 232 in die verschlüsselte Telemetrienachricht einschließen, die von den Hosts 102 mit den entsprechenden privaten Verschlüsselungsschlüsseln 272 verwendet werden.
  • Der Telemetrienachrichtenformatierer 212 kann eine verschlüsselte Telemetrienachricht 250 generieren, indem er die ausgewählten Abschnitte der Telemetrienachricht 220 durch die Verschlüsselungs-Engine 234 verarbeitet. Die verschlüsselte Telemetrienachricht 250 kann zum Beispiel einschließen: Telemetriekopfzeile 252, die der Telemetriekopfzeile 222 entspricht; sichere Unterkopfzeile 254, die einer verschlüsselten Version der Unterkopfzeile 224 entspricht; sicheres Inhaltsverzeichnis 256, das einer verschlüsselten Version des Inhaltsverzeichnisses 226 entspricht; sichere Schlüssel 258, die einer oder mehreren verschlüsselten Versionen des symmetrischen Verschlüsselungsschlüssels 232 entsprechen; und verschlüsselte Daten 260, die den verschlüsselten Versionen der Datenabschnitte 228 entsprechen. In einigen Ausführungsformen können die sicheren Schlüssel 258 eine Vielzahl von verschlüsselten Schlüsseln 258.1-258.n des symmetrischen Verschlüsselungsschlüssels 323 einschließen, die den öffentlichen Verschlüsselungsschlüsseln 242 entsprechen. Die Speicherungsvorrichtung 120 kann eine verschlüsselte Telemetrienachricht 250 an den Host 102 senden. Zum Beispiel kann die verschlüsselte Telemetrienachricht 250 über eine Netzwerkstruktur zwischen der Speicherungsvorrichtung 120 und den Hosts 102 in Übereinstimmung mit den NVMe-Telemetriebefehlsprotokollen gesendet werden.
  • Hosts 102 können asymmetrische Chiffren 270 und private Verschlüsselungsschlüssel 272 einschließen, die eingerichtet sind, um sichere Schlüssel 258 zu entschlüsseln und symmetrische Verschlüsselungsschlüssel 232 zurückzugeben. Die Hosts 102 können symmetrische Chiffren 274 einschließen, die eingerichtet sind, um verschlüsselte Daten 260, sichere Unterkopfzeilen 254 und/oder sichere Inhaltsverzeichnisse 256 zu entschlüsseln, um den ursprünglichen Inhalt der Telemetrienachricht 280 zurückzugeben. Zum Beispiel kann die Telemetriekopfzeile 282 der ursprünglichen Telemetriekopfzeile 222 entsprechen, die Unterkopfzeile 284 aus der sicheren Unterkopfzeile 254 kann der ursprünglichen Unterkopfzeile 224 entsprechen, das Inhaltsverzeichnis 286 aus dem sicheren Inhaltsverzeichnisses 256 kann dem ursprünglichen Inhaltsverzeichnis 226 entsprechen, und der Datenabschnitt 288.1 usw. aus den verschlüsselten Daten 260 kann den ursprünglichen Datenabschnitten 228.1 usw. entsprechean In einigen Ausführungsformen kann die verschlüsselte Telemetrienachricht 250 von einem Nachrichtenprozessor in jedem Host 102 empfangen und verarbeitet werden, wie dem Nachrichtenprozessor 112 in 1. Asymmetrische Chiffren 270 und symmetrische Chiffren 274 können in eine Verschlüsselungs-Engine in jedem Host 102 eingeschlossen sein, wie die Verschlüsselungs-Engine 114 in 1. Private Verschlüsselungsschlüssel 272 können in einem Schlüsselmanager in jedem Host 102 gespeichert werden, wie dem Schlüsselmanager 116 in 1. In einigen Ausführungsformen können die Hosts 102 eingerichtet sein, um Telemetriedaten aus dem ursprünglichen Inhalt der Telemetrienachricht 280 über eine Telemetriedatenmanageranwendung, wie den Telemetriedatenmanager 118.1 in 1, zu speichern, zu analysieren und/oder anzuzeigen.
  • 3 zeigt eine schematische Darstellung eines sicheren Telemetrienachrichtenformats 300, das vom Speichersystem 100 von 1 verwendet werden kann. Zum Beispiel können die Speicherungsvorrichtungen 120 Telemetriedaten-Nachrichten an den Host 102 unter Verwendung des sicheren Telemetrienachrichtenformats 300 senden. In einigen Ausführungsformen können Speicherungsvorrichtungen 120 eingerichtet sein um selektiv verschiedene Datenabschnitte von Telemetriedaten mit unterschiedlichen Verschlüsselungsalgorithmen und -schlüsseln zu verschlüsseln, wie die symmetrische Verschlüsselung mit einem Offload-Verschlüsselungsschlüssel und die asymmetrische Verschlüsselung unter Verwendung einer Vielzahl von Zugriffssteuerungsverschlüsselungsschlüsseln. In dem gezeigten Beispiel kann die verschlüsselte Telemetrienachricht 310 eine Telemetriekopfzeile 312 und eine sichere Unterkopfzeile 314 einschließen, ähnlich der Telemetriekopfzeile 252 und der sicheren Unterkopfzeile 254, die in 2 beschrieben sind. Sichere Schlüssel 318 können ebenfalls verschlüsselte Versionen des Verschlüsselungsschlüssels für die Verlagerung als verschlüsselte Schlüssel 318.1-318.n einschließen. In einigen Ausführungsformen kann das sichere Inhaltsverzeichnis 316 zusätzliche Felder oder Parameter zum Identifizieren der für jeden Datenabschnitt verwendeten Verschlüsselung einschließen, und jeder Datenabschnitt 322.1-322.n kann verschiedene Stufen der Verschlüsselung oder überhaupt keine Verschlüsselung einschließen.
  • In einigen Ausführungsformen kann das sichere Inhaltsverzeichnis 316 eine Vielzahl von Tabelleneinträgen 330 einschließen, wobei jeder Tabelleneintrag 330 mit einem Datenabschnitt 322 korreliert. Jeder Tabelleneintrag 330 kann eine Vielzahl von Feldern oder Parametern einschließen, wie den Abschnittsbezeichner 332, den Schlüsselbezeichner 334 und den Datenort 336. Zum Beispiel kann die Abschnittskennung 332.1 einer Kennung für den Datenabschnitt 322.1 entsprechen, die Schlüsselkennung 334.1 kann eine Kennung für die Verschlüsselung einschließen, die für den Datenabschnitt 322.1 verwendet wird, und der Datenort 226.1 kann die Start- und Endspeicherplätze in der verschlüsselten Telemetrienachricht 310 für den Datenabschnitt 322.1 bereitstellen. Jeder Tabelleneintrag 330 kann in ähnlicher Art und Weise den Datenabschnitten 332.1-322.n entsprechen.
  • In dem gezeigten Beispiel kann der sichere Datenabschnitt 322.1 ein Datenabschnitt sein, der Telemetriedaten einschließt, die für den Zugriff durch alle autorisierten Stellen zugelassen sind. Zum Beispiel kann der sichere Datenabschnitt 322.1 nur mit dem Offload-Verschlüsselungsalgorithmus und dem entsprechenden Verschlüsselungsschlüssel für die verschlüsselte Telemetrienachricht 310 verschlüsselt werden. Jede autorisierte Stelle, die über einen gültigen privaten Verschlüsselungsschlüssel für einen verschlüsselten Schlüssel 318.1-318.n verfügt, kann den Verschlüsselungsschlüssel entschlüsseln und die Datenabschnitte 322.1 sichern. Die Schlüsselkennung 334.1 im sicheren Inhaltsverzeichnis 316 kann einen Parameter einschließen, der angibt, dass der Verschlüsselungsschlüssel für die Verschlüsselung des sicheren Datenabschnitts 322.1 verwendet wurde.
  • Der Schlüssel-1-Datenabschnitt 322.2 kann ein Datenabschnitt sein, der Telemetriedaten einschließt, auf die nur die Stelle zugreifen darf, die den privaten Schlüssel für einen ersten Zugriffssteuerungsverschlüsselungsschlüssel kontrolliert. Zum Beispiel kann der Datenabschnitt 322.2 des Schlüssels 1 mit dem Zugriffssteuerungsverschlüsselungsalgorithmus und dem ersten Zugriffssteuerungsverschlüsselungsschlüssel verschlüsselt werden. Der Datenabschnitt 322.3 von Schlüssel n kann ein Datenabschnitt sein, der Telemetriedaten einschließt, auf die nur die Instanz zugreifen darf, die den privaten Schlüssel für einen anderen Zugriffssteuerungsverschlüsselungsschlüssel n kontrolliert. Zum Beispiel kann der Datenabschnitt 322.3 von Schlüssel n mit dem Zugriffssteuerungsverschlüsselungsalgorithmus und dem Zugriffssteuerungsverschlüsselungsschlüssel n verschlüsselt werden. In einigen Ausführungsformen kann die verschlüsselte Telemetrienachricht 310 eine beliebige Anzahl von Zugriffskontrollinstanzen mit entsprechenden Zugriffssteuerungsverschlüsselungsschlüsseln unterstützen, beispielsweise öffentlich-private Schlüsselpaare, bei denen der öffentliche Schlüssel in der Speicherungsvorrichtung gespeichert ist und der private Schlüssel von einem oder mehreren Host- oder Client-Systemen verwendet wird. Die jeweiligen Schlüsselkennungen 334.2 und 334.3 im sicheren Inhaltsverzeichnis 316 können die jeweils verwendeten Verschlüsselungsschlüssel, den Zugriffssteuerungsverschlüsselungsschlüssel 1 für 334.2 und den Zugriffssteuerungsverschlüsselungsschlüssel n für 334.3 identifizieren.
  • Der sichere Datenabschnitt 322.4 kann ein weiterer Datenabschnitt für den Zugriff durch alle autorisierten Benutzer sein, mit denselben Zugriffskontrollen wie der sichere Datenabschnitt 322.1. In einigen Ausführungsformen kann die sichere Telemetrienachricht 310 neben den verschlüsselten Telemetriedaten auch unverschlüsselte Telemetriedaten unterstützen. Der ungesicherte Datenabschnitt 322.5 kann zum Beispiel unverschlüsselte Telemetriedaten einschließen, auf die jeder Empfänger einer sicheren Telemetrienachricht 310 zugreifen kann, ohne dass ein Zugriffssteuerungsverschlüsselungsschlüssel erforderlich ist. Es kann eine beliebige Anzahl und Kombination von Datenabschnitten unter Verwendung der verschiedenen Verschlüsselungsalgorithmen und Zugriffskontrollen verwendet werden. Es kann zum Beispiel mehrere Datenabschnitte geben, die für den Zugriffssteuerungsverschlüsselungsschlüssel 1 gesichert sind, wie Datenabschnitt 322.2 und Datenabschnitt 322.n von Schlüssel 1. Das sichere Inhaltsverzeichnis 316 kann einen Index an die Datenabschnitte 322.1-322.n bereitstellen, der es den Empfängern der Nachricht ermöglicht, zu bestimmen, auf welche Datenabschnitte sie Zugriff haben. In einigen Ausführungsformen kann das sichere Inhaltsverzeichnis 316 eine Vielzahl von Inhaltsverzeichnissen einschließen, wobei die Tabelleneinträge auf diejenigen beschränkt sind, auf die mit einem einzigen Satz von Zugriffsberechtigungen zugegriffen werden kann. Eine erste Version des sicheren Inhaltsverzeichnisses 316 kann zum Beispiel nur Einträge einschließen, die für alle autorisierten Benutzer zugänglich sind, wie den sicheren Datenabschnitt 322.1, den sicheren Datenabschnitt 322.4 und den unsicheren Datenabschnitt 322.5, und mit dem Offload-Verschlüsselungsschlüssel verschlüsselt sein. Eine zweite Version des sicheren Inhaltsverzeichnisses 316 kann Einträge einschließen, auf die die autorisierte Stelle, die den Zugriffssteuerungsverschlüsselungsschlüssel 1, wie den sicheren Datenabschnitt 322.1, den Schlüssel-1-Datenabschnitt 322.2, den sicheren Datenabschnitt 322.4, den ungesicherten Datenabschnitt 322.5 und den Schlüssel-1-Datenabschnitt 322.n kontrolliert, zugreifen kann, und mit dem Zugriffssteuerungsverschlüsselungsschlüssel 1 verschlüsselt werden. Eine zusätzliche Version des Inhaltsverzeichnisses kann für jeden Zugriffssteuerungsverschlüsselungsschlüssel und/oder die ungesicherten Datenabschnitte (in einem unverschlüsselten Inhaltsverzeichnis) eingeschlossen sein.
  • 4 zeigt eine schematische Darstellung eines beispielhaften Hostsystems 102 und/oder Client-Systems 118. Das Hostsystem 102 kann einen Bus 410, einen Prozessor 420, einen lokalen Speicher 430, eine oder mehrere optionale Eingabeeinheiten 440, eine oder mehrere optionale Ausgabeeinheiten 450 und eine Kommunikationsschnittstelle 460 aufweisen. Der Bus 410 kann einen oder mehrere Leiter einschließen, welche die Kommunikation zwischen den Komponenten des Hosts 102 zulassen. Der Prozessor 420, der manchmal auch als Host-Prozess oder Client-Prozessor bezeichnet wird, kann jede Art von herkömmlichem Prozessor oder Mikroprozessor einschließen, der Anweisungen interpretiert und ausführt. Der lokale Speicher 430, der manchmal auch als Hostspeicher oder Client-Speicher bezeichnet wird, kann einen Direktzugriffsspeicher (RAM) oder eine andere Art von dynamischer Speicherungsvorrichtung, die Informationen und Anweisungen zur Ausführung durch den Prozessor 420 speichert, und/oder einen Nur-Lese-Speicher (ROM) oder eine andere Art von statischer Speicherungsvorrichtung, die statische Informationen und Anweisungen zur Verwendung durch den Prozessor 420 speichert, und/oder ein beliebiges geeignetes Speicherelement wie eine Festplatte oder ein Festkörperspeicherelement einschließen. Zum Beispiel können der Nachrichtenprozessor 112, die Verschlüsselungs-Engine 114 und der Schlüsselmanager 116 in 1 in Anweisungen, Vorgängen oder Firmware instanziiert werden, die im lokalen Speicher 430 zur Ausführung durch den Prozessor 420 gespeichert sind. Eine optionale Eingabeeinheit 440 kann einen oder mehrere herkömmliche Mechanismen einschließen, die es einem Bediener ermöglichen, Informationen in den Host 102 einzugeben, wie eine Tastatur, eine Maus, einen Stift, eine Spracherkennung und/oder biometrische Mechanismen, usw. Die optionale Ausgabeeinheit 450 kann einen oder mehrere herkömmliche Mechanismen einschließen, die Informationen an den Bediener ausgeben, wie ein Display, einen Drucker, einen Lautsprecher usw. Die Schnittstelle 460 kann jeden Transceiver-ähnlichen Mechanismus einschließen, der es dem Hostsystem 102 ermöglicht, mit anderen Vorrichtungen und/oder Systemen zu kommunizieren. In einigen Ausführungsformen kann die Kommunikationsschnittstelle 460 eine oder mehrere periphere Schnittstellen einschließen, wie Peripheral Component Interconnect Express (PCle), zur Verbindung mit den Speicherungsvorrichtungen 120 und/oder eine Netzwerkschnittstelle zum Kommunizieren mit den Speicherungsvorrichtungen 120 über ein Fabric-Netzwerk.
  • In einigen Ausführungsformen kann der Client 118 in 1 ähnlich wie der Host 102 eingerichtet sein und die in 4 gezeigten und beschriebenen Komponenten einschließen. Der Client 118 kann zum Beispiel den Bus 410, den Prozessor 420, den lokalen Speicher 430, eine oder mehrere optionale Eingabeeinheiten 440, eine oder mehrere optionale Ausgabeeinheiten 450 und die Schnittstelle 460 einschließen. Der Telemetriedatenmanager 118.1 kann zur Ausführung durch den Prozessor 420 im Speicher 430 gespeichert werden, und die Kommunikationsschnittstelle 460 kann die Netzwerkkommunikation mit dem Host 102 und/oder den Speicherungsvorrichtungen 120 ermöglichen, wie beispielsweise über ein Fabric-Netzwerk.
  • 5 zeigt schematisch ausgewählte Module eines Speichersystems 500, das für sichere Telemetrienachrichten von Speicherungsvorrichtungen an andere Knoten, wie Host- oder Client-Systeme, eingerichtet ist. Das Speichersystem 500 kann Elemente und Konfigurationen enthalten, die denen in 1-4 ähnlich sind. Zum Beispiel kann das Speichersystem 500 eine oder mehrere Speicherungsvorrichtungen einschließen, die als Speicherungsvorrichtung 120 im Speichersystem 100 eingerichtet sind, wobei die Speicherungsvorrichtung einen Bus 510, einen Prozessor 512, einen Speicher 514 (der eine Hostschnittstelle 530, einen Speichermanager 536 und eine Verschlüsselungs-/Entschlüsselungs-Engine 540 instanziiert) und eine Speicherschnittstelle 516 in der Speicherungsvorrichtungssteuerung 130 sowie einen nichtflüchtigen Speicher 520 in den NVM-Vorrichtungen 140 einschließt. Das Speichersystem 500 kann ein oder mehrere Host- oder Client-Systeme einschließen, die als Host 102 und/oder Client 118 im Speichersystem 100 konfiguriert sind, wobei das Host- oder Client-System einen Bus 510, einen Prozessor 512 und einen Speicher 514 (der eine Verschlüsselungs-/Entschlüsselungs-Engine 540 und einen Telemetriedatenmanager 550 instanziiert) im Speicher 106 oder 430 einschließt.
  • Die Speicherungsvorrichtung 500 kann einen Bus 510 einschließen, der mindestens einen Prozessor 512, mindestens einen Speicher 514 und mindestens eine Schnittstelle, wie die Speicherschnittstelle 516, miteinander verbindet. Der Bus 510 kann einen oder mehrere Leiter einschließen, welche die Kommunikation zwischen den Komponenten der Speicherungsvorrichtung 500 ermöglichen. Der Prozessor 512 kann jede Art von Prozessor oder Mikroprozessor einschließen, der Anweisungen oder Vorgänge interpretiert und ausführt. Der Speicher 514 kann einen Direktzugriffsspeicher (RAM) oder eine andere Art von dynamischer Speicherungsvorrichtung, die Informationen und Anweisungen zur Ausführung durch den Prozessor 512 speichert, und/oder einen Nur-Lese-Speicher (ROM) oder eine andere Art von statischer Speicherungsvorrichtung, die statische Informationen und Anweisungen zur Verwendung durch den Prozessor 512 speichert, und/oder ein beliebiges geeignetes Speicherelement wie eine Festplatte oder ein Festkörperspeicherelement einschließen.
  • Die Speicherschnittstelle 516 kann eine physische Schnittstelle für die Kommunikation zwischen einer Speicherungsvorrichtung und einem Host oder Client einschließen, die ein Schnittstellenprotokoll verwendet, das den Zugriff auf eine Speicherungsvorrichtung unterstützt. Die Speicherschnittstelle 516 kann zum Beispiel einen PCle, einen SATA (Serial Advanced Technology Attachment), eine SCSI (SAS) (Serial Attached Small Computer System Interface) oder einen ähnlichen Verbinder für Speicherschnittstellen einschließen, der den NVMe-Zugriff auf Festkörpermedien mit nichtflüchtigen Speicherungsvorrichtungen 520 unterstützt. In einigen Ausführungsformen kann die Speicherschnittstelle 516 mit einer Netzwerkschnittstelle zum Verbinden mit einem Fabric-Netzwerk und/oder einem anderen Netzwerk verbunden sein sie enthalten. Zum Beispiel kann die Speicherschnittstelle 516 über ein Backplane-Netzwerk und/oder eine Speichernetzwerk-Schnittstellensteuerung, die ein NVMe-over-Fabric (NVMeoF)-Protokoll unterstützt, mit einer Netzwerk-Fabric-Schnittstelle verbunden werden. In einigen Ausführungsformen können Speicherungsvorrichtungen, Hosts, Clients und/oder andere Komponenten des Speichersystems 500 als Knoten in der NVMeoF-Topologie eingerichtet werden und über unterstützte NVMe-Befehle, wie NVMe-Telemetriebefehle, kommunizieren.
  • Die Speicherungsvorrichtung 500 kann eine oder mehrere nichtflüchtige Speicherungsvorrichtungen 520 einschließen, die eingerichtet sind, um Hostdaten 520.1 zu speichern. Nichtflüchtige Speicherungsvorrichtungen 520 können zum Beispiel eine Vielzahl von Flash-Speicherpaketen einschließen, die als adressierbares Speicherarray organisiert sind. In einigen Ausführungsformen können die nichtflüchtigen Speicherungsvorrichtungen 520 NAND- oder NOR-Flash-Speichervorrichtungen einschließen, die aus einstufigen Zellen (SLC), mehrstufigen Zellen (MLC) oder dreistufigen Zellen bestehen. In einigen Ausführungsformen können nichtflüchtige Speicherungsvorrichtungen 520 das Speichermedium einer Speicherungsvorrichtung einschließen, wie beispielsweise NVM-Vorrichtungen 140 in Speicherungsvorrichtungen 120.
  • Das Speichersystem 500 kann eine Vielzahl von Modulen oder Untersystemen einschließen, die im Speicher 514 gespeichert und/oder instanziiert sind und vom Prozessor 512 als Befehle oder Vorgänge ausgeführt werden. Zum Beispiel kann der Speicher 514 eine Schnittstelle 530 einschließen, die eingerichtet ist, um Host-Datenanfragen und/oder Verwaltungsbefehle von Client- oder Host-Systemen zu empfangen, zu verarbeiten und darauf zu antworten. Der Speicher 514 kann den Speichermanager 536 einschließen, der eingerichtet ist, um Speicher- und Verwaltungsvorgänge für die Medienvorrichtungen mit dem nichtflüchtigen Speicher 520 zu verwalten. Der Speicher 514 kann eine Verschlüsselungs-/Entschlüsselungs-Engine 540 einschließen, die eingerichtet ist, um Zieldaten mit einem ausgewählten Verschlüsselungsalgorithmus und dem entsprechenden Verschlüsselungsschlüssel zu verschlüsseln und/oder zu entschlüsseln. Der Speicher 514 kann einen Telemetriedatenmanager 550 einschließen, der eingerichtet ist, um Telemetriedaten von einer oder mehreren Speicherungsvorrichtungen zu empfangen, zu verarbeiten, zu speichern und zu analysieren und/oder anzuzeigen.
  • Die Host-Schnittstelle 530 kann ein Schnittstellenprotokoll und/oder einen Satz von Funktionen, Parametern und/oder Datenstrukturen einschließen, um Host-Datenanfragen von einem Host zu empfangen, zu analysieren, zu beantworten und anderweitig zu verwalten. Die Host-Schnittstelle 530 kann zum Beispiel Funktionen zum Empfangen und Verarbeiten von Host-Anforderungen zum Lesen, Schreiben, Ändern oder anderweitigem Manipulieren von Datenblöcken und ihren jeweiligen Client- oder Host-Daten und/oder Metadaten in Übereinstimmung mit Host-Kommunikations- und Speicherprotokollen einschließen. Die Host-Schnittstelle 530 kann auch administrative Befehle und/oder Verwaltungsvorgänge unterstützen, die vom Host oder der Speicherungsvorrichtung initiiert werden, wie Konfigurationsänderungen, Speicherbereinigung, Protokollzugriff, Firmware-Verwaltung, Meldung von Betriebsparametern (z. B. Telemetriedaten) usw. Zum Beispiel kann die Host-Schnittstelle 530 administrative Befehlssätze für die Konfiguration von Namensräumen, Warteschlangensteuerung, Protokollzugriff, Funktionsidentifizierung und -konfiguration, Sicherheitseinstellungen und/oder die Meldung von Telemetriedaten unterstützen. In einigen Ausführungsformen kann die Host-Schnittstelle 530 direkten Speicherzugriff und/oder Zugriff über NVMe-Protokolle über die Speicherschnittstelle 516 ermöglichen. Die Host-Schnittstelle 530 kann zum Beispiel Host-Kommunikationsprotokolle einschließen, die mit PCle, SATA, SAS und/oder einer anderen Busschnittstelle kompatibel sind, welche die Verwendung von NVMe- und/oder RDMA-Protokollen für den Datenzugriff unterstützt. Die Host-Schnittstelle 530 kann weiterhin Host-Kommunikationsprotokolle einschließen, die mit der Konfiguration und Aktivierung sicherer Telemetrienachrichten von einer Speicherungsvorrichtung an einen oder mehrere Hosts oder Clients kompatibel sind. Die Host-Schnittstelle 530 kann zum Beispiel Telemetriedaten von der Speicherungsvorrichtung in regelmäßigen Abständen, ereignisbasiert oder als Antwort des Hosts, sammeln, formatieren, verschlüsseln und senden.
  • In einigen Ausführungsformen kann die Host-Schnittstelle 530 eine Vielzahl von Hardware- und/oder Softwaremodulen einschließen, die eingerichtet sind, dass sie den Prozessor 512 und den Speicher 514 nutzen, um definierte Vorgänge der Host-Schnittstelle 530 zu handhaben oder zu verwalten. Zum Beispiel kann die Host-Schnittstelle 530 ein Speicherschnittstellenprotokoll 532 einschließen, das eingerichtet ist, um den physischen, Transport- und Speicheranwendungsprotokollen zu entsprechen, die vom Host für Kommunikation über die Speicherschnittstelle 516 unterstützt werden. Zum Beispiel kann das Speicherschnittstellenprotokoll 532 sowohl PCle- als auch NVMe-konforme Kommunikations-, Befehls- und Syntaxfunktionen, Vorgänge und Datenstrukturen einschließen. In einigen Ausführungsformen kann die Host-Schnittstelle 530 einen Telemetrienachrichtenbearbeiter 534 für Telemetrienachrichten einschließen, der eingerichtet ist, um einen oder mehrere Befehlstypen zum Senden von Telemetriedaten von der Speicherungsvorrichtung an einen oder mehrere Hosts zu handhaben. In einigen Ausführungsformen kann die Host-Schnittstelle 530 zusätzliche Module (nicht abgebildet) für Eingabe-/Ausgabebefehle (E/A), Pufferverwaltung, Konfiguration und Verwaltung der Speicherungsvorrichtung und andere hostseitige Funktionen einschließen.
  • In einigen Ausführungsformen kann der Telemetrienachrichtenbearbeiter 534 eingerichtet sein, um verschlüsselte Telemetrienachrichten für die sichere Übertragung von Telemetriedaten an eine Vielzahl von Hosts zu handhaben. Der Telemetrienachrichtenbearbeiter 534 kann zum Beispiel die Nachrichtenauslöser 543.1, den Telemetriedatensammler 534.2, den Nachrichtenformatierer 534.3, die Konfiguration des Datenabschnitts 534.4, die Erstellung des Inhaltsverzeichnisses 534.5, die Verschlüsselungslogik 534.6, den Offload-Schlüsselgenerator 534.7 und den Schlüsselmanager 534.8 einschließen.
  • Die Nachrichtenauslöser 534.1 können eine Logik einschließen, die bestimmt, wann und welche Vorgänge in einen Telemetriedatensatz für eine oder mehrere Telemetrienachrichten einzuschließen sind. Zum Beispiel können die Nachrichtenauslöser 534.1 eine Vielzahl von regelbasierten Bedingungen für die Initiierung einer Telemetrienachricht einschließen, die sich auf einen oder mehrere Betriebsparameter beziehen. In einigen Ausführungsformen können die Nachrichtenauslöser 534.1 ausgewählt werden aus periodischen zeitbasierten Auslösern (z. B. ein regelmäßiges Intervall für die Meldung von Speicherparametern, E/A-Arbeitslasten, Fehlerraten usw.), ereignisbasierten Auslösern (z. B. vor oder nach einem Stromausfall, nach einer Fehlerbedingung und einem damit verbundenen Dump, nach einem Firmware-Update usw.) und/oder anforderungsbasierten Auslösern (z. B. eine Anforderung von Telemetriedaten von einem oder mehreren Hosts).
  • Der Telemetriedatensammler 534.2 kann eine Logik und/oder Datenstrukturen zum Auffinden des Telemetriedatensatzes für eine bestimmte Telemetrienachricht einschließen. Zum Beispiel kann der Telemetriedatensammler 534.2 als Reaktion auf die Auslösung einer Telemetrienachricht durch den Nachrichtenauslöser 534.1 eine Reihe von Betriebsparametern bestimmen, die den Telemetriedaten entsprechen, die in der Telemetrienachricht gemeldet werden sollen. In einigen Ausführungsformen können die Nachrichtenauslöser 534.1 einem Satz von Betriebsparametern, Protokollen, Registern und/oder Auswahlkriterien (wie einem Zeitraum, Parametertyp usw.) zugeordnet werden, die der Telemetriedatensammler 534.2 zur Bestimmung eines Telemetriedatensatzes verwenden kann. Zum Beispiel kann der Telemetriedatensammler 534.2 die Parameter- oder Protokollwerte oder -inhalte aus ihren jeweiligen Speicherplätzen in Telemetriedaten 520.2 und/oder Registern oder Datenstrukturen, die vom Speichermanager 536 verwaltet werden, lesen, die Parameter und Werte in den Telemetriedatensatz organisieren und den Telemetriedatensatz an den Telemetrienachrichtenformatierer 534.3 weiterleiten.
  • Der Nachrichtenformatierer 534.3 kann eine Logik zum Formatieren des Telemetriedatensatzes gemäß den Syntaxanforderungen eines oder mehrerer Telemetriebefehle einschließen, wie die Telemetriebefehle, die vom Speicherschnittstellenprotokoll 532 unterstützt werden. Der Nachrichtenformatierer 534.3 kann zum Beispiel eine oder mehrere Kopfzeilen, Inhaltsverzeichnisse und Datenabschnitte auf den Telemetriedatensatz anwenden. In einigen Ausführungsformen kann der Telemetrienachrichtenformatierer 534.3 eine Vorlage für eine Telemetriekopfzeile und eine Unterkopfzeile einschließen, wie eine Telemetriebefehlszeile und eine händlerspezifische Unterkopfzeile. Der Nachrichtenformatierer 534.3 kann eine Datenabschnittskonfiguration 534.4 einschließen oder darauf zugreifen, die eingerichtet ist, um eine Vielzahl von Datenabschnitten zu definieren, denen Abschnitte des Telemetriedatensatzes zugewiesen werden können. Die Datenabschnittskonfiguration 534.4 kann zum Beispiel ähnliche Betriebsparameter auf der Grundlage von Datentypen, Zeiträumen und/oder Zugriffsrechten in eine Vielzahl von Datenabschnitten unterschiedlicher Länge gruppieren. In einigen Ausführungsformen kann die Datenabschnittskonfiguration 534.4 eine Datenabschnittskonfigurationstabelle einschließen, die Parameter zur Definition des Inhalts jedes Abschnitts und entsprechende Abschnittskennungen und/oder Zugriffsparameter einschließt, wie den Verschlüsselungstyp, autorisierte Entitäten, Kennungen für autorisierte Schlüssel usw. Der Nachrichtenformatierer 534.3 kann einen Inhaltsverzeichnisersteller 534.5 einschließen oder darauf zugreifen, der eingerichtet ist, um mindestens ein Inhaltsverzeichnis für die Datenabschnittskonfiguration zu generieren, die von der jeweiligen Telemetrienachricht verwendet wird. Der Inhaltsverzeichnisersteller 534.5 kann zum Beispiel eine Tabelle mit einer Vielzahl von Tabelleneinträgen erstellen, die den verschiedenen Datenabschnitten entsprechen, und einen Abschnittsbezeichner sowie Positionsdaten einschließen, welche die Position des Datenabschnitts in der Telemetrienachricht beschreiben (z. B. Startposition und Endposition oder Startposition und Länge).
  • Der Telemetrienachrichtenbearbeiter 534 kann die Verschlüsselung von einem oder mehreren Abschnitten der Telemetrienachricht unterstützen. Der Nachrichtenformatierer 534.3 kann zum Beispiel eingerichtet sein, um die Verschlüsselungslogik 534.6 zum Verschlüsseln des Telemetriedatensatzes, von Abschnitten davon, des Inhaltsverzeichnisses und/oder der Kopfzeilen aufzurufen. In einigen Ausführungsformen kann die Verschlüsselungslogik 534.6 eine mehrstufige Verschlüsselung unterstützen, um sowohl einen Offload-Verschlüsselungsalgorithmus als auch einen oder mehrere Zugriffssteuerungsverschlüsselungsalgorithmen zu unterstützen, wie vorstehend in Bezug auf 2 und 3 beschrieben. Zum Beispiel kann die Verschlüsselungslogik 534.6 die Verschlüsselungs-/Entschlüsselungs-Engine 540 aufrufen, um den Telemetriedatensatz selektiv mit der Offload-Chiffre 542 zu verschlüsseln und den für die Offload-Chiffre 542 verwendeten Offload-Verschlüsselungsschlüssel selektiv mit der Zugriffssteuerungs-Chiffre 544 zu verschlüsseln. Der Nachrichtenformatierer 534.3 kann weiterhin eingerichtet sein, um der Telemetrienachricht den verschlüsselten Offload-Verschlüsselungsschlüssel hinzuzufügen, wie in einem sicheren Schlüsselfeld.
  • In einigen Ausführungsformen kann der Telemetrienachrichtenbearbeiter 534 den Offload-Verschlüsselungsschlüsselgenerator 534.7 einschließen, der eingerichtet ist, um den Offload-Verschlüsselungsschlüssel zum Verschlüsseln des Telemetriedatensatzes und/oder anderer Abschnitte der Telemetrienachricht zu generieren. Zum Beispiel kann der Offload-Schlüsselgenerator 534.7 für jeden Telemetriedatensatz und/oder jede entsprechende Telemetrienachricht einen neuen Offload-Verschlüsselungsschlüssel generieren. In einigen Ausführungsformen kann der Offload-Schlüsselgenerator 534.7 eingerichtet sein, um nicht für jede Telemetrienachricht, sondern in regelmäßigen Abständen und/oder als Reaktion auf ein Ereignis oder einen Befehl einen neuen Schlüssel zu generieren. In einigen Ausführungsformen kann der Telemetrienachrichtenbearbeiter 534 den Schlüsselmanager 534.8 einschließen, der eingerichtet ist, um einen oder mehrere Zugriffssteuerungsverschlüsselungsschlüssel für eine oder mehrere entsprechende autorisierte Einheiten und/oder Host-/Client-Systeme zu verwalten. Zum Beispiel können autorisierte Stellen über entsprechende öffentlich-private Schlüsselpaare verfügen, um Abschnitte der Telemetrienachricht selektiv zu entschlüsseln, und die öffentlichen Schlüssel können vom Schlüsselmanager 534.8 in den öffentlichen Schlüsseldaten 520.3 zur Verwendung durch die Verschlüsselungs-/Entschlüsselungs-Engine 540 gespeichert werden.
  • Der Speichermanager 536 kann ein Schnittstellenprotokoll und/oder einen Satz von Funktionen, Parametern und Datenstrukturen zum Lesen, Schreiben und Löschen von Dateneinheiten in nichtflüchtigen Speicherungsvorrichtungen 520 einschließen. Der Speichermanager 536 kann beispielsweise Funktionen zur Ausführung von Host-Datenvorgängen im Zusammenhang mit Host-Speicherbefehlen einschließen, die über die Host-Schnittstelle 530 empfangen werden. Zum Beispiel können PUT- oder Schreibbefehle konfiguriert sein, um Host-Dateneinheiten über einen Schreibprozessor in nichtflüchtige Speicherungsvorrichtungen 520 zu schreiben. GET- oder Lesebefehle können konfiguriert sein, dass sie Daten aus nichtflüchtigen Speicherungsvorrichtungen 520 über einen Leseprozessor auslesen. DELETE-Befehle können konfiguriert sein, um Daten aus nichtflüchtigen Speicherungsvorrichtungen 520 zu löschen oder mindestens eine Datenposition für die Löschung zu markieren, bis eine zukünftige Speicherbereinigung oder ein ähnlicher Vorgang die Daten tatsächlich löscht oder den physischen Speicherplatz für einen anderen Zweck neu zuweist. In einigen Ausführungsformen kann der Speichermanager 536 die Verwaltung der Flash-Übersetzungsschicht (FTL), die Datenzustandsmaschine, die Verwaltung der Lese-/Schreibpuffer, die Schnittstellenprotokolle für NVM-Vorrichtungen, die Konfiguration/Verwaltung/Wartung von NVM-Vorrichtungen und andere vorrichtungsseitige Funktionen einschließen. Der Speichermanager 536 kann verschiedene Funktionen einschließen, die Betriebsparameter generieren, wie Arbeitslastdaten, Fehlerraten, Konfigurationsparameter, physische Parameter, Speicherparameter (z. B. aggregierter Speicherplatz, der für die Speicherbereinigung verwendet wird/verfügbar ist/markiert wird, Wear-Leveling-Statistiken usw.), Fehlerprotokolle, Ereignisprotokolle und andere Betriebsparameter, die in Telemetriedaten aggregiert und gemeldet werden können.
  • Die Verschlüsselungs-Engine 540 kann eine Schnittstelle und einen Satz von Funktionen, Parametern und Datenstrukturen zum Verschlüsseln der Zieldaten einschließen. Zum Beispiel kann die Verschlüsselungs-/Entschlüsselungs-Engine 540 Zieldaten empfangen und entsprechende verschlüsselte Zieldaten unter Verwendung einer ausgewählten Chiffre und eines Verschlüsselungsschlüssels zurückgeben und/oder verschlüsselte Zieldaten empfangen und entsprechende Zieldaten unter Verwendung der ausgewählten Chiffre und des Verschlüsselungs- (oder Entschlüsselungs-) Schlüssels zurückgeben. In einigen Ausführungsformen können die Ver- und Entschlüsselungsfunktionen in separaten Verschlüsselungs- und Entschlüsselungs-Engines mit redundanten und/oder gemeinsamen Funktionen untergebracht werden, wenn ähnliche Funktionen sowohl von den verschlüsselnden als auch von den entschlüsselnden Vorgängen verwendet werden. In einigen Ausführungsformen kann die Verschlüsselungs-/Entschlüsselungs-Engine 540 eine Hardware-Verschlüsselungs-Engine einschließen, die in einer diskreten Prozessorvorrichtung wie einem System auf einem Chip (SoC), einer anwendungsspezifischen integrierten Schaltung (ASIC), einem feldprogrammierbaren Gate-Array (FPGA) oder einer anderen Hardwarekomponente enthalten ist. Die Verschlüsselungs-Entschlüsselungs-Engine 540 kann sowohl in dem Knoten, der die Telemetrienachricht sendet, als auch in dem Knoten, der die Telemetrienachricht empfängt, enthalten sein, wie in der Speicherungsvorrichtung, welche die Telemetrienachricht sendet, und dem Host/Client, der die Telemetrienachricht empfängt. In einigen Ausführungsformen kann die Verschlüsselungs-/Entschlüsselungs-Engine 540 einen oder mehrere ausgewählte Verschlüsselungsalgorithmen und -standards für Telemetriedaten oder Abschnitte davon implementieren, wie beispielsweise den erweiterten Verschlüsselungsstandard (AES)-128 oder einen anderen Verschlüsselungsstandard.
  • In einigen Ausführungsformen kann die Verschlüsselungs-/Entschlüsselungs-Engine 540 eine Vielzahl von Hardware- und/oder Softwaremodulen einschließen, die eingerichtet sind, um den Prozessor 512 und den Speicher 514 (und/oder einen dedizierten Prozessor und Speicher einer diskreten Verschlüsselungs-/Entschlüsselungs-Engine) zu verwenden, um bestimmte Vorgänge der Verschlüsselungs-/Entschlüsselungs-Engine 540 zu verarbeiten oder zu verwalten. Die Verschlüsselungs-/Entschlüsselungs-Engine 540 kann zum Beispiel eine Offload-Chiffre 542 und eine Zugriffssteuerungs-Chiffre 544 einschließen oder aktivieren. Die Offload-Chiffre 542 kann einen symmetrischen Verschlüsselungsalgorithmus einschließen, der einen Offload-Verschlüsselungsschlüssel zum Verschlüsseln und Entschlüsseln von Telemetriedaten und/oder anderen Abschnitten einer Telemetriedatennachricht verwendet, die vom Telemetrienachrichtenbearbeiter 534 generiert und/oder vom Telemetriedatenmanager 550 empfangen wurde. Die Zugriffssteuerungs-Chiffre 544 kann einen asymmetrischen Verschlüsselungsalgorithmus einschließen, der einen oder mehrere Zugriffssteuerungsverschlüsselungsschlüssel zum Verschlüsseln und Entschlüsseln von Telemetriedaten und/oder anderen Abschnitten der Telemetrienachricht verwendet, die vom Nachrichtenbearbeiter 534 generiert und/oder vom Telemetriedatenmanager 550 empfangen wurden. In einigen Ausführungsformen kann die Zugriffssteuerungs-Chiffre 544 auf einem öffentlich-privaten Schlüsselpaar basieren, wobei der entsprechende öffentliche Verschlüsselungsschlüssel zum Verschlüsseln der Zieldaten und der entsprechende private Verschlüsselungsschlüssel zum Entschlüsseln der Zieldaten verwendet wird.
  • Der Telemetriedatenmanager 550 kann ein Schnittstellenprotokoll und/oder einen Satz von Funktionen, Parametern und/oder Datenstrukturen zum Empfangen, Parsen, Speichern, Analysieren und anderweitigem Verwalten von Telemetriedatennachrichten von einer oder mehreren Speicherungsvorrichtungen einschließen. So kann der Telemetriedatenmanager 550 zum Beispiel einen oder mehrere administrative Befehlssätze für die Meldung von Telemetriedaten unterstützen und die entsprechende Speicherung, Aggregation, Analyse und Präsentation für einen Benutzer oder eine andere Systemkomponente bereitstellen. Der Telemetriedatenmanager 550 kann weiterhin Kommunikationsprotokolle für Speicherungsvorrichtungen einschließen, die mit der Konfiguration und Aktivierung sicherer Telemetrienachrichten von einer Speicherungsvorrichtung oder einem oder mehreren anderen Hosts oder Clients kompatibel sind.
  • In einigen Ausführungsformen kann der Telemetriedatenmanager 550 eine Vielzahl von Hardware- und/oder Softwaremodulen einschließen, die eingerichtet sind, dass sie den Prozessor 512 und den Speicher 514 nutzen, um definierte Vorgänge des Telemetriedatenmanagers 550 zu handhaben oder zu verwalten. Der Telemetriedatenmanager 550 kann zum Beispiel einen Telemetriedatenempfänger 552 einschließen, der eingerichtet ist, um einen oder mehrere Befehlstypen für den Empfang von Telemetrienachrichten von Speicherungsvorrichtungen und/oder anderen Knotenpunkten zu handhaben. In einigen Ausführungsformen kann der Telemetriedatenmanager 550 einen Schlüsselmanager 554 einschließen, der eingerichtet ist, um einen oder mehrere Verschlüsselungsschlüssel für die Entschlüsselung von Telemetrienachrichten zu verwalten, die vom Telemetriedatenempfänger 552 empfangen wurden. In einigen Ausführungsformen kann der Telemetriedatenmanager 550 einen Nachrichtenprozessor 556 einschließen, der Telemetrienachrichten analysiert und die aus diesen Nachrichten empfangenen Telemetriedaten speichert. In einigen Ausführungsformen kann der Telemetriedatenmanager 550 die Telemetriedatenanalyse 558 einschließen, die eingerichtet ist, um aggregierte Telemetriedaten für die Präsentation und/oder das Initialisieren der automatischen Verwaltung von Speicherungsvorrichtungen und zugehörigen Speichersystemkomponenten und -anwendungen zu analysieren. In einigen Ausführungsformen kann der Telemetriedatenmanager 550 eine Benutzerschnittstelle 560 einschließen, die eingerichtet ist, um einem Benutzer Telemetriedaten über eine grafische Benutzerschnittstelle und/oder ein Display eines Benutzersystems, wie eines Client-Systems, anzuzeigen.
  • Der Telemetriedatenempfänger 552 kann eine Schnittstelle, wie eine Befehlsschnittstelle oder eine Anwendungsprotokollschnittstelle (API), zum Empfang von Telemetrienachrichten von einer oder mehreren Speicherungsvorrichtungen einschließen. Zum Beispiel kann der Telemetriedatenempfänger 552 sowohl NVMe-konforme Kommunikations-, Befehls- und Syntaxfunktionen, Vorgänge und Datenstrukturen für den Empfang von NVMe-Telemetriebefehlen von Speicherungsvorrichtungen und/oder anderen Knoten einschließen. In einigen Ausführungsformen kann der Telemetriedatenempfänger 552 Telemetrienachrichten auf der Grundlage einer Telemetriekopfzeile empfangen, die eingerichtet ist, um den Telemetriebefehl an einen Zielknoten weiterzuleiten, wie ein Host- oder Client-System, das den Telemetriedatenmanager 550 einschließt. Der Telemetriedatenempfänger 552 kann eine Telemetrienachricht empfangen und identifizieren und sie zum Verarbeiten an den Nachrichtenprozessor 556 weiterleiten.
  • In einigen Ausführungsformen kann der Telemetriedatenmanager 550 eingerichtet sein, um sichere Telemetrienachrichten zu verarbeiten, die einen oder mehrere verschlüsselte Abschnitte einschließen, wie verschlüsselte Telemetriedaten, Inhaltsverzeichnisse und/oder Unterkopfzeilen. Der Telemetriedatenmanager 550 kann einen Schlüsselmanager 554 einschließen, der eingerichtet ist, um mindestens einen Zugriffssteuerungsverschlüsselungsschlüssel zur Verwendung beim Zugriff auf die Telemetriedaten der sicheren Telemetrienachrichten zu speichern. Der Schlüsselmanager 554 kann zum Beispiel einen privaten Verschlüsselungsschlüssel 554.1 einschließen, der einem öffentlich-privaten Schlüsselpaar entspricht, wobei der entsprechende öffentliche Verschlüsselungsschlüssel von der Speicherungsvorrichtung zum Verschlüsseln von mindestens einem Abschnitt der Telemetrienachricht verwendet wurde. In einigen Ausführungsformen kann der private Verschlüsselungsschlüssel 554.1 verwendet werden, um einen verschlüsselten Offload-Verschlüsselungsschlüssel, ein Inhaltsverzeichnis, eine Unterkopfzeile und/oder einen oder mehrere Datenabschnitte zu entschlüsseln, die für den selektiven Zugriff unter Verwendung des privaten Verschlüsselungsschlüssels 554.1 bestimmt sind. Zum Beispiel kann der Nachrichtenprozessor 556 den privaten Verschlüsselungsschlüssel 554.1 vom Schlüsselmanager 554 abrufen und ihn der Verschlüsselungs-/Entschlüsselungsmaschine 540 zur Entschlüsselung eines oder mehrerer Abschnitte der Telemetrienachricht bereitstellen.
  • In einigen Ausführungsformen kann der Nachrichtenprozessor 556 eingerichtet sein, um die vom Telemetriedatenempfänger 552 empfangene Telemetrienachricht zu analysieren und die Verschlüsselungs-/Entschlüsselungs-Engine 540 verwendet, um relevante Abschnitte der Telemetrienachricht unter Verwendung der entsprechenden Verschlüsselungsschlüssel selektiv zu entschlüsseln. Zum Beispiel kann der Nachrichtenprozessor 556 eine verschlüsselte Telemetrienachricht von einem Telemetriebefehl empfangen, der vom Telemetriedatenempfänger 552 empfangen wurde, die verschlüsselte Telemetrienachricht durch Entschlüsselung relevanter Abschnitte verarbeiten und Telemetriedaten zur Verwendung durch den Telemetriedatenmanager 550 zurückgeben. In einigen Ausführungsformen kann der Nachrichtenprozessor 556 eine Maske, Schablone und/oder Logik zum Parsen bestimmter Abschnitte der Telemetrienachricht einschließen, um gewünschte Felder oder Parameter zu lesen oder zu extrahieren. Der Nachrichtenprozessor 556 kann zum Beispiel eingerichtet sein, um Kopfzeilen, Unterkopfzeilen, Inhaltsverzeichnisse, Verschlüsselungsschlüssel und einen oder mehrere Abschnitte mit Telemetriedaten aus definierten Feldern innerhalb der Telemetrienachricht zu identifizieren.
  • In einigen Ausführungsformen kann der Nachrichtenprozessor 556 die Offload-Verschlüsselungslogik 556.1 einschließen, die konfiguriert ist, um einen Offload-Verschlüsselungsschlüssel zur Verwendung bei der Entschlüsselung eines oder mehrerer Abschnitte der Telemetrienachricht zu bestimmen. Zum Beispiel kann die Offload-Schlüssellogik 556.1 die Stelle in der Telemetrienachricht bestimmen, die eine Version des Offload-Verschlüsselungsschlüssels enthält, die mit dem dem Telemetriedatenmanager 550 zugewiesenen Zugriffssteuerungsverschlüsselungsschlüssel verschlüsselt wurde. Die Offload-Schlüssellogik 556.1 kann auf den privaten Verschlüsselungsschlüssel 554.1 vom Schlüsselmanager 554 zugreifen und die Verschlüsselungs-/Entschlüsselungsmaschine 540 verwenden, um den verschlüsselten Offload-Verschlüsselungsschlüssel zu entschlüsseln und den entschlüsselten Offload-Verschlüsselungsschlüssel zurückzugeben. In einigen Ausführungsformen kann die Offload-Schlüssellogik 556.1 eingerichtet sein, um mehrere Verschlüsselungsschlüssel aus der Telemetrienachricht zu identifizieren und zu entschlüsseln.
  • In einigen Ausführungsformen kann der Nachrichtenprozessor 556 eine Kopfzeilen-/Inhaltsverzeichnislogik 556.2 einschließen, die konfiguriert ist, um eine oder mehrere Kopfzeilen, Inhaltsverzeichnisse oder andere beschreibende Parameter zur Verwendung beim Parsen der Telemetrienachricht zu bestimmen. Zum Beispiel kann die Kopfzeilen-/Inhaltsverzeichnislogik 556.2 die Stellen innerhalb der Telemetrienachricht bestimmen, die Kopfzeilen, Unterkopfzeilen und mindestens ein Inhaltsverzeichnis enthalten. In einigen Ausführungsformen kann die Kopfzeilen-/Inhaltsverzeichnislogik 556.2 verschlüsselte Kopfzeilen- und/oder Inhaltsverzeichnisdaten unterstützen. Zum Beispiel kann die Kopfzeilen-/Inhaltsverzeichnislogik 556.2 einen mit der Telemetrienachricht bereitgestellten Offload-Verschlüsselungsschlüssel und/oder einen im Schlüsselmanager 554 gespeicherten Verschlüsselungsschlüssel verwenden, um die verschlüsselte Kopfzeile oder das verschlüsselte Inhaltsverzeichnis zu entschlüsseln. In einigen Ausführungsformen kann die Telemetrienachricht mehrere Kopfzeilen und/oder Inhaltsverzeichnisse einschließen, und die Kopfzeilen-/Inhaltsverzeichnislogik 556.2 kann die Kopfzeilen und/oder Inhaltsverzeichnisse identifizieren, die den Zugriffsrechten und/oder dem Zugriffssteuerungsverschlüsselungsschlüssel entsprechen, der dem Telemetriedatenmanager 550 zugewiesen ist. In einigen Ausführungsformen kann jeder Tabelleneintrag innerhalb eines Inhaltsverzeichnisses eine separate Verschlüsselung einschließen, die von Knoten mit entsprechenden Zugriffsrechten selektiv entschlüsselt werden kann, wie vorstehend in Bezug auf 3 beschrieben, und die Kopfzeilen-/Inhaltsverzeichnislogik 556.2 kann eingerichtet sein, um einzelne Tabelleneinträge zu analysieren und geeignete Verschlüsselungsalgorithmen und -schlüssel für den selektiven Aufruf der Verschlüsselungs-/Entschlüsselungs-Engine 540 zu bestimmen.
  • In einigen Ausführungsformen kann der Nachrichtenprozessor 556 die Telemetriedatenlogik 556.2 einschließen, die eingerichtet ist, um einen oder mehrere Datenabschnitte mit Telemetriedaten zu bestimmen und diese Telemetriedaten zur Verwendung durch den Telemetriedatenmanager 550 zu speichern. Zum Beispiel kann das Inhaltsverzeichnis in der Telemetrienachricht eine Vielzahl von Datenabschnitten definieren, die verschiedene Abschnitte der Telemetriedaten enthalten, und die Telemetriedatenlogik 556.2 kann die Werte in den Datenabschnitten analysieren, sie mit geeigneten Parametern oder Datentypen verknüpfen und sie in einem Telemetriedatenspeicher zur aggregierten Verwendung durch den Telemetriedatenmanager 550 speichern. In einigen Ausführungsformen können ein oder mehrere Datenabschnitte mit einem oder mehreren Verschlüsselungsalgorithmen und Schlüsseln verschlüsselt werden, und die Telemetriedatenlogik 556.2 kann eingerichtet sein, dass sie selektiv die Verschlüsselungs-/Entschlüsselungs-Engine 540 aufruft, um verschlüsselte Telemetriedaten zu entschlüsseln und entschlüsselte Telemetriedaten zurückzugeben. Zum Beispiel kann die gesamte Nutzlast der Telemetriedaten mit einem Offload-Verschlüsselungsschlüssel verschlüsselt werden, der mit der Telemetrienachricht bereitgestellt wird, und/oder ein oder mehrere Datenabschnitte können mit Zugriffssteuerungsverschlüsselungsschlüsseln verschlüsselt werden. In einigen Ausführungsformen kann die Telemetriedatenlogik 556.2 eine Telemetriedatentabelle oder eine andere Datenstruktur einschließen, um zu bestimmen, wo die empfangenen Telemetriedaten zur weiteren Verwendung gespeichert werden.
  • Die Telemetriedatenanalyse 558 kann eine Schnittstelle zu einem oder mehreren Datenanalysetools oder Bibliotheken einschließen oder bereitstellen, um aggregierte Telemetriedaten zu analysieren, die vom Telemetriedatenmanager 550 empfangen und gespeichert wurden. Die Telemetriedatenanalyse 558 kann zum Beispiel einen oder mehrere analytische Algorithmen einschließen, die darauf abzielen, Betriebsdaten von einer oder mehreren Speicherungsvorrichtungen zu aggregieren, um die Leistung zu überwachen, Trends zu bestimmen und/oder Ereignisse zu identifizieren, die weitere Aktionen oder Verarbeitungen auslösen. In einigen Ausführungsformen kann die Telemetriedatenanalyse 558 einen konfigurierbaren Satz von Benutzerwarnungen einschließen, um einen Benutzer oder andere Systemkomponenten zu benachrichtigen, wenn eine Benachrichtigungsschwelle erreicht wird. So kann zum Beispiel ein Schwellenwert für die Gesamtfehlerrate einer Speicherungsvorrichtung und/oder ein damit verbundener Änderungswert mit einem Schwellenwert für einen Parameter verglichen werden, um einen Benutzerhinweis zu generieren, dass die Vorrichtung weiter überwacht, gewartet und/oder ersetzt werden muss. In einigen Ausführungsformen kann die Telemetriedatenanalyse 558 eingerichtet sein, um Betriebsparameter aus den Telemetriedaten über Speicherungsvorrichtungen in einem oder mehreren Speicherpools, Arrays oder hierarchischen Konfigurationen zu aggregieren.
  • Die Benutzerschnittstelle 560 kann eingerichtet sein, um eine grafische Benutzerschnittstelle zum Anzeigen von Telemetriedaten und zugehörigen Analysen und zur Navigation auf einer Benutzervorrichtung bereitzustellen. Zum Beispiel kann die Benutzerschnittstelle 560 eine grafische Benutzerschnittstelle für den Telemetriedatenmanager 550 über einen Webbrowser oder eine andere Anwendung anzeigen, die auf einem Personalcomputer, Laptop oder einer mobilen Vorrichtung läuft, um den Zugriff auf den Telemetriedatenmanager 550 bereitzustellen. In einigen Ausführungsformen kann die Benutzerschnittstelle 560 es einem Benutzer ermöglichen, durch die vom Telemetriedatenmanager 550 gesammelten Telemetriedaten zu navigieren und sie anzuzeigen. Die Benutzerschnittstelle 560 kann es dem Benutzer beispielsweise ermöglichen, Telemetriedaten für die Anzeige in Form von Datentabellen, Diagrammen und/oder anderen Visualisierungen auszuwählen. Die Benutzerschnittstelle 560 kann eingerichtet sein, um aus den aggregierten Telemetriedaten abgeleitete Daten und Parameter anzuzeigen, wie die von der Telemetriedatenanalyse 558 ermittelten Daten. In einigen Ausführungsformen kann die Benutzerschnittstelle 560 dem Benutzer auch ermöglichen, die Konfiguration des Telemetriedatenmanagers 550 zu verwalten, wie die Auswahl der überwachten Speicherungsvorrichtungen, der gesammelten Telemetriedaten, der Auslöser für die Datensammlung, der Warnungen auf der Grundlage der überwachten Telemetriedaten usw.
  • Wie in 6 dargestellt, kann das Speichersystem 500 gemäß einem beispielhaften Verfahren zur mehrschichtigen Verschlüsselung von Telemetriedaten in einer Telemetrienachricht betrieben werden, d.h. gemäß dem Verfahren 600, das durch die Blöcke 610-634 in 6 veranschaulicht wird.
  • Bei Block 610 kann ein Telemetrienachrichtenauslöser bestimmt werden. Zum Beispiel kann ein Telemetrienachrichtenbearbeiter in der Speicherungsvorrichtungssteuerung feststellen, dass ein oder mehrere regelbasierte Auslöser für das Sammeln eines Telemetriedatensatzes und das Senden an einen oder mehrere Hosts erfüllt wurden.
  • Bei Block 612 können die Telemetriedaten der Speicherungsvorrichtung gesammelt werden. Der Telemetrienachrichtenbearbeiter kann zum Beispiel einen oder mehrere Speicherplätze in der Speicherungsvorrichtung zum Sammeln von Telemetriedaten, wie Arbeitslastdaten, Fehlerraten, Protokolldaten usw. bestimmen und einen Telemetriedatensatz für die Telemetrienachricht zusammenstellen.
  • Bei Block 614 kann ein Offload-Verschlüsselungsschlüssel bestimmt werden. Der Telemetrienachrichtenbearbeiter kann zum Beispiel einen Offload-Verschlüsselungsschlüssel für diese Telemetrienachricht generieren.
  • Bei Block 616 können die Telemetriedaten unter Verwendung des Offload-Verschlüsselungsschlüssels verschlüsselt werden. Der Telemetrienachrichtenbearbeiter kann zum Beispiel eine Verschlüsselungs-Engine aufrufen, welche die Telemetriedaten mit Hilfe des Offload-Verschlüsselungsschlüssels mit einer symmetrischen Chiffre verschlüsselt.
  • Bei Block 618 können die Verschlüsselungsschlüssel für die Zugriffssteuerungsverschlüsselungsschlüssel bestimmt werden. Der Telemetrienachrichtenbearbeiter kann zum Beispiel einen oder mehrere Zugriffssteuerungsverschlüsselungsschlüssel einschließen, wie öffentliche Schlüssel, die entsprechenden privaten Schlüsseln zugeordnet sind, die von einer oder mehreren autorisierten Stellen kontrolliert werden.
  • Bei Block 620 kann der Offload-Verschlüsselungsschlüssel mit Zugriffssteuerungsverschlüsselungsschlüsseln verschlüsselt werden. Zum Beispiel kann der Telemetrienachrichtenbearbeiter die Verschlüsselungs-Engine aufrufen, um den Offload-Verschlüsselungsschlüssel mit Hilfe des Zugriffssteuerungsverschlüsselungsschlüssels mit einer asymmetrischen Chiffre zu verschlüsseln.
  • Bei Block 622 kann die Telemetrienachricht formatiert werden. Zum Beispiel kann der Telemetrienachrichtenbearbeiter die verschlüsselten Telemetriedaten und den verschlüsselten Offload-Verschlüsselungsschlüssel sowie eine oder mehrere Kopfzeilen, Unterkopfzeilen und/oder Inhaltsverzeichnisse gemäß einem Nachrichtenformat formatieren, das mit einem Telemetriebefehl kompatibel ist.
  • Bei Block 624 kann die Telemetrienachricht gesendet werden. Zum Beispiel kann der Telemetrienachrichtenbearbeiter den Telemetriebefehl über die entsprechenden Protokolle der Speicherschnittstellen und Zielknoten für den Empfang des Telemetriebefehls senden.
  • Bei Block 626 kann die Telemetrienachricht empfangen werden. Zum Beispiel können ein oder mehrere Host- oder Client-Systeme, die einen Telemetriedatenmanager einschließen, den Telemetriebefehl von der Speicherungsvorrichtung empfangen.
  • Bei Block 628 kann ein Zugriffssteuerungsverschlüsselungsschlüssel bestimmt werden. Zum Beispiel kann der Telemetriedatenmanager einen oder mehrere Zugriffssteuerungsverschlüsselungsschlüssel einschließen oder darauf zugreifen, wie private Schlüssel, die entsprechenden öffentlichen Schlüsseln zugeordnet sind, die zum Verschlüsseln eines oder mehrerer Abschnitte der Telemetrienachricht verwendet werden.
  • Bei Block 630 kann der Offload-Verschlüsselungsschlüssel mit dem Zugriffssteuerungsverschlüsselungsschlüssel entschlüsselt werden. Der Telemetriedatenmanager kann zum Beispiel eine Verschlüsselungs-Engine aufrufen, um den verschlüsselten Offload-Verschlüsselungsschlüssel mit Hilfe des Zugriffssteuerungsverschlüsselungsschlüssels zu entschlüsseln und den entschlüsselten Offload-Verschlüsselungsschlüssel zurückzugeben.
  • Bei Block 632 können die Telemetriedaten mit dem Offload-Verschlüsselungsschlüssel entschlüsselt werden. Zum Beispiel kann der Telemetriedatenmanager die Verschlüsselungs-Engine aufrufen, um die verschlüsselten Telemetriedaten mit Hilfe des entschlüsselten Offload-Verschlüsselungsschlüssels mit einer symmetrischen Chiffre zu entschlüsseln und entschlüsselte Telemetriedaten zurückzugeben.
  • Bei Block 634 können die Telemetriedaten gespeichert werden. Der Telemetriedatenmanager kann zum Beispiel die entschlüsselten Telemetriedaten zur späteren Verwendung durch den Host oder Client speichern.
  • Wie in 7 gezeigt, kann das Speichersystem 500 gemäß einem beispielhaften Vorgang zum Unterstützen periodischer Telemetriebefehle betrieben werden, d. h. gemäß dem durch die Blöcke 710-718 in 7 veranschaulichten Verfahren 700. In einigen Ausführungsformen können ein oder mehrere Blöcke des Verfahrens 700 in Verbindung mit dem Verfahren 600 in 6 verwendet werden.
  • Bei Block 710 können Telemetriedaten in regelmäßigen Abständen von einer Speicherungsvorrichtung gesammelt werden. Zum Beispiel kann der Telemetrienachrichtenbearbeiter in der Speicherungsvorrichtungssteuerung periodische Telemetrienachrichtenauslöser auswerten, wie beispielsweise die Meldung von Telemetriedaten in regelmäßigen zeitbasierten Intervallen oder basierend auf einer oder mehreren wiederkehrenden Auslösebedingungen.
  • Bei Block 712 kann für jeden Datensatz ein neuer Offload-Verschlüsselungsschlüssel generiert werden. Der Telemetrienachrichtenbearbeiter kann zum Beispiel einen Schlüsselgenerator einschließen und für jede Telemetrienachricht einen neuen Offload-Verschlüsselungsschlüssel generieren.
  • Bei Block 714 kann jeder Telemetriedatensatz mit einem neuen Offload-Verschlüsselungsschlüssel verschlüsselt werden. Wenn zum Beispiel jeder Telemetriedatensatz zu einer Telemetrienachricht verarbeitet wird, kann ein neuer Offload-Verschlüsselungsschlüssel aus Block 712 von einer Verschlüsselungs-Engine verwendet werden, um einen oder mehrere Abschnitte der Telemetrienachricht zu verschlüsseln.
  • Bei Block 716 kann die Telemetrienachricht in Übereinstimmung mit einem NVMe-Telemetriebefehl formatiert werden. Zum Beispiel kann der Telemetrienachrichtenbearbeiter die Telemetrienachricht, einschließlich der verschlüsselten Telemetriedaten, formatieren, um der Syntax, den Parametern und den Protokollen eines NVMe-Telemetriebefehls zu entsprechen.
  • Bei Block 718 kann die Telemetrienachricht mit dem NVMe-Telemetriebefehl gesendet werden. Der Telemetrienachrichtenbearbeiter kann die Telemetrienachricht zum Beispiel mit dem NVMe-Telemetriebefehl an einen oder mehrere NVMe-Hostknoten senden.
  • Wie in 8 gezeigt, kann das Speichersystem 500 gemäß einem beispielhaften Verfahren zum Unterstützen mehrerer verschlüsselter Datenabschnitte innerhalb einer Telemetrienachricht betrieben werden, d. h. gemäß dem durch die Blöcke 810-824 in 8 veranschaulichten Verfahren 800. In einigen Ausführungsformen können ein oder mehrere Blöcke des Verfahrens 700 in Verbindung mit dem Verfahren 600 in 6 verwendet werden.
  • Bei Block 810 kann ein Telemetriedatensatz gesammelt werden. Zum Beispiel kann ein Telemetrienachrichtenbearbeiter in der Speicherungsvorrichtungssteuerung einer Speicherungsvorrichtung einen Satz von Telemetriedatenwerten, Parametern oder Protokollen für eine Telemetrienachricht sammeln.
  • Bei Block 812 können Datenabschnitte, die Abschnitten des Telemetriedatensatzes entsprechen, bestimmt werden. Zum Beispiel kann der Telemetrienachrichtenbearbeiter Telemetriedaten aus dem Telemetriedatensatz in eine Vielzahl von Telemetriedatenabschnitten gruppieren, die verwandten Parametern, Zeiträumen, Source-Komponenten oder Protokollen usw. entsprechen, und jeden Abschnitt einem entsprechenden Datenabschnitt in der Telemetrienachricht zuordnen.
  • Bei Block 814 können Verschlüsselungslogik und/oder Verschlüsselungsschlüssel für jeden Datenabschnitt bestimmt werden. Der Telemetrienachrichtenbearbeiter kann zum Beispiel Parameter zum Definieren der Datenabschnitte einschließen und jeden mit einem oder mehreren Sätzen von Zugangsdaten verknüpfen, wie Verschlüsselungstypen oder -algorithmen und Verschlüsselungsschlüsselinformationen.
  • Bei Block 816 kann ein Inhaltsverzeichnis für die Telemetrienachricht formatiert werden. Der Telemetrienachrichtenbearbeiter kann zum Beispiel eine Logik einschließen, mit der ein Inhaltsverzeichnis erstellt wird, das die einzelnen Datenabschnitte anzeigt.
  • Bei Block 818 können die Datenabschnitte gemäß der entsprechenden Verschlüsselungslogik verschlüsselt werden. So kann der Telemetrienachrichtenbearbeiter zum Beispiel für einen oder mehrere sichere Telemetriedatenabschnitte selektiv eine Verschlüsselungs-Engine aufrufen und den zu verwendenden Chiffrier- und Verschlüsselungsschlüssel angeben.
  • Bei Block 820 kann das Inhaltsverzeichnis verschlüsselt werden. Der Telemetrienachrichtenbearbeiter kann zum Beispiel das Inhaltsverzeichnis verschlüsseln, indem er beispielsweise einen Offload-Verschlüsselungsschlüssel oder einen oder mehrere Verschlüsselungsschlüssel für die Zugriffssteuerung verwendet. Die Formatierung der Telemetrienachricht kann abgeschlossen werden und die Telemetrienachricht kann von der Speicherungsvorrichtung an ein oder mehrere Host- oder Client-Systeme gesendet werden, die zum selektiven Zugriff auf einen oder mehrere Datenabschnitte in der Telemetrienachricht berechtigt sind.
  • Bei Block 822 kann das Inhaltsverzeichnis entschlüsselt werden. Das Hostsystem, das die Telemetrienachricht empfängt, kann zum Beispiel einen Telemetriedatenmanager einschließen, der eingerichtet ist, um die verschiedenen Felder in der Telemetrienachricht zu analysieren, einen eventuell benötigten Offload-Verschlüsselungsschlüssel zu identifizieren und/oder zu entschlüsseln, und entschlüsselt das Inhaltsverzeichnis, um die in der Telemetrienachricht enthaltenen autorisierten Datenabschnitte zu identifizieren.
  • Bei Block 824 können ein oder mehrere Datenabschnitte selektiv entschlüsselt werden. Zum Beispiel kann der Telemetriedatenmanager die Informationen aus dem Inhaltsverzeichnis verwenden, um einen oder mehrere Datenabschnitte zu bestimmen, für die er die Zugriffsberechtigung und die entsprechenden Verschlüsselungsschlüssel besitzt, dann die Verschlüsselungs-Engine und die Verschlüsselungsschlüssel verwenden, um die autorisierten Datenabschnitte zu verschlüsseln.
  • Wie in 9 gezeigt, kann das Speichersystem 500 gemäß einem beispielhaften Verfahren zur Verwendung von öffentlich-privaten Schlüsselpaaren für verschiedene Parteien mit Zugriff auf die Telemetriedaten betrieben werden, d. h. gemäß dem Verfahren 900, das durch die Blöcke 910-924 in 9 veranschaulicht wird. In einigen Ausführungsformen können ein oder mehrere Blöcke des Verfahrens 700 in Verbindung mit dem Verfahren 600 in 6 verwendet werden.
  • Bei Block 910 kann eine Partei mit Zugriff auf Telemetriedaten bestimmt werden. Zum Beispiel kann ein Telemetriedatenmanager in einem Hostsystem, das einer genehmigten Partei gehört, so eingerichtet sein, dass er sichere Telemetrienachrichten von einer oder mehreren Speicherungsvorrichtungen empfängt.
  • Bei Block 912 kann ein öffentlich-privates Schlüsselpaar bestimmt werden. Zum Beispiel kann der Telemetriedatenmanager ein öffentlich-privates Schlüsselpaar für eine asymmetrische Chiffre in einer Verschlüsselungs-Engine, auf die der Telemetriedatenmanager Zugriff hat, empfangen oder generieren.
  • Bei Block 914 kann der öffentliche Verschlüsselungsschlüssel an eine oder mehrere Speicherungsvorrichtungen gesendet werden. Zum Beispiel kann der Telemetriedatenmanager den öffentlichen Verschlüsselungsschlüssel aus dem öffentlich-privaten Schlüsselpaar an die Speicherungsvorrichtungen senden, von denen er sichere Telemetriedaten empfangen wird.
  • Bei Block 916 kann der öffentliche Verschlüsselungsschlüssel in der Speicherungsvorrichtung gespeichert werden. Die Speicherungsvorrichtungen, die den öffentlichen Verschlüsselungsschlüssel empfangen, können zum Beispiel einen sicheren Schlüsselmanager einschließen, um den öffentlichen Schlüssel zur Verschlüsselung von Telemetrienachrichten sicher zu speichern.
  • Bei Block 918 kann der private Schlüssel gespeichert werden. Der Telemetriedatenmanager kann zum Beispiel einen sicheren Schlüsselmanager einschließen, um den privaten Schlüssel für die Entschlüsselung von Telemetrienachrichten sicher zu speichern.
  • Bei Block 920 kann eine Telemetrienachricht empfangen werden. Der Telemetriedatenmanager kann zum Beispiel Telemetrienachrichten von den für sichere Telemetrienachrichten eingerichteten Speicherungsvorrichtungen empfangen.
  • Bei Block 922 kann der Inhalt der Telemetrienachricht mit dem privaten Verschlüsselungsschlüssel entschlüsselt werden. Zum Beispiel kann der Telemetriedatenmanager den privaten Verschlüsselungsschlüssel und eine Verschlüsselungs-Engine mit der entsprechenden asymmetrischen Chiffre verwenden, um einen oder mehrere Abschnitte der sicheren Telemetrienachricht zu entschlüsseln, wie einen Offload-Verschlüsselungsschlüssel und/oder Unterkopfzeilen, Inhaltsverzeichnisse und/oder Datenabschnitte, die ausschließlich für den Zugriff mit dem privaten Verschlüsselungsschlüssel bestimmt sind.
  • Während mindestens eine beispielhafte Ausführungsform in der vorstehenden ausführlichen Beschreibung der Technologie dargestellt worden ist, sollte gewürdigt werden, dass eine große Anzahl von Variationen existieren kann. Es sollte auch beachtet werden, dass eine beispielhafte Ausführungsform oder die beispielhaften Ausführungsformen Beispiele sind, und in keiner Weise den Umfang, die Anwendbarkeit, oder Konfiguration der Technologie einschränken sollen. Die vorangehende genaue Beschreibung wird vielmehr eine brauchbare Anleitung für Fachleute zur Implementierung einer beispielhaften Ausführungsform der Technologie bereitstellen, wobei es sich versteht, dass verschiedene Modifikationen an einer Funktion und/oder Anordnung von Elementen vorgenommen werden können, die in einer beispielhaften Ausführungsform beschrieben sind, ohne vom Umfang der Technologie abzuweichen, wie in den beigefügten Ansprüchen und ihren rechtlichen Entsprechungen dargelegt.
  • Wie einem Durchschnittsfachmann bekannt, können verschiedene Ausführungsformen der vorliegenden Erfindung als ein System, Verfahren oder Computerprogrammprodukt verkörpert werden. Folglich können Ausführungsformen der vorliegenden Offenlegung die Form einer vollständigen Hardware-Ausführung, einer vollständigen Software-Ausführung (einschließlich Firmware, speicherresidente Software, Mikrocodes, oder dergleichen) oder Ausführungsformen in der Form einer Kombination von Hardware und Software annehmen, die alle allgemein hierin als Schaltung, Modul, System und/oder Netzwerk bezeichnet werden können. Darüber hinaus können verschiedene Ausführungsformen der vorliegenden Technologie die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien verkörpert ist, einschließlich eines darauf ausgebildeten computerlesbaren Programmcodes.
  • Es kann jede Kombination eines oder mehrerer computerlesbarer Speichermedien verwendet werden. Ein computerlesbares Medium kann ein computerlesbares Signalmedium oder ein physisches oder computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann beispielsweise, ohne darauf beschränkt zu sein, ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, ein Gerät oder eine Vorrichtung, usw. oder irgendeine geeignete Kombination der Vorstehenden sein. Nicht einschränkende Beispiele eines physischen computerlesbaren Speichermediums können eine elektrische Verbindung, einschließlich einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, Speicher mit wahlfreiem Zugriff (RAM), Nur-Lese-Speicher (ROM), löschbaren programmierbaren Nur-Lese-Speicher (EPROM), elektrisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM), einen Flash-Speicher, eine optische Faser, einen Compact Disk-Festwertspeicher (CD-ROM), einen optischen Prozessor, einen magnetischen Prozessor usw. oder eine beliebige geeignete Kombination der Vorstehenden einschließen, sind aber nicht darauf beschränkt. Im Kontext dieses Dokuments kann ein computerlesbares und/oder ausführbares Speichermedium jedes greifbare Medium sein, das ein Programm oder Daten zur Verwendung durch ein System, ein Gerät und/oder eine Vorrichtung zur Befehlsausführung oder in Verbindung mit einer/einem solchen, enthalten oder speichern kann.
  • Ein Computercode, der auf einem computerlesbaren Medium enthalten ist, kann unter Verwendung eines beliebigen geeigneten Mediums übertragen werden, einschließlich, aber nicht beschränkt auf, drahtloses, verdrahtetes, optisches Faserkabel, Radiofrequenz (RF), usw. oder jede geeignete Kombination des Vorhergehenden. Ein Computercode zur Ausführung von Prozessen bei Ausführungsformen der vorliegenden Erfindung kann in einer beliebigen statischen Sprache, wie die C-Programmiersprache oder andere ähnliche Programmiersprachen, geschrieben werden. Der Computercode kann vollständig auf einer Rechenvorrichtung des Benutzers, teilweise auf einer Rechenvorrichtung des Benutzers, als ein alleinstehendes Softwarepaket, teilweise auf einer Rechenvorrichtung des Benutzers und teilweise auf einer Remote-Rechenvorrichtung oder vollständig auf der Remote-Vorrichtung oder einem Server ausgeführt werden. In dem letzteren Gedankenspiel kann eine Remote-Rechenvorrichtung mit einer Rechenvorrichtung des Benutzers durch eine beliebige Art von Netzwerk oder Kommunikationssystem, einschließlich, aber nicht begrenzt auf, ein lokales Netzwerk (LAN) oder ein Wide Area Network (WAN), eine Netzkonvergenz, verbunden sein, oder die Verbindung kann zu einem externen Computer (z. B. durch das Internet unter Verwendung eines Internetanbieters) hergestellt werden.
  • Verschiedene Ausführungsformen der vorliegenden Erfindung können vorstehend mit Bezug auf die Flussdiagramme und/oder Blockdiagramme von Verfahren, Vorrichtungen, Systemen und Computerprogrammprodukten beschrieben sein. Es versteht sich, dass jeder Block des schematischen Flussdiagramms und/oder schematischen Blockdiagramms und Kombinationen von Blöcken in den schematischen Flussdiagrammen und/oder schematischen Blockdiagrammen durch Computerprogrammanweisungen implementiert werden kann. Diese Computerprogrammanweisungen können einer Verarbeitungseinheit (Prozessor) eines allgemeinen Computers, speziellen Computers oder einer anderen programmierbaren Datenverarbeitungsanlage zur Erzeugung einer Maschine bereitgestellt werden, so dass die Anweisungen, die über die Verarbeitungsvorrichtung oder andere programmierbare Datenverarbeitungsanlagen ausgeführt werden können, Mittel zum Implementieren der Abläufe/Handlungen in einem Flussdiagramm und/oder Block (Blöcken) eines Blockdiagramms erzeugen.
  • Einige Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder (eine) andere Vorrichtung(en) zum Betrieb in einer bestimmten Weise steuern kann, so dass die in einem computerlesbaren Medium gespeicherten angefertigten Artikel Anweisungen beinhalten, die den in einem Flussdiagramm und/oder Block (Blöcken) eines Blockdiagramms spezifizierten Betrieb/Vorgang implementieren. Einige Computerprogrammanweisungen können auch auf eine Rechenvorrichtung, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Vorrichtung(n) geladen werden, um zu bewirken, dass eine Reihe von Betriebsschritten an der Rechenvorrichtung, einer anderen programmierbaren Vorrichtung oder (einer) anderen Vorrichtung(en) durchgeführt werden, so dass die Anweisungen, die durch den Computer oder eine andere programmierbare Vorrichtung ausgeführt werden, einen oder mehrere Prozesse zur Implementierung der in einem Flussdiagramm und/oder Block (Blöcken) eines Blockdiagramms spezifizierten Betrieb/Vorgang bereitstellen.
  • Ein Flussdiagramm und/oder Blockdiagramm in den vorstehenden Figuren kann eine Bauweise, Funktionalität und/oder einen Vorgang möglicher Implementierungen von Vorrichtungen, Systemen, Verfahren und/oder Computerprogrammprodukten gemäß verschiedenen Gesichtspunkten der vorliegenden Technologie veranschaulichen. In dieser Hinsicht kann ein Block in einem Flussdiagramm oder Blockdiagramm ein Modul, Segment oder einen Teil eines Codes darstellen, der eine oder mehrere ausführbare Anweisungen zum Implementieren einer oder mehrerer spezifizierter logischer Funktionen aufweisen kann. Es sollte auch beachtet werden, dass in einigen alternativen Implementierungen die in dem Block angegebenen Funktionen außerhalb der in den Figuren angegebenen Reihenfolge auftreten können. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, entsprechend der involvierten Funktionalität. Es sei auch angemerkt, dass ein Block einer Blockdiagramm- und/oder einer Flussdiagrammdarstellung oder eine Kombination von Blöcken in einer Blockdiagramm- und/oder einer Flussdiagrammdarstellung durch speziell auf Hardware basierenden Systemen implementiert werden kann, die eine oder mehrere spezifizierte Vorgänge oder Handlungen ausführen, oder durch Kombinationen von Hardware zu speziellen Zwecken und Computeranweisungen.
  • Während ein oder mehrere Gesichtspunkte der vorliegenden Technologie im Detail dargestellt und besprochen wurden, wird ein Fachmann erkennen, dass Modifikationen und/oder Anpassungen an die verschiedenen Gesichtspunkte vorgenommen werden können, ohne vom Umfang der vorliegenden Erfindung abzuweichen, wie in den folgenden Ansprüchen dargelegt.

Claims (20)

  1. System, aufweisend: eine Verschlüsselungs-Engine, die eingerichtet zum: Empfangen von Telemetriedaten der Speicherungsvorrichtung; Verschlüsseln, unter Verwendung eines ersten Verschlüsselungsschlüssels, der Telemetriedaten der Speicherungsvorrichtung; und Verschlüsseln, unter Verwendung des zweiten Verschlüsselungsschlüssels, des ersten Verschlüsselungsschlüssels; und einen Nachrichtenbearbeiter, der eingerichtet ist zum: Formatieren einer Telemetrienachricht, wobei die Telemetrienachricht einschließt: die verschlüsselten Telemetriedaten der Speicherungsvorrichtung; und den verschlüsselten ersten Verschlüsselungsschlüssel auf der Grundlage des zweiten Verschlüsselungsschlüssels; und Senden der Telemetrienachricht an ein erstes Client-System, das zum Entschlüsseln von Folgendem eingerichtet ist: des ersten Verschlüsselungsschlüssels aus dem verschlüsselten ersten Verschlüsselungsschlüssel basierend auf dem zweiten Verschlüsselungsschlüssel; und der Telemetriedaten der Speicherungsvorrichtung aus den verschlüsselten Telemetriedaten der Speicherungsvorrichtung.
  2. System gemäß Anspruch 1, wobei: die Verschlüsselungs-Engine weiterhin eingerichtet ist, um den ersten Verschlüsselungsschlüssel unter Verwendung eines dritten Verschlüsselungsschlüssels zu verschlüsseln; die Telemetrienachricht weiterhin den verschlüsselten ersten Verschlüsselungsschlüssel basierend auf dem dritten Verschlüsselungsschlüssel einschließt; und der Nachrichtenbearbeiter weiterhin eingerichtet ist, um die Telemetrienachricht an ein zweites Client-System zu senden, das zum Entschlüsseln von Folgendem eingerichtet ist: des ersten Verschlüsselungsschlüssels aus dem verschlüsselten ersten Verschlüsselungsschlüssel basierend auf dem dritten Verschlüsselungsschlüssel; und der Telemetriedaten der Speicherungsvorrichtung aus den verschlüsselten Telemetriedaten der Speicherungsvorrichtung.
  3. System gemäß Anspruch 1, wobei: der erste Verschlüsselungsschlüssel ein symmetrischer Schlüssel ist; der zweite Verschlüsselungsschlüssel ein öffentlicher Schlüssel eines öffentlich-privaten Schlüsselpaares ist; und das erste Client-System einen privaten Verschlüsselungsschlüssel für das öffentlich-private Schlüsselpaar des zweiten Verschlüsselungsschlüssels einschließt.
  4. System gemäß Anspruch 1, weiterhin aufweisend eine Datenspeicherungsvorrichtung, die eingerichtet ist zum: regelmäßigen Sammeln von Telemetriedatensätzen; und Senden jedes Telemetriedatensatzes aus einer Vielzahl von Datensätzen an die Verschlüsselungs-Engine, wobei: die Verschlüsselungs-Engine weiterhin eingerichtet ist, um jeden Telemetriedatensatz zu verschlüsseln; und der Nachrichtenbearbeiter weiterhin eingerichtet ist, um jeden verschlüsselten Telemetriedatensatz an das erste Client-System zu senden.
  5. System gemäß Anspruch 4, wobei: die Datenspeicherungsvorrichtung Folgendes einschließt: die Verschlüsselungs-Engine; und den Nachrichtenbearbeiter; die Datenspeicherungsvorrichtung weiterhin eingerichtet ist, um einen neuen ersten Verschlüsselungsschlüssel für jeden Telemetriedatensatz zu generieren; und die Verschlüsselungs-Engine weiterhin eingerichtet ist, um jeden Telemetriedatensatz mit einem anderen ersten Verschlüsselungsschlüssel zu verschlüsseln.
  6. System gemäß Anspruch 5, wobei: die Datenspeicherungsvorrichtung weiterhin eingerichtet ist, um ein nichtflüchtiges Express-Speicherprotokoll (NVMe) zu verwenden; und der Nachrichtenbearbeiter weiterhin eingerichtet ist, einen NVMe-Telemetriebefehl zu verwenden, um die Telemetrienachricht zu senden.
  7. System gemäß Anspruch 1, wobei: die Telemetrienachricht weiterhin Folgendes einschließt: eine Vielzahl von Datenabschnitten, welche die Telemetriedaten der Speicherungsvorrichtung einschließen; und ein Inhaltsverzeichnis, das eingerichtet ist, um jeden Datenabschnitt aus der Vielzahl der Datenabschnitte anzuzeigen; und die Verschlüsselungs-Engine weiterhin eingerichtet ist, um das Inhaltsverzeichnis zu verschlüsseln.
  8. System gemäß Anspruch 7, wobei: die Verschlüsselungs-Engine weiterhin eingerichtet ist zum: Verschlüsseln, unter Verwendung des ersten Verschlüsselungsschlüssels, eines ersten Datenabschnitts aus der Vielzahl von Datenabschnitten; und Verschlüsseln, unter Verwendung des zweiten Verschlüsselungsschlüssels, eines zweiten Datenabschnitts aus der Vielzahl von Datenabschnitten; und das Inhaltsverzeichnis weiterhin eingerichtet ist, um Verschlüsselungsschlüssel anzugeben, die zum Verschlüsseln jedes Datenabschnitts der Vielzahl von Datenabschnitten verwendet werden.
  9. System gemäß Anspruch 1, weiterhin aufweisend das erste Client-System, wobei das erste Client-System aufweist: einen Telemetriedatenmanager, der eingerichtet ist zum: Empfangen der Telemetrienachricht; Bestimmen der verschlüsselten Telemetriedaten der Speicherungsvorrichtung; und Bestimmen des verschlüsselten ersten Verschlüsselungsschlüssels auf der Grundlage des zweiten Verschlüsselungsschlüssels; und eine Entschlüsselungs-Engine, die zum Entschlüsseln von Folgendem eingerichtet ist: des ersten Verschlüsselungsschlüssels aus dem verschlüsselten ersten Verschlüsselungsschlüssel basierend auf dem zweiten Verschlüsselungsschlüssel; und der Telemetriedaten der Speicherungsvorrichtung aus den verschlüsselten Telemetriedaten der Speicherungsvorrichtung.
  10. System gemäß Anspruch 9, wobei: der Telemetriedatenmanager weiterhin eingerichtet ist zum: Speichern eines privaten Verschlüsselungsschlüssels aus einem öffentlich-privaten Schlüsselpaar für den zweiten Verschlüsselungsschlüssel; und Anzeigen der Telemetriedaten der Speicherungsvorrichtung auf einer Benutzerschnittstelle; die Telemetriedaten der Speicherungsvorrichtung schließen mindestens einen Datentyp ein, der ausgewählt ist aus: Daten der Selbstüberwachungs- und Berichtstechnologie (SMART); nichtflüchtigen Express-Speicher (NVMe)-Datenprotokollen; dynamischen Konfigurationsdaten der Speicherungsvorrichtung; Ereignisdatenprotokollen; Debug-Daten; Firmware-Verwaltungsdaten; Fehlerdaten; und Arbeitslastdaten; und die Verschlüsselungs-Engine weiterhin eingerichtet ist, um den privaten Verschlüsselungsschlüssel zum Entschlüsseln des ersten Verschlüsselungsschlüssels aus dem verschlüsselten ersten Verschlüsselungsschlüssel zu verwenden.
  11. Computerimplementiertes Verfahren, aufweisend: Sammeln von Telemetriedaten der Speicherungsvorrichtung; Verschlüsseln, unter Verwendung eines ersten Verschlüsselungsschlüssels, der Telemetriedaten der Speicherungsvorrichtung; Verschlüsseln, unter Verwendung eines zweiten Verschlüsselungsschlüssels, des ersten Verschlüsselungsschlüssels; Formatieren einer Telemetrienachricht, wobei die Telemetrienachricht einschließt: die verschlüsselten Telemetriedaten der Speicherungsvorrichtung; und den verschlüsselten ersten Verschlüsselungsschlüssel auf der Grundlage des zweiten Verschlüsselungsschlüssels; Senden der Telemetrienachricht an ein erstes Client-System; Empfangen der Telemetrienachricht durch das erste Client-System; Entschlüsseln des ersten Verschlüsselungsschlüssels aus dem verschlüsselten ersten Verschlüsselungsschlüssel auf der Grundlage des zweiten Verschlüsselungsschlüssels durch das erste Client-System; und Entschlüsseln der Telemetriedaten der Speicherungsvorrichtung aus den verschlüsselten Telemetriedaten der Speicherungsvorrichtung durch das erste Client-System.
  12. Computerimplementiertes Verfahren gemäß Anspruch 11, weiterhin aufweisend: Verschlüsseln, unter Verwendung eines dritten Verschlüsselungsschlüssels, des ersten Verschlüsselungsschlüssels, wobei die Telemetrienachricht weiterhin den verschlüsselten ersten Verschlüsselungsschlüssel einschließt, der auf dem dritten Verschlüsselungsschlüssel basiert; Senden der Telemetrienachricht an ein zweites Client-System; Entschlüsseln, durch das zweite Client-System, des ersten Verschlüsselungsschlüssels aus dem verschlüsselten ersten Verschlüsselungsschlüssel auf der Grundlage des dritten Verschlüsselungsschlüssels; und Entschlüsseln, durch das zweite Client-System, der Telemetriedaten der Speicherungsvorrichtung aus den verschlüsselten Telemetriedaten der Speicherungsvorrichtung.
  13. Computerimplementiertes Verfahren gemäß Anspruch 11, weiterhin aufweisend: Bestimmen, durch das erste Client-System, eines privaten Verschlüsselungsschlüssels für ein öffentlich-privates Schlüsselpaar des zweiten Verschlüsselungsschlüssels, wobei: das Entschlüsseln des ersten Verschlüsselungsschlüssels aus dem verschlüsselten ersten Verschlüsselungsschlüssel den privaten Verschlüsselungsschlüssel verwendet; der erste Verschlüsselungsschlüssel ein symmetrischer Schlüssel ist; und der zweite Verschlüsselungsschlüssel ein öffentlicher Schlüssel des öffentlich-privaten Schlüsselpaares ist.
  14. Computerimplementiertes Verfahren gemäß Anspruch 11, weiterhin aufweisend: regelmäßiges Sammeln von Telemetriedatensätzen; Verschlüsseln jedes Telemetriedatensatzes; Senden jedes verschlüsselten Telemetriedatensatzes an das erste Client-System; und Entschlüsseln jedes verschlüsselten Telemetriedatensatzes durch das erste Client-System.
  15. Computerimplementiertes Verfahren gemäß Anspruch 14, weiterhin aufweisend: Generieren eines neuen ersten Verschlüsselungsschlüssels für jeden Telemetriedatensatz; und Verschlüsseln jedes Telemetriedatensatzes mit einem ersten Verschlüsselungsschlüssel.
  16. Computerimplementiertes Verfahren gemäß Anspruch 11, wobei: das Sammeln der Telemetriedaten der Speicherungsvorrichtung das Sammeln der Telemetriedaten der Speicherungsvorrichtung von einer Speicherungsvorrichtung einschließt, die zur Verwendung eines nichtflüchtigen Express-Speicherprotokolls (NVMe) eingerichtet ist; und das Senden der Telemetrienachricht die Verwendung eines NVMe-Telemetriebefehls einschließt.
  17. Computerimplementiertes Verfahren gemäß Anspruch 11, weiterhin aufweisend: Verschlüsseln eines Inhaltsverzeichnisses in der Telemetrienachricht, wobei: die Telemetrienachricht eine Vielzahl von Datenabschnitten einschließt, welche die Telemetriedaten der Speicherungsvorrichtung einschließen; und das Inhaltsverzeichnis jeden Datenabschnitt aus der Vielzahl der Datenabschnitte angibt.
  18. Computerimplementiertes Verfahren gemäß Anspruch 17, weiterhin aufweisend: Verschlüsseln eines ersten Datenabschnitts der Vielzahl von Datenabschnitten unter Verwendung des ersten Verschlüsselungsschlüssels; und Verschlüsseln eines zweiten Datenabschnitts der Vielzahl von Datenabschnitten unter Verwendung des zweiten Verschlüsselungsschlüssels, wobei das Inhaltsverzeichnis weiterhin Verschlüsselungsschlüssel angibt, die zum Verschlüsseln jedes Datenabschnitts der Vielzahl von Datenabschnitten verwendet werden.
  19. Computerimplementiertes Verfahren gemäß Anspruch 18, weiterhin aufweisend: Speichern eines privaten Verschlüsselungsschlüssels aus einem öffentlich-privaten Schlüsselpaar für den zweiten Verschlüsselungsschlüssel in dem ersten Client-System, wobei das Entschlüsseln des verschlüsselten ersten Verschlüsselungsschlüssels die Verwendung des privaten Verschlüsselungsschlüssels einschließt; und Speichern, in einer Datenspeicherungsvorrichtung, eines öffentlichen Verschlüsselungsschlüssels aus dem öffentlich-privaten Schlüsselpaar für den zweiten Verschlüsselungsschlüssel, wobei das Verschlüsseln des ersten Verschlüsselungsschlüssels die Verwendung des öffentlichen Verschlüsselungsschlüssels einschließt.
  20. Speichersystem, aufweisend: Datenspeicherungsvorrichtung, aufweisend: eine Speicherungsvorrichtungssteuerung mit einem Steuerungsprozessor und einem Steuerungsspeicher; und ein Speichermedium; ein Client-System, aufweisend: einen Client-Prozessor; und einen Client-Speicher; Mittel zum Sammeln von Telemetriedaten der Speicherungsvorrichtung von der Datenspeicherungsvorrichtung; Mittel zum Verschlüsseln, unter Verwendung eines ersten Verschlüsselungsschlüssels, der Telemetriedaten der Speicherungsvorrichtung; Mittel zum Verschlüsseln, unter Verwendung eines zweiten Verschlüsselungsschlüssels, des ersten Verschlüsselungsschlüssels; Mittel zum Formatieren einer Telemetrienachricht, wobei die Telemetrienachricht Folgendes einschließt: die verschlüsselten Telemetriedaten der Speicherungsvorrichtung; und den verschlüsselten ersten Verschlüsselungsschlüssel auf der Grundlage des zweiten Verschlüsselungsschlüssels; Mittel zum Senden der Telemetrienachricht an das Client-System; Mittel zum Empfangen, durch das Client-System, der Telemetrienachricht; Mittel zum Entschlüsseln, durch das Client-System, des ersten Verschlüsselungsschlüssels aus dem verschlüsselten ersten Verschlüsselungsschlüssel auf der Grundlage des zweiten Verschlüsselungsschlüssels; Mittel zum Entschlüsseln, durch das Client-System, der Telemetriedaten der Speicherungsvorrichtung aus den verschlüsselten Telemetriedaten der Speicherungsvorrichtung; und Mittel zum Anzeigen der Telemetriedaten der Speicherungsvorrichtung auf einer Benutzerschnittstelle durch das Client-System.
DE112021000215.5T 2020-12-17 2021-05-12 Speichersystem mit verschlüsselten Telemetriedaten einer Datenspeicherungsvorrichtung Pending DE112021000215T5 (de)

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
DE112021000215T5 true DE112021000215T5 (de) 2022-09-08

Family

ID=82021737

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021000215.5T Pending DE112021000215T5 (de) 2020-12-17 2021-05-12 Speichersystem mit verschlüsselten Telemetriedaten einer Datenspeicherungsvorrichtung

Country Status (4)

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

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 (de) * 2022-07-21 2024-01-24 Samsung Electronics Co., Ltd. Elektronische vorrichtung zur unterstützung von bandexterner kommunikation und verfahren zum betrieb davon

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
US11616767B2 (en) 2023-03-28
US20220200968A1 (en) 2022-06-23
CN114946154A (zh) 2022-08-26

Similar Documents

Publication Publication Date Title
DE112021000215T5 (de) Speichersystem mit verschlüsselten Telemetriedaten einer Datenspeicherungsvorrichtung
DE102012219155B4 (de) Verschlüsseln von Datenobjekten zur Datensicherung
DE102018123817A1 (de) Vorrichtung für den direkten hostzugriff auf den speicherort einer speichervorrichtung
US10860237B2 (en) Storage integrated snapshot cloning for database
DE112020000178T5 (de) Verwaltung von in zonen unterteilten namensräumen nichtflüchtiger speicherungsvorrichtungen
DE112019005770T5 (de) Speicherverwaltung für ein cloudbasiertes Speichersystem
DE602004011467T2 (de) Speichersteuerungssystem und -verfahren
US8554743B2 (en) Optimization of a computing environment in which data management operations are performed
DE112019000136T5 (de) Objektspeichersystem mit sicherer objektreplikation
DE112013002544T5 (de) Cloudbasiertes Teilen von Datenpunkten und Zusammenarbeit unter Benutzergruppen
DE102013108394A1 (de) Verfahren zum Verwalten eines Schlüssels für sicheres Speichern von Daten und Vorrichtung dafür
DE102014113430A1 (de) Verteilte Datenspeicherung mittels Berechtigungstoken
DE102012110692A1 (de) Datenspeichervorrichtung, die eine unterteilte Datei in verschiedenen Speichermedien speichert, sowie Datenverwaltungsverfahren
DE112020003277T5 (de) Erzeugen von tags für die datenzuweisung
DE202020005693U1 (de) Externe berechtigungsnachweisfreie Stufen für Datenbankintegrationen
DE102018115683A1 (de) Domänenübergreifende sicherheit in kryptographisch partionierter cloud
DE102012218576B4 (de) Verschlüsseln von Daten und Charakterisierungsdaten, die den gültigen Inhalt einer Spalte beschreiben
DE102020105934A1 (de) Gerätefernwartung auf basis verteilter datenspeicherung
DE112020005227T5 (de) Speicherzustandsüberwachung für differenziertedatenwiederherstellungskonfigurationen
US20210405911A1 (en) Storage device feature extraction optimization
DE112016004457T5 (de) Vervielfältigen von Daten in Datenspeichervorrichtungen eines Verknüpfungsvolumens
US20240020396A1 (en) System and method for securing diagnostic data collection using dual encryption
US20220182446A1 (en) Blockchain technology in data storage system
DE112022001372T5 (de) Speicherlöschung unter verwendung von nahbereichsheizelementen
DE102021108961A1 (de) Verschlüsselungsschlüssel von speichersystemen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: MURGITROYD GERMANY PATENTANWALTSGESELLSCHAFT M, DE

Representative=s name: MEWBURN ELLIS LLP, DE

R082 Change of representative

Representative=s name: MURGITROYD GERMANY PATENTANWALTSGESELLSCHAFT M, DE

R081 Change of applicant/patentee

Owner name: SANDISK TECHNOLOGIES, INC. (N.D.GES. D. STAATE, US

Free format text: FORMER OWNER: WESTERN DIGITAL TECHNOLOGIES, INC., SAN JOSE, CA, US