DE102019102317A1 - Verfahren zur verbesserten Datenverteilung unter Speichervorrichtungen - Google Patents

Verfahren zur verbesserten Datenverteilung unter Speichervorrichtungen Download PDF

Info

Publication number
DE102019102317A1
DE102019102317A1 DE102019102317.3A DE102019102317A DE102019102317A1 DE 102019102317 A1 DE102019102317 A1 DE 102019102317A1 DE 102019102317 A DE102019102317 A DE 102019102317A DE 102019102317 A1 DE102019102317 A1 DE 102019102317A1
Authority
DE
Germany
Prior art keywords
storage
storage device
pool
memory
node
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
DE102019102317.3A
Other languages
English (en)
Inventor
Anjaneya Chagam Reddy
Mohan Kumar
Sujoy Sen
Murugasamy Nachimuthu
Gamil Cain
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE102019102317A1 publication Critical patent/DE102019102317A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Beispiele umfassen Techniken zum Bestimmen einer Speicherungsrichtlinie zum Speichern von Daten in einem Datenverarbeitungssystem, das einen oder mehrere Speicherungsknoten aufweist, wobei jeder Speicherungsknoten eine oder mehrere Speicherungsvorrichtungen umfasst. Eine Technik umfasst Erhalten von Einstufungsinformationen von einer Speicherungsvorrichtung eines Speicherungsknotens; Zuweisen der Speicherungsvorrichtung an einen Speicherungspool mindestens teilweise auf der Basis der Einstufungsinformationen; und automatisches Bestimmen einer Speicherungsrichtlinie für das Datenverarbeitungssystem mindestens teilweise auf der Basis des zugewiesenen Speicherungspools und der Einstufungsinformationen.

Description

  • Technisches Gebiet
  • Hier beschriebene Beispiele betreffen allgemein Techniken zur Verbesserung der Durchführung von Speicherung von und Zugreifen auf Daten in Speicherungsvorrichtungen in Datenverarbeitungssystemen.
  • Stand der Technik
  • Eine Speicherungsvorrichtung umfasst eine oder mehrere Arten von Speicher. Eine Mehrpegelzelle (MLC) ist ein Speicherelement, das verglichen mit einer Einzelpegelzelle (SLC), die nur ein Bit pro Speicherelement speichern kann, mehr als ein einziges Bit Informationen speichern kann. Dreipegelzellen (TLC) und Vierpegelzellen (QLC) sind Versionen von MLC-Speicher, die 3 bzw. 4 Bit pro Zelle speichern können. (Man beachte, dass aufgrund der Konvention der Name „Mehrpegelzelle“ manchmal speziell für die „Zweipegelzelle“ verwendet wird). Insgesamt werden Speicher gewöhnlich als SLC (1 Bit pro Zelle - am schnellsten, hohe Kosten); MLC (2 Bit pro Zelle); TLC (3 Bit pro Zelle); und QLC (4 Bit pro Zelle - am langsamsten, geringste Kosten) bezeichnet. Ein Beispiel für einen MLC-Speicher ist QLC-NAND-Flash-Speicher.
  • Einige Datenverarbeitungssysteme verwenden verschiedene Arten von Speicherungsvorrichtungen zum Speichern von Datenobjekten abhängig von den Größen der Datenobjekte, den Häufigkeiten des Zugriffs auf die Datenobjekte, den gewünschten Zugriffszeiten und so weiter. Einige Datenverarbeitungssysteme können einen oder mehrere Speicherungsknoten umfassen, wobei jeder Speicherungsknoten eine oder mehrere Speicherungsvorrichtungen umfasst. Ein Datenverarbeitungssystem kann Speicherungsvorrichtungen verschiedener Arten von Speicher mit verschiedenen Betriebskenngrößen und Fähigkeiten aufweisen. In einigen Datenverarbeitungssystemen werden Hash-Techniken verwendet, um eine deterministische Weise zum Verteilen und Finden von Datenobjekten über die gesamte Menge von Speicherungsknoten in einem Datenverarbeitungssystem bereitzustellen. Ein bekannter Hash-Algorithmus verwendet relative Gewichte von Speicherungsknoten, um zu identifizieren, wie Datenobjekte gleichmäßig in einem Cluster von Speicherungsknoten zu verteilen sind, ohne Hotspots zu erzeugen.
  • Datencenter-Administratoren verwenden zur Zeit Befehlszeilenwerkzeuge auf einer Systemkonsole, um Arten von Speicherungsvorrichtungen zu identifizieren, Speicherungsvorrichtungen zu logischen Pools zu gruppieren und manuell auf der Basis dokumentierter Speicherungsvorrichtungsspezifikationen Gewichte zuzuweisen. Diese manuelle Speicherungseinrichtung (die in einigen Fällen als angepasste Befehlszeilenscripts implementiert wird) basiert auf bekannten Referenzkonfigurationen zur Automatisierung von Speicherungsknotengewichten für einheitliches Hashen während eines Speicherungspool-Bereitstellungsschritts.
  • Die zur Zeit verwendeten Lösungen sind manuell und fehleranfällig, weil eine klare Weise fehlt, Speicherungsknoten in dem Speicherungspool auf der Basis von Speicherungsvorrichtungseigenschaften Gewichte zuzuweisen. Ferner können Speicherungsvorrichtungsspezifikationen nicht verfügbar sein oder falsch oder veraltet sein, wodurch diese Informationen zu einer unzuverlässigen Quelle zum Bewerten der Speicherungsvorrichtungs-Leistungsfähigkeit werden. Ein Datencenter-Administrator lässt typischerweise einige wenige synthetische (z. B. künstliche oder konzipierte) Benchmarks laufen, um Speicherungsvorrichtungs-Leistungsfähigkeitskenngrößen zu identifizieren, und weist dann manuell Gewichte für die Speicherungsvorrichtungen und Speicherungsknoten zu. Angesichts der zunehmenden Anzahl von Speicherungsvorrichtungen in modernen Computer-Serverfarmen ist dieser Ansatz problematisch.
  • Figurenliste
    • 1 zeigt ein beispielhaftes Datenverarbeitungssystem.
    • 2 zeigt einen beispielhaften Speicherungsknoten.
    • 3 zeigt ein beispielhaftes Server-Datenverarbeitungssystem.
    • 4 zeigt ein Beispiel für das Erhalten einer Speicherungsvorrichtungseinstufung.
    • 5 zeigt ein Beispiel für einen logischen Fluss einer Speicherungs-Verwaltungsoperation.
    • 6 zeigt ein Beispiel für einen logischen Fluss des Zuweisens einer Speicherungsvorrichtung an einen Pool.
    • 7 zeigt ein beispielhaftes Speicherungsmedium.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Wie in der vorliegenden Offenbarung in Betracht gezogen wird, kann eine Speicherungsvorrichtung Leistungsfähigkeits-Kenngrößeninformationen (z. B. Einstufungsinformationen) exponieren, die von einer Speicherungs-Verwaltungskomponente verwendet werden, um eine Speicherungs-Verwaltungsrichtlinie für ein Datenverarbeitungssystem zu bestimmen. Bei einer Ausführungsform kann die Speicherungs-Verwaltungsrichtlinie auf automatisierter Speichergruppierung (was auch als Pooling oder Tiering bezeichnet wird) und dem Zuweisen von relativen Gewichten auf der Basis der Speicherungsvorrichtungs-Leistungsfähigkeits-Kenngrößeninformationen basieren, um eine Verbesserung im Vergleich mit Datenverteilung auf Hash-Basis in einem Datenverarbeitungssystem zu erreichen.
  • 1 zeigt ein beispielhaftes Datenverarbeitungssystem. Das Datenverarbeitungssystem 100 umfasst eine oder mehrere Datencenter-Regionen, wie etwa eine Datencenter-Region 1 102, Datencenter-Region 2 104, ... Datencenter-Region N 106, wobei N eine natürliche Zahl ist. Jede Datencenter-Region in dem Datenverarbeitungssystem 100 umfasst mindestens eine Speicherungs-Verwaltungskomponente 108. Bei Ausführungsformen der vorliegenden Erfindung erhält die Speicherungs-Verwaltungskomponente 108 Leistungsfähigkeits-Kenngrößeninformationen von Speicherungsvorrichtungen in der Datencenter-Region und bestimmt einen oder mehrere Speicherungsvorrichtungs-Gewichtswerte für jede Speicherungsvorrichtung. Die Speicherungs-Verwaltungskomponente 108 bestimmt einen Speicherungsknoten-Gewichtswert für jeden Speicherungsknoten mindestens teilweise auf der Basis der Speicherungsvorrichtungs-Gewichtswerte der Speicherungsvorrichtungen, die zu dem Speicherungsknoten gehören. Die Speicherungs-Verwaltungskomponente bestimmt eine Speicherungs-Verwaltungsrichtlinie für die Datencenter-Regionen in dem Datenverarbeitungssystem mindestens teilweise auf der Basis der Speicherungsknoten-Gewichtswerte und der Speicherungsvorrichtungs-Gewichtswerte. Die Speicherungs-Verwaltungskomponente 108 kann die bestimmten Speicherungsvorrichtungs-Gewichtswerte zum Gruppieren von Speicherungsvorrichtungen zu Speicherungs-Pools verwenden. Das Datenverarbeitungssystem 100 kann dann die Speicherungs-Verwaltungsrichtlinie verwenden, wenn bestimmt wird, wo Daten in dem Datenverarbeitungssystem zu speichern sind.
  • Jede Datencenter-Region in dem Datenverarbeitungssystem 100 kann einen oder mehrere Speicherungsknoten umfassen. Zum Beispiel umfasst die Datencenter-Region 1 102 eine Anzahl „J“ von Speicherungsknoten, die als Speicherungsknoten 1-1 110, Speicherungsknoten 1-2 112, ... Speicherungsknoten 1-J 114 bezeichnet werden, wobei J eine natürliche Zahl ist. Zum Beispiel umfasst die Datencenter-Region 2 104 eine Anzahl „K“ von Speicherungsknoten, die als Speicherungsknoten 2-1 116, Speicherungsknoten 2-2 118, ... Speicherungsknoten 2-K 120 bezeichnet werden, wobei K eine natürliche Zahl ist. Zum Beispiel umfasst die Datencenter-Region N 106 eine Anzahl „L“ von Speicherungsknoten, die als Speicherungsknoten N-1 120, Speicherungsknoten N-2 124, ... Speicherungsknoten N-L 120 bezeichnet werden, wobei J eine natürliche Zahl ist.
  • 2 zeigt einen beispielhaften Speicherungsknoten. Der Speicherungsknoten 200 kann einen beliebigen in 1 gezeigten Speicherungsknoten repräsentieren. Zum Beispiel kann der Speicherungsknoten A 202 eine oder mehrere Speicherungsvorrichtungen wie gezeigt umfassen, wie etwa eine Speicherungsvorrichtung A-1 204, Speicherungsvorrichtung A-2 206, ... Speicherungsvorrichtung A-M 208, wobei M eine natürliche Zahl ist.
  • In einigen Beispielen kann somit abhängig von den Gesamt-Speicherungsanforderungen für das Datenverarbeitungssystem 100 das Datenverarbeitungssystem viele Speicherungsknoten umfassen, wobei jeder Speicherungsknoten möglicherweise viele Speicherungsvorrichtungen umfasst. Ferner kann jede Speicherungsvorrichtung einen oder mehrere Speicher umfassen. Jede Speicherungsvorrichtung 204, 206, ... 208 kann Leistungsfähigkeits-Kenngrößeninformationen aufweisen, die durch die Speicherungs-Verwaltungskomponente 108 entdeckbar sind.
  • 3 zeigt ein beispielhaftes Server-Datenverarbeitungssystem 300 in einer Datencenter-Region. In einigen Beispielen umfasst wie in 3 gezeigt das System 300 einen Server 310, der mittels der E/A-Schnittstelle 303 und der E/A-Schnittstelle 323 mit einer oder mehreren Speicherungsvorrichtungen 320 gekoppelt ist. Die Speicherungsvorrichtung 320 repräsentiert eine beliebige oder mehrere der Speicherungsvorrichtung A-1 204, Speicherungsvorrichtung A-2 206 bis Speicherungsvorrichtung A-M 208 von 2. Wie in 3 gezeigt, kann der Server 310 ein Betriebssystem (OS) 311, eine oder mehrere Systemspeichervorrichtungen 312, Schaltkreise 316 und eine Speicherungs-Verwaltungskomponente 108 umfassen. Für diese Beispiele können die Schaltkreise 316 in der Lage sein, verschiedene Funktionselemente des Servers 310 auszuführen, wie etwa das OS 311 und die Speicherungs-Verwaltungskomponente 108, die mindestens teilweise in der Systemspeichervorrichtung bzw. den Systemspeichervorrichtungen 312 unterhalten werden können. Die Schaltkreise 316 können Host-Verarbeitungsschaltkreise zum Enthalten einer oder mehrerer Zentralverarbeitungseinheiten (CPU) (nicht gezeigt) und zugeordneter Chipsätze und/oder Steuerungen umfassen.
  • Gemäß einigen Beispielen kann wie in 3 gezeigt das OS 311 ein Dateisystem 313 und einen oder mehrere Speicherungs-Vorrichtungstreiber 315 umfassen, und eine oder mehrere Speicherungsvorrichtungen 320 können eine Speicherungssteuerung 324, eine oder mehrere Speicherungs-Speichervorrichtungen 322 und Speicher 326 umfassen. Das OS 311 kann dafür ausgelegt sein, den Speicherungs-Vorrichtungstreiber 315 zum Koordinieren von mindestens vorübergehender Speicherung von Daten in einer Datei aus den Dateien 313-1 bis 313-n in der Speicherungs-Speichervorrichtung bzw. den Speicherungs-Speichervorrichtungen 322 zu implementieren, wobei „n“ eine ganze positive Zahl > 1 ist. Die Daten können zum Beispiel mindestens aus Teilen des OS 311 oder von Anwendungsprogrammen (in 3 nicht gezeigt) stammen oder der Ausführung dieser zugeordnet sein. Wie nachfolgend ausführlicher beschrieben wird, kommuniziert das OS 311 einen oder mehrere Befehle und Transaktionen mit der Speicherungsvorrichtung 320 zum Schreiben von Daten in die oder Lesen von Daten aus der Speicherungsvorrichtung 320. Die Befehle und Transaktionen können durch Logik und/oder Merkmale in der Speicherungsvorrichtung 320 organisiert und verarbeitet werden, um die Daten in die Speicherungsvorrichtung 320 zu schreiben oder Daten aus ihr zu lesen.
  • In einigen Beispielen kann die Speicherungssteuerung 324 Logik und/oder Merkmale zum Empfangen von Transaktionsanforderungen für Speicherungs-Speichervorrichtung(en) 322 in der Speicherungsvorrichtung 320 umfassen. Für diese Beispiele können die Transaktionsanforderungen durch das OS 311 eingeleitet oder hervorgebracht werden, das bei einigen Ausführungsformen das Dateisystem 313 benutzen kann, um Daten zu/von der Speicherungsvorrichtung 320 mittels der Schnittstellen 303 und 323 für Eingabe/Ausgabe (E/A) zu schreiben/lesen.
  • In einigen Beispielen kann der Speicher 326 flüchtige Arten von Speicher umfassen, darunter, aber ohne Beschränkung darauf, RAM, D-RAM, DDR SDRAM, SRAM, T-RAM oder Z-RAM. Ein Beispiel für flüchtigen Speicher wäre DRAM oder eine bestimmte Variante wie SDRAM. Ein Speichersubsystem, sowie es hier beschrieben wird, kann mit einer Anzahl von Speichertechnologien kompatibel sein, wie etwa DDR4 (DDR-Version 4, anfängliche Spezifikation, publiziert im September 2012 von JEDEC), LPDDR4 (LOW POWER DOUBLE DATA RATE (LPDDR) Version 4, JESD209-4, ursprünglich publiziert von JEDEC im August 2014), WI02 (Wide I/O 2 (WideIO2), JESD229-2, ursprünglich publiziert von JEDEC im August 2014), HBM (HIGH BANDWIDTH MEMORY DRAM, JESD235, ursprünglich publiziert von JEDEC im Oktober 2013), DDR5 (DDR-Version 5, aktuell in Besprechung durch JEDEC), LPDDR5 (LPDDR-Version 5, aktuell in Besprechung durch JEDEC), HBM2 (HBM-Version 2, aktuell in Besprechung durch JEDEC) und/oder andere und Technologien auf der Basis von Ableitungen oder Erweiterungen solcher Spezifikationen.
  • Beispiele sind jedoch nicht auf diese Weise beschränkt, und in einigen Fällen kann der Speicher 326 nichtflüchtige Arten von Speicher umfassen, deren Zustand bestimmt ist, selbst wenn die Stromversorgung des Speichers 326 unterbrochen wird. In einigen Beispielen kann der Speicher 326 nichtflüchtige Arten von Speicher umfassen, die blockadressierbar sind, wie die etwa für NAND- oder NOR-Technologien. Somit kann der Speicher 326 auch eine zukünftige Generation von Arten von nichtflüchtigem Speicher umfassen, wie etwa 3-dimensionalen Kreuzpunktspeicher (3D XPoint™, im Handel erhältlich von der Intel Corporation), oder andere byteadressierbare nichtflüchtige Arten von Speicher. Gemäß einigen Beispielen kann der Speicher 126 Arten von nichtflüchtigem Speicher umfassen, die Chalcogenidglas, Mehrschwellenpegel-NAND-Flash-Speicher, NOR-Flash-Speicher, Einzel- oder Mehrpegel-Phasenänderungsspeicher (PCM), einen resistiven Speicher, Nanodrahtspeicher, FeTRAM, MRAM mit Memristor-Technologie oder STT-MRAM oder eine Kombination von beliebigen der Obigen oder anderen Speicher umfassen.
  • In einigen Beispielen kann die Speicherungs-Speichervorrichtung bzw. können die Speicherungs-Speichervorrichtungen 322 eine Vorrichtung zum Speichern von Daten aus Schreibtransaktionen und/oder Schreiboperationen sein. Die Speicherungs-Speichervorrichtung(en) 322 kann bzw. können einen oder mehrere Chips oder Dies mit Gates umfassen, die einzeln eine oder mehrere Arten von nichtflüchtigem Speicher umfassen können, darunter, aber ohne Beschränkung darauf, NAND-Flash-Speicher, NOR-Flash-Speicher, 3D-Kreuzpunktspeicher (3D XPoint™), ferroelektrischer Speicher, SONOS-Speicher, ferroelektrischer Polymerspeicher, FeTRAM, FeRAM, ovonischer Speicher, Nanodraht, EEPROM, Phasenänderungsspeicher, Memristoren oder STT-MRAM. Für diese Beispiele kann die Speicherungsvorrichtung 320 als ein Halbleiterlaufwerk (SSD) ausgelegt oder konfiguriert sein. Die Daten können in Blöcken gelesen und geschrieben werden, und eine Abbildung oder Ortsinformationen für die Blöcke können im Speicher 326 gehalten werden.
  • Gemäß einigen Beispielen können Übermittlungen zwischen dem Speicherungsvorrichtungstreiber 315 und der Speicherungssteuerung 324 für Daten, die in der Speicherungs-Speichervorrichtung bzw. den Speicherungs-Speichervorrichtungen 322 gespeichert sind und auf die über Dateien 313-1 bis 313-N zugegriffen wird, mittels der E/A-Schnittstelle 303 und der E/A-Schnittstelle 323 geroutet werden. Die E/A-Schnittstellen 303 und 323 können als eine SATA-Schnittstelle (Serial Advanced Technology Attachment) zur Kopplung von Elementen des Servers 310 mit der Speicherungsvorrichtung 320 ausgelegt sein. In einem anderen Beispiel können die E/A-Schnittstellen 303 und 323 als eine SCSI-Schnittstelle (Serial Attached Small Computer System Interface) (oder einfach SAS-Schnittstelle) zur Kopplung von Elementen des Servers 310 mit der Speicherungsvorrichtung 320 ausgelegt sein. In einem anderen Beispiel können die E/A-Schnittstellen 303 und 323 als eine PCIe-Schnittstelle (Peripheral Component Interconnect Express) zur Kopplung von Elementen des Servers 310 mit der Speicherungsvorrichtung 320 ausgelegt sein. In einem anderen Beispiel können die E/A-Schnittstellen 303 und 323 als NVMe-Schnittstelle (Non-Volatile Memory Express) zur Kopplung von Elementen des Servers 310 mit der Speicherungsvorrichtung 320 ausgelegt sein. Für dieses andere Beispiel können Kommunikationsprotokolle zur Kommunikation mittels der E/A-Schnittstellen 303 und 323 benutzt werden, sowie sie in Industriestandards oder Spezifikationen (einschließlich Nachfolgern oder Varianten) beschrieben werden, wie etwa in der Peripheral Component Interconnect (PCI) Express Base Specification, Revision 3.1, publiziert im November 2014 („PCI-Express-Spezifikation“ oder „PCIe-Spezifikation“) oder späteren Revisionen und/oder der Non-Volatile Memory Express (NVMe) Specification, Revision 1.2, auch publiziert im November 2014 („NVMe-Spezifikation“) oder späteren Revisionen.
  • In einigen Beispielen kann die Systemspeichervorrichtung bzw. können die Systemspeichervorrichtungen 312 Informationen und Befehle speichern, die von den Schaltkreisen 316 zum Verarbeiten von Informationen verwendet werden können. Außerdem können wie in 3 gezeigt die Schaltkreise 316 einen Speichercontroller 318 umfassen. Der Speichercontroller 318 kann dafür ausgelegt sein, Zugriff auf Daten zu steuern, die zumindest vorübergehend in der Systemspeichervorrichtung bzw. den Systemspeichervorrichtungen 312 zur letztendlichen Speicherung in der Speicherungs-Speichervorrichtung bzw. den Speicherungs-Speichervorrichtungen 322 in der Speicherungsvorrichtung 320 gespeichert sind.
  • In einigen Beispielen kann der Speicherungs-Vorrichtungstreiber 315 Logik und/oder Merkmale zum Weiterleiten von einer oder mehreren Lese- oder Schreibtransaktionen und/oder Lese- oder Schreiboperationen, die aus dem OS 311 stammen, zugeordneten Befehlen umfassen. Zum Beispiel kann der Speicherungs-Vorrichtungstreiber 315 Befehle weiterleiten, die Schreibtransaktionen zugeordnet sind, dergestalt, dass bewirkt werden kann, dass Daten in der Speicherungs-Speichervorrichtung bzw. den Speicherungs-Speichervorrichtungen 322 in der Speicherungsvorrichtung 320 gespeichert werden.
  • Die System-Speicherungsvorrichtung(en) 312 kann bzw. können einen oder mehrere Chips oder Dies mit flüchtigen Arten von Speicher wie RAM, D-RAM, DDR SDRAM, SRAM, T-RAM oder Z-RAM umfassen. Beispiele sind jedoch nicht auf diese Weise beschränkt, und in einigen Fällen kann die Systemspeichervorrichtung bzw. können die Systemspeichervorrichtungen 312 nichtflüchtige Arten von Speicher umfassen, darunter, aber ohne Beschränkung darauf, NAND-Flash-Speicher, NOR-Flash-Speicher, 3D-Kreuzpunktspeicher (3D XPoint™), ferroelektrischer Speicher, SONOS-Speicher, ferroelektrischer Polymerspeicher, FeTRAM, FeRAM, ovonischer Speicher, Nanodraht, EEPROM, Phasenänderungsspeicher, Memristoren oder STT-MRAM.
  • Der persistente Speicher 319 kann einen oder mehrere Chips oder Dies mit nichtflüchtigen Arten von Speicher umfassen, darunter, aber ohne Beschränkung darauf, NAND-Flash-Speicher, NOR-Flash-Speicher, 3D-Kreuzpunktspeicher (3D XPoint™), ferroelektrischer Speicher, SONOS-Speicher, ferroelektrischer Polymerspeicher, FeTRAM, FeRAM, ovonischer Speicher, Nanodraht, EEPROM, Phasenänderungsspeicher, Memristoren oder STT-MRAM.
  • Gemäß einigen Beispielen kann der Server 310, aber ohne Beschränkung darauf, einen Server, ein Serverarray oder eine Serverfarm, einen Webserver, einen Netzwerkserver, einen Internetserver, eine Workstation, einen Minicomputer, einen Zentralrechner, einen Supercomputer, ein Netzwerkgerät, ein Webgerät, ein verteiltes Datenverarbeitungssystem, einen Personal Computer, einen Tablet-Computer, ein Smartphone, Mehrprozessorsysteme, prozessorgestützte Systeme oder eine Kombination davon in einer Datencenter-Region umfassen.
  • 4 zeigt ein Beispiel für das Erhalten einer Speicherungsvorrichtungseinstufung. Bei einer Ausführungsform kann, wenn die Speicherungsvorrichtung 320 die NVMe-Spezifikation unterstützt, die Speicherungs-Verwaltungskomponente 108 einen Befehl zu der Speicherungssteuerung 324 in der Speicherungsvorrichtung 320 senden, Leistungsfähigkeits-Kenngrößeninformationen 402 über die Speicherungsvorrichtung zu erhalten. Bei einer Ausführungsform können Leistungsfähigkeits-Kenngrößeninformationen auch als eine Speicherungsvorrichtungseinstufung oder Einstufungsinformationen bekannt sein. Bei einer Ausführungsform kann der Befehl ein Befehl 400 zum Erhalten einer Speicherungsvorrichtungseinstufung oder ein ähnlicher Befehl sein. Bei anderen Ausführungsformen können andere Speicherungsvorrichtungsspezifikationen und zugeordnete Befehle verwendet werden. In einem in 4 gezeigten Beispiel können Leistungsfähigkeits-Kenngrößeninformationen 402 ein oder mehrere Datenfelder umfassen. Die Datenfelder, die in den Leistungsfähigkeits-Kenngrößeninformationen 402 enthalten sein können, können von vielen Faktoren abhängen, wie etwa der Art von Speicherungsvorrichtung, einschließlich des Speichertyps der Speicherungsvorrichtung, Versionsnummer, E/A-Fähigkeiten, Speicherungskapazität, Stromverbrauch, Zugriffsgeschwindigkeit und so weiter. Zum Beispiel können die Leistungsfähigkeits-Kenngrößeninformationen 402 ein Speichertypfeld 404 umfassen, das spezifizieren kann, welche Art von Speicher in der Speicherungsvorrichtung anwesend ist (z. B. 3D XPoint™, SLC NAND, MLC NAND, TLC NAND, QLC NAND, 3D NAND und so weiter). Zum Beispiel können die Leistungsfähigkeits-Kenngrößeninformationen 402 ein Zufalls-4K-Lesefeld 406 umfassen, das eine Leistungsfähigkeitseinstufung für ein zufälliges 100%-Lesen von 4K Bit aus der Speicherungsvorrichtung ausgedrückt über Eingabe/Ausgabe (EA) pro Sekunde (EAPS), spezifizieren kann. Die Leistungsfähigkeits-Kenngrößeninformationen 402 können zum Beispiel ein Zufalls-4K-Schreibfeld 408 umfassen, das eine Leistungsfähigkeitseinstufung für zufälliges 100%-Schreiben von 4K Bit in die Speicherungsvorrichtung, ausgedrückt über Eingabe/Ausgabe (EA) pro Sekunde (EAPS), spezifizieren kann. Die Leistungsfähigkeits-Kenngrößeninformationen 402 können zum Beispiel ein Zufalls-4K-70/30-Feld 4010 umfassen, das eine Leistungsfähigkeitseinstufung für einen Direktzugriff auf einen Block mit 4K Bit mit 70% Lesevorgängen aus der und 30% Schreibvorgängen in die Speicherungsvorrichtung, ausgedrückt über Eingabe/Ausgabe (EA) pro Sekunde (EAPS), spezifizieren kann. Zum Beispiel können die Leistungsfähigkeits-Kenngrößeninformationen 402 ein Sequentielles-Lesen-Feld 412 umfassen, das eine Leistungsfähigkeitseinstufung für ein sequentielles Lesen aus der Speicherungsvorrichtung, ausgedrückt über Megabyte pro Sekunde (MB/S), spezifizieren kann. Zum Beispiel können die Leistungsfähigkeits-Kenngrößeninformationen 402 ein Sequentielles-Schreiben-Feld 414 umfassen, das eine Leistungsfähigkeitseinstufung für ein sequentielles Schreiben in die Speicherungsvorrichtung, ausgedrückt über Megabyte pro Sekunde (MB/S), spezifizieren kann. Zum Beispiel können die Leistungsfähigkeits-Kenngrößeninformationen 402 ein Durchschnittsleistungsfeld 416 für aktives Lesen/Schreiben (R/W) umfassen, das einen Durchschnittsstromverbrauch der Speicherungsvorrichtung, ausgedrückt in Watt, spezifizieren kann. Zum Beispiel können die Leistungsfähigkeits-Kenngrößeninformationen 402 ein Leerlaufleistungsfeld 418 umfassen, das eine Leistungsfähigkeitseinstufung eines Leerlaufstromverbrauchs der Speicherungsvorrichtung, ausgedrückt in Watt, spezifizieren kann. Zum Beispiel können die Leistungsfähigkeits-Kenngrößeninformationen 402 ein Ausdauerfeld 420 umfassen, das spezifizieren kann, wie viele DWPD (Drive Writes Per Day) die Vorrichtung erwartungsgemäß ohne Ausfall durchführt. Zum Beispiel können die Leistungsfähigkeits-Kenngrößeninformationen 402 ein Kapazitätsfeld 422 umfassen, das die Größe des Speichers in der Speicherungsvorrichtung, ausgedrückt in Gigabyte (GB), spezifizieren kann.
  • 5 zeigt einen Logikfluss einer Speicherungs-Verwaltungsoperation. Für diese Beispiele können diese Prozesse durch Komponenten oder Elemente des Systems 300, die in 3 gezeigt sind, wie etwa die Speicherungs-Verwaltungskomponente 108, das OS 311, Schaltkreise 316, den persistenten Speicher 319, System-Speicherungsvorrichtung(en) 312, die Speicherungsvorrichtung 320, die Speicherungssteuerung 324, den Speicher 326 und/oder Speicherungs-Speichervorrichtung(en) 322 implementiert werden oder diese verwenden. Dieser Prozess ist jedoch nicht darauf beschränkt, durch nur diese Komponenten oder Elemente des Systems 300 implementiert zu werden oder diese zu verwenden. Der Logikfluss 500 kann einige oder alle der Operationen repräsentieren, die durch Logik und/oder Merkmale und/oder Vorrichtungen, die hier beschrieben werden, ausgeführt werden.
  • Bei einer Ausführungsform kann der Fluss 500 in der Speicherungs-Verwaltungskomponente 108 des in 1 gezeigten Systems 100 oder die Speicherungs-Verwaltungskomponente 108 des Systems 300 von 3 implementiert werden. Bei einer anderen Ausführungsform kann der Fluss 500 in Schaltkreisen 316 des Systems 300, das in 3 gezeigt ist, implementiert werden. In einem Beispiel kann die Speicherungs-Verwaltungskomponente 108 dafür ausgelegt sein, eine oder mehrere software- oder firmwareimplementierte Komponenten bzw. Module auszuführen.
  • Es ist hier eine Menge von Logikflüssen dargestellt, die beispielhafte Methodologien zum Ausführen neuartiger Aspekte der offenbarten Architektur repräsentieren. Obwohl der Einfachheit der Erläuterung halber die eine oder mehreren hier gezeigten Methodologien als eine Reihe von Schritten gezeigt und beschrieben werden, ist für Fachleute verständlich und erkennbar, dass die Methodologien durch die Reihenfolge von Schritten nicht beschränkt werden. Einige Schritte können dementsprechend in einer anderen Reihenfolge und/oder gleichzeitig mit anderen Schritten als hier gezeigt und beschrieben auftreten. Zum Beispiel ist für Fachleute verständlich und erkennbar, dass eine Methodologie als Alternative als eine Reihe von miteinander in Beziehung stehenden Zuständen oder Ereignissen, wie etwa in einem Zustandsdiagramm, repräsentiert werden könnte. Außerdem müssen nicht alle in einer Methodologie dargestellten Schritte für eine neuartige Implementierung erforderlich sein.
  • Ein Logikfluss kann in Software, Firmware und/oder Hardware implementiert werden. Bei Software- und Firmwareausführungsformen kann ein Logikfluss durch computerausführbare Anweisungen implementiert werden, die auf mindestens einem nichttransitorischen computerlesbaren Medium oder maschinenlesbaren Medium, wie etwa einer optischen, magnetischen oder Halbleiterspeicherung, gespeichert sind. Die Ausführungsformen sind in diesem Kontext nicht beschränkt.
  • Die Speicherungs-Verwaltungskomponente 108 kann ausgeführt werden, um automatisch eine Speicherungsrichtlinie für das System 100 zu bestimmen, wobei Kenngrößen und Leistungsfähigkeitseinstufungen eines oder mehrerer Speicherungsknoten in dem System und einer oder mehrerer Speicherungsvorrichtungen in jedem Speicherungsknoten berücksichtigt werden. Die Speicherungsrichtlinie kann durch das System 100 verwendet werden, um Entscheidungen zum Vergeben von Daten zu treffen, die in dem bzw. den Speicherungsknoten und einer Speicherungsvorrichtung(en) in einem Speicherungsknoten zu speichern sind, die für Gesamt-Systemleistungsfähigkeit am besten geeignet sein können. Bei einer Ausführungsform kann die Speicherungs-Verwaltungskomponente 108 beim Herauffahren des Systems 100 ausgeführt werden. Bei einer Ausführungsform kann die Speicherungs-Verwaltungskomponente 108 bei Bedarf (z. B. manuell) durch einen Systemadministrator ausgeführt werden oder kann dafür eingeteilt werden, periodisch ausgeführt zu werden. Bei einer anderen Ausführungsform kann die Speicherungs-Verwaltungskomponente 108 immer dann ausgeführt werden, wenn ein Speicherungsknoten in dem System aktiviert oder deaktiviert wird. Bei einer anderen Ausführungsform kann die Speicherungs-Verwaltungskomponente 108 immer dann ausgeführt werden, wenn in dem System eine Speicherungsvorrichtung aktiviert oder deaktiviert wird. Bei einer Ausführungsform kann die Speicherungs-Verwaltungskomponente 108 die Speicherungsrichtlinie automatisch auf der Basis einer Analyse einer oder mehrerer Speicherungsvorrichtungen in einem oder mehreren Speicherungsknoten des Systems 100 bestimmen.
  • Vor dem Verarbeiten der Speicherungsknoten und ihrer Speicherungsvorrichtungen kann die Speicherungs-Verwaltungskomponente 108 in weiteren Berechnungen zu verwendende Variablen initialisieren. Bei einer Ausführungsform kann die Speicherungs-Verwaltungskomponente 108 einen EAPS-Denominator, einen Durchsatzdenominator, einen Kapazitätsdenominator, ein EAPS-Relativgewicht, ein Kapazitäts-Relativgewicht und ein Durchsatz-Relativgewicht initialisieren. Die Verarbeitung kann mit einer ersten Speicherungsvorrichtung in einem ersten Speicherungsknoten des Systems 100 in Block 502 beginnen. Die Speicherungs-Verwaltungskomponente 108 kann die Speicherungsvorrichtungseinstufung für die Speicherungsvorrichtung erhalten. In Block 504 kann die Speicherungs-Verwaltungskomponente 108 die Speicherungsvorrichtung einem Speicherungspool zuweisen. Bei einer Ausführungsform kann ein Speicherungspool eine Gruppe oder Ansammlung von Speicherungsvorrichtungen mit ähnlichen Betriebskenngrößen sein.
  • 6 zeigt ein Beispiel für einen Logikfluss des Zuweisens einer Speicherungsvorrichtung an einen Speicherungspool. Die Art von Speicher kann verwendet werden, um zu trennen, ob die Speicherungsvorrichtung für Arbeitslasten bestimmt ist, die bessere Leistungsfähigkeit oder besseren Durchsatz erfordern. Die Verarbeitung kann in Block 602 beginnen. In Block 604 bestimmt die Speicherungs-Verwaltungskomponente 108 den Speichertyp des einen oder der mehreren Speicher in der Speicherungsvorrichtung. Wenn der Speichertyp 3D-Kreuzpunktspeicher (3D XPoint™) ist, kann in Block 608 eine Bestimmung der Kapazität des Speichers erfolgen. Wenn der Speicher der Speicherungsvorrichtung kleiner als eine vordefinierte Schwelle (gemessen in einer Anzahl von Gigabyte (GB) wie etwa <X GB) ist, kann die Speicherungsvorrichtung dem Cache-Pool 610 zugewiesen werden. Der Cache-Pool 610 kann für Zugriffe höchster Leistungsfähigkeit und häufigste Zugriffe auf Daten verwendet werden, aber der Cache-Pool kann kleiner und kostspieliger sein. Wenn der Speicher der Speicherungsvorrichtung größer oder gleich der vordefinierten Schwelle ist (z. B. >=X GB), kann die Speicherungsvorrichtung einem Pool 612 mit niedriger Latenz zugewiesen werden. Ein Pool mit niedriger Latenz kann für Zugriffe höchster Leistungsfähigkeit (z. B. die jenigen mit niedriger Latenz) und häufige Zugriffe auf Daten verwendet werden, aber der Pool mit niedriger Latenz kann größer als der Cache-Pool sein. Da der Pool mit niedriger Latenz größer als der Cache-Pool ist, kann der Pool mit niedriger Latenz kostspieliger als der Cache-Pool sein.
  • Wenn der Speichertyp in Block 604 SLC-NAND ist, kann die Speicherungsvorrichtung dem Journaling-Pool 614 zugewiesen werden. Bei einer Ausführungsform kann der Journaling-Pool zum Speichern von log-Dateien von Änderungen an Daten verwendet werden. Weil SLC-NAND verwendet wird, kann ein höherer Grad der NAND-Leistungsfähigkeit mit höherer Ausdauer, aber mit niedrigeren Kosten als 3D-Kreuzpunkt, für den Journaling-Pool bereitgestellt werden. Bei einer Ausführungsform können Aktualisierungen an den Daten im Journaling-Pool schreibintensiv sein. Wenn der Speichertyp im Block TLC-3D-NAND ist, kann die Speicherungsvorrichtung dem Leistungsfähigkeitspool 616 zugewiesen werden. Der Leistungsfähigkeitspool kann für leistungsfähigkeitsorientierte Arbeitslasten verwendet werden, die keine extrem niedrigen Latenzanforderungen aufweisen. Wenn der Speichertyp in Block 604 QLC-3D-NAND ist, kann bei einer Ausführungsform die Speicherungs-Verwaltungskomponente 108 in Block 618 das Lese-/Schreibdurchsatzverhältnis der Speicherungsvorrichtung prüfen. Ein QLC-3D-NAND kann eine niedrigere Ausdauer und niedrigere Schreibbandbreitenleistungsfähigkeit als SLC-NAND oder TLC-3D-NAND bereitstellen, aber mit höherer Kapazität und geringeren Kosten. Bei einer Ausführungsform kann das Lese-/Schreibdurchsatzverhältnis durch Ausführen des Befehls Erhalte Speicherungslaufwerkeinstufung erhalten werden. Bei einer Ausführungsform kann, wenn das Verhältnis größer als ein vordefinierter Wert ist, wie etwa 8:2, die Speicherungs-Verwaltungskomponente 108 die Ausdauermetrik der DWPD (Drive Writes Per Day) für die Speicherungsvorrichtung prüfen. Bei einer Ausführungsform kann die DPWD-Metrik durch Ausführen des Befehls Erhalte Speicherungslaufwerkeinstufung erhalten werden. Bei einer Ausführungsform kann, wenn das DWPD der Speicherungsvorrichtung größer als ein vordefinierter Wert ist, wie etwa 0,3, die Speicherungsvorrichtung dem Durchsatzpool 622 zugewiesen werden. Bei einer Ausführungsform kann der Durchsatzpool 622 verwendet werden, um zum Beispiel Streaming-Daten für Anwendungen zu speichern, die mehr Schreibvorgänge pro Tag erfordern. Bei einer Ausführungsform kann, wenn das DWPD der Speicherungsvorrichtung kleiner oder gleich einem vordefinierten Wert ist, wie etwa 0,3, oder kleiner oder gleich einem vordefinierten Lese-/Schreibdurchsatzverhältnis ist, wie etwa 8:2, die Speicherungsvorrichtung dem Kapazitätspool 624 zugewiesen werden. Bei einer Ausführungsform kann der Kapazitätspool 624 verwendet werden, um zum Beispiel Daten zu speichern, die für längere Zeiträume mit weniger häufigem Zugriff zu archivieren sind.
  • Obwohl in 6 sechs verschiedene Speicherungs-Pooltypen gezeigt sind, können bei anderen Ausführungsformen auch andere Pooltypen verwendet werden. Zum Beispiel kann ein Speicherungspool für Anwendungen mit niedrigem Stromverbrauch definiert werden. In einem anderen Beispiel kann ein Speicherungspool für Hochsicherheitsanwendungen definiert werden. Bei einer Ausführungsform kann ein Systemadministrator den programmatisch einer Speicherungsvorrichtung zugewiesenen Speicherungspool übersteuern und die Speicherungsvorrichtung manuell einem anderen Speicherungspool zuweisen.
  • Wieder mit Bezug auf 5 wird die Verarbeitung mit Block 506 fortgesetzt, indem die Speicherungs-Verwaltungskomponente 108 mindestens teilweise auf der Basis der Speicherungsvorrichtungs-Einstufungsinformationen individuelle Speicherungsvorrichtungsgewichte für die Speicherungsvorrichtung berechnen kann. Bei einer Ausführungsform können die folgenden individuellen Speicherungsvorrichtungsgewichte berechnet werden:
  • Laufwerk-EAPS-Gewicht = Laufwerk-EAPS/EAPS-Denominator;
  • Laufwerk-Kapazitätsgewicht = Laufwerkkapazität/Kapazitätsdenominator;
  • Durchsatzgewicht = Laufwerkdurchsatz/Durchsatzdenominator; wobei die Werte für Laufwerk-EAPS, Laufwerkkapazität und Laufwerkdurchsatz von der Speicherungsvorrichtung erhalten werden können.
  • Bei anderen Ausführungsformen können andere oder zusätzliche individuelle Speicherungsvorrichtungsgewichte verwendet werden.
  • Als Nächstes kann in Block 508 die Speicherungs-Verwaltungskomponente 108 mindestens teilweise auf der Basis der individuellen Speicherungsvorrichtungsgewichte ein relatives Speicherungsvorrichtungsgewicht berechnen. Bei einer Ausführungsform kann das relative Speicherungsvorrichtungsgewicht berechnet werden:
  • Relatives Speicherungsvorrichtungsgewicht = (EAPS-Relativgewicht * Laufwerk-EAPS-Gewicht) + (Kapazitäts-Relativgewicht * Laufwerk-Kapazitätsgewicht) + (Durchsatz-Relativgewicht * Durchsatzgewicht).
  • In Block 510 bestimmt die Speicherungs-Verwaltungskomponente 108, ob weitere Speicherungsvorrichtungen für den aktuellen Speicherungsknoten verarbeitet werden müssen. Wenn dem so ist, wird die Verarbeitung in Block 502 mit der nächsten Speicherungsvorrichtung für den aktuellen Speicherungsknoten fortgesetzt. Wenn nicht, wird die Verarbeitung mit Block 512 fortgesetzt, in dem ein Speicherungsknotengewicht mindestens teilweise auf den relativen Speicherungsvorrichtungsgewichten berechnet werden kann. Bei einer Ausführungsform repräsentiert das Speicherungsknotengewicht das aggregierte Gewicht der Speicherungsvorrichtungen dieses Speicherungsknotens. Bei einer Ausführungsform kann das Speicherungsknotengewicht folgendermaßen berechnet werden:
  • Speicherungsknotengewicht =
    Figure DE102019102317A1_0001
    Relative Speicherungsvorrichtungsgewichte
  • In Block 514 bestimmt die Speicherungs-Verwaltungskomponente 108, ob weitere Speicherungsknoten verarbeitet werden müssen. Wenn dem so ist, wird die Verarbeitung mit der ersten Speicherungsvorrichtung des nächsten Speicherungsknotens in dem System 100 in Block 502 fortgesetzt. Wenn nicht, wurden nun alle Speicherungsvorrichtungen in allen Speicherungsknoten verarbeitet. In Block 516 kann die Speicherungs-Verwaltungskomponente 108 mindestens teilweise auf der Basis des Speicherungsknotengewichts für jeden Speicherungsknoten und der Pools eine Speicherungsrichtlinie für das System 100 automatisch bestimmen. Die Speicherungsrichtlinie kann ohne manuelle Intervention oder Aktivierung durch einen Systemadministrator bestimmt werden. Die Speicherungsrichtlinie kann durch das System 100 verwendet werden, um automatisch zu bestimmen, welche Speicherungsknoten und Speicherungsvorrichtungen in Speicherungsknoten zum Speichern von Daten zu verwenden sind.
  • 7 zeigt ein Beispiel für ein Speicherungsmedium. Das Speicherungsmedium 700 kann einen Herstellungsartikel umfassen. In einigen Beispielen kann das Speicherungsmedium 700 ein beliebiges nichttransitorisches computerlesbares Medium oder maschinenlesbares Medium umfassen, wie etwa eine optische, magnetische oder Halbleiterspeicherung. Das Speicherungsmedium 700 kann verschiedene Arten von computerausführbaren Anweisungen speichern, wie etwa Anweisungen zum Implementieren von oben beschriebenen Logikflüssen. Beispiele für ein computerlesbares oder maschinenlesbares Speicherungsmedium wären beliebige greifbare Medien, die elektronische Daten speichern können, darunter flüchtiger Speicher oder nichtflüchtiger Speicher, wechselbarer oder nichtwechselbarer Speicher, löschbarer oder nichtlöschbarer Speicher, beschreibbarer oder neubeschreibbarer Speicher und so weiter. Beispiele für computerausführbare Anweisungen wären beliebige geeignete Arten von Code wie Quellcode, kompilierter Code, interpretierter Code, ausführbarer Code, statischer Code, dynamischer Code, objektorientierter Code, visueller Code und dergleichen. Die Beispiele sind in diesem Kontext nicht beschränkt.
  • Gemäß einigen Beispielen kann eine als Schaltkreise 316 von 3 bezeichnete Komponente Verarbeitungsoperationen oder Logik für die Speicherungs-Verwaltungskomponente 108 und/oder das Speicherungsmedium 700 ausführen. Die Schaltkreise 316 können verschiedene Hardwareelemente, Softwareelemente oder eine Kombination von beiden umfassen. Beispiele für Hardwareelemente wären Vorrichtungen, Logikvorrichtungen, Komponenten, Prozessoren, Mikroprozessoren, Schaltungen, Prozessorschaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktivitäten und so weiter), integrierte Schaltungen, ASIC, programmierbare Logikvorrichtungen (PLD), digitale Signalprozessoren (DSP), FPGA/programmierbare Logik, Speichereinheiten, Logikgatter, Register, Halbleitervorrichtung, Chips, Mikrochips, Chipsätze und so weiter. Beispiele für Softwareelemente wären Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Vorrichtungstreiber, Systemprogramme, Softwareentwicklungsprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwarekomponenten, Routinen, Subroutinen, Funktionen, Methoden, Prozeduren, Softwareschnittstellen, Anwendungsprogrammschnittstellen (API), Anweisungssätze, Datenverarbeitungscode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder eine beliebige Kombination davon. Die Bestimmung, ob ein Beispiel unter Verwendung von Hardwareelementen und/oder von Softwareelementen implementiert wird, kann abhängig von einer beliebigen Anzahl von Faktoren variieren, wie etwa gewünschter Rechengeschwindigkeit, Leistungspegeln, Wärmetoleranzen, Verarbeitungszyklusbudget, Eingangsdatenraten, Ausgangsdatenraten, Speicherressourcen, Datenbusgeschwindigkeiten und anderen Entwurfs- oder Leistungsfähigkeitsbeschränkungen, so wie es für ein gegebenes Beispiel erwünscht ist.
  • Der Server 310 kann Teil einer Datenverarbeitungsvorrichtung sein, die zum Beispiel ein Benutzergerät, ein Computer, ein Personal Computer (PC), ein Desktop-Computer, ein Laptop-Computer, ein Notebook-Computer, ein Netbook-Computer, ein Tablet, ein Smartphone, eingebettete Elektronik, eine Spielkonsole, ein Serverarray oder eine Serverfarm, ein Webserver, ein Netzwerkserver, ein Internetserver, eine Workstation, ein Minicomputer, ein Zentralrechner, ein Supercomputer, ein Netzwerkgerät, ein Webgerät, ein verteiltes Datenverarbeitungssystem, Mehrprozessorsysteme, prozessorgestützte Systeme oder eine Kombination davon sein kann. Dementsprechend können Funktionen und/oder spezifische Konfigurationen des Servers 310, die hier beschrieben werden, in verschiedenen Ausführungsformen des Servers 310 je nach Wunsch enthalten oder weggelassen sein.
  • Die Komponenten und Merkmale des Servers 310 können unter Verwendung einer beliebigen Kombination von diskreten Schaltkreisen, ASIC, Logikgattern und/oder Einzelchiparchitekturen implementiert werden. Ferner können die Merkmale des Servers 310 unter Verwendung von Mikrocontrollern, programmierbaren Logikarrays und/oder Mikroprozessoren oder einer beliebigen Kombination des Obigen, wenn es geeignet angemessen ist, implementiert werden. Es wird angemerkt, dass Hardware-, Firmware- und/oder Softwareelemente hier zusammen oder einzeln als „Logik“, „Schaltung“ oder „Schaltkreise“ bezeichnet werden können.
  • Einige Beispiele können unter Verwendung des Ausdrucks „in einem Beispiel“ oder „ein Beispiel“, zusammen mit ihren Ableitungen, beschrieben werden. Diese Ausdrücke bedeuten, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder ein bestimmtes Charakteristikum, das bzw. die in Verbindung mit dem Beispiel beschrieben wird, in mindestens einem Beispiel enthalten ist. Das Erscheinen der Phrase „in einem Beispiel“ an verschiedenen Stellen in der Patentschrift bezieht sich nicht unbedingt immer auf dasselbe Beispiel.
  • Einige Beispiele können unter Verwendung des Ausdrucks „gekoppelt“ und „verbunden“, zusammen mit ihren Ableitungen, beschrieben werden. Diese Ausdrücke sollen nicht unbedingt einander gleichbedeutend sein. Zum Beispiel können Beschreibungen, die die Ausdrücke „verbunden“ und/oder „gekoppelt“ verwenden, angeben, dass zwei oder mehr Elemente sich in direktem physischen oder elektrischen Kontakt miteinander befinden. Der Ausdruck „gekoppelt“ kann jedoch auch bedeuten, dass sich zwei oder mehr Elemente nicht in direktem Kontakt miteinander befinden, aber immer noch miteinander zusammenarbeiten oder interagieren.
  • Es wird betont, dass die Zusammenfassung der Offenbarung bereitgestellt wird, um 37 C.F.R., Abschnitt 1.72(b) einzuhalten, der eine Zusammenfassung erfordert, die es dem Leser erlaubt, schnell die Beschaffenheit der technischen Offenbarung zu bestimmen. Sie wird mit dem Verständnis eingereicht, dass sie nicht zur Deutung oder Beschränkung des Schutzumfangs oder der Bedeutung der Ansprüche verwendet wird. Außerdem ist in der obigen ausführlichen Beschreibung ersichtlich, dass zur Straffung der Offenbarung verschiedene Merkmale miteinander in einem einzigen Beispiel gruppiert werden. Dieses Offenbarungsverfahren soll nicht als Absicht widerspiegelnd aufgefasst werden, dass die beanspruchten Beispiele mehr Merkmale erfordern, als ausdrücklich in jedem Anspruch angeführt werden. Stattdessen liegt, wie die folgenden Ansprüche widerspiegeln, der erfindungsgemäße Gegenstand in weniger als allen Merkmalen eines einzelnen offenbarten Beispiels begründet. Die folgenden Ansprüche werden somit hierdurch in die ausführliche Beschreibung aufgenommen, wobei jeder Anspruch für sich allein als separates Beispiel steht. In den angefügten Ansprüchen werden die Ausdrücke „beinhaltend“ und „in dem“ als die umgangssprachlichen Äquivalente der jeweiligen Ausdrücke „umfassend“ bzw. „wobei“ gebraucht. Außerdem werden die Ausdrücke „erstes“, „zweites“, „drittes“ und so weiter lediglich als Bezeichnungen verwendet und sollen ihren Objekten keinerlei numerische Anforderungen auferlegen.
  • Obwohl der Gegenstand in für Strukturmerkmale und/oder Verfahrensschritte spezifischer Sprache beschrieben wurde, versteht sich, dass der in den angefügten Ansprüchen definierte Gegenstand nicht unbedingt auf die oben beschriebenen spezifischen Merkmale oder Schritte beschränkt ist. Stattdessen werden die oben beschriebenen spezifischen Merkmale und Schritte als beispielhafte Formen der Implementierung der Ansprüche offenbart.

Claims (15)

  1. Verfahren in einem Datenverarbeitungssystem, das einen oder mehrere Speicherungsknoten umfasst, wobei jeder Speicherungsknoten eine oder mehrere Speicherungsvorrichtungen umfasst, mit den folgenden Schritten: Erhalten von Einstufungsinformationen von einer Speicherungsvorrichtung eines Speicherungsknotens; Zuweisen der Speicherungsvorrichtung an einen Speicherungspool mindestens teilweise auf der Basis der Einstufungsinformationen; und automatisches Bestimmen einer Speicherungsrichtlinie für das Datenverarbeitungssystem mindestens teilweise auf der Basis des zugewiesenen Speicherungspools und der Einstufungsinformationen.
  2. Verfahren nach Anspruch 1, umfassend: Berechnen von individuellen Speicherungsgewichten für die Speicherungsvorrichtung mindestens teilweise auf der Basis der Einstufungsinformationen der Speicherungsvorrichtung.
  3. Verfahren nach Anspruch 2, umfassend: Berechnen von relativen Speicherungsgewichten für die Speicherungsvorrichtung mindestens teilweise auf der Basis der individuellen Speicherungsgewichte.
  4. Verfahren nach Anspruch 3, umfassend: Berechnen eines Speicherungsknotengewichts für den Speicherungsknoten mindestens teilweise auf der Basis der relativen Speicherungsvorrichtungsgewichte.
  5. Verfahren nach Anspruch 4, das automatisches Bestimmen einer Speicherungsrichtlinie für das Datenverarbeitungssystem mindestens teilweise auf der Basis des zugewiesenen Speicherungspools und des Speicherungsknotengewichts umfasst.
  6. Verfahren nach Anspruch 5, wobei das Speicherungsknotengewicht eine Summe der relativen Speicherungsvorrichtungsgewichte von Speicherungsvorrichtungen des Speicherungsknotens umfasst.
  7. Verfahren nach Anspruch 1, das umfasst, automatisch gemäß der Speicherungsrichtlinie zu bestimmen, welche Speicherungsknoten und Speicherungsvorrichtungen in Speicherungsknoten zum Speichern von Daten verwendet werden.
  8. Verfahren nach Anspruch 1, wobei ein Typ des Speicherungspools einen Cache-Pool, einen Pool mit niedriger Latenz, einen Journaling-Pool, einen Leistungsfähigkeits-Pool, einen Durchsatzpool oder einen Kapazitätspool umfasst.
  9. Verfahren nach Anspruch 1, wobei Zuweisen der Speicherungsvorrichtung an den Speicherungspool umfasst, die Speicherungsvorrichtung mindestens teilweise auf der Basis eines Typs von Speicher in der Speicherungsvorrichtung an den Speicherungspool zuzuweisen.
  10. System, umfassend: einen oder mehrere Speicherungsknoten, wobei jeder Speicherungsknoten eine oder mehrere Speicherungsvorrichtungen umfasst; einen mit dem einen oder den mehreren Speicherungsknoten gekoppelten Server, wobei der Server eine Speicherungs-Verwaltungskomponente zum Erhalten von Einstufungsinformationen von einer Speicherungsvorrichtung eines Speicherungsknotens; Zuweisen der Speicherungsvorrichtung an einen Speicherungspool mindestens teilweise auf der Basis der Einstufungsinformationen; und automatischen Bestimmen einer Speicherungsrichtlinie für das Datenverarbeitungssystem mindestens teilweise auf der Basis des zugewiesenen Speicherungspools und der Einstufungsinformationen umfasst.
  11. System nach Anspruch 10, umfassend die Speicherungs-Verwaltungskomponente zum Berechnen von individuellen Speicherungsgewichten für jede Speicherungsvorrichtung mindestens teilweise auf der Basis der Einstufungsinformationen der Speicherungsvorrichtung.
  12. System nach Anspruch 11, umfassend die Speicherungs-Verwaltungskomponente zum Berechnen von relativen Speicherungsgewichten für jede Speicherungsvorrichtung mindestens teilweise auf der Basis der individuellen Speicherungsgewicht jeder Speicherungsvorrichtung.
  13. System nach Anspruch 12, umfassend die Speicherungs-Verwaltungskomponente zum Berechnen eines Speicherungsknotengewichts für jeden Speicherungsknoten mindestens teilweise auf der Basis der relativen Speicherungsvorrichtungsgewichte von Speicherungsvorrichtungen in dem Speicherungsknoten.
  14. System nach Anspruch 13, umfassend die Speicherungs-Verwaltungskomponente zum automatischen Bestimmen einer Speicherungsrichtlinie für das System mindestens teilweise auf der Basis des zugewiesenen Speicherungspools und des Speicherungsknotengewichts.
  15. Maschinenlesbares Medium bzw. maschinenlesbare Medien, die mehrere Anweisungen umfassen, die, als Reaktion darauf, dass sie durch ein System ausgeführt werden, das System veranlassen, ein Verfahren nach einem der Ansprüche 1 bis 9 auszuführen.
DE102019102317.3A 2018-03-02 2019-01-30 Verfahren zur verbesserten Datenverteilung unter Speichervorrichtungen Pending DE102019102317A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/910,933 US20190042089A1 (en) 2018-03-02 2018-03-02 Method of improved data distribution among storage devices
US15/910,933 2018-03-02

Publications (1)

Publication Number Publication Date
DE102019102317A1 true DE102019102317A1 (de) 2019-09-05

Family

ID=65231636

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019102317.3A Pending DE102019102317A1 (de) 2018-03-02 2019-01-30 Verfahren zur verbesserten Datenverteilung unter Speichervorrichtungen

Country Status (4)

Country Link
US (1) US20190042089A1 (de)
KR (1) KR20190104876A (de)
CN (1) CN110221770A (de)
DE (1) DE102019102317A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10726930B2 (en) * 2017-10-06 2020-07-28 Western Digital Technologies, Inc. Method and system for a storage (SSD) drive-level failure and health prediction leveraging machine learning on internal parametric data
CN109542352B (zh) * 2018-11-22 2020-05-08 北京百度网讯科技有限公司 用于存储数据的方法和装置
US11194473B1 (en) * 2019-01-23 2021-12-07 Pure Storage, Inc. Programming frequently read data to low latency portions of a solid-state storage array
CN112925472A (zh) * 2019-12-06 2021-06-08 阿里巴巴集团控股有限公司 请求处理方法、装置、电子设备及计算机存储介质
CN113419679B (zh) * 2021-06-18 2023-06-30 Oppo广东移动通信有限公司 存储装置、系统级芯片、电子设备及存储方法
CN113687782B (zh) * 2021-07-30 2023-12-22 济南浪潮数据技术有限公司 存储池时延确定方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
KR20190104876A (ko) 2019-09-11
CN110221770A (zh) 2019-09-10
US20190042089A1 (en) 2019-02-07

Similar Documents

Publication Publication Date Title
DE102019102317A1 (de) Verfahren zur verbesserten Datenverteilung unter Speichervorrichtungen
DE102013016609A1 (de) Vorrichtung und Verfahren für ein Storage Class Memory mit niedrigem Energieverbrauch, niedriger Latenz und hoher Kapazität
DE102016100902A1 (de) Verfahren zum dynamischen Zuteilen von Ressourcen von konfigurierbaren Datenverarbeitungsressourcen
DE102020132764A1 (de) Solid-state-drive mit externer softwareausführung zum bewirken von internen operationen des solid-state-drive
DE112018004251T5 (de) Adaptive vorrichtungsdienstqualität durch host-speicherpufferbereich
DE112020001937T5 (de) Vorausschauender datenvorabruf in einer datenspeicher-vorrichtung
DE102015117066A1 (de) Verfahren zum Betreiben einer Datenspeichervorrichtung, mobile Rechenvorrichtung mit derselben und Verfahren der mobilen Rechenvorrichtung
DE112018005505T5 (de) Verfahren und vorrichtung zur spezifikation von lese-spannungsversetzungen für einen lesebefehl
DE202010017667U1 (de) Datenspeichervorrichtung mit Flash-Speicherchips
DE112013003255T5 (de) Managementmechanismus für fehlerhafte Blöcke
DE102018132781A1 (de) Heterogenes Rechensystem, welches konfiguriert ist, um eine Cachekohärenz adaptiv zu steuern
DE102020116316A1 (de) Prioritätsbasierte batterie-zuordnung für ressourcen während leistungsausfall
DE112020005787T5 (de) Verbesserte dateisystem-unterstützung für zonen-namespace-speicher
DE112020006215T5 (de) Blockfamilien-basierte Fehlervermeidung für Speichervorrichtungen
DE102022124530A1 (de) Speicherpoolmanagement
DE102019103114A1 (de) Speichersteuereinrichtung und Anwendungsprozessor für eine gesteuerte Auslastung und Leistung einer Eingabe/Ausgabe-Vorrichtung und Verfahren zur Betätigung der Speichersteuereinrichtung
DE102020132767A1 (de) Verwaltung der Dienstgüte (QoS) eines Speichersystems
DE112018002500T5 (de) Speicherarray für Hybriddaten
DE102022129936A1 (de) Techniken zur Erweiterung des Systemspeichers durch Nutzung des verfügbaren Gerätespeichers
DE102016101311A1 (de) Datenspeicherverfahren, Datenspeichervorrichtung und Solid State Disk
DE112020005044T5 (de) Zonenanhang-befehlsplanung basierend auf zonenzustand
DE112020005092T5 (de) Konstruktion einer blockvorrichtung
DE102018120964A1 (de) Integrierte Schaltungsspeichervorrichtungen mit verbesserter Pufferspeichernutzung während Lese- und Schreiboperationen
DE112018006392T5 (de) Leistungspegeleinstellungen in arbeitsspeichervorrichtungen
DE102021006246A1 (de) Doppelt verschachtelte Programmierung einer Speichervorrichtung in einem Speicher-Untersystem