DE102018131983A1 - Switch-unterstützte datenspeicher-netzwerkverkehrsverwaltung in einem rechenzentrum - Google Patents

Switch-unterstützte datenspeicher-netzwerkverkehrsverwaltung in einem rechenzentrum Download PDF

Info

Publication number
DE102018131983A1
DE102018131983A1 DE102018131983.5A DE102018131983A DE102018131983A1 DE 102018131983 A1 DE102018131983 A1 DE 102018131983A1 DE 102018131983 A DE102018131983 A DE 102018131983A DE 102018131983 A1 DE102018131983 A1 DE 102018131983A1
Authority
DE
Germany
Prior art keywords
data
storage
group
placement
block
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
DE102018131983.5A
Other languages
English (en)
Inventor
Arun Raghunath
Anjaneya Chagam Reddy
Yi Zou
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 DE102018131983A1 publication Critical patent/DE102018131983A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router architectures
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0658Controller construction arrangements
    • 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/0661Format or protocol conversion arrangements
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Abstract

Bei einer Ausführungsform konsolidiert eine Switch-unterstützte Datenspeicher-Netzwerkverkehrsverwaltung in einem Rechenzentrum Datenplatzierungsanfragen und Datenplatzierungsbestätigungen, um den Netzwerkverkehr zu reduzieren. Weitere Aspekte sind hier beschrieben.

Description

  • TECHNISCHES GEBIET
  • Bestimmte Ausführungsformen der vorliegenden Erfindung betreffen allgemein eine Switch-unterstützte Datenspeicher-Netzwerkverkehrsverwaltung in einem Rechenzentrum.
  • STAND DER TECHNIK
  • Zum Speichern großer Datenmengen setzen Rechenzentren in der Regel verteilte Speichersysteme ein. Um die Zuverlässigkeit einer solchen Speicherung zu verbessern, werden verschiedene Datenredundanztechnologien wie etwa vollständige Datenreplikation oder löschcodierte (erasure coded - EC) Daten eingesetzt. Eine auf Löschcodierung basierende Redundanz kann bei Systemen mit hoher Skalierung eine verbesserte Effizienz bei der Speicherkapazität bereitstellen und somit wird sich bei vielen kommerziellen verteilten Cloud-Speichersystemen auf sie verlassen.
  • Die Löschcodierung kann allgemein mit dem Begriff EC(k, m) beschrieben werden, wobei die Originaleingabedaten eines Clients zur Speicherung in k Datenblöcke aufgeteilt werden. Außerdem werden basierend auf einer Verteilungsmatrix m Paritätsblöcke berechnet. Die Zuverlässigkeit aus einer Datenredundanz kann erreicht werden, indem jeder der gesamten k + m codierten Blöcke separat in verschiedene k + m Speicherknoten platziert wird. Sollten im Ergebnis irgendwelche m (oder weniger als m) codierte Blöcke aufgrund eines Versagens von Speicherknoten oder aus anderen Gründen wie etwa Löschung verloren gehen, können die Originaldaten des Clients im Ergebnis aus den verbleibenden k codierten Blöcken von Client-Speicherdaten oder Paritätsdaten rekonstruiert werden.
  • In einem typischen verteilten Datenspeichersystem erzeugt ein Client-Knoten separate Datenplatzierungsanfragen für jeden Block von Daten, wobei es sich bei jeder Platzierungsanfrage um eine Anfrage handelt, einen spezifischen Block von Daten in einen spezifischen Speicherknoten des Systems zu platzieren. Somit wird, wo eine Redundanz durch Löschcodierung bereitgestellt ist, der Client-Knoten in der Regel k + m separate Datenplatzierungsanfragen generieren, eine Datenplatzierungsanfrage für jeden der k + m Blöcke von Client-Daten. Die k + m Datenplatzierungsanfragen werden durch verschiedene Switches (Netzwerkweichen) des verteilten Datenspeichersystems an die Speicherknoten zur Speicherung übertragen. Jede Datenplatzierungsanfrage beinhaltet in der Regel eine Zieladresse, welche die Adresse eines spezifischen Speicherknotens ist, dem zugewiesen wurde, den von der Datenplatzierungsanfrage transportierten Datenblock als eine Nutzinformation der Datenplatzierungsanfrage zu speichern. Die Switches, durch welche die Datenplatzierungsanfragen hindurchgehen, vermerken die beabsichtigte Zieladresse der Datenplatzierungsanfrage und leiten die Datenplatzierungsanfrage zum zugewiesenen Speicherknoten zur Speicherung des Datenblocks, der als eine Nutzinformation der Anfrage transportiert wird. Die Zieladresse kann beispielsweise in Form einer Internetprotokollfamilien-(TCP/IP - Transmission Control Protocol/Internet Protocol)Adresse vorliegen, sodass für jedes TCP/IP-Ziel eine TCP/IP-Verbindung hergestellt wird.
  • Figurenliste
  • Ausführungsformen der vorliegenden Offenbarung sind beispielhaft und nicht einschränkend in den Figuren der begleitenden Zeichnungen dargestellt, in denen gleiche Bezugszeichen auf gleiche Elemente verweisen.
    • 1 bildet einen übergreifenden Blockschaltplan ab, der ein Beispiel für einzelne Datenplatzierungsanfragen des Standes der Technik darstellt, die durch ein Speichernetzwerk des Standes der Technik für ein Datenspeichersystem geleitet werden.
    • 2 bildet ein Löschcodierungsschema des Standes der Technik zum Codieren von Daten in Blöcken zur Speicherung in dem Datenspeichersystem ab.
    • 3 bildet einzelne Datenplatzierungsanfragen von 1 ab, jeweils eine Anfrage zum Platzieren eines einzelnen codierten Blocks von Daten von 2 in einen zugewiesenen Speicherknoten des Datenspeichersystems.
    • 4 bildet ein Beispiel von einzelnen Datenplatzierungsbestätigungen des Standes der Technik ab, die durch ein Speichernetzwerk des Standes der Technik für ein Datenspeichersystem geleitet werden.
    • 5 bildet einen übergreifenden Blockschaltplan ab, der ein Beispiel für eine Switch-unterstützte Datenspeicher-Netzwerkverkehrsverwaltung in einem Rechenzentrum gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
    • 6 bildet ein Beispiel für eine konsolidierte Datenplatzierungsanfrage von 5 zum Platzieren von mehreren codierten Blöcken von Daten in Speicherknoten des Datenspeichersystems ab.
    • 7 bildet ein Beispiel von Operationen eines Client-Knotens ab, der eine Switch-unterstützte Datenspeicher-Netzwerkverkehrsverwaltung in einem Rechenzentrum gemäß einer Ausführungsform der vorliegenden Offenbarung einsetzt.
    • 8A-8E stellen Beispiele für die Logik verschiedener Netzwerkknoten und -Switches dar, die eine Switch-unterstützte Datenspeicher-Netzwerkverkehrsverwaltung in einem Rechenzentrum gemäß einer Ausführungsform der vorliegenden Offenbarung einsetzen.
    • 9 bildet ein anderes Beispiel für eine Switch-unterstützte Datenspeicher-Netzwerkverkehrsverwaltung in einem Rechenzentrum gemäß einer Ausführungsform der vorliegenden Offenbarung ab.
    • 10 bildet ein Beispiel für Operationen eines Netzwerk-Switchs ab, der eine Switch-unterstützte Datenspeicher-Netzwerkverkehrsverwaltung in einem Rechenzentrum gemäß einer Ausführungsform der vorliegenden Offenbarung einsetzt.
    • 11 bildet zusätzliche Beispiele für konsolidierte Datenplatzierungsanfragen von 5 zum Platzieren von mehreren codierten Blöcken von Daten in Speicherknoten des Datenspeichersystems ab.
    • 12 bildet ein weiteres Beispiel für Operationen eines Netzwerk-Switchs ab, der eine Switch-unterstützte Datenspeicher-Netzwerkverkehrsverwaltung in einem Rechenzentrum gemäß einer Ausführungsform der vorliegenden Offenbarung einsetzt.
    • 13 bildet ein Beispiel für Datenblock-Platzierungsanfragen von 5 zum Platzieren von codierten Blöcken von Daten in Speicherknoten des Datenspeichersystems ab.
    • 14 bildet ein Beispiel für Operationen eines Netzwerk-Speicherknotens in einem Rechenzentrum gemäß einer Ausführungsform der vorliegenden Offenbarung ab.
    • 15 bildet ein Beispiel für Datenblock-Platzierungsbestätigungen von 9 zur Bestätigung der Platzierung codierter Blöcke von Daten in Speicherknoten des Datenspeichersystems ab.
    • 16 bildet ein Beispiel für konsolidierte Platzierungsbestätigungen für mehrere Blöcke von 9 zum Bestätigen der Platzierung codierter Blöcke von Daten in Speicherknoten des Datenspeichersystems ab.
    • 17 bildet ein anderes Beispiel für konsolidierte Platzierungsbestätigungen für mehrere Blöcke von 9 zum Bestätigen der Platzierung codierter Blöcke von Daten in Speicherknoten des Datenspeichersystems ab.
    • 18 bildet ein Beispiel für Logik eines Netzwerk-Speicherknotens oder eines Netzwerk-Switchs in einem Speichersystem ab, die Aspekte einer Switch-unterstützten Datenspeicher-Netzwerkverkehrsverwaltung gemäß einer Ausführungsform der vorliegenden Offenbarung einsetzt.
  • BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • In der folgenden Beschreibung sind gleichen Komponenten gleiche Bezugszeichen zugeordnet worden, ungeachtet dessen, ob sie in verschiedenen Ausführungsformen gezeigt sind. Um eine bzw. mehrere Ausführungsform(en) der vorliegenden Offenbarung auf klare und präzise Weise darzustellen, sind die Zeichnungen nicht notwendigerweise maßstabsgetreu und bestimmte Merkmale können in einer etwas schematischen Form gezeigt werden. Merkmale, die Bezug nehmend auf eine Ausführungsform beschrieben und/oder dargestellt werden, können auf dieselbe Weise oder auf eine ähnliche Weise bei einer oder mehreren anderen Ausführungsformen und/oder in Kombination mit oder an Stelle der Merkmale der anderen Ausführungsformen verwendet werden.
  • Wie vorstehend angemerkt, wird, wo eine Redundanz durch Löschcodierung (erasure coding - EC) bereitgestellt ist, ein Client-Knoten des Standes der Technik in der Regel k+m separate Datenplatzierungsanfragen generieren, eine Datenplatzierungsanfrage für jeden der k + m Blöcke von Client- und Paritätsdaten. Somit versteht es sich hier für eine Löschcodierung, dass allgemein eine beträchtliche Menge zusätzlichen Speicher-Netzwerkverkehrs generiert wird und im Ergebnis häufig eine beträchtliche Netzwerk-Bandbreite erforderlich ist, um die redundanten Blöcke EC-codierter Daten auf die Speicherknoten des Speichersystems zu platzieren. Es versteht sich ferner, dass aufgrund der Art des Aufteilens der ursprünglichen Client-Daten in eine Anzahl von codierten Blöcken einschließlich Paritätsdaten die Latenz der verschiedenen Datenplatzierungsanfragen auch verstärkt werden kann, da alle Datenplatzierungsanfragen für die codierten Blöcke von Daten in der Regel gleichzeitig auf die gleiche Weise bearbeitet werden, wie sie von dem Client-Knoten zu den Speicherknoten und den Speichermedien der Speicherknoten geleitet werden.
  • Darüber hinaus ergeben die k + m separaten Datenplatzierungsanfragen in der Regel k+m separate Bestätigungen, eine Bestätigung für jede der Datenplatzierungsanfragen, während die Daten einer Anfrage erfolgreich in einem Speicherknoten gespeichert werden. Somit können die separaten Bestätigungen auch zu zusätzlichem Speicher-Netzwerkverkehr beitragen und können im Ergebnis auch die Anforderungen an die Bandbreite des Speichernetzwerks erhöhen.
  • Wie nachstehend ausführlich erläutert wird, kann eine Switch-unterstützte Datenspeicher-Netzwerkverkehrsverwaltung gemäß einem Aspekt der vorliegenden Erfindung zusätzlichen Speicher-Netzwerkverkehr wesentlich reduzieren, der im Ergebnis von EC- oder anderen Redundanztechnologien generiert wurde, und im Ergebnis sowohl die Kosten für die Netzwerk-Bandbreite und die Datenplatzierungslatenz wesentlich reduzieren. Konkret kann bei verteilten Datenspeichersystemen, die mehrere Racks (Datenschränke) von Daten-Speicherknoten einsetzen, der Netzwerkverkehr, der zu speichernde Daten sowohl innerhalb des Racks als auch zwischen einzelnen Racks transportiert, reduziert werden, ungeachtet dessen, dass EC-codierte Datenblöcke oder andere Redundanzverfahren zu Zwecken der Zuverlässigkeit eingesetzt werden. Darüber hinaus kann ebenfalls sowohl ein Netzwerkverkehr innerhalb des Racks als auch ein Netzwerkverkehr zwischen einzelnen Racks, der ein Platzieren EC-codierter Datenblöcke in zugewiesenen Speicherknoten bestätigt, reduziert werden. Es versteht sich jedoch, dass Merkmale und Vorteile des Einsetzens einer Switch-unterstützten Datenspeicher-Netzwerkverkehrsverwaltung gemäß der vorliegenden Beschreibung abhängig von der spezifischen Anwendung variieren können.
  • Bei einem Aspekt der vorliegenden Beschreibung werden durch Software definierte Speicher (Software Defined Storage - SDS)-Ebenen-Informationen verwendet, um die Optimierung des Datenflusses innerhalb des Speichernetzwerks zu verbessern. Bei einer Ausführungsform bilden die SDS-Ebenen-Informationen eine Funktion der Hierarchieebenen hierarchischer Switches, welche die Speicherknoten und Racks von Speicherknoten in einem verteilten Speichersystem miteinander verbinden. Außerdem werden die SDS-Ebenen-Informationen von den verschiedenen Ebenen hierarchischer Switchs zum Verbessern der Optimierung des Datenflusses innerhalb der Speichernetzwerke eingesetzt.
  • Bei einer Ausführungsform setzt ein Speichernetzwerk eines verteilten Datenspeichersystems ToR (top of rack - meist oben im Serverschrank angeordnet) -Switches auf einer ersten Hierarchieebene und EoR (End of row - am Ende der Serverschrank-Reihe angeordnet)-Switches auf einer zweiten, höheren Hierarchieebene als derjenigen der ToR-Switches ein. SDS-Ebenen-Informationen werden von den verschiedenen Ebenen hierarchischer EoR- und ToR-Switches eingesetzt, um die Optimierung des Datenflusses innerhalb des Speichernetzwerks zu verbessern.
  • Bei einem anderen Aspekt kann eine Switch-unterstützte Datenspeicher-Netzwerkverkehrsverwaltung gemäß einem Aspekt der vorliegenden Beschreibung die Skalierung eines verteilten Datenspeichersystems erleichtern, wobei bei einer solchen Skalierung die Anzahl der Speicherknoten, der Racks der Speicherknoten und der Hierarchieebenen von Switches zunimmt. Im Ergebnis können Reduzierungen sowohl der Speichernetzwerk-Bandbreite und -Latenz, die durch eine Switch-unterstützte Datenspeicher-Netzwerkverkehrsverwaltung gemäß einem Aspekt der vorliegenden Beschreibung erreicht werden, sogar noch ausgeprägter sein, je nachdem, wie die Anzahl der Racks oder die Anzahl von Hierarchieebenen, die für die verteilten Speichersysteme eingerichtet werden, zunimmt.
  • 1 zeigt ein Beispiel für ein verteiltes Datenspeichersystem des Standes der Technik, aufweisend zwei stellvertretende Datenspeicher-Racks, Rack 1 (enthaltend drei stellvertretende Speicherknoten, Knoten A-Knoten C) und Rack 2 (enthaltend drei stellvertretende Speicherknoten, Knoten D-Knoten F) zum Speichern von Client-Daten. Ein drittes Rack, Rack 3, beherbergt einen Rechen- oder Client-Knoten, der ursprüngliche Client-Daten, die auf den Rechenknoten von Rack 3 hochgeladen wurden, empfängt.
  • Wenn ein Client oder ein anderer Benutzer irgendwelche Daten in den Rechenknoten zur Speicherung in dem Datenspeichersystem hochlädt, verwendet der Rechenknoten im Beispiel von 1 einen bekannten Löschcodierungsalgorithmus EC(k, m) zum Codieren der ursprünglichen Daten in k Datenblöcke und m Paritätsblöcke, wobei k + m = r. Die Gesamtblöcke r codierter Daten sind auf Speichermedien in unterschiedlichen Ausfall-Domänen zu platzieren, das heißt gemäß den Verwaltungsregeln des Speichersystems in unterschiedliche Speicherknoten innerhalb des gleichen Racks oder in Speicherknoten in unterschiedlichen Racks. 2 stellt beispielsweise ein EC-Schema dar, in dem k = 4 und m =2, wobei ursprüngliche Client-Daten in sechs Blöcke, Block 1-Block 6, EC-codiert sind, das heißt vier Datenblöcke, Block 1, Block 2, Block 4, Block 5 von gleicher Größe und zwei Paritätsblöcke, Block 3, Block 6, die jeweils Paritätsdaten enthalten.
  • Wie vorstehend erwähnt, generiert ein Client-Knoten wie etwa der Rechenknoten von Rack 3 (1) bei einem typischen verteilten Datenspeichersystem des Standes der Technik eine separate Datenplatzierungsanfrage für jeden Block von Daten, der in einen Speicherknoten platziert werden soll. Somit wird der Client-Knoten, bei dem eine Redundanz durch Löschcodierung bereitgestellt ist, in der Regel k + m separate Datenplatzierungsanfragen generieren, eine Datenplatzierungsanfrage für jeden der k + m Blöcke von Client-Daten. Dementsprechend generiert der Rechenknoten von Rack 3 im Beispiel von 1, 2 sechs Datenplatzierungsanfragen, Anfrage A-Anfrage F, jeweils eine für jeden Block, Block 1-Block 6, in welche die ursprünglichen Client-Daten EC-codiert wurden.
  • Wie in 3 gezeigt, beinhaltet jede Datenplatzierungsanfrage, Anfrage A-Anfrage F, eine Datenstruktur einschließlich eines Nutzinformationsfelds 10, das den durch die Anfrage zu platzierenden codierten Block enthält, und ein Zieladressfeld 14, das die Adresse des Speicherknotens enthält, dem zugewiesen wurde, den im Nutzinformationsfeld 10 enthaltenen codierten Block zu speichern. Die Zieladresse kann beispielsweise in Form einer TCP/IP-Netzwerkadresse vorliegen. Somit kann jeder codierte Block zu einem zugewiesenen Speicherknoten geleitet werden und über eine einzelne, Ende-zu-Ende-TCP/IP-Verbindung zwischen jedem Speicherknoten und dem Client-Knoten bestätigt werden.
  • Zum Beispiel enthält das Nutzinformationsfeld 10 der Datenplatzierungsanfrage A enthält beispielsweise den codierten Block Block 1 und das Zieladressfeld 14 der Datenplatzierungsanfrage A, weist die Adresse des zugewiesenen Ziel-Speicherknotens A auf. Das Nutzinformationsfeld 10 jeder der anderen Datenplatzierungsanfragen, Anfrage B-Anfrage F, enthält jeweils einen codierten Block, Block 2-Block 6, und das Zieladressfeld 14 jeder der anderen Datenplatzierungsanfragen, Anfrage B-Anfrage F, weist die Adresse des zugewiesenen Ziel-Speicherknotens, Knoten B-Knoten F auf, wie in 3 gezeigt. Jede Datenplatzierungsanfrage, Anfrage A-Anfrage F, kann ferner ein Feld 18 beinhalten, welches den Client-Knoten, der die Datenplatzierungsanfrage vornimmt, identifiziert.
  • Die k+m Datenplatzierungsanfragen (Anfrage A-Anfrage F in 1, 3) werden durch verschiedene Switches des verteilten Datenspeichersystems an die zugewiesenen Speicherknoten zur Speicherung übertragen. Wie vorstehend angemerkt, stellt jede Datenplatzierungsanfrage in der Regel eine Zieladresse (beispielsweise Feld 14 (3)) eines spezifischen Speicherknotens bereit, dem zugewiesen wurde, den von der Datenplatzierungsanfrage als eine Nutzinformation der Datenplatzierungsanfrage transportierten codierten Block zu speichern. Die Switches, durch welche die Datenplatzierungsanfragen hindurchgehen, vermerken die beabsichtigte Adresse der Datenplatzierungsanfrage und leiten die Datenplatzierungsanfrage zum zugewiesenen Speicherknoten zur Speicherung des codierten Blocks der Anfrage.
  • Somit empfängt im Beispiel von 1 ein ToR-Switch 3 die sechs Datenplatzierungsanfragen, Anfrage A-Anfrage F (1, 3), welche die sechs Datenblöcke, Block 1-Block 6 (3), jeweils als Nutzinformationen 10 transportieren, und übermittelt die sechs Datenplatzierungsanfragen, Anfrage A-Anfrage F, an einen EoR-Switch 4 (1). Drei der Datenplatzierungsanfragen, Anfrage A-Anfrage C, welche die drei Datenblöcke, Block 1-Block 3 (3) jeweils als Nutzinformationen 10 transportieren, werden durch den EoR-Switch 4 (1) an einen ToR-Switch 1 geleitet, der die Datenplatzierungsanfragen, Anfrage A-Anfrage C wiederum jeweils an zugewiesene Speicherknoten wie etwa Knoten A-Knoten C von Rack 1 leitet, um die drei Datenblöcke, Block 1-Block3, jeweils zu speichern. Auf eine ähnliche Weise werden die drei verbleibenden Datenplatzierungsanfragen, Anfrage D-Anfrage F, welche die drei codierten Daten- und Paritätsblöcke, Block 4-Block 6 (3) jeweils als Nutzinformationen 10 transportieren, durch den EoR-Switch 4 (1) an einen anderen ToR-Switch 2 geleitet, der wiederum jede der Datenplatzierungsanfragen, Anfrage D-Anfrage F, jeweils an einen zugewiesenen Speicherknoten der Speicherknoten wie etwa Knoten D-Knoten F von Rack 2 leitet, um einen jeweils einen daten- oder paritätscodierten Block der drei daten- und paritätscodierten Blöcke, Block 4-Block 6, zu speichern.
  • Es wird angemerkt, dass eine bisherige Platzierung von codierten Daten- und Paritätsblöcken auf die in 1 abgebildete Weise parallele Platzierungsoperationen für Daten- und Paritätsblöcke bereitstellen kann, bei denen solche parallelen Platzierungsoperationen die Reaktionszeit für Datenplatzierungsoperationen verbessern können. Es versteht sich hier jedoch ferner, dass eine blöckeweise Kommunikation über das Netzwerk, das heißt, ein Leiten von separaten Blockanfragen für jeden Block der EC-codierten Blöcke durch das Speichernetzwerk in der Regel mehrere Sprünge von dem Client-Knoten und durch die verschiedenen Switches zu den Speicherknoten für jeden einer solchen Block-Platzierungsanfrage mit sich bringt. Im Ergebnis können Variationen in der Latenz einer jeden solchen Block-Platzierungsanfrage für diese einzelnen Blöcke eingebracht werden, die aus demselben ursprünglichen Client-Daten-Upload stammten.
  • Es wird darüber hinaus angemerkt, dass bei einem bisherigen typischen verteilten Datenspeichersystem die Platzierung eines codierten Blocks in jeden Speicherknoten eine separate Bestätigung generiert, die durch das Speichernetzwerk des verteilten Datenspeichersystems geleitet wird. Somit, wo der Client-Knoten k + m separate Datenplatzierungsanfragen generiert - eine Datenplatzierungsanfrage für jeden der k + m codierten Blöcke von Client-Daten - generieren die Speicherknoten in der Regel wiederum k + m Bestätigungen bei erfolgreicher Platzierung der k + m codierten Blöcke. Jede der k + m separaten Datenplatzierungsanfragen kann die Quelle der Datenplatzierungsanfrage zu Zwecken des Adressierens von Bestätigungen an den anfragenden Knoten identifizieren.
  • Dementsprechend generieren die sechs Speicherknoten, Knoten A-Knoten F, im Beispiel von 4 sechs Datenplatzierungsbestätigungen, Ack A-Ack F, jeweils eine für jeden codierten Block, Block 1-Block 6, die jeweils in die Speicherknoten, Knoten A-Knoten F, platziert wurden. Jede Bestätigung der Bestätigungen Ack A-Ack F kann den codierten Block identifizieren, der erfolgreich gespeichert wurde, und den Speicherknoten identifizieren, in dem der identifizierte codierte Block gespeichert wurde.
  • Die k + m Datenplatzierungsbestätigungen (Ack A-Ack F in 4) werden durch verschiedene Switches des verteilten Datenspeichersystems zurück zum Client-Knoten von Rack 3 übertragen, welcher die sechs Blockanfragen, Anfrage A-Anfrage F (1), generiert hatte. Bei einem Beispiel kann jede Datenplatzierungsbestätigung eine Zieladresse eines spezifischen Client-Knotens bereitstellen, welcher die bestätigte, ursprüngliche Datenplatzierungsanfrage generiert hatte. Die Switches, durch welche die Datenplatzierungsbestätigungen hindurchgehen, können eine beabsichtigte Zieladresse der Datenplatzierungsbestätigung vermerken und die Datenplatzierungsbestätigung zum zugewiesenen Rechenknoten leiten, um die erfolgreiche Speicherung des Datenblocks der bestätigten Platzierungsanfrage zu bestätigen.
  • Somit werden im Beispiel von 4 drei der Datenplatzierungsbestätigungen, Ack A-Ack C, welche die jeweilige Platzierung der drei codierten Blöcke, Block 1-Block 3, jeweils in den Speicherknoten, Knoten A-Knoten C, von Rack 1 bestätigen, durch den ToR-Switch 1 an den EoR-Switch 4 geleitet, der wiederum die separaten Datenplatzierungsbestätigungen Ack A-Ack C zum ToR-Switch 3 leitet, der die separaten Datenplatzierungsbestätigungen Ack A-Ack C zurück an den Client- oder Rechenknoten von Rack 3 weiterleitet, der die Block-Platzierungsanfragen, Anfrage A-Anfrage C jeweils generiert hat, und dem Client-Knoten das jeweilige erfolgreiche Platzieren der drei codierten Blöcke, Block 1-Block 3, in den jeweiligen zugewiesenen Speicherknoten, Knoten A-Knoten C, von Rack 1 bestätigt. Auf eine ähnliche Weise werden die drei verbleibenden Datenplatzierungsbestätigungen Ack D-Ack F, welche die jeweilige Platzierung der drei codierten Blöcke, Block 4-Block 6, jeweils in den Speicherknoten, Knoten D-Knoten F, bestätigen, durch den ToR-Switch 2 an den EoR-Switch 4 geleitet, der wiederum die separaten Datenplatzierungsbestätigungen Ack D-Ack F an den ToR- Switch 3 leitet, der die separaten Datenplatzierungsbestätigungen Ack D-Ack F zurück an den Client-Knoten von Rack 3 weiterleitet, der die jeweiligen ursprünglichen Datenplatzierungsanfragen, Anfrage D-Anfrage F, generiert hat, die dem Client-Knoten die jeweilige erfolgreiche Platzierung der drei codierten Blöcke, Block 4-Block 6, in den jeweiligen zugewiesenen Speicherknoten, Knoten D-Knoten F, von Rack 2 bestätigen.
  • Es wird angemerkt, dass bisherige gleichzeitige Bestätigungen der Platzierung von codierten Daten und von Paritätsblöcken in der in 4 abgebildeten Weise parallele Operationen zur Datenplatzierungsbestätigung bereitstellen können, in denen solche parallelen Bestätigungsoperationen die Reaktionszeit für Operationen zur Datenplatzierungsbestätigung verbessern können. Es versteht sich hier jedoch ferner, dass eine blöckeweise Kommunikation über das Speichernetzwerk für die separaten Bestätigungen, das heißt, ein Leiten von separaten Blockbestätigungen für jeden EC-codierten Block über das Speichernetzwerk in der in 4 abgebildeten Weise in der Regel auch mehrere Sprünge von den Speicherknoten über die verschiedenen Switches und zurück zum Client-Knoten für jede solche Block-Platzierungsbestätigung mit sich bringt. Im Ergebnis können Variationen bei der Latenz einer jeden solchen Block-Platzierungsbestätigung für diese einzelnen Blöcke eingebracht werden, die aus dem gleichen ursprünglichen Client-Daten-Upload stammen.
  • 5 bildet eine Ausführungsform eines Rechenzentrums ab, das eine Switch-unterstützte Datenspeicher-Netzwerkverkehrsverwaltung gemäß der vorliegenden Beschreibung einsetzt. Eine solche Switch-unterstützte Datenspeicher-Netzwerkverkehrsverwaltung kann sowohl den Netzwerkverkehr zwischen einzelnen Racks als auch innerhalb eines Racks reduzieren. Beispielsweise können EC-codierte Blöcke, an Stelle des Generierens von k+m separaten Datenplatzierungsanfragen in der vorstehend im Zusammenhang mit dem bisherigen Datenzentrum von 1 beschriebenen Weise durch einen Client-Knoten konsolidiert werden, wie etwa dem Client-Knoten C (5), in beispielsweise nur eine einzige konsolidierte Datenplatzierungsanfrage wie etwa der Anfrage 0, die beispielsweise eine Nutzinformation der zu platzierenden Client-Daten aufweist.
  • Wie in 6 gezeigt, beinhaltet die konsolidierte Datenplatzierungsanfrage 0 eine Datenstruktur, die mehrere Nutzinformationsfelder wie etwa die Nutzinformationsfelder 100a-100f beinhaltet, die jeweils einen codierten Block, der als Reaktion auf die Anfrage 0 platziert werden soll, enthalten. Somit enthalten die Nutzinformationsfelder 100a-100f bei der Ausführungsform von 6 jeweils die codierten Blöcke Block 1-Block 6. Bei diesem Beispiel wird ein EC-Schema mit k = 4 und m =2 verwendet, bei welchem ursprüngliche Client-Daten in sechs Blöcke, Block 1-Block 6, EC-codiert werden, das heißt in vier Datenblöcke, Block 1, Block 2, Block 4, Block 5 von gleicher Größe, und in zwei Paritätsblöcke, Block 3, Block 6, die jeweils Paritätsdaten enthalten. Bei der dargestellten Ausführungsform ist der Client-Knoten C konfiguriert, empfangene Client-Daten in Blöcke von Speicherdaten einschließlich Paritätsdaten zu codieren. Es versteht sich jedoch, dass eine solche Codierung von anderen Knoten des Speichersystems durchgeführt werden kann. Es können beispielsweise eine oder mehrere der Logiken des ToR-Switchs C, des EoR-Switchs E und der ToR-Switches, Switch A und Switch B konfiguriert sein, empfangene Daten in codierte Blöcke zu löschkodieren.
  • Die Datenstruktur der konsolidierten Datenplatzierungsanfrage 0 beinhaltet ferner, in Verbindung mit den Nutzinformationsfeldern 100a-100f, mehrere Zieladressfelder, wie etwa die Zieladressfelder 104a-104f, zum Identifizieren der Zieladresse für die jeweiligen zugehörigen codierten Blöcke, Block 1-Block 6. Somit enthält jedes Zieladressfeld 104a-104f die Adresse eines Speicherknotens, dem zugewiesen wurde, den codierten Block, der in dem jeweils zugehörigen Nutzinformationsfeld 100a-100f enthalten ist, zu speichern. Das Nutzinformationsfeld 100a der konsolidierten Datenplatzierungsanfrage 0 enthält beispielsweise den codierten Block Block 1 und das zugehörige Zieladressfeld 104a der konsolidierten Datenplatzierungsanfrage 0 enthält die Adresse des zugewiesenen Ziel-Speicherknotens, der in diesem Beispiel Knoten A (5) ist. Jedes der Nutzinformationsfelder 100b-100f der konsolidierten Datenplatzierungsanfrage 0 enthält jeweils einen codierten Block bzw. Block 2-Block 6 und die jeweils zugehörigen Zieladressfelder 104b-104f der konsolidierten Datenplatzierungsanfrage 0 enthalten die Adressen der jeweils zugewiesenen Ziel-Speicherknoten, Knoten 2-Knoten 6, wie in 5 gezeigt.
  • Die Zieladressen der Zieladressfelder 104a-104f können beispielsweise in Form von TCP/IP-Netzwerkadressen vorliegen. Jedoch kann, anders als bei dem in 1 abgebildeten bisherigen System, jeder codierte Block in einen zugewiesenen Speicherknoten platziert werden und durch konsolidierte TCP/IP-Verbindungen an Stelle von einzelnen Ende-zu-Ende-TCP/IP-Verbindungen bestätigt werden, um den Speicher-Netzwerkverkehr und damit verbundene Erfordernisse an die Bandbreite zu reduzieren.
  • 7 bildet ein Beispiel für den Betrieb des Client-Knotens C von 5 ab. Bei einer Ausführungsform beinhaltet der Client-Knoten C von Rack C von 4 eine Logik zur konsolidierten Platzierungsanfrage 110 (8A), die konfiguriert ist, (Block 114, 7) ursprüngliche Client-Speicherdaten zu empfangen, die auf den Client-Knoten C von einem Kunden, beispielsweise dem Datenspeichersystem, hochgeladen werden können. Die Logik zur konsolidierten Platzierungsanfrage 110 (8A) ist ferner konfiguriert, die empfangenen ursprünglichen Client-Daten in codierte Blöcke in einer ähnlichen Weise zu der vorstehend im Zusammenhang mit 5 beschriebenen zu codieren (Block 120, 7). Somit können die empfangenen ursprünglichen Client-Daten bei einem Beispiel in einem EC-Schema mit k = 4 und m =2 EC-codiert werden, bei welchem ursprüngliche Client-Daten in sechs Blöcke, Block 1-Block 6, das heißt in vier Datenblöcke, Block 1, Block 2, Block 4 und Block 5 von gleicher Größe und in zwei Paritätsblöcke, Block 3 und Block 6, die Paritätsdaten enthalten, EC-codiert werden.
  • Die Logik zur konsolidierten Platzierungsanfrage 110 (8A) ist ferner konfiguriert, eine konsolidierte Platzierungsanfrage für mehrere Blöcke wie etwa die konsolidierte Platzierungsanfrage für mehrere Blöcke 0 von 6 zu generieren und an einen hierarchischen Switch auf einer höheren Ebene wie etwa den EoR-Switch E von 5 zu übertragen (Block 124, 7). Bei der dargestellten Ausführungsform von 5 wird die konsolidierte Platzierungsanfrage 0 an den EoR-Switch E über den ToR-Switch C für RackCübertragen, der den Client-KnotenCenthält.
  • Wie vorstehend beschrieben, weist die konsolidierte Platzierungsanfrage 0 eine Nutzinformation (Nutzinformationsfelder 100a-100f) auf, die löschcodierte Blöcke (jeweils Block 1-Block 6) zur Speicherung in Gruppen von Speicherknoten (jeweils Speicherknoten A-Knoten F), wie durch zugehörige Zieladressfelder (jeweils 104a-104f) identifiziert, enthält. Somit generiert die Logik zur konsolidierten Platzierungsanfrage 110 (8 A), an Stelle von sechs einzelnen Datenplatzierungsanfragen für sechs separate codierte Blöcke, die in sechs einzelnen TCP/IP-Verbindungen übertragen werden, wie im Zusammenhang mit dem System des Standes der Technik von 1 beschrieben, nur eine einzige konsolidierte Platzierungsanfrage 0 für sechs codierte Blöcke von Daten und überträgt dieselbe in einer einzigen TCP/IP-Verbindung 128 (5) zwischen dem Client-KnotenCund dem hierarchischen EoR-Switch E über den ToR-SwitchCvon 5. Obwohl im Zusammenhang mit dem Codieren von Client-Daten in einem EC-Schema mit k = 4 und m =2, bei dem ursprüngliche Client-Daten in sechs Blöcke EC-codiert werden, versteht es sich, dass ein Rechenzentrum, das eine Switch-unterstützte Datenspeicher-Netzwerkverkehrsverwaltung gemäß der vorliegenden Beschreibung einsetzt, andere Codierungsschemata einsetzen kann, die von k = 4 und m =2 verschiedene Codierungsparameter aufweisen können, was abhängig von der spezifischen Anwendung eine andere Anzahl bzw. Format von codierten Blöcken ergeben kann.
  • Wie nachstehend ausführlich im Zusammenhang mit 9 erläutert, können Bestätigungen, die durch eine Platzierung der codierten Blöcke in Speicherknoten generiert werden, auch konsolidiert werden, um den Netzwerkverkehr und Anforderungen an die Bandbreite zu reduzieren. Dementsprechend ist Logik für konsolidierte Bestätigungen 130 ( 8A) dazu konfiguriert, zu bestimmen, (Block 132, 7) ob solche konsolidierten Bestätigungen empfangen worden sind. Wenn zusätzliche Daten zum Codieren und zur Platzierung empfangen werden (Block 136), können die vorstehend beschriebenen Operationen für solche zusätzlichen Daten wiederholt werden.
  • Bei der dargestellten Ausführungsform beinhaltet das in 5 abgebildete Speichernetzwerk ein hierarchisches Kommunikationsnetzwerk, das hierarchische ToR-Switches, ToR-Switch A -Switch C, jeweils für die Racks Rack A-Rack C des Datenspeichersystems beinhaltet. Die hierarchischen ToR-Switches, Switch A-Switch C, liegen auf einer gemeinsamen Hierarchieebene, und der EoR-Switch, Switch E, liegt auf einer anderen, höheren Hierarchieebene als derjenigen der unteren hierarchischen ToR-Switches, Switch A-Switch C.
  • Bei der dargestellten Ausführungsform ist der Client-KnotenCkonfiguriert, die erstmalige konsolidierte Datenplatzierungsanfrage 0 zu generieren. Es versteht sich jedoch, dass eine solche Generierung von Anfragen von anderen Knoten des Speichersystems durchgeführt werden kann. Zum Beispiel können eine oder mehrere der Logiken des ToR-SwitchsCoder des EoR-Switchs E beispielsweise konfiguriert sein, eine erstmalige konsolidierte Datenplatzierung zu generieren, wie etwa die erstmalige konsolidierte Datenplatzierungsanfrage 0.
  • 10 bildet ein Beispiel der Operationen des EoR-Switchs E von 5 ab. Bei einer Ausführungsform beinhaltet der EoR-Switch E Logik zur Anfragegenerierung zwischen einzelnen Racks 150, konfiguriert zum Detektieren (Block 154, 10) einer konsolidierten Platzierungsanfrage für mehrere Blöcke, wie etwa der konsolidierten Platzierungsanfrage für mehrere Blöcke 0, die von dem EoR-Switch E empfangen wurde. Bei einer Ausführungsform kann die konsolidierte Platzierungsanfrage 0 an den hierarchischen EoR-Switch E adressiert sein. Bei einer anderen Ausführungsform kann die Logik zur Anfragegenerierung zwischen einzelnen Racks 150 konfiguriert sein, eine konsolidierte Platzierungsanfrage für mehrere Blöcke, wie etwa die konsolidierte Platzierungsanfrage für mehrere Blöcke 0, zu überwachen und abzufangen. Wie vorstehend beschrieben, handelt es sich bei der konsolidierten Platzierungsanfrage für mehrere Blöcke 0 um eine Anfrage, die konsolidierten codierten Blöcke, Block 1-Block 6, in eine definierte Gruppe von Speicherknoten des Speichersystems zu platzieren. Die Logik zur Anfragegenerierung zwischen einzelnen Racks 150 (8B) ist ferner konfiguriert, als Reaktion auf die konsolidierte Platzierungsanfrage für mehrere Blöcke 0, verteilte Datenplatzierungsanfragen für mehrere Blöcke zu generieren und an untere hierarchische Switches zu übertragen (Block 158, 10).
  • Es versteht sich hier, von der Topologie eines Rechnernetzes eines Rechenzentrums aus gesehen, dass zwei Faktoren in einem EC (k, m)-codierten Redundanzschema einen EC-Blockfaktor innerhalb eines Racks ri und einen EC-Blockfaktor zwischen einzelnen Racks R beinhalten. Der Faktor ri beschreibt, wie viele EC-codierte Blöcke in das gleiche Rack i platziert werden, wohingegen der Faktor R beschreibt, wie viele Speicher-Racks diese Blöcke halten. Bei einem Datenspeichersystem, das ein EC(k, m)-Codierschema einsetzt, gilt Folgendes: r = k + m = r i ,
    Figure DE102018131983A1_0001
    wobei 1 ≤ i ≤ R.
  • Bei der Ausführungsform von 5 generiert und überträgt die Logik zur Anfragegenerierung zwischen einzelnen Racks 150 R verteilte Datenplatzierungsanfragen für mehrere Blöcke, wobei R=2, da in dem Datenspeichersystem zwei Speicher-Racks, Rack A und Rack B, vorliegen. Jede verteilte Datenplatzierungsanfrage für mehrere Blöcke enthält als Nutzinformation ri = 3 codierte Blöcke, da jedem Rack, wie etwa dem Rack A, drei codierte Blöcke zum Speichern zugewiesen sind. Dementsprechend generiert und überträgt die Logik zur Anfragegenerierung zwischen einzelnen Racks 150 eine erste verteilte Datenplatzierungsanfrage für mehrere Blöcke 0A an die erste untere Hierarchieebene des ToR-Switchs A, um eine erste Gruppe codierter Blöcke, Block 1-Block 3, in jeweilige zugewiesene Speicherknoten, Knoten A-Knoten C, des Speicher-Racks A zu platzieren. Wie in 11 gezeigt, weist die verteilte Datenplatzierungsanfrage für mehrere Blöcke 0A Nutzinformationsfelder 100a-100c auf, welche jeweils die erste Gruppe codierter Blöcke bzw. Block 1-Block 3 enthalten, die von der konsolidierten Platzierungsanfrage für mehrere Blöcke 0 abgeteilt und in die verteilte Datenplatzierungsanfrage für mehrere Blöcke 0A kopiert wurden, wie in 11 gezeigt.
  • Bei einem Aspekt der vorliegenden Beschreibung ist die Logik zur Anfragegenerierung zwischen einzelnen Racks 150 des EoR-Switchs E konfiguriert, codierte Blöcke von der konsolidierten Platzierungsanfrage für mehrere Blöcke 0 abzuteilen und sie in einer spezifischen verteilten Datenplatzierungsanfrage für mehrere Blöcke wie etwa der Anfrage 0A als eine Funktion der zugewiesenen Speicherknoten neu zu packen, in welche die codierten Blöcke der konsolidierten Platzierungsanfrage für mehrere Blöcke 0 zu platzieren sind. Im Beispiel von 5, 6 und 11 fragt die konsolidierte Platzierungsanfrage für mehrere Blöcke 0 die Platzierung der codierten Blöcke, Block 1-Block 3, in den jeweiligen Speicherknoten, Knoten 1-Knoten 3, des Speicher-Racks A, wie jeweils von den Speicherknoten-Adressfeldern 104a-104c der konsolidierten Platzierungsanfrage für mehrere Blöcke 0 angegeben. Somit teilt die Logik zur Anfragegenerierung zwischen einzelnen Racks 150 des EoR-Switchs E die codierten Blöcke Block 1-Block 3 von der konsolidierten Platzierungsanfrage für mehrere Blöcke 0 ab und packt sie neu in die verteilte Datenplatzierungsanfrage für mehrere Blöcke 0A und überträgt die Datenplatzierungsanfrage für mehrere Blöcke 0A in einer TCP/IP-Verbindung 162a (5) an den hierarchisch in der unteren Ebene liegenden ToR-Switch A an das Speicher-Rack A, der die zugewiesenen Speicherknoten, Knoten 1-Knoten 3, für die angefragte Platzierung der codierten Blöcke, Block 1-Block 3, enthält.
  • Die Logik zur Anfragegenerierung zwischen einzelnen Racks 150 ist ferner konfiguriert zum Bestimmen (Block 166, 10), ob alle verteilten Datenplatzierungsanfragen für mehrere Blöcke an die passenden hierarchisch auf einer unteren Ebene liegenden Switches gesendet worden sind. Bei der Ausführungsform von 5 wird eine zweite verteilte Datenplatzierungsanfrage für mehrere Blöcke generiert und an einen auf einer unteren Ebene liegenden ToR-Switch für ein zweites Speicher-Rack, das heißt Rack B, übertragen. Dementsprechend generiert und überträgt, auf eine ähnliche Weise zu der vorstehend im Zusammenhang mit der verteilten Datenplatzierungsanfrage für mehrere Blöcke 0A beschriebenen, die Logik zur Anfragegenerierung zwischen einzelnen Racks 150 eine zweite verteilte Datenplatzierungsanfrage für mehrere Blöcke 0B (5) an den zweiten auf einer unteren Ebene liegenden hierarchischen ToR-Switch B, um eine zweite Gruppe codierter Blöcke, Block 4-Block 6, in jeweilige zugewiesene Speicherknoten, Knoten D-Knoten F, des Speicher-Racks B zu platzieren. Wie in 11 gezeigt, weist die verteilte Datenplatzierungsanfrage für mehrere Blöcke 0B Nutzinformationsfelder 100d-100f auf, welche jeweils die zweite Gruppe codierter Blöcke bzw. Block 4-Block 6 enthalten, die von der konsolidierten Platzierungsanfrage für mehrere Blöcke 0 abgeteilt wurden und an die verteilte Datenplatzierungsanfrage für mehrere Blöcke 0B wie in 11 gezeigt kopiert wurden.
  • Im Beispiel von 5, 6 und 11 stellt die konsolidierte Platzierungsanfrage für mehrere Blöcke 0 eine Anfrage auf Platzierung der codierten Blöcke, Block 4-Block 6 in die jeweiligen Speicherknoten, Knoten 4-Knoten 6 des Speicher-Racks B, wie jeweils von den Speicherknoten-Adressfeldern 104d-104f der konsolidierten Platzierungsanfrage für mehrere Blöcke 0 angegeben. Somit teilt die Logik zur Anfragegenerierung zwischen einzelnen Racks 150 des EoR-Switchs E die codierten Blöcke Block 4-Block 6 von der konsolidierten Platzierungsanfrage für mehrere Blöcke 0 ab und packt sie um in die verteilte Datenplatzierungsanfrage für mehrere Blöcke 0B und überträgt die verteilte Datenplatzierungsanfrage für mehrere Blöcke 0B in einer konsolidierten TCP/IP-Verbindung 162b (5) an den auf einer unteren Hierarchieebene liegenden ToR-Switch B für das Speicher-Rack B, das die zugewiesenen Speicherknoten, Knoten 4-Knoten 6, für die angeforderte Platzierung der codierten Blöcke, Block 4-Block 6, enthält.
  • Somit generiert und überträgt die Logik zur Anfragegenerierung zwischen einzelnen Racks 150 (8B) an Stelle von drei einzelnen Datenplatzierungsanfragen für drei separate codierte Blöcke, die in drei einzelnen TCP/IP-Verbindungen zwischen dem EoR-Switch 4 (1) und dem ToR-Switch 1 übertragen werden, wie im Zusammenhang mit dem bisherigen System von 1 beschrieben, nur eine einzige konsolidierte Platzierungsanfrage 0A für drei codierte Blöcke von Daten in einer einzigen TCP/IP-Verbindung 162a (5) zwischen dem EoR-Switch E und dem ToR-Switch A für das Rack A. Auf eine ähnliche Weise generiert und überträgt die Logik zur Anfragegenerierung zwischen einzelnen Racks 150 (8B), an Stelle von drei einzelnen Datenplatzierungsanfragen für drei separate codierte Blöcke, die in drei einzelnen TCP/IP-Verbindungen zwischen dem EoR-Switch 4 (1) und dem ToR-Switch 2 übertragen werden, wie im Zusammenhang mit dem bisherigen System von 1 beschrieben, nur eine einzige konsolidierte Platzierungsanfrage 0B für drei codierte Blöcke von Daten in einer einzigen TCP/IP-Verbindung 162b (5) zwischen dem EoR-Switch 4 und dem ToR-Switch B für das Rack B.
  • Wie nachstehend ausführlicher im Zusammenhang mit 9 erläutert, können Bestätigungen, die durch Platzierung der codierten Blöcke in Speicherknoten generiert wurden, auch konsolidiert werden, um den Netzwerkverkehr und Anforderungen an die Bandbreite zu reduzieren. Dementsprechend ist die Logik zur Bestätigungskonsolidierung zwischen einzelnen Racks 170 (8B) des EoR-Switchs E ferner konfiguriert zum Bestimmen (Block 174, 10), ob kombinierte Bestätigungen empfangen wurden, und falls ja, zum weiteren Konsolidieren (Block 178) und Übertragen konsolidierter Platzierungsbestätigungen für mehrere Blöcke an die Datenquelle wie untenstehend im Zusammenhang mit 9 beschrieben.
  • 12 bildet ein Beispiel für den Betrieb eines ToR-Switchs wie etwa des ToR-Switchs A und des ToR-Switchs B von 5 ab. Bei einer Ausführungsform beinhaltet der ToR-Switch A beispielsweise Logik zur Anfragegenerierung innerhalb eines Racks 204 (8C), konfiguriert zum Detektieren (Block 208, 12) einer verteilten Platzierungsanfrage für mehrere Blöcke wie etwa der verteilten Platzierungsanfrage für mehrere Blöcke 0A, die von dem ToR-Switch A von dem auf einer höheren Hierarchieebene liegenden EoR-Switch E empfangen wurde. Bei einer Ausführungsform kann die verteilte Platzierungsanfrage für mehrere Blöcke 0A an den ToR-Switch A adressiert werden. Bei einer anderen Ausführungsform kann die Logik zur Anfragegenerierung innerhalb eines Racks 204 konfiguriert sein, eine konsolidierte Platzierungsanfrage für mehrere Blöcke wie etwa die konsolidierte Platzierungsanfrage für mehrere Blöcke 0A zu überwachen und abzufangen. Wie vorstehend beschrieben, handelt es sich bei der verteilten Platzierungsanfrage für mehrere Blöcke 0A um eine Anfrage, die konsolidierten codierten Blöcke, Block 1-Block 3, in eine definierte erste Gruppe von Speicherknoten, Knoten 1-Knoten 3, von Rack A des Speichersystems zu platzieren. Die Logik zur Anfragegenerierung innerhalb eines Racks 204 (8C) ist ferner konfiguriert, als Reaktion auf die detektierte verteilte Platzierungsanfrage für mehrere Blöcke 0A, Datenblock-Platzierungsanfragen zu generieren (Block 212, 12) und an zugewiesene Speicherknoten des Speicher-Racks A zu übertragen, wobei jede Block-Datenplatzierungsanfrage eine Anfrage ist, einen einzelnen löschcodierten Block von Daten in einen zugewiesenen Speicherknoten der ersten Gruppe von Speicherknoten zu platzieren.
  • Bei der Ausführungsform von 5 generiert und überträgt die Logik zur Anfragegenerierung innerhalb eines Racks 204 des ToR-Switchs A ri = 3 Datenblock-Platzierungsanfragen für das Rack A, da bei dieser Ausführungsform drei codierte Blöcke in jedes Rack platziert werden sollen. Dementsprechend generiert die Logik zur Anfragegenerierung innerhalb eines Racks 204 des ToR-Switchs A eine erste Datenblock-Platzierungsanfrage 0A1 und überträgt dieselbe an den ersten auf einer unteren Hierarchieebene liegenden ToR-Switch A, um einen einzigen codierte Block, Block 1, in den zugewiesenen Speicherknoten A des Speicher-Racks A zu platzieren. Wie in 13 gezeigt, weist die Datenblock-Platzierungsanfrage 0A1 ein Nutzinformationsfeld 100a auf, das den codierten Block, Block 1, enthält, der von der verteilten Platzierungsanfrage für mehrere Blöcke 0A abgeteilt und an die Datenblock-Platzierungsanfrage 0A1 kopiert wurde, wie in 13 gezeigt.
  • Bei einem Aspekt der vorliegenden Beschreibung ist die Logik zur Anfragegenerierung innerhalb eines Racks 204 des ToR-Switchs A konfiguriert, einen codierten Block von der verteilten Platzierungsanfrage für mehrere Blöcke 0A abzuteilen und sie dann in einer spezifischen Datenblock-Platzierungsanfrage wie etwa der Anfrage 0A1 neu zu packen, als eine Funktion des zugewiesenen Speicherknotens, in den der codierte Block der verteilten Platzierungsanfrage für mehrere Blöcke 0A platziert werden soll. Im Beispiel von 5, 11 und 13, fragt die verteilte Platzierungsanfrage für mehrere Blöcke 0A die Platzierung des codierten Blocks, Block 1, in dem Speicherknoten, Knoten 1, des Speicher-Racks A an, wie vom Speicherknoten-Adressfeld 104a (11) der verteilten Platzierungsanfrage für mehrere Blöcke 0A angegeben. Somit teilt die Logik zur Anfragegenerierung innerhalb eines Racks 204 des ToR-Switchs A den codierten Block, Block 1, von der konsolidierten Platzierungsanfrage für mehrere Blöcke 0A ab und packt ihn neu in das Nutzinformationsfeld 100a (13) der Datenblock-Platzierungsanfrage 0A1 und überträgt die Datenblock-Platzierungsanfrage 0A1 in einer TCP/IP-Verbindung 214a (5) an den Speicherknoten, Knoten 1, des Speicher-Racks A, für die angefragte Platzierung des codierten Blocks, Block 1, in den Speicherknoten 1, wie durch das Knotenadressfeld 104a (13) der Datenblock-Platzierungsanfrage 0A1 angezeigt.
  • Die Logik zur Anfragegenerierung innerhalb eines Racks 204 ist ferner konfiguriert zum Bestimmen (Block 218, 12), ob alle Datenblock-Platzierungsanfragen an den passenden Speicherknoten des zugehörigen Speicher-Racks gesendet wurden. Bei der Ausführungsform von 5 werden zwei zusätzliche Datenblock-Platzierungsanfragen, Anfrage 0A2 und Anfrage 0A3, generiert und durch Logik zur Anfragegenerierung innerhalb eines Racks 204 des ToR-Switchs A an die jeweiligen Speicherknoten, Knoten 2 und Knoten 3 des Speicher-Racks A, in einer ähnlichen wie der vorstehend im Zusammenhang mit der Datenblock-Platzierungsanfrage 0A1 beschriebenen Weise zu übertragen. Die Datenblock-Platzierungsanfragen, Anfrage 0A2 und Anfrage 0A3, fragen die jeweilige Platzierung der codierten Blöcke, Block 2 und Block 3, an, die in den jeweiligen Nutzinformationsfeldern 100b und 100c (13) der jeweiligen Datenblock-Platzierungsanfragen, Anfrage 0A2 und Anfrage 0A3, in den jeweiligen Speicherknoten, Knoten 2 und Knoten 3, wie jeweils durch die Knotenadressfelder 104b und 104c (13) der jeweiligen Datenblock-Platzierungsanfragen, Anfrage 0A2 und Anfrage 0A3 adressiert. Die Datenblock-Platzierungsanfragen, Anfrage 0A2 und Anfrage 0A3, werden an die jeweiligen Speicherknoten, Knoten 2 und Knoten 3, über die jeweiligen TCP/IP-Verbindungen 214b und 214c übertragen.
  • Bei der Ausführungsform von 5 werden drei zusätzliche Datenblock-Platzierungsanfragen, Anfrage 0B4, Anfrage 0B5 und Anfrage 0B6, als Reaktion auf die detektierte verteilte Platzierungsanfrage für mehrere Blöcke 0B vom EoR-Switch E generiert und übertragen. Die drei zusätzlichen Datenblock-Platzierungsanfragen, Anfrage 0B4, Anfrage 0B5 und Anfrage 0B6, werden durch Logik zur Anfragegenerierung innerhalb eines Racks 204 des ToR-Switchs B auf eine ähnliche der vorstehend im Zusammenhang mit den Datenblock-Platzierungsanfragen, Anfrage 0A1-Anfrage 0A3, beschriebenen Weise generiert und an die jeweiligen Speicherknoten, Knoten 4, Knoten 5 und Knoten 6 des Speicher-Racks B, übertragen. Die Datenblock-Platzierungsanfragen, Anfrage 0B4, Anfrage 0B5 und Anfrage 0B6, fragen eine Platzierung der jeweiligen codierten Blöcke, Block 4, Block 5 und Block 6 an, die in den jeweiligen Nutzinformationsfeldern 100d, 100e und 100f (13) der jeweiligen Datenblock-Platzierungsanfragen, Anfrage 0B4, Anfrage 0B5 und Anfrage 0B6, in den Speicherknoten Knoten 4, Knoten 5 und Knoten 6 enthalten sind, wie jeweils durch die Knotenadressfelder 104d, 104e und 104f (13) der jeweiligen Datenblock-Platzierungsanfragen, Anfrage 0B4, Anfrage 0B5 und Anfrage 0B6, adressiert. Die Datenblock-Platzierungsanfragen, Anfrage 0B4, Anfrage 0B5 und Anfrage 0B6, werden an die jeweiligen Speicherknoten, Knoten 4, Knoten 5 und Knoten 6, in den jeweiligen TCP/IP-Verbindungen 214d, 214e und 214f übertragen. Die Datenblock-Platzierungsanfragen, Anfrage 0B1, Anfrage 0B2 und Anfrage 0B3, werden jeweils an die Speicherknoten Knoten 4, Knoten 5 und Knoten 6 in den jeweiligen TCP/IP-Verbindungen 214d, 214e und 214f übertragen.
  • Die Logik zur Bestätigungskonsolidierung innerhalb eines Racks 222 (8C) jedes des ToR-Switchs A und des ToR-Switchs B ist jeweils konfiguriert zum Bestimmen (Block 226, 12), ob alle Speicherbestätigungen von den Speicherknoten der zugehörigen Speicher-Racks empfangen worden sind. Wenn die Bestätigungen empfangen worden sind, ist die Logik zur Bestätigungskonsolidierung innerhalb eines Racks 222 (8C) ferner konfiguriert, konsolidierte Platzierungsbestätigungen für mehrere Blöcke zu kombinieren oder zu konsolidieren (Block 230) und sie an die Datenquelle, wie untenstehend im Zusammenhang mit 9 beschrieben, zu übertragen.
  • 14 bildet ein Beispiel für die Operationen eines Speicherknotens aus den Speicherknoten, Knoten 1-Knoten 6 der Racks Rack A und Rack B von 5 ab. Bei einer Ausführungsform beinhaltet der Speicherknoten 1 beispielsweise Logik zur Datenblock-Platzierung 250 (8D), konfiguriert zum Detektieren (Block 254, 14) einer Datenblock-Platzierungsanfrage, die von einer höheren Hierarchieebene wie etwa der Hierarchieebene des ToR-Switchs A empfangen wurde. Die Logik zur Block-Platzierung 250 ist ferner konfiguriert, als Reaktion auf das Empfangen einer Datenblock-Platzierungsanfrage, (Block 258. 14) den Datenblock, der in der Nutzinformation der Datenblock-Platzierungsanfrage enthalten ist, in dem Speicherknoten zu speichern, wenn der Speicherknoten der zur Platzierung des Datenblocks durch die empfangene Datenblock-Platzierungsanfrage zugewiesene Speicherknoten ist.
  • Bei einer Ausführungsform kann der Speicherknoten, der eine Datenblock-Platzierungsanfrage empfängt, die an den Speicherknoten durch ein Speicherknoten-Adressfeld wie etwa dem Adressfeld 104a einer Datenblock-Platzierungsanfrage 0A1 beispielsweise in einer TCP/IP-Verbindung wie etwa der Verbindung 214a adressiert wurde, kann dieser empfangende Speicherknoten beispielsweise annehmen, dass er der zugewiesene Speicherknoten der empfangenen Datenblock-Platzierungsanfrage ist. Bei anderen Ausführungsformen kann der empfangende Speicherknoten bestätigen, dass er der zugewiesene Speicherknoten der empfangenen Datenblock-Platzierungsanfrage ist, indem er beispielsweise das Speicherknoten-Adressfeld 104a einer empfangenen Datenblock-Platzierungsanfrage 0A1 prüft und die zugewiesene Adresse mit der Adresse des empfangenden Speicherknotens vergleicht.
  • Bei erfolgreichem Speichern des Datenblocks 1, der im Nutzinformationsfeld 100a der empfangenen Datenblock-Platzierungsanfrage 0A1 enthalten ist, generiert (Block 266, 14) und überträgt Logik zur Generierung von Platzierungsbestätigungen 262 (8D) des zugewiesenen Speicherknotens, in diesem Beispiel des Knotens 1, eine Bestätigung, Datenblock-Bestätigung Ack0A1 (9, 15), welche die erfolgreiche Platzierung des Datenblocks, in diesem Beispiel des Blocks 1, im Speicherknoten 1 bestätigt. Bei der Ausführungsform von 5 veranlasst jeder der anderen Speicherknoten, Knoten 2-Knoten 6, bei erfolgreichem jeweiligen Speichern des jeweiligen Datenblocks von Datenblock 2-Block 6, die im jeweiligen Nutzinformationsfeld der jeweiligen Nutzinformationsfelder 100b-100f der empfangenen jeweiligen Datenblock-Platzierungsanfrage der Datenblock-Platzierungsanfrage 0A2-Anfrage 0A3 bzw. Anfrage 0B4-Anfrage 0B6 jeweils enthalten sind, die Logik zur Generierung von Platzierungsbestätigungen 262 (8D) des jeweiligen zugewiesenen Speicherknotens aus den jeweiligen Speicherknoten 2-Knoten 6, jeweils eine Bestätigung, die Datenblock-Bestätigungen Ack0A2-Ack0A3 bzw. Ack0B4-Ack0B6, (9, 15) zu generieren (Block 266) und zu senden, welche die jeweilige erfolgreiche Platzierung des jeweiligen Datenblocks aus Block 2-Block 6 im jeweiligen Knoten der Speicherknoten 2-Knoten 6 bestätigt. Wie in 15 gezeigt, kann jede Datenblock-Bestätigung Ack0A1-Ack0A3, Ack0B4-Ack0B6 bei einer Ausführungsform jeweils ein Datenblock-Identifikationsfeld 270a -270f beinhalten, um den Datenblock zu identifizieren, für welchen eine Datenblock-Speicherung bestätigt wird, bzw. ein Knoten-Identifikationsfeld 274a-274f, um den spezifischen Speicherknoten zu identifizieren, für welchen die Datenblock-Speicherung bestätigt wird, und ein Client-Knoten-Identifikationsfeld 280, um den Client-Knoten wie etwa beispielsweise den Client-Knoten C zu identifizieren, der die Quelle der bestätigten Datenplatzierungsanfrage ist. Bei einer Ausführungsform kann jede Datenplatzierungsanfrage, Anfrage 0 (6), Anfrage 0A-Anfrage 0B (11), Anfrage 0A1-Anfrage 0B6 (13) auch ein Client-Knoten-Identifikationsfeld 280 beinhalten, um den Client-Knoten wie etwa beispielsweise den Client-Knoten C zu identifizieren, der die ursprüngliche Quelle der Datenplatzierungsanfrage 0 ist, die unmittelbar oder mittelbar bestätigt wird.
  • Bezug nehmend auf 9 weist jeder der hierarchischen ToR-Switches, Switch A und Switch B, Logik zur Bestätigungskonsolidierung innerhalb eines Racks 222 (8C) auf, konfiguriert zum Empfangen (Block 226, 12) mehrerer Datenblock-Platzierungsbestätigungen, wobei jede Datenblock-Platzierungsbestätigung die Speicherung eines einzelnen löschcodierten Blocks von Daten in einem zugewiesenen Speicherknoten bestätigt. Bei einer Ausführungsform können die Datenblock-Platzierungsbestätigungen an den ToR-Switch A adressiert sein. Bei einer anderen Ausführungsform kann die Logik zur Bestätigungskonsolidierung innerhalb eines Racks 222 konfiguriert sein, die Datenblock-Platzierungsbestätigungen wie etwa die Datenblock-Platzierungsbestätigungen Ack0A1-Ack0A3 zu überwachen und abzufangen. Außerdem konsolidiert (Block 230, 12) jede Logik zur Bestätigungskonsolidierung innerhalb eines Racks 222 die empfangenen Datenblock-Bestätigungen und generiert eine Datenplatzierungsbestätigung für mehrere Blöcke, welche die Speicherung von mehreren Datenblöcken in Speicherknoten des Speichersystems bestätigt, und überträgt dieselbe an einen auf einer höheren Hierarchieebene liegenden Switch, bei der Ausführungsform von 9 an den EoR-Switch E.
  • Somit weist bei der Ausführungsform von 9 der hierarchische ToR-Switch A für das Rack A Logik zur Bestätigungskonsolidierung innerhalb eines Racks 222 (8C) auf, die über drei TCP/IP-Verbindungen 214a-214c jeweils die drei Block-Platzierungsbestätigungen, Block Ack0A1-Ack0A3 (9, 15), empfängt, wobei jede Datenblock-Platzierungsbestätigung jeweils die Speicherung eines einzelnen löschcodierten Blocks von Daten der Blöcke Block 1-Block 3 bestätigt, wie jeweils durch die Datenblock-ID-Felder 270a-270c (15) identifiziert, jeweils in einem zugewiesenen Speicherknoten der ersten Gruppe von Speicherknoten aus den Speicherknoten, Knoten 1-Knoten 3, wie jeweils durch die Speicherknoten-ID-Felder 274a-274c der jeweiligen Block-Platzierungsbestätigungen, Block Ack0A1-Ack0A3 (9, 15), identifiziert. Die Logik zur Bestätigungskonsolidierung innerhalb eines Racks 222 (8C) des hierarchischen ToR-Switchs A konsolidiert die Block-Platzierungsbestätigungen, Block Ack0A1-Ack0A3 (9, 15), und generiert, als Reaktion auf den Empfang der Block-Platzierungsbestätigungen, Block Ack0A1-Ack0A3 (9, 15), eine erste Datenplatzierungsbestätigung für mehrere Blöcke Ack0A (9, 16), welche die Speicherung der codierten Blöcke bestätigt, und überträgt dieselbe über eine einzelne konsolidierte TCP/IP-Verbindung 162a an den auf einer höheren Hierarchieebene liegenden EoR-Switch E ( 9). Konkret bestätigt die Datenplatzierungsbestätigung für mehrere Blöcke Ack0A (9, 16) die Speicherung der codierten Blöcke, Block 1-Block 3, wie jeweils durch die Datenblock-ID-Felder 270a-270c der Bestätigung Ack0A identifiziert, jeweils in den zugewiesenen Rack A-Speicherknoten, Knoten 1-Knoten 3, wie jeweils durch die Knoten-ID-Felder 274a-274c der Bestätigung Ack0A identifiziert.
  • In ähnlicher Weise weist der hierarchische ToR-Switch B für das Rack B bei der Ausführungsform von 9 Logik zur Bestätigungskonsolidierung innerhalb eines Racks 222 ( 8C) auf, die über drei TCP/IP-Verbindungen 214d-214fjeweils die drei Block-Platzierungsbestätigungen, Block Ack0B4-Ack0B6 (9, 15) empfängt, wobei jede Datenblock-Platzierungsbestätigung die Speicherung eines einzelnen löschcodierten Blocks von Daten aus den Blöcken Block 4-Block 6 jeweils bestätigt, wie jeweils durch die Datenblock-ID-Felder 270d-270f (15) identifiziert, jeweils in einem zugewiesenen Speicherknoten der zweiten Gruppe von Speicherknoten aus den Speicherknoten, Knoten 4-Knoten 6, wie jeweils durch die Speicherknoten-ID-Felder 274d-274f der Block-Platzierungsbestätigungen, Block Ack0B4-Ack0B6 (9, 15) identifiziert. Die Logik zur Bestätigungskonsolidierung innerhalb eines Racks 222 (8C) des hierarchischen ToR-Switch B konsolidiert die Block-Platzierungsbestätigungen, Block Ack0B4-Ack0B6 (9, 15), und generiert und überträgt, an den auf einer höheren Hierarchieebene liegenden EoR-Switch E (9), als Reaktion auf den Empfang der Block-Platzierungsbestätigungen, Block Ack0B4-Ack0B6 (9, 15), eine zweite Datenplatzierungsbestätigung für mehrere Blöcke Ack0B (9, 16), welche die Speicherung von codierten Blöcken bestätigt. Konkret bestätigt die Datenplatzierungsbestätigung für mehrere Blöcke Ack0B (9, 16) die Speicherung der codierten Blöcke Block 4-Block 6, wie jeweils durch die Datenblock-ID-Felder 270d-270f der Bestätigung Ack0B identifiziert, in den jeweils zugewiesenen Rack B-Speicherknoten, Knoten 4-Knoten 6, wie jeweils durch die Knoten-ID-Felder 274d-274f der Bestätigung Ack0B identifiziert.
  • Somit generiert und überträgt die Logik zur Bestätigungskonsolidierung innerhalb eines Racks 222 (8C) des ToR-Switchs A (9) an Stelle von drei einzelnen Block-Platzierungsbestätigungen, die separat drei separate codierte Block-Platzierungen bestätigen und die in drei einzelnen TCP/IP-Verbindungen zwischen dem ToR-Switch 1 (4) und dem EoR-Switch 4 übertragen werden, wie im Zusammenhang mit dem bisherigen System von 4 beschrieben, nur eine einzige Platzierungsbestätigung für mehrere Blöcke Ack0A, welche die Platzierung von drei codierten Blöcken von Daten über eine einzige TCP/IP-Verbindung 162a (9) zwischen dem ToR-Switch A für das Rack A und dem EoR-Switch E bestätigt. Auf eine ähnliche Weise generiert und überträgt die Logik zur Bestätigungskonsolidierung innerhalb eines Racks 222 (8C) des ToR-Switchs B (9) für Rack B, an Stelle von drei einzelnen Block-Platzierungsbestätigungen, die separat drei separate codierte Block-Platzierungen bestätigen und die in drei einzelnen TCP/IP-Verbindungen zwischen dem ToR-Switch 2 (4) und dem EoR-Switch 4 übertragen werden, wie im Zusammenhang mit dem bisherigen System von 4 beschrieben, nur eine einzige Platzierungsbestätigung für mehrere Blöcke AckOB, welche die Platzierung von drei codierten Blöcken von Daten bestätigt, in einer einzigen TCP/IP-Verbindung 162b (9) zwischen dem ToR-Switch B für Rack B und dem EoR-Switch E. Somit konsolidiert die Logik zur Bestätigungskonsolidierung innerhalb eines Racks 222 (8C) des ToR-Switchs A (9) für Rack A, gemeinsam mit der Logik zur Bestätigungskonsolidierung innerhalb eines Racks 222 (8C) des ToR-Switchs B ( 9) für Rack B, die Block-Datenplatzierungsbestätigungen auf R = 2 Platzierungsbestätigungen für mehrere Blöcke, Ack0A und Ack0B. Im Ergebnis kann der Netzwerkverkehr zum Leiten von Bestätigungen reduziert werden.
  • In einem weiteren Aspekt weist der EoR-Switch E Logik zur Bestätigungskonsolidierung zwischen einzelnen Racks 170 (8B) auf, konfiguriert zum Empfangen (Block 174, 10) von konsolidierten Datenplatzierungsbestätigungen für mehrere Blöcke und zum weiteren Konsolidieren (Block 178, 10) der empfangenen Bestätigungen und zum Generieren und Übertragen an den Client-Knoten des Speichersystems einer weiter konsolidierten Platzierungsbestätigung für mehrere Blöcke, welche die Speicherung der mehreren codierten Blöcke der ursprünglichen konsolidierten Platzierungsanfrage 0 in den zugewiesenen Speicherknoten der Speicher-Racks, Rack A und Rack B bestätigt.
  • Somit empfängt die Logik zur Bestätigungskonsolidierung zwischen einzelnen Racks 170 (8B) des hierarchischen EoR-Switchs E bei der Ausführungsform von 9 über zwei TCP/IP-Verbindungen 162a-162b jeweils zwei Platzierungsbestätigungen für mehrere Blöcke, Ack0A und Ack0B. Konkret bestätigt die Datenplatzierungsbestätigung für mehrere Blöcke Ack0A (9,16) die Speicherung der codierten Blöcke, Block 1-Block 3, wie jeweils durch die Datenblock-ID-Felder 270a-270c der Bestätigung Ack0A identifiziert, in den jeweils zugewiesenen Rack A-Speicherknoten, Knoten 1-Knoten 3, wie jeweils von den Knoten-ID-Feldern 274a-274c, der Bestätigung Ack0A identifiziert. In ähnlicher Weise bestätigt die Datenplatzierungsbestätigung für mehrere Blöcke Ack0B (9, 16) die Speicherung der codierten Blöcke, Block 4-Block 6, wie jeweils durch die Datenblock-ID-Felder 270d-270f der Bestätigung Ack0B identifiziert, in den jeweils zugewiesenen Rack B-Speicherknoten, Knoten 4-Knoten 6, wie jeweils durch die Knoten-ID-Felder 274d-274f der Bestätigung Ack0B identifiziert. Bei einer Ausführungsform können die Datenplatzierungsbestätigungen für mehrere Blöcke Ack0A, Ack0B an den EoR-Switch E adressiert sein. Bei einer anderen Ausführungsform kann die Logik zur Bestätigungskonsolidierung zwischen einzelnen Racks 170 konfiguriert sein, die Datenplatzierungsbestätigungen für mehrere Blöcke, wie etwa die Datenblock-Platzierungsbestätigungen Ack0A, Ack0B, zu überwachen und abzufangen.
  • Die Logik zur Bestätigungskonsolidierung zwischen einzelnen Racks 170 (8B) konsolidiert, als Reaktion auf die zwei Platzierungsbestätigungen für mehrere Blöcke, Ack0A und AckOB, die zwei Platzierungsbestätigungen für mehrere Blöcke, Ack0A und Ack0B, und generiert und übermittelt über eine einzige konsolidierte TCP/IP-Verbindung 128 über den ToR-SwitchCan den Client-KnotenCdes RacksCeine weitere konsolidierte Datenplatzierungsbestätigung für mehrere Blöcke Ack0 (9, 17), welche die Speicherung der codierten Blöcken bestätigt. Konkret bestätigt die Datenplatzierungsbestätigung für mehrere Blöcke Ack0 (9, 17) die Speicherung der codierten Blöcke, Block 1-Block 6, wie jeweils von den Datenblock-ID-Feldern 270a-270f der Bestätigung Ack0 identifiziert, in den jeweiligen zugewiesenen Speicherknoten, Knoten 1-Knoten 6, wie jeweils von den Knoten-ID-Feldern 274a-274f der Bestätigung Ack0 identifiziert.
  • Somit generiert und überträgt die Logik zur Bestätigungskonsolidierung zwischen einzelnen Racks 170 (8B) des hierarchischen EoR-Switchs E (9), an Stelle von sechs einzelnen Block-Platzierungsbestätigungen, die separat sechs separate codierte Block-Platzierungen bestätigen und in sechs einzelnen TCP/IP-Verbindungen zwischen dem EoR-Switch 4 (4) und dem Client-Knoten des Racks 3 übertragen, wie im Zusammenhang mit dem bisherigen System von 4 beschrieben, nur eine einzige Platzierungsbestätigung für mehrere Blöcke Ack0, welche die Platzierung von sechs codierten Blöcken von Daten in einer einzigen TCP/IP-Verbindung 128 (9) zwischen dem EoR-Switch E und dem Client-Knoten von RackCbestätigt. Bei einer Ausführungsform kann die Datenplatzierungsbestätigung für mehrere Blöcke Ack0 an den Client-KnotenCadressiert werden. Bei einer anderen Ausführungsform kann die Logik für konsolidierte Bestätigungen 130 konfiguriert sein, eine Datenplatzierungsbestätigung für mehrere Blöcke, wie etwa die Datenplatzierungsbestätigung Ack0, zu überwachen und abzufangen. Im Ergebnis kann der Netzwerkverkehr zum Leiten von Bestätigungen reduziert werden.
  • Wie in 8E gezeigt, beinhaltet der ToR-SwitchCLogik zur Anfrage- und Bestätigungsübermittlung 284, die konfiguriert ist, die ursprüngliche konsolidierte Datenplatzierungsanfrage 0 (5) von dem erstellenden Client-KnotenCvon RackCan den EoR-Switch E über eine TCP/IP-Verbindung 128 zu übermitteln. Auf eine ähnliche Weise ist die Logik zur Anfrage- und Bestätigungsübermittlung 284 ferner konfiguriert, die konsolidierte Datenplatzierungsbestätigung Ack0 (9) von dem EoR-Switch E an den die Datenplatzierungsanfrage erstellenden Client-KnotenCvon RackCüber eine TCP/IP-Verbindung 128 zu übermitteln. Auf diese Weise wird der erstellende Client-KnotenC benachrichtigt, dass die codierten Blöcke, Block 1-Block 6, der ursprünglichen konsolidierten Datenplatzierungsanfrage 0 erfolgreich jeweils in den zugewiesenen Speicherknoten1-Knoten 3 von Rack A und Speicherknoten 4-Knoten 6 von Rack B gespeichert worden sind.
  • Derartige Komponenten gemäß hier beschriebenen Ausführungsformen können entweder in eigenständigen Speicherkomponenten verwendet werden oder können in Mikroprozessoren und/oder digitale Signalprozessoren (digital signal Prozessoren - DSP) eingebettet sein. Außerdem wird angemerkt, dass, obwohl hier in den darstellenden Beispielen hauptsächlich Systeme und Prozesse Bezug nehmend auf Mikroprozessor basierte Systeme beschrieben werden, es sich versteht, dass hinsichtlich der Offenbarung hier bestimmte Aspekte, Architekturen und Prinzipien der Offenbarung gleichermaßen auf andere Typen von Vorrichtungsspeicher und Logikvorrichtungen anwendbar sind.
  • Implementierungen der beschriebenen Technologien können Hardware, ein Verfahren oder einen Prozess oder Computersoftware auf einem für Computer zugreifbaren Medium beinhalten. Somit beinhalten Ausführungsformen entsprechende Computersysteme und -einrichtungen und Computerprogramme, die auf einer oder mehreren Computerspeichervorrichtungen aufgezeichnet sind, von denen jede konfiguriert ist, die Vorgänge der Verfahren durchzuführen.
  • Hier beschriebene Operationen werden durch Logik durchgeführt, die konfiguriert ist, die Operationen entweder automatisch oder im Wesentlichen automatisch mit wenig oder keinem Eingreifen durch den Systembetreiber durchzuführen, außer wo sie als manuell durchzuführen sind wie etwa bei Benutzerauswahl. Somit beinhaltet der Begriff „automatisch“, wie hier verwendet, sowohl vollautomatisch, das heißt, Operationen, die von einer oder mehreren durch Hardware oder Software gesteuerten Maschinen ohne menschliches Eingreifen wie etwa Benutzereingaben in einer grafischen Benutzerauswahlschnittstelle. Wie hier verwendet, beinhaltet der Begriff „automatisch“ ferner vorrangig automatisch, das heißt, die meisten Operationen (wie etwa, beispielsweise, mehr als 50 %) werden von einer oder mehreren durch Hardware oder Software gesteuerten Maschinen ohne menschliches Eingreifen wie etwa Benutzereingaben in eine grafische Benutzerauswahlschnittstelle durchgeführt und die verbleibenden Operationen (beispielsweise weniger als 50 %) werden manuell durchgeführt, das heißt die manuellen Operationen werden von einer oder mehreren Hardware oder Software gesteuerten Maschinen mit menschlichem Eingreifen wie etwa Benutzereingaben in eine grafische Benutzerauswahlschnittstelle durchgeführt, um die Durchführung der Operationen anzuleiten.
  • Viele der in dieser Anmeldung beschriebenen funktionalen Elemente wurden als „Logik“ bezeichnet, um ihre Implementierungsunabhängigkeit spezifischer hervorzuheben. Ein Logikelement kann beispielsweise als eine Hardwareschaltung implementiert sein, die kundenspezifische (Very Large Scale Integrated - VLSI) integrierte Schaltungen mit sehr hohem Integrationsgrad oder Gate-Arrays, handelsübliche Halbleiter wie etwa Logikbausteine, Transistoren oder andere diskrete Komponenten umfasst. Ein Logikelement kann auch in Firmware oder programmierbaren Hardwarevorrichtungen wie etwa feldprogrammierbaren Gate-Arrays, programmierbarer Array-Logik, programmierbaren Logikvorrichtungen oder dergleichen implementiert sein.
  • Ein Logikelement kann auch in Software zur Ausführung von verschiedenen Typen von Prozessoren implementiert sein. Ein Logikelement, das ausführbaren Code beinhaltet, kann beispielsweise einen oder mehrere physische oder logische Blöcke von Computeranweisungen umfassen, die beispielsweise als ein Objekt, ein Ablauf oder eine Funktion organisiert sein können. Dennoch müssen die ausführbaren Dateien eines identifizierten Logikelements nicht physikalisch zusammen angeordnet sein, sondern können getrennte, an unterschiedlichen Stellen gespeicherte Anweisungen umfassen, die, wenn sie logisch zusammengefügt werden, das Logikelement umfassen und den genannten Zweck für das Logikelement erreichen.
  • In der Tat kann es sich bei ausführbarem Code für ein Logikelement um eine einzelne Anweisung oder um viele Anweisungen handeln, er kann sogar über mehrere unterschiedliche Codesegmente, auf unterschiedliche Programme, auf unterschiedliche Prozessoren und über mehrere nichtflüchtige Speichervorrichtungen hinweg verteilt sein. In ähnlicher Weise können Betriebsdaten hier innerhalb von Logikelementen identifiziert und dargestellt sein und können in jeder geeigneten Form ausgestaltet sein und innerhalb jedes geeigneten Typs von Datenstruktur organisiert sein. Die Betriebsdaten können als ein einzelner Datensatz gesammelt sein oder können über unterschiedliche Stellen einschließlich unterschiedlicher Speichervorrichtungen verteilt sein.
  • 18 ist ein übergreifendes Blockschaltbild, das ausgewählte Aspekte eines anderen Knotens, der als ein gemäß einer Ausführungsform der vorliegenden Offenbarung implementiertes System 310 dargestellt ist. Das System 310 kann eine jede aus einer Anzahl elektronischer und/oder Datenverarbeitungsvorrichtungen darstellen, welche eine Speichervorrichtung beinhalten können. Solche elektronischen und/oder Datenverarbeitungsvorrichtungen können Datenverarbeitungsvorrichtungen wie etwa einen Großrechner, einen Server, einen Personalcomputer, eine Workstation, eine Telefonievorrichtung, eine Netzwerkanwendung, eine Virtualisierungsvorrichtung, eine Datenspeichersteuerung, tragbare oder mobile Vorrichtungen (z. B. Laptops, Netbooks, Tablet-Computer, persönliche digitale Assistenten (personal digital assistants - PDAs), tragbare Medienabspielgeräte, tragbare Spielvorrichtungen, digitale Kameras, Mobiltelefone, Smartphones, Feature-Phones usw.) oder eine Komponente (z. B. ein Einchipsystem, einen Prozessor, eine Bridge, eine Arbeitsspeichersteuerung, einen Arbeitsspeicher usw.) umfassen. Bei alternativen Ausführungsformen kann das System 310 mehr Elemente, weniger Elemente und/oder unterschiedliche Elemente beinhalten. Darüber hinaus versteht es sich, obwohl das System 310 als separate Elemente umfassend abgebildet ist, dass solche Elemente auf einer Plattform integriert sein können, wie etwa Einchipsysteme (systems on a chip - SoCs). Bei dem veranschaulichenden Beispiel umfasst das System 310 eine zentrale Verarbeitungseinheit oder Mikroprozessor 320, eine Arbeitsspeichersteuerung 330, einen Arbeitsspeicher 340, ein Speicherlaufwerk 344 und periphere Komponenten 350, die beispielsweise eine Grafikkarte, eine Eingabevorrichtung, eine Ausgabevorrichtung, einen zusätzlichen Speicher, eine Netzwerkschnittstelle oder -adapter, einen Akkumulator usw. beinhalten können.
  • Der Mikroprozessor 320 beinhaltet einen Zwischenspeicher 325, der Teil einer Arbeitsspeicherhierarchie sein kann, um Anweisungen und Daten zu speichern, und der Systemarbeitsspeicher kann sowohl flüchtigen Arbeitsspeicher als auch den abgebildeten Arbeitsspeicher 340 beinhalten, der einen nichtflüchtigen Arbeitsspeicher beinhalten kann. Der Systemarbeitsspeicher kann auch einen Teil der Arbeitsspeicherhierarchie bilden. Die Logik 327 des Mikroprozessors 320 kann beispielsweise einen oder mehrere Kerne beinhalten.
  • Die Kommunikation zwischen dem Mikroprozessor 320 und dem Arbeitsspeicher 340 kann durch die Arbeitsspeichersteuerung (oder Chipsatz) 330 gesteuert werden, die auch das Kommunizieren mit dem Speicherlaufwerk 344 und den peripheren Komponenten 350 erleichtern kann. Das System kann eine Auslagerungsdaten-Transferengine für direkte Arbeitsspeicher-Datentransfers beinhalten.
  • Das Speicherlaufwerk 344 beinhaltet einen nichtflüchtigen Datenspeicher und kann beispielsweise als Folgende implementiert sein: Solid-State-Festplatten, magnetische Plattenlaufwerke, optische Plattenlaufwerke, ein Speicherbereichsnetzwerk (storage area network - SAN), Netzwerkzugriffsserver (network access server - NAS), ein Bandlaufwerk, ein Flash-Speicher, Dauerspeicherbereiche und andere Speichervorrichtungen, die einen flüchtigen Pufferspeicher und einen nichtflüchtigen Festplattenspeicher einsetzen. Der Datenspeicher kann eine interne Speichervorrichtung oder einen angeschlossenen oder für ein Netzwerk zugänglichen Speicher umfassen. Der Mikroprozessor 320 ist konfiguriert, in den Arbeitsspeicher 340 Daten hineinzuschreiben und daraus auszulesen. Programme im Datenspeicher werden in den Arbeitsspeicher 340 geladen und von dem Mikroprozessor 320 ausgeführt. Eine Netzwerksteuerung oder -karte ermöglicht die Kommunikation mit einem Netzwerk wie etwa einem Ethernet, einem Fiber Channel Arbitrated Loop usw. Ferner kann die Architektur bei bestimmten Ausführungsformen eine Grafikkarte, konfiguriert, Informationen auf einem Anzeigemonitor wiederzugeben, beinhalten, wobei die Grafikkarte auf einer Grafikkarte ausgestaltet sein kann oder auf integrierten Schaltungskomponenten integriert sein kann, die auf einer Hauptplatine oder einem anderen Träger montiert sind. Eine Eingabevorrichtung wird verwendet, um dem Mikroprozessor 320 Benutzereingaben bereitzustellen, und kann eine Tastatur, eine Maus, einen Eingabestift, ein Mikrofon, einen berührungsempfindlichen AnzeigeBildschirm, Eingangsanschlüsse, -buchsen oder jeden anderen im Stand der Technik bekannten Aktivierungs- oder Eingabemechanismus beinhalten. Eine Ausgabevorrichtung ist in der Lage, von dem Mikroprozessor 320 oder einer anderen Komponente wie etwa einem Anzeigemonitor, einem Drucker, einer Komponente wie etwa einen Anzeigebildschirm, einen Drucker, Speicher, Ausgangsanschlüsse, -buchsen usw. übertragene Informationen wiederzugeben. Der Netzwerkadapter kann auf einer Netzwerkkarte ausgestaltet sein, wie etwa als eine periphere Komponenten-Verbindungs(peripheral component interconnect - PCI)-Karte, eine PCI-Express- oder eine andere Eingabe-/Ausgabe(input/output - I/O)-Karte oder auf integrierten Schaltungskomponenten, die auf eine Hauptplatine oder einen anderen Träger montiert sind.
  • Es kann auf eine oder mehrere der Komponenten der Vorrichtung 310 verzichtet werden, abhängig von der spezifischen Anwendung. Zum Beispiel kann ein Netzwerk-Router beispielsweise keine Grafikkarte aufweisen. Eine oder mehrere der Vorrichtungen von 1, einschließlich des Zwischenspeichers 325, des Arbeitsspeichers 340, des Speicherlaufwerks 344, des Systems 10, der Arbeitsspeichersteuerung 330 und der peripheren Komponenten 350 können eine nichtflüchtige Speicherkomponente aufweisen, die eine interne Datenaufbewahrung und - wiederherstellung gemäß der vorliegenden Beschreibung aufweisen.
  • Beispiele
  • Beispiel 1 ist eine Einrichtung zur Verwendung bei einem hierarchischen Kommunikationsnetzwerk eines Speichersystems, das mehrere Speicherknoten aufweist, die zum Speichern von Daten konfiguriert sind, Folgendes umfassend:
    • einen ersten hierarchischen Switch auf einer ersten Hierarchieebene in dem hierarchischen Kommunikationsnetzwerk des Speichersystems, wobei der erste hierarchische Switch Logik zur Anfragegenerierung innerhalb eines Racks aufweist, die zu Folgendem konfiguriert ist: Detektieren des Empfangs einer ersten verteilten Datenplatzierungsanfrage für mehrere Blöcke, um erste Speicherdaten in eine erste Gruppe von Speicherknoten des Speichersystems zu platzieren, und, als Reaktion auf die erste verteilte Datenplatzierungsanfrage für mehrere Blöcke, Generieren und Übertragen, an zugewiesene Speicherknoten der ersten Gruppe von Speicherknoten, einer erste, Gruppe von Datenblock-Platzierungsanfragen, wobei jede Datenblock-Platzierungsanfrage eine Anfrage ist, einen einzelnen löschcodierten Block von Daten der ersten Speicherdaten in einen zugewiesenen Speicherknoten der ersten Gruppe von Speicherknoten zu platzieren.
  • In Beispiel 2 kann der Gegenstand der Beispiele 1-8 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls Folgendes beinhalten:
    • einen zweiten hierarchischen Switch auf der ersten Hierarchieebene in dem hierarchischen Kommunikationsnetzwerk des Speichersystems, wobei der zweite hierarchische Switch Logik zur Anfragegenerierung innerhalb eines Racks aufweist, die zu Folgendem konfiguriert ist: Detektieren des Empfangs einer zweiten verteilten Datenplatzierungsanfrage für mehrere Blöcke, um zweite Speicherdaten in eine zweite Gruppe von Speicherknoten des Speichersystems zu platzieren, und, als Reaktion auf die zweite verteilte Datenplatzierungsanfrage für mehrere Blöcke, Generieren und Übertragen, an zugewiesene Speicherknoten der zweiten Gruppe von Speicherknoten, einer zweiten Gruppe von Datenblock-Platzierungsanfragen, wobei jede Datenblock-Platzierungsanfrage der zweiten Gruppe eine Anfrage ist, einen einzelnen löschcodierten Block von Daten der zweiten Speicherdaten in einen zugewiesenen Speicherknoten der zweiten Gruppe von Speicherknoten zu platzieren.
  • In Beispiel 3 kann der Gegenstand von Beispiel 1-8 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls beinhalten, wobei die erste Hierarchieebene des ersten und des zweiten hierarchischen Switchs auf einer unteren Hierarchieebene liegen, verglichen mit einer zweiten Hierarchieebene des hierarchischen Kommunikationsnetzwerks des Speichersystems, wobei die Einrichtung ferner Folgendes umfasst:
    • einen dritten hierarchischen Switch auf der zweiten Hierarchieebene, wobei der dritte hierarchische Switch Logik zur Anfragegenerierung zwischen einzelnen Racks aufweist, die zu Folgendem konfiguriert ist: Detektieren einer konsolidierten Platzierungsanfrage für mehrere Blöcke, um Speicherdaten einschließlich der ersten und der zweiten Speicherdaten in einen Speicher in eine Gruppe von Speicherknoten des Speichersystems einschließlich der ersten und der zweiten Gruppe von Speicherknoten zu platzieren, und, als Reaktion auf die konsolidierte Platzierungsanfrage für mehrere Blöcke, Generieren und Übertragen, an den ersten hierarchischen Switch, der ersten verteilten Datenplatzierungsanfrage für mehrere Blöcke, um die ersten Speicherdaten in die erste Gruppe von Speicherknoten des Speichersystems zu platzieren, und, an den zweiten hierarchischen Switch, der zweiten verteilten Datenplatzierungsanfrage für mehrere Blöcke, um die zweiten Speicherdaten in die zweite Gruppe von Speicherknoten des Speichersystems zu platzieren.
  • In Beispiel 4 kann der Gegenstand von Beispiel 1-8 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls Folgendes beinhalten:
    • einen Client-Knoten, der mit dem dritten hierarchischen Switch gekoppelt ist und Logik für eine konsolidierte Platzierungsanfrage aufweist, die zu Folgendem konfiguriert ist: Empfangen von Speicherdaten einschließlich der ersten und der zweiten Speicherdaten, Löschcodieren der empfangenen Daten in Blöcke von löschcodierten Blöcken der ersten und der zweiten Speicherdaten, von denen zumindest einige Paritätsdaten beinhalten, und Generieren und Übertragen an den dritten hierarchischen Switch der konsolidierten Platzierungsanfrage für mehrere Blöcke, die eine Nutzinformation von löschcodierten Blöcken der ersten und der zweiten Speicherdaten aufweist, zur Speicherung in jeweils der ersten und der zweiten Gruppe von Speicherknoten.
  • In Beispiel 5 kann der Gegenstand von Beispiel 1-8 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls Folgendes beinhalten:
    • ein erstes Speicher-Rack, das die erste Gruppe von Speicherknoten aufweist, wobei jeder Speicherknoten aus der ersten Gruppe, der Logik zur Block-Platzierung aufweist, die zu Folgendem konfiguriert ist: Speichern, als Reaktion auf eine Datenblock-Platzierungsanfrage der ersten Gruppe von Datenblock-Platzierungsanfragen, die von dem zugewiesenen Speicherknoten der ersten Gruppe von Speicherknoten empfangen wurde, eines einzelnen löschcodierten Blocks von Daten der ersten Gruppe von löschcodierten Blöcken von Daten, wobei jeder Speicherknoten der ersten Gruppe ferner Logik zur Generierung von Platzierungsbestätigungen aufweist, die konfiguriert ist, an den ersten hierarchischen Switch eine Datenblock-Platzierungsbestätigung, welche die Speicherung eines einzelnen löschcodierten Blocks von Daten der ersten Gruppe von löschcodierten Blöcken von Daten bestätigt, zu senden,
    • wobei der erste hierarchische Switch Logik zur Bestätigungskonsolidierung innerhalb eines Racks aufweist, die zu Folgendem konfiguriert ist: Empfangen einer ersten Vielzahl von Datenblock-Platzierungsbestätigungen, wobei jede Datenblock-Platzierungsbestätigung die Speicherung eines einzelnen löschcodierten Blocks von Daten der ersten Gruppe von löschcodierten Blöcken von Daten in einem zugewiesenen Speicherknoten der ersten Gruppe von Speicherknoten bestätigt, und Generieren und Übertragen an den dritten Switch, als Reaktion auf den Empfang der ersten Vielzahl von Datenblock-Platzierungsbestätigungen, einer ersten Datenplatzierungsbestätigung für mehrere Blöcke, welche die Speicherung der ersten Speicherdaten in der ersten Gruppe von Speicherknoten des Speichersystems bestätigt,
    • wobei das zweite Speicher-Rack die zweite Gruppe von Speicherknoten aufweist, wobei jeder Speicherknoten der zweiten Gruppe Logik zur Block-Platzierung aufweist, die zu Folgendem konfiguriert ist: Speichern, als Reaktion auf eine Datenblock-Platzierungsanfrage der zweiten Gruppe von Datenblock-Platzierungsanfragen, die von dem zugewiesenen Speicherknoten der zweiten Gruppe von Speicherknoten empfangen wurde, eines einzelnen löschcodierten Blocks von Daten der zweiten Gruppe von löschcodierten Blöcken von Daten, wobei jeder Speicherknoten der zweiten Gruppe ferner Logik zur Generierung von Platzierungsbestätigungen aufweist, die konfiguriert ist, an den zweiten hierarchischen Switch eine Datenblock-Platzierungsbestätigung zu senden, welche die Speicherung eines einzelnen löschcodierten Blocks von Daten der zweiten Gruppe von löschcodierten Blöcken von Daten bestätigt,
    • wobei der zweite hierarchische Switch Logik zur Bestätigungskonsolidierung innerhalb eines Racks aufweist, die zu Folgendem konfiguriert ist: Empfangen einer zweiten Vielzahl von Datenblock-Platzierungsbestätigungen, wobei jede Datenblock-Platzierungsbestätigung die Speicherung eines einzelnen löschcodierten Blocks von Daten der zweiten Gruppe von löschcodierten Blöcken von Daten in einem zugewiesenen Speicherknoten der zweiten Gruppe von Speicherknoten bestätigt, und Generieren und Übertragen an den dritten Switch, als Reaktion auf Empfang der zweiten Vielzahl von Datenblock-Platzierungsbestätigungen, einer zweiten Datenplatzierungsbestätigung für mehrere Blöcke, welche die Speicherung der zweiten Speicherdaten in der zweiten Gruppe von Speicherknoten des Speichersystems bestätigt.
  • In Beispiel 6 kann der Gegenstand von Beispiel 1-8 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls beinhalten, wobei der dritte hierarchische Switch Logik zur Bestätigungskonsolidierung zwischen einzelnen Racks aufweist, die zu Folgendem konfiguriert ist: Empfangen der ersten und der zweiten Datenplatzierungsbestätigung für mehrere Blöcke und Generieren und Übertragen an den Client-Knoten des Speichersystems einer konsolidierten Platzierungsbestätigung für mehrere Blöcke, welche die Speicherung der ersten und der zweiten Speicherdaten jeweils in der ersten und der zweiten Gruppe von Speicherknoten des Speichersystems bestätigt.
  • In Beispiel 7 kann der Gegenstand von Beispiel 1-8 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls beinhalten, wobei die Logik zur Anfragegenerierung innerhalb eines Racks ferner zu Folgendem konfiguriert ist: Löschcodieren der ersten Speicherdaten der ersten verteilten Datenplatzierungsanfrage für mehrere Blöcke, die von dem ersten hierarchischen Switch empfangen wurden, in die löschcodierten Blöcke von Daten für die erste Gruppe von Datenblock-Platzierungsanfragen, um die einzelnen löschcodierten Blöcke von Daten der ersten Speicherdaten in zugewiesene Speicherknoten der ersten Gruppe von Speicherknoten zu platzieren.
  • In Beispiel 8 kann der Gegenstand von Beispiel 1-8 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls beinhalten, dass das Speichersystem das hierarchische Kommunikationsnetzwerk aufweist.
  • Beispiel 9 ist ein Verfahren, Folgendes umfassend:
    • Detektieren, durch einen ersten hierarchischen Switch auf einer ersten Hierarchieebene in einem hierarchischen Kommunikationsnetzwerk eines Speichersystems, einer ersten verteilten Datenplatzierungsanfrage für mehrere Blöcke, um erste Speicherdaten in eine erste Gruppe von Speicherknoten des Speichersystems zu platzieren, und
    • als Reaktion auf die erste verteilte Datenplatzierungsanfrage für mehrere Blöcke, Übertragen, durch den ersten hierarchischen Switch, einer ersten Gruppe von Datenblock-Platzierungsanfragen an zugewiesene Speicherknoten der ersten Gruppe von Speicherknoten, wobei jede Datenblock-Platzierungsanfrage eine Anfrage ist, einen einzelnen löschcodierten Block von Daten der ersten Speicherdaten in einen zugewiesenen Speicherknoten der ersten Gruppe von Speicherknoten zu platzieren.
  • In Beispiel 10 kann der Gegenstand von Beispiel 9-15 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls Folgendes beinhalten:
    • Detektieren, durch einen zweiten hierarchischen Switch auf der ersten Hierarchieebene in einem hierarchischen Kommunikationsnetzwerk eines Speichersystems, einer zweiten verteilten Datenplatzierungsanfrage für mehrere Blöcke, um zweite Speicherdaten in eine zweite Gruppe von Speicherknoten des Speichersystems zu platzieren, und
    • als Reaktion auf die zweite verteilte Datenplatzierungsanfrage für mehrere Blöcke, Übertragen, durch den zweiten hierarchischen Switch, einer zweiten Gruppe von Datenblock-Platzierungsanfragen an zugewiesene Speicherknoten der zweiten Gruppe von Speicherknoten, wobei jede Datenblock-Platzierungsanfrage der zweiten Gruppe von Datenblock-Platzierungsanfragen eine Anfrage ist, einen einzelnen löschcodierten Block von Daten der zweiten Speicherdaten in einen zugewiesenen Speicherknoten der zweiten Gruppe von Speicherknoten zu platzieren.
  • In Beispiel 11 kann der Gegenstand von Beispiel 9-15 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls beinhalten, wobei die erste Hierarchieebene des ersten und des zweiten hierarchischen Switchs auf einer unteren Hierarchieebene liegt, verglichen mit einer zweiten Hierarchieebene eines dritten hierarchischen Switchs in dem hierarchischen Kommunikationsnetzwerk des Speichersystems, wobei das Verfahren ferner Folgendes umfasst:
    • Detektieren, durch den dritten hierarchischen Switch, einer konsolidierten Platzierungsanfrage für mehrere Blöcke, um Speicherdaten einschließlich der ersten und der zweiten Speicherdaten in Speicherung in eine Gruppe von Speicherknoten des Speichersystems einschließlich der ersten und der zweiten Gruppe von Speicherknoten zu platzieren,
    • als Reaktion auf die konsolidierte Platzierungsanfrage für mehrere Blöcke, Übertragen, durch den dritten hierarchischen Switch, der ersten verteilten Datenplatzierungsanfrage für mehrere Blöcke an den ersten hierarchischen Switch, um die ersten Speicherdaten in die erste Gruppe von Speicherknoten des Speichersystems zu platzieren, und
    • als Reaktion auf die dritte Übertragung von Daten, Übertragen, durch den dritten hierarchischen Switch, der zweiten verteilten Datenplatzierungsanfrage für mehrere Blöcke an den zweiten hierarchischen Switch, um die zweiten Speicherdaten in die zweite Gruppe von Speicherknoten des Speichersystems zu platzieren.
  • In Beispiel 12 kann der Gegenstand von Beispiel 9-15 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls Folgendes beinhalten:
    • Empfangen, durch einen Client-Knoten des Speichersystems, zur Speicherung in dem Speichersystem, von Speicherdaten einschließlich der ersten und der zweiten Speicherdaten,
    • Löschcodieren der empfangenen Daten in Blöcke von löschcodierten Blöcken der ersten und der zweiten Speicherdaten, von denen zumindest einige Paritätsdaten beinhalten, und
    • Übertragen, an den dritten hierarchischen Switch, der konsolidierten Platzierungsanfrage für mehrere Blöcke, die eine Nutzinformation von löschcodierten Blöcken der ersten und der zweiten Speicherdaten aufweist, zur Speicherung in jeweils der ersten und der zweiten Gruppe von Speicherknoten.
  • In Beispiel 13 kann der Gegenstand von Beispiel 9-15 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls Folgendes beinhalten:
    • Speichern, als Reaktion auf jede Datenblock-Platzierungsanfrage der ersten Gruppe von Datenblock-Platzierungsanfragen, durch einen zugewiesenen Speicherknoten der ersten Gruppe von Speicherknoten, eines einzelnen löschcodierten Blocks von Daten der ersten Gruppe von löschcodierten Blöcken von Daten, und Senden, an den ersten hierarchischen Switch, einer Datenblock-Platzierungsbestätigung, welche die Speicherung eines einzelnen löschcodierten Blocks von Daten der ersten Gruppe von löschcodierten Blöcken von Daten bestätigt.
    • Empfangen, durch einen ersten hierarchischen Switch, einer ersten Vielzahl von Datenblock-Platzierungsbestätigungen, wobei jede Datenblock-Platzierungsbestätigung die Speicherung eines einzelnen löschcodierten Blocks von Daten der ersten Gruppe von löschcodierten Blöcken von Daten in einem zugewiesenen Speicherknoten der ersten Gruppe von Speicherknoten bestätigt,
    • Übertragen, durch den ersten hierarchischen Switch an den dritten Switch, als Reaktion auf den Empfang der ersten Vielzahl von Datenblock-Platzierungsbestätigungen, einer ersten Datenplatzierungsbestätigung für mehrere Blöcke, welche die Speicherung der ersten Speicherdaten in der ersten Gruppe von Speicherknoten des Speichersystems bestätigt,
    • Speichern, als Reaktion auf jede Datenblock-Platzierungsanfrage der zweiten Gruppe von Datenblock-Platzierungsanfragen, durch einen zugewiesenen Speicherknoten der zweiten Gruppe von Speicherknoten, eines einzelnen löschcodierten Blocks von Daten der zweiten Gruppe von löschcodierten Blöcken von Daten, und Senden, an den zweiten hierarchischen Switch, einer Datenblock-Platzierungsbestätigung, welche die Speicherung eines einzelnen löschcodierten Blocks von Daten der zweiten Gruppe von löschcodierten Blöcken von Daten bestätigt,
    • Empfangen, durch einen zweiten hierarchischen Switch, einer zweiten Vielzahl von Datenblock-Platzierungsbestätigungen, wobei jede Datenblock-Platzierungsbestätigung der zweiten Gruppe die Speicherung eines einzelnen löschcodierten Blocks von Daten der zweiten Gruppe von löschcodierten Blöcken von Daten in einem zugewiesenen Speicherknoten der zweiten Gruppe von Speicherknoten bestätigt, und
    • Übertragen, durch den zweiten hierarchischen Switch an den dritten Switch, als Reaktion auf den Empfang der zweiten Vielzahl von Datenblock-Platzierungsbestätigungen, einer zweiten Datenplatzierungsbestätigung für mehrere Blöcke, welche die Speicherung der zweiten Speicherdaten in der zweiten Gruppe von Speicherknoten des Speichersystems bestätigt.
  • In Beispiel 14 kann der Gegenstand von Beispiel 9-15 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls Folgendes beinhalten:
    • Empfangen, durch einen dritten hierarchischen Switch, der ersten und der zweiten Datenplatzierungsbestätigung für mehrere Blöcke und Übertragen, an einen Client-Knoten des Speichersystems, einer konsolidierten Platzierungsbestätigung für mehrere Blöcke, welche die Speicherung der ersten und der zweiten Speicherdaten jeweils in der ersten und der zweiten Gruppe der Speicherknoten des Speichersystems bestätigt.
  • In Beispiel 15 kann der Gegenstand von Beispiel 9-15 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls Löschcodieren, durch den ersten hierarchischen Switch, der ersten Speicherdaten der ersten verteilten Datenplatzierungsanfrage für mehrere Blöcke, die von dem ersten hierarchischen Switch empfangen wurde, in die löschcodierten Blöcke von Daten für die erste Gruppe von Datenblock-Platzierungsanfragen beinhalten, um die einzelnen löschcodierten Blöcke von Daten der ersten Speicherdaten in zugewiesene Speicherknoten der ersten Gruppe von Speicherknoten zu platzieren.
  • Beispiel 16 ist eine Einrichtung, umfassend Mittel zum Durchführen eines Verfahrens wie in jedem vorhergehenden Beispiel beansprucht.
  • Beispiel 17 ist ein Speichersystem, Folgendes umfassend:
    • ein hierarchisches Kommunikationsnetzwerk, aufweisend eine Vielzahl von Speicherknoten, die konfiguriert sind, Daten zu speichern, wobei das Netzwerk Folgendes umfasst:
      • einen ersten hierarchischen Switch auf einer ersten Hierarchieebene in dem hierarchischen Kommunikationsnetzwerk des Speichersystems, wobei der erste hierarchische Switch Logik zur Anfragegenerierung innerhalb eines Racks aufweist, die zu Folgendem konfiguriert ist: Detektieren des Empfangs einer ersten verteilten Datenplatzierungsanfrage für mehrere Blöcke, um erste Speicherdaten in eine erste Gruppe von Speicherknoten des Speichersystems zu platzieren, und, als Reaktion auf die erste verteilte Datenplatzierungsanfrage für mehrere Blöcke, Generieren und Übertragen von einer ersten Gruppe von Datenblock-Platzierungsanfragen an zugewiesene Speicherknoten der ersten Gruppe von Speicherknoten, wobei jede Datenblock-Platzierungsanfrage eine Anfrage ist, um einen einzelnen löschcodierten Block von Daten der ersten Speicherdaten in einen zugewiesenen Speicherknoten der ersten Gruppe von Speicherknoten zu platzieren.
  • In Beispiel 18 kann der Gegenstand von Beispiel 17-24 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls Folgendes beinhalten:
    • einen zweiten hierarchischen Switch auf der ersten Hierarchieebene in dem hierarchischen Kommunikationsnetzwerk des Speichersystems, wobei der zweite hierarchische Switch Logik zur Anfragegenerierung innerhalb eines Racks aufweist, die zu Folgendem konfiguriert ist: Detektieren des Empfangs einer zweiten verteilten Datenplatzierungsanfrage für mehrere Blöcke, um zweite Speicherdaten in eine zweite Gruppe von Speicherknoten des Speichersystems zu platzieren, und, als Reaktion auf die zweite verteilte Datenplatzierungsanfrage für mehrere Blöcke, Generieren und Übertragen einer zweiten Gruppe von Datenblock-Platzierungsanfragen an zugewiesene Speicherknoten der zweiten Gruppe von Speicherknoten, wobei jede Datenblock-Platzierungsanfrage der zweiten Gruppe eine Anfrage ist, einen einzelnen löschcodierten Block von Daten der zweiten Speicherdaten in einen zugewiesenen Speicherknoten der zweiten Gruppe von Speicherknoten zu platzieren.
  • In Beispiel 19 kann der Gegenstand von Beispiel 17-24 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls beinhalten, wobei die erste Hierarchieebene des ersten und des zweiten hierarchischen Switchs auf einer unteren Hierarchieebene liegt, verglichen mit einer zweiten Hierarchieebene des hierarchischen Kommunikationsnetzwerks des Speichersystems, wobei das System ferner Folgendes umfasst:
    • einen dritten hierarchischen Switch auf der zweiten Hierarchieebene, wobei der dritte hierarchische Switch Logik zur Anfragegenerierung zwischen einzelnen Racks aufweist, die zu Folgendem konfiguriert ist: Detektieren einer konsolidierten Platzierungsanfrage für mehrere Blöcke, um Speicherdaten einschließlich der ersten und der zweiten Speicherdaten zur Speicherung in einer Gruppe von Speicherknoten des Speichersystems einschließlich der ersten und der zweiten Gruppe von Speicherknoten zu platzieren, und, als Reaktion auf die konsolidierte Platzierungsanfrage für mehrere Blöcke, Generieren und Übertragen, an den ersten hierarchischen Switch, der ersten verteilten Datenplatzierungsanfrage für mehrere Blöcke, um die ersten Speicherdaten in die erste Gruppe von Speicherknoten des Speichersystems zu platzieren, und, an den zweiten hierarchischen Switch, der zweiten verteilten Datenplatzierungsanfrage für mehrere Blöcke, um die zweiten Speicherdaten in die zweite Gruppe von Speicherknoten des Speichersystems zu platzieren.
  • In Beispiel 20 kann der Gegenstand von Beispiel 17-24 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls Folgendes beinhalten:
    • einen Client-Knoten, der mit dem dritten hierarchischen Switch gekoppelt ist und konsolidierte Platzierungsanfrage-Logik aufweist, die zu Folgendem konfiguriert ist: Empfangen von Speicherdaten einschließlich der ersten und der zweiten Speicherdaten, Löschcodieren der empfangenen Daten in Blöcke von löschcodierten Blöcken der ersten und zweiten Speicherdaten, von denen zumindest einige Paritätsdaten beinhalten, und Generieren und Übertragen, an den dritten hierarchischen Switch, der konsolidierten Platzierungsanfrage für mehrere Blöcke, die eine Nutzinformation der löschcodierten Blöcke der ersten und der zweiten Speicherdaten aufweist, zur Speicherung jeweils in der ersten und der zweiten Gruppe von Speicherknoten.
  • In Beispiel 21 kann der Gegenstand von Beispiel 17-24 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls Folgendes beinhalten:
    • ein erstes Speicher-Rack, das die erste Gruppe von Speicherknoten aufweist, wobei jeder Speicherknoten der ersten Gruppe Logik zur Block-Platzierung aufweist, die zu Folgendem konfiguriert ist: Speichern, als Reaktion auf eine Datenblock-Platzierungsanfrage der ersten Gruppe von Datenblock-Platzierungsanfragen, die von dem zugewiesenen Speicherknoten der ersten Gruppe von Speicherknoten empfangen wurden, eines einzelnen löschcodierten Blocks von Daten der ersten Gruppe von löschcodierten Blöcken von Daten, wobei jeder Speicherknoten der ersten Gruppe ferner Logik zur Generierung von Platzierungsbestätigungen aufweist, die konfiguriert ist, eine Datenblock-Platzierungsbestätigung an den ersten hierarchischen Switch zu senden, welche die Speicherung eines einzelnen löschcodierten Blocks von Daten der ersten Gruppe von löschcodierten Blöcken von Daten bestätigt,
    • wobei der erste hierarchische Switch Logik zur Bestätigungskonsolidierung innerhalb eines Racks aufweist, die zu Folgendem konfiguriert ist: Empfangen einer ersten Vielzahl von Datenblock-Platzierungsbestätigungen, wobei jede Datenblock-Platzierungsbestätigung die Speicherung eines einzelnen löschcodierten Blocks von Daten der ersten Gruppe von löschcodierten Blöcken von Daten in einem zugewiesenen Speicherknoten der ersten Gruppe von Speicherknoten bestätigt, und, als Reaktion auf den Empfang der ersten Vielzahl von Datenblock-Platzierungsbestätigungen, Generieren und Übertragen, an den dritten Switch, einer ersten Datenplatzierungsbestätigung für mehrere Blöcke, welche die Speicherung der ersten Speicherdaten in der ersten Gruppe von Speicherknoten des Speichersystems bestätigt,
    • ein zweites Speicher-Rack, aufweisend die zweite Gruppe von Speicherknoten, wobei jeder Speicherknoten der zweiten Gruppe Logik zur Block-Platzierung aufweist, die zu Folgendem konfiguriert ist: Speichern, als Reaktion auf eine Datenblock-Platzierungsanfrage der zweiten Gruppe von Datenblock-Platzierungsanfragen, die von dem zugewiesenen Speicherknoten der zweiten Gruppe von Speicherknoten empfangen wurde, eines einzelnen löschcodierten Blocks von Daten der zweiten Gruppe von löschcodierten Blöcken von Daten, wobei jeder Speicherknoten der zweiten Gruppe ferner Logik zur Generierung von Platzierungsbestätigungen aufweist, die konfiguriert ist, an den zweiten hierarchischen Switch eine Datenblock-Platzierungsbestätigung zu senden, welche die Speicherung eines einzelnen löschcodierten Blocks von Daten der zweiten Gruppe von löschcodierten Blöcken von Daten bestätigt,
    • wobei der zweite hierarchische Switch Logik zur Bestätigungskonsolidierung innerhalb eines Racks aufweist, die zu Folgendem konfiguriert ist: Empfangen einer zweiten Vielzahl von Datenblock-Platzierungsbestätigungen, wobei jede Datenblock-Platzierungsbestätigung die Speicherung eines einzelnen löschcodierten Blocks von Daten der zweiten Gruppe von löschcodierten Blöcken von Daten in einen zugewiesenen Speicherknoten der zweiten Gruppe von Speicherknoten bestätigt, und, als Reaktion auf Empfang der zweiten Vielzahl von Datenblock-Platzierungsbestätigungen, Generieren und Übertragen, an den dritten Switch, einer zweiten Datenplatzierungsbestätigung für mehrere Blöcke, welche die Speicherung der zweiten Speicherdaten in der zweiten Gruppe von Speicherknoten des Speichersystems bestätigt.
  • In Beispiel 22 kann der Gegenstand von Beispiel 17-24 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls beinhalten, wobei der dritte hierarchische Switch Logik zur Bestätigungskonsolidierung zwischen einzelnen Racks aufweist, die zu Folgendem konfiguriert ist: Empfangen der ersten und der zweiten Datenplatzierungsbestätigung für mehrere Blöcke und Generieren und Übertragen, an den Client-Knoten des Speichersystems, einer konsolidierten Platzierungsbestätigung für mehrere Blöcke, welche die Speicherung der ersten und der zweiten Speicherdaten jeweils in der ersten und der zweiten Gruppe von Speicherknoten des Speichersystems bestätigt.
  • In Beispiel 23 kann der Gegenstand von Beispiel 17-24 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls beinhalten, wobei die Logik zur Anfragegenerierung innerhalb eines Racks ferner zu Folgendem konfiguriert ist: Löschcodieren der ersten Speicherdaten der ersten verteilten Datenplatzierungsanfrage für mehrere Blöcke, die von dem ersten hierarchischen Switch empfangen wurden, in die löschcodierten Blöcke von Daten für die erste Gruppe von Datenblock-Platzierungsanfragen, um die einzelnen löschcodierten Blöcke von Daten der ersten Speicherdaten in zugewiesene Speicherknoten der ersten Gruppe von Speicherknoten zu platzieren.
  • In Beispiel 24 kann der Gegenstand von Beispiel 17-24 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls eine Anzeige beinhalten, die kommunikativ mit dem Switch gekoppelt ist.
  • Beispiel 25 ist eine Einrichtung zur Verwendung in einem hierarchischen Kommunikationsnetzwerk eines Speichersystems, aufweisend eine Vielzahl von Speicherknoten, die konfiguriert sind, um Daten zu speichern, Folgendes umfassend:
    • einen ersten hierarchischen Switch auf einer ersten Hierarchieebene in dem hierarchischen Kommunikationsnetzwerk des Speichersystems, wobei der erste hierarchische Switch Logik zur Anfragegenerierung innerhalb eines Rack-Mittels aufweist, die zu Folgendem konfiguriert ist: Detektieren des Empfangs einer ersten verteilten Datenplatzierungsanfrage für mehrere Blöcke, um erste Speicherdaten in eine erste Gruppe von Speicherknoten des Speichersystems zu platzieren, und, als Reaktion auf die erste verteilte Datenplatzierungsanfrage für mehrere Blöcke, Generieren und Übertragen einer ersten Gruppe von Datenblock- Platzierungsanfragen an zugewiesene Speicherknoten der ersten Gruppe von Speicherknoten, wobei jede Datenblock-Platzierungsanfrage eine Anfrage ist, um einen einzelnen löschcodierten Block von Daten der ersten Speicherdaten in einen zugewiesenen Speicherknoten der ersten Gruppe von Speicherknoten zu platzieren.
  • In Beispiel 26 kann der Gegenstand von Beispiel 25-31 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls Folgendes beinhalten:
    • einen zweiten hierarchischen Switch auf der ersten Hierarchieebene in dem hierarchische Kommunikationsnetzwerk des Speichersystems, wobei der zweite hierarchische Switch Logikmittel zur Anfragegenerierung innerhalb eines Racks aufweist, die zu Folgendem konfiguriert sind: Detektieren des Empfangs einer zweiten verteilten Datenplatzierungsanfrage für mehrere Blöcke, um zweite Speicherdaten in eine zweite Gruppe von Speicherknoten des Speichersystems zu platzieren, und, als Reaktion auf die zweite verteilte Datenplatzierungsanfrage für mehrere Blöcke, Generieren und Übertragen, an zugewiesene Speicherknoten der zweiten Gruppe von Speicherknoten, einer zweiten Gruppe von Datenblock-Platzierungsanfragen, wobei jede Datenblock-Platzierungsanfrage der zweiten Gruppe eine Anfrage ist, einen einzelnen löschcodierten Block von Daten der zweiten Speicherdaten in einen zugewiesenen Speicherknoten der zweiten Gruppe von Speicherknoten zu platzieren.
  • In Beispiel 27 kann der Gegenstand von Beispiel 25-31 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls beinhalten, wobei die erste Hierarchieebene des ersten und des zweiten hierarchischen Switchs auf einer unteren Hierarchieebene liegen, verglichen mit einer zweiten Hierarchieebene des hierarchischen Kommunikationsnetzwerks des Speichersystems, wobei die Einrichtung ferner Folgendes umfasst:
    • einen dritten hierarchischen Switch auf der zweiten Hierarchieebene, wobei der dritte hierarchische Switch Logikmittel zur Anfragegenerierung zwischen einzelnen Racks aufweist, die zu Folgendem konfiguriert ist: Detektieren einer konsolidierten Platzierungsanfrage für mehrere Blöcke, um Speicherdaten einschließlich der ersten und der zweiten Speicherdaten zur Speicherung in einer Gruppe von Speicherknoten des Speichersystems einschließlich der ersten und der zweiten Gruppe von Speicherknoten zu platzieren, und, als Reaktion auf die konsolidierte Platzierungsanfrage für mehrere Blöcke, Generieren und Übertragen, an den ersten hierarchischen Switch, der ersten verteilten Datenplatzierungsanfrage für mehrere Blöcke, um die ersten Speicherdaten in die erste Gruppe von Speicherknoten des Speichersystems zu platzieren, und, an den zweiten hierarchischen Switch, der zweiten verteilten Datenplatzierungsanfrage für mehrere Blöcke, um die zweiten Speicherdaten in die zweite Gruppe von Speicherknoten des Speichersystems zu platzieren.
  • In Beispiel 28 kann der Gegenstand von Beispiel 25-31 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls Folgendes beinhalten:
    • einen Client-Knoten, der mit dem dritten hierarchischen Switch gekoppelt ist und Logikmittel für eine konsolidierte Platzierungsanfrage aufweist, die zu Folgendem konfiguriert sind: Empfangen von Speicherdaten einschließlich der ersten und der zweiten Speicherdaten, Löschcodieren der empfangenen Daten in Blöcke von löschcodierten Blöcken der ersten und der zweiten Speicherdaten, von denen zumindest einige Paritätsdaten beinhalten, und Generieren Übertragen, an den dritten hierarchischen Switch, der konsolidierten Platzierungsanfrage für mehrere Blöcke, die eine Nutzinformation von löschcodierten Blöcken der ersten und der zweiten Speicherdaten aufweist, zur jeweiligen Speicherung in der ersten und der zweiten Gruppe von Speicherknoten.
  • In Beispiel 29 kann der Gegenstand von Beispiel 25-31 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls Folgendes beinhalten:
    • ein erstes Speicher-Rack, aufweisend die erste Gruppe von Speicherknoten, wobei jeder Speicherknoten der ersten Gruppe Logikmittel zur Block-Platzierung aufweist, die zu Folgendem konfiguriert sind: Speichern, als Reaktion auf eine Datenblock-Platzierungsanfrage der ersten Gruppe von Datenblock-Platzierungsanfragen, die von dem zugewiesenen Speicherknoten der ersten Gruppe von Speicherknoten empfangen wurde, eines einzelnen löschcodierten Blocks von Daten der ersten Gruppe von löschcodierten Blöcken von Daten, wobei jeder Speicherknoten der ersten Gruppe ferner Logikmittel zur Generierung von Platzierungsbestätigungen aufweist, die konfiguriert sind, an den ersten hierarchischen Switch eine Datenblock-Platzierungsbestätigung, welche die Speicherung eines einzelnen löschcodierten Blocks von Daten der ersten Gruppe von löschcodierten Blöcken von Daten bestätigt, zu senden,
    • wobei der erste hierarchische Switch Logikmittel zur Bestätigungskonsolidierung innerhalb eines Racks aufweist, die zu Folgendem konfiguriert sind: Empfangen einer ersten Vielzahl von Datenblock-Platzierungsbestätigungen, wobei jede Datenblock-Platzierungsbestätigung die Speicherung eines einzelnen löschcodierten Blocks von Daten der ersten Gruppe von löschcodierten Blöcken von Daten in einem zugewiesene Speicherknoten der ersten Gruppe von Speicherknoten bestätigt, und, als Reaktion auf den Empfang der ersten Vielzahl von Datenblock-Platzierungsbestätigungen, Generieren und Übertragen, an den dritten Switch, einer ersten Datenplatzierungsbestätigung für mehrere Blöcke, welche die Speicherung der ersten Speicherdaten in der ersten Gruppe von Speicherknoten des Speichersystems bestätigt,
    • ein zweites Speicher-Rack, aufweisend die zweite Gruppe von Speicherknoten, wobei jeder Speicherknoten der zweiten Gruppe Logikmittel zur Block-Platzierung aufweist, die zu Folgendem konfiguriert sind: Speichern, als Reaktion auf eine Datenblock-Platzierungsanfrage der zweiten Gruppe von Datenblock-Platzierungsanfragen, die von dem zugewiesenen Speicherknoten der zweiten Gruppe von Speicherknoten empfangen wurden, eines einzelnen löschcodierten Blocks von Daten der zweiten Gruppe von löschcodierten Blöcken von Daten, wobei jeder Speicherknoten der zweiten Gruppe ferner Logikmittel zur Generierung von Platzierungsbestätigungen aufweist, die zu Folgendem konfiguriert sind: Senden, an den zweiten hierarchischen Switch, einer Datenblock-Platzierungsbestätigung, welche die Speicherung eines einzelnen löschcodierten Blocks von Daten der zweiten Gruppe von löschcodierten Blöcken von Daten bestätigt, wobei der zweite hierarchische Switch Logikmittel zur Bestätigungskonsolidierung innerhalb eines Racks aufweist, die zu Folgendem konfiguriert sind: Empfangen einer zweiten Vielzahl von Datenblock-Platzierungsbestätigungen, wobei jede Datenblock-Platzierungsbestätigung die Speicherung eines einzelnen löschcodierten Blocks von Daten der zweiten Gruppe von löschcodierten Blöcken von Daten in einem zugewiesenen Speicherknoten der zweiten Gruppe von Speicherknoten bestätigt, und, als Reaktion auf den Empfang der zweiten Vielzahl von Datenblock-Platzierungsbestätigungen, Generieren und Übertragen, an den dritten Switch, einer zweiten Datenplatzierungsbestätigung für mehrere Blöcke, welche die Speicherung der zweiten Speicherdaten in der zweiten Gruppe von Speicherknoten des Speichersystems bestätigt.
  • In Beispiel 30 kann der Gegenstand von Beispiel 25-31 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls beinhalten, wobei der dritte hierarchische Switch Logikmittel zur Bestätigungskonsolidierung zwischen einzelnen Racks aufweist, die zu Folgendem konfiguriert sind: Empfangen der ersten und der zweiten Datenplatzierungsbestätigung für mehrere Blöcke und Generieren und Übertragen, an den Client-Knoten des Speichersystems, einer konsolidierten Platzierungsbestätigung für mehrere Blöcke, welche die Speicherung der ersten und der zweiten Speicherdaten jeweils in der ersten und der zweiten Gruppe von Speicherknoten des Speichersystems bestätigt.
  • In Beispiel 31 kann der Gegenstand von Beispiel 25-31 (mit Ausnahme des vorliegenden Beispiels) gegebenenfalls beinhalten: wobei die Logikmittel zur Anfragegenerierung innerhalb eines Racks ferner zu Folgendem konfiguriert sind: Löschcodieren der ersten Speicherdaten der ersten verteilten Datenplatzierungsanfrage für mehrere Blöcke, die von dem ersten hierarchischen Switch empfangen wurde, in die löschcodierten Blöcke von Daten für die erste Gruppe von Datenblock-Platzierungsanfragen, um die einzelnen löschcodierten Blöcke von Daten der ersten Speicherdaten in zugewiesene Speicherknoten der ersten Gruppe von Speicherknoten zu platzieren.
  • Beispiel 32 ist ein maschinenlesbarer Speicher, der maschinenlesbare Anweisungen beinhaltet, um, wenn sie ausgeführt werden, ein Verfahren zu implementieren oder eine Einrichtung wie in den vorhergehenden Beispielen 1-31 beansprucht umzusetzen.
  • Die beschriebenen Operationen können als ein Verfahren, eine Einrichtung oder ein Computerprogrammprodukt implementiert werden unter Verwenden von Standardprogrammier- und/oder -Engineeringtechniken zum Herstellen von Software, Firmware, Hardware oder jeder Kombination davon. Die beschriebenen Operationen können als Computerprogrammcode implementiert werden, der in einem „computerlesbaren Speichermedium“ gehalten ist, wobei ein Prozessor den Code aus dem computerlesbaren Speichermedium auslesen und ausführen kann. Das computerlesbare Speichermedium beinhaltet mindestens eins aus elektronischen Schaltungen, Speichermaterialien, anorganischen Materialien, organischen Materialien, biologischen Materialien, einer Umhüllung, einem Gehäuse, einer Beschichtung und Hardware. Ein computerlesbares Speichermedium kann unter anderem Folgendes umfassen: ein magnetisches Speichermedium (z. B. Festplattenlaufwerke, Disketten, Magnetband usw.), optische Speicher (CD-ROMs, DVDs, optische Platten usw.), flüchtige und nichtflüchtige Speichervorrichtungen (z. B. EEPROMs, ROMs, PROMs, RAMs, DRAMs, SRAMs, Flash-Speicher, Firmware, programmierbare Logik usw.), Solid-State-Vorrichtungen (Solid State Devices - SSD) usw. Der Code, der die beschriebenen Operationen implementiert, kann ferner in Hardwarelogik implementiert sein, die in einer Hardwarevorrichtung (z. B. einer integriertem Schaltung, einem programmierbaren Gate Array (Programmable Gate Array - PGA), einer anwendungsspezifischen integrierten Schaltung (Application Specific Integrated Circuit - ASIC) usw.). Noch ferner kann der Code, der die beschriebenen Operationen implementiert, in „Übertragungssignalen“ implementiert sein, wobei Übertragungssignale durch den Raum oder durch ein Übertragungsmedium wie etwa eine optische Faser, Kupferdraht usw. propagieren können. Die Übertragungssignale, in denen der Code oder die Logik codiert ist, können ferner ein drahtloses Signal, Satellitenübertragung, Radiowellen, Infrarotsignale, Bluetooth usw. umfassen. Der in ein computerlesbares Speichermedium eingebettete Programmcode kann als Übertragungssignale von einer Sendestation oder einem Computer an eine Empfängerstation oder einen Computer übertragen werden. Ein computerlesbares Speichermedium umfasst nicht nur Übertragungssignale. Fachleute werden erkennen, dass an dieser Konfiguration viele Modifikationen vorgenommen werden können, ohne vom Umfang der vorliegenden Beschreibung abzuweichen, und dass der Herstellungsgegenstand geeignete, im Stand der Technik bekannte informationstragende Medien umfassen kann. Selbstverständlich werden Fachleute erkennen, dass an dieser Konfiguration viele Modifikationen vorgenommen werden können, ohne vom Umfang der vorliegenden Beschreibung abzuweichen, und dass der Herstellungsgegenstand jedes greifbare, im Stand der Technik bekannte informationstragende Medium umfassen kann.
  • Bei bestimmten Anwendungen kann eine Vorrichtung gemäß der vorliegenden Beschreibung in einem Computersystem einschließlich einer Grafikkarte zum Wiedergeben von Informationen zur Anzeige auf einem Bildschirm oder einer anderen mit dem Computersystem gekoppelten Anzeige, einem Gerätetreiber und einer Netzwerksteuerung ausgestaltet sein, wie etwa ein Computersystem, das einen Desktop, eine Workstation, einen Server, einen Großrechner, einen Laptop, einen tragbaren Computer usw. umfasst. Alternativ dazu können die Ausführungsformen der Vorrichtung in einer Computervorrichtung, die beispielsweise keine Grafikkarte beinhaltet, wie etwa ein Switch, ein Router usw., oder die beispielsweise keine Netzwerksteuerung beinhaltet, ausgestaltet sein.
  • Die dargestellte Logik der Figuren kann zeigen, dass bestimmte Ereignisse in einer bestimmten Reihenfolge ablaufen. Bei alternativen Ausführungsformen können bestimmte Operationen in einer anderen Reihenfolge ablaufen, modifiziert oder entfernt worden sein. Ferner können Operationen zu der vorstehend beschriebenen Logik hinzugefügt werden und immer noch den beschriebenen Ausführungsformen entsprechen. Ferner können hier beschriebene Operationen nacheinander ablaufen oder es können bestimmte Operationen parallel verarbeitet werden. Noch ferner können Operationen von einer einzigen Verarbeitungseinheit oder von verteilten Verarbeitungseinheiten durchgeführt werden.
  • Die vorstehende Beschreibung unterschiedlicher Ausführungsformen wurde zum Zwecke der Darstellung und der Beschreibung vorgelegt. Sie ist nicht beabsichtigt, erschöpfend oder auf die genaue offenbarte Form beschränkt zu sein. Im Licht der vorstehenden Lehre sind viele Modifikationen und Variationen möglich.

Claims (22)

  1. Einrichtung zur Verwendung mit einem hierarchischen Kommunikationsnetzwerk eines Speichersystems, das eine Vielzahl von Speicherknoten aufweist, die zum Speichern von Daten konfiguriert sind, Folgendes umfassend: einen ersten hierarchischen Switch auf einer ersten Hierarchieebene in dem hierarchischen Kommunikationsnetzwerk des Speichersystems, wobei der erste hierarchische Switch Logik zur Anfragegenerierung innerhalb eines Racks aufweist, die zu Folgendem konfiguriert ist: Detektieren des Empfangs einer ersten verteilten Datenplatzierungsanfrage für mehrere Blöcke, um erste Speicherdaten in eine erste Gruppe von Speicherknoten des Speichersystems zu platzieren, und, als Reaktion auf die erste verteilte Datenplatzierungsanfrage für mehrere Blöcke, Generieren und Übertragen, an zugewiesene Speicherknoten der ersten Gruppe von Speicherknoten, einer ersten Gruppe von Datenblock-Platzierungsanfragen, wobei jede Datenblock-Platzierungsanfrage eine Anfrage ist, einen einzelnen löschcodierten Block von Daten der ersten Speicherdaten in einen zugewiesenen Speicherknoten der ersten Gruppe von Speicherknoten zu platzieren.
  2. Einrichtung nach Anspruch 1, ferner umfassend: einen zweiten hierarchischen Switch auf der ersten Hierarchieebene in dem hierarchischen Kommunikationsnetzwerk des Speichersystems, wobei der zweite hierarchische Switch Logik zur Anfragegenerierung innerhalb eines Racks aufweist, die zu Folgendem konfiguriert ist: Detektieren des Empfangs einer zweiten verteilten Datenplatzierungsanfrage für mehrere Blöcke, um zweite Speicherdaten in eine zweite Gruppe von Speicherknoten des Speichersystems zu platzieren, und, als Reaktion auf die zweite verteilte Datenplatzierungsanfrage für mehrere Blöcke, Generieren und Übertragen, an zugewiesene Speicherknoten der zweiten Gruppe von Speicherknoten, einer zweiten Gruppe von Datenblock-Platzierungsanfragen, wobei jede Datenblock-Platzierungsanfrage der zweiten Gruppe eine Anfrage ist, einen einzelnen löschcodierten Block von Daten der zweiten Speicherdaten in einen zugewiesenen Speicherknoten der zweiten Gruppe von Speicherknoten zu platzieren.
  3. Einrichtung nach Anspruch 2, wobei die erste Hierarchieebene des ersten und des zweiten hierarchischen Switchs auf einer unteren Hierarchieebene liegt, verglichen mit einer zweiten Hierarchieebene des hierarchischen Kommunikationsnetzwerks des Speichersystems, wobei die Einrichtung ferner Folgendes umfasst: einen dritten hierarchischen Switch auf der zweiten Hierarchieebene, wobei der dritte hierarchische Switch Logik zur Anfragegenerierung zwischen einzelnen Racks aufweist, die zu Folgendem konfiguriert ist: Detektieren einer konsolidierten Platzierungsanfrage für mehrere Blöcke, um Speicherdaten einschließlich der ersten und der zweiten Speicherdaten zur Speicherung in einer Gruppe von Speicherknoten des Speichersystems einschließlich der ersten und der zweiten Gruppe von Speicherknoten zu platzieren, und, als Reaktion auf die konsolidierte Platzierungsanfrage für mehrere Blöcke, Generieren und Übertragen, an den ersten hierarchischen Switch, der ersten verteilten Datenplatzierungsanfrage für mehrere Blöcke, um die ersten Speicherdaten in die erste Gruppe von Speicherknoten des Speichersystems zu platzieren, und, an den zweiten hierarchischen Switch, der zweiten verteilten Datenplatzierungsanfrage für mehrere Blöcke, um die zweiten Speicherdaten in die zweite Gruppe von Speicherknoten des Speichersystems zu platzieren.
  4. Einrichtung nach Anspruch 3, ferner umfassend: einen Client-Knoten, der mit dem dritten hierarchischen Switch gekoppelt ist und Logik für eine konsolidierte Platzierungsanfrage aufweist, die zu Folgendem konfiguriert ist: Empfangen von Speicherdaten einschließlich der ersten und der zweiten Speicherdaten, Löschcodieren der empfangenen Daten in Blöcke von löschcodierten Blöcken der ersten und der zweiten Speicherdaten, von denen zumindest einige Paritätsdaten beinhalten, und Generieren und Übertragen, an den dritten hierarchischen Switch, der konsolidierten Platzierungsanfrage für mehrere Blöcke, welche eine Nutzinformation von löschcodierten Blöcken der ersten und der zweiten Speicherdaten aufweist, zur jeweiligen Speicherung in der ersten und der zweiten Gruppe von Speicherknoten.
  5. Einrichtung nach Anspruch 4, ferner Folgendes umfassend: ein erstes Speicher-Rack, das die erste Gruppe von Speicherknoten aufweist, wobei jeder Speicherknoten der ersten Gruppe Logik zur Block-Platzierung aufweist, die zu Folgendem konfiguriert ist: Speichern, als Reaktion auf eine Datenblock-Platzierungsanfrage der ersten Gruppe von Datenblock-Platzierungsanfragen, die von dem zugewiesenen Speicherknoten der ersten Gruppe von Speicherknoten empfangen wurde, eines einzelnen löschcodierten Blocks von Daten der ersten Gruppe von löschcodierten Blöcken von Daten, wobei jeder Speicherknoten der ersten Gruppe ferner Logik zur Generierung von Platzierungsbestätigungen aufweist, die zu Folgendem konfiguriert ist: Senden, an den ersten hierarchischen Switch, einer Datenblock-Platzierungsbestätigung, welche die Speicherung eines einzelnen löschcodierten Blocks von Daten der ersten Gruppe von löschcodierten Blöcken von Daten bestätigt; wobei der erste hierarchische Switch Logik zur Bestätigungskonsolidierung innerhalb eines Racks aufweist, die zu Folgendem konfiguriert ist: Empfangen einer ersten Vielzahl von Datenblock-Platzierungsbestätigungen, wobei jede Datenblock-Platzierungsbestätigung die Speicherung eines einzelnen löschcodierten Blocks von Daten der ersten Gruppe von löschcodierten Blöcken von Daten in einem zugewiesenen Speicherknoten der ersten Gruppe von Speicherknoten bestätigt, und, als Reaktion auf den Empfang der ersten Vielzahl von Datenblock-Platzierungsbestätigungen, Generieren und Übertragen, an den dritten Switch, einer ersten Datenplatzierungsbestätigung für mehrere Blöcke, welche die Speicherung der ersten Speicherdaten in der ersten Gruppe von Speicherknoten des Speichersystems bestätigt; ein zweites Speicher-Rack, das die zweite Gruppe von Speicherknoten aufweist, wobei jeder Speicherknoten der zweiten Gruppe Logik zur Block-Platzierung aufweist, die zu Folgendem konfiguriert ist: Speichern, als Reaktion auf eine Datenblock-Platzierungsanfrage der zweiten Gruppe von Datenblock-Platzierungsanfragen, die von dem zugewiesenen Speicherknoten der zweiten Gruppe von Speicherknoten empfangen wurde, eines einzelnen löschcodierten Blocks von Daten der zweiten Gruppe von löschcodierten Blöcken von Daten, wobei jeder Speicherknoten der zweiten Gruppe ferner Logik zur Generierung von Platzierungsbestätigungen aufweist, die zu Folgendem konfiguriert ist: Senden, an den zweiten hierarchischen Switch, einer Datenblock-Platzierungsbestätigung, welche die Speicherung eines einzelnen löschcodierten Blocks von Daten der zweiten Gruppe von löschcodierten Blöcken von Daten bestätigt, wobei der zweite hierarchische Switch Logik zur Bestätigungskonsolidierung innerhalb eines Racks aufweist, die zu Folgendem konfiguriert ist: Empfangen einer zweiten Vielzahl von Datenblock-Platzierungsbestätigungen, wobei jede Datenblock-Platzierungsbestätigung die Speicherung eines einzelnen löschcodierten Blocks von Daten der zweiten Gruppe von löschcodierten Blöcken von Daten in einem zugewiesenen Speicherknoten der zweiten Gruppe von Speicherknoten bestätigt, und, als Reaktion auf Empfang der zweiten Vielzahl von Datenblock-Platzierungsbestätigungen, Generieren und Übertragen, an den dritten Switch, einer zweiten Datenplatzierungsbestätigung für mehrere Blöcke, welche die Speicherung der zweiten Speicherdaten in der zweiten Gruppe von Speicherknoten des Speichersystems bestätigt.
  6. Einrichtung nach Anspruch 5, wobei der dritte hierarchische Switch Logik zur Bestätigungskonsolidierung zwischen einzelnen Racks aufweist, die zu Folgendem konfiguriert ist: Empfangen der ersten und der zweiten Datenplatzierungsbestätigung für mehrere Blöcke und Generieren und Übertragen, an den Client-Knoten des Speichersystems, einer konsolidierten Platzierungsbestätigung für mehrere Blöcke, welche die Speicherung der ersten und der zweiten Speicherdaten jeweils in der ersten und der zweiten Gruppe von Speicherknoten des Speichersystems bestätigt.
  7. Einrichtung nach einem der Ansprüche 1-6, wobei die Logik zur Anfragegenerierung innerhalb eines Racks ferner zu Folgendem konfiguriert ist: Löschcodieren der ersten Speicherdaten der ersten verteilten Datenplatzierungsanfrage für mehrere Blöcke, die von dem ersten hierarchischen Switch empfangen wurde, in die löschcodierten Blöcke von Daten für die erste Gruppe von Datenblock-Platzierungsanfragen, um die einzelnen löschcodierten Blöcke von Daten der ersten Speicherdaten in zugewiesene Speicherknoten der ersten Gruppe von Speicherknoten zu platzieren.
  8. Verfahren, Folgendes umfassend: Detektieren, durch einen ersten hierarchischen Switch auf einer ersten Hierarchieebene in einem hierarchischen Kommunikationsnetzwerk eines Speichersystems, einer ersten verteilten Datenplatzierungsanfrage für mehrere Blöcke, um erste Speicherdaten in eine erste Gruppe von Speicherknoten des Speichersystems zu platzieren; und als Reaktion auf die erste verteilte Datenplatzierungsanfrage für mehrere Blöcke, Übertragen, durch den ersten hierarchischen Switch, einer ersten Gruppe von Datenblock-Platzierungsanfragen an zugewiesene Speicherknoten der ersten Gruppe von Speicherknoten, wobei jede Datenblock-Platzierungsanfrage eine Anfrage ist, einen einzelnen löschcodierten Block von Daten der ersten Speicherdaten in einen zugewiesenen Speicherknoten der ersten Gruppe von Speicherknoten zu platzieren.
  9. Verfahren nach Anspruch 8, ferner umfassend: Detektieren, durch einen zweiten hierarchischen Switch auf der ersten Hierarchieebene in einem hierarchischen Kommunikationsnetzwerk eines Speichersystems, einer zweiten verteilten Datenplatzierungsanfrage für mehrere Blöcke, um zweite Speicherdaten in eine zweite Gruppe von Speicherknoten des Speichersystems zu platzieren; und als Reaktion auf die zweite verteilte Datenplatzierungsanfrage für mehrere Blöcke, Übertragen, durch den zweiten hierarchischen Switch, einer zweiten Gruppe von Datenblock-Platzierungsanfragen an zugewiesene Speicherknoten der zweiten Gruppe von Speicherknoten, wobei jede Datenblock-Platzierungsanfrage der zweiten Gruppe von Datenblock-Platzierungsanfragen eine Anfrage ist, einen einzelnen löschcodierten Block von Daten der zweiten Speicherdaten in einen zugewiesenen Speicherknoten der zweiten Gruppe von Speicherknoten zu platzieren.
  10. Verfahren nach Anspruch 9, wobei die erste Hierarchieebene des ersten und des zweiten hierarchischen Switches auf einer unteren Hierarchieebene liegt, verglichen mit einer zweiten Hierarchieebene eines dritten hierarchischen Switchs in dem hierarchischen Kommunikationsnetzwerk des Speichersystems, wobei das Verfahren ferner Folgendes umfasst: Detektieren, durch den dritten hierarchischen Switch, einer konsolidierten Platzierungsanfrage für mehrere Blöcke, um Speicherdaten einschließlich der ersten und der zweiten Speicherdaten zur Speicherung in eine Gruppe von Speicherknoten des Speichersystems einschließlich der ersten und der zweiten Gruppe von Speicherknoten zu platzieren; als Reaktion auf die konsolidierte Platzierungsanfrage für mehrere Blöcke, Übertragen, durch den dritten hierarchischen Switch, der ersten verteilten Datenplatzierungsanfrage für mehrere Blöcke an den ersten hierarchischen Switch, um die ersten Speicherdaten in die erste Gruppe von Speicherknoten des Speichersystems zu platzieren; und als Reaktion auf die dritte Übertragung von Daten, Übertragen, durch den dritten hierarchischen Switch, der zweiten verteilten Datenplatzierungsanfrage für mehrere Blöcke an den zweiten hierarchischen Switch, um die zweiten Speicherdaten in die zweite Gruppe von Speicherknoten des Speichersystems zu platzieren.
  11. Verfahren nach Anspruch 10, ferner Folgendes umfassend: Empfangen, von einem Client-Knoten des Speichersystems zur Speicherung in dem Speichersystem, von Speicherdaten einschließlich der ersten und der zweiten Speicherdaten; Löschcodieren der empfangenen Daten in Blöcke von löschcodierten Blöcken der ersten und der zweiten Speicherdaten, von denen zumindest einige Paritätsdaten beinhalten; und Übertragen, an den dritten hierarchischen Switch, der konsolidierten Platzierungsanfrage für mehrere Blöcke, die eine Nutzinformation der löschcodierten Blöcke der ersten und der zweiten Speicherdaten aufweist, zur Speicherung jeweils in der ersten und der zweiten Gruppe von Speicherknoten.
  12. Verfahren nach Anspruch 10, ferner Folgendes umfassend: Speichern, als Reaktion auf jede Datenblock-Platzierungsanfrage der ersten Gruppe von Datenblock-Platzierungsanfragen, durch einen zugewiesenen Speicherknoten der ersten Gruppe von Speicherknoten, eines einzelnen löschcodierten Blocks von Daten der ersten Gruppe von löschcodierten Blöcken von Daten, und Senden, an den ersten hierarchischen Switch, einer Datenblock-Platzierungsbestätigung, welche die Speicherung eines einzelnen löschcodierten Blocks von Daten der ersten Gruppe von löschcodierten Blöcken von Daten bestätigt; Empfangen, durch den ersten hierarchischen Switch, einer ersten Vielzahl von Datenblock-Platzierungsbestätigungen, wobei jede Datenblock-Platzierungsbestätigung die Speicherung eines einzelnen löschcodierten Blocks von Daten der ersten Gruppe von löschcodierten Blöcken von Daten in einem zugewiesenen Speicherknoten der ersten Gruppe von Speicherknoten bestätigt; Übertragen, durch den ersten hierarchischen Switch an den dritten Switch, als Reaktion auf den Empfang der ersten Vielzahl von Datenblock-Platzierungsbestätigungen, einer ersten Datenplatzierungsbestätigung für mehrere Blöcke, welche die Speicherung der ersten Speicherdaten in der ersten Gruppe von Speicherknoten des Speichersystems bestätigt; Speichern, als Reaktion auf jede Datenblock-Platzierungsanfrage der zweiten Gruppe von Datenblock-Platzierungsanfragen, durch einen zugewiesenen Speicherknoten der zweiten Gruppe von Speicherknoten, eines einzelnen löschcodierten Blocks von Daten der zweiten Gruppe von löschcodierten Blöcken von Daten, und Senden, an den zweiten hierarchischen Switch, einer Datenblock-Platzierungsbestätigung, welche die Speicherung eines einzelnen löschcodierten Blocks von Daten der zweiten Gruppe von löschcodierten Blöcken von Daten bestätigt; Empfangen, von dem zweiten hierarchischen Switch, einer zweiten Vielzahl von Datenblock-Platzierungsbestätigungen, wobei jede Datenblock-Platzierungsbestätigung der zweiten Gruppe die Speicherung eines einzelnen löschcodierten Blocks von Daten der zweiten Gruppe von löschcodierten Blöcken von Daten in einem zugewiesenen Speicherknoten der zweiten Gruppe von Speicherknoten bestätigt; und Übertragen, durch den zweiten hierarchischen Switch an den dritten Switch, als Reaktion auf den Empfang der zweiten Vielzahl von Datenblock-Platzierungsbestätigungen, einer zweiten Datenplatzierungsbestätigung für mehrere Blöcke, welche die Speicherung der zweiten Speicherdaten in der zweiten Gruppe von Speicherknoten des Speichersystems bestätigt.
  13. Verfahren nach Anspruch 12, ferner umfassend Empfangen, durch den dritten hierarchischen Switch, der ersten und der zweiten Datenplatzierungsbestätigung für mehrere Blöcke und Übertragen, an einen Client-Knoten des Speichersystems, einer konsolidierten Platzierungsbestätigung für mehrere Blöcke, welche die Speicherung der ersten und der zweiten Speicherdaten in jeweils der ersten und der zweiten Gruppe von Speicherknoten des Speichersystems bestätigt.
  14. Verfahren nach einem der Ansprüche 8-13, ferner umfassend Löschcodieren, durch den ersten hierarchischen Switch, der ersten Speicherdaten der ersten verteilten Datenplatzierungsanfrage für mehrere Blöcke, die von dem ersten hierarchischen Switch empfangen wurden, in die löschcodierten Blöcke von Daten für die erste Gruppe von Datenblock-Platzierungsanfragen, um die einzelnen löschcodierten Blöcke von Daten der ersten Speicherdaten in zugewiesene Speicherknoten der ersten Gruppe von Speicherknoten zu platzieren.
  15. Speichersystem, umfassend: ein hierarchisches Kommunikationsnetzwerk, aufweisend eine Vielzahl von Speicherknoten, die konfiguriert sind, um Daten zu speichern, wobei das Netzwerk Folgendes umfasst: einen ersten hierarchischen Switch auf einer ersten Hierarchieebene in dem hierarchischen Kommunikationsnetzwerk des Speichersystems, wobei der erste hierarchische Switch Logik zur Anfragegenerierung innerhalb eines Racks aufweist, die zu Folgendem konfiguriert ist: Detektieren des Empfangs einer ersten verteilten Datenplatzierungsanfrage für mehrere Blöcke, um erste Speicherdaten in eine erste Gruppe von Speicherknoten des Speichersystems zu platzieren, und, als Reaktion auf die erste verteilte Datenplatzierungsanfrage für mehrere Blöcke, Generieren und Übertragen, an zugewiesene Speicherknoten der ersten Gruppe von Speicherknoten, einer ersten Gruppe von Datenblock-Platzierungsanfragen, wobei jede Datenblock-Platzierungsanfrage eine Anfrage ist, um einen einzelnen löschcodierten Block von Daten der ersten Speicherdaten in einen zugewiesenen Speicherknoten der ersten Gruppe von Speicherknoten zu platzieren.
  16. System nach Anspruch 15, ferner umfassend: einen zweiten hierarchischen Switch auf der ersten Hierarchieebene in dem hierarchischen Kommunikationsnetzwerk des Speichersystems, wobei der zweite hierarchische Switch Logik zur Anfragegenerierung innerhalb eines Racks aufweist, die zu Folgendem konfiguriert ist: Detektieren des Empfangs einer zweiten verteilten Datenplatzierungsanfrage für mehrere Blöcke, um zweite Speicherdaten in eine zweite Gruppe von Speicherknoten des Speichersystems zu platzieren und, als Reaktion auf die zweite verteilte Datenplatzierungsanfrage für mehrere Blöcke, Generieren und Übertragen, an zugewiesene Speicherknoten der zweiten Gruppe von Speicherknoten, einer zweiten Gruppe von Datenblock-Platzierungsanfragen, wobei jede Datenblock-Platzierungsanfrage der zweiten Gruppe eine Anfrage ist, um einen einzelnen löschcodierten Block von Daten der zweiten Speicherdaten in einen zugewiesenen Speicherknoten der zweiten Gruppe von Speicherknoten zu platzieren.
  17. System nach Anspruch 16, wobei die erste Hierarchieebene des ersten und des zweiten hierarchischen Switchs auf einer unteren Hierarchieebene liegt, verglichen mit einer zweiten Hierarchieebene des hierarchischen Kommunikationsnetzwerks des Speichersystems, wobei das System ferner Folgendes umfasst: einen dritten hierarchischen Switch auf der zweiten Hierarchieebene, wobei der dritte hierarchische Switch Logik zur Anfragegenerierung zwischen einzelnen Racks aufweist, die zu Folgendem konfiguriert ist: Detektieren einer konsolidierten Platzierungsanfrage für mehrere Blöcke, um Speicherdaten einschließlich der ersten und der zweiten Speicherdaten zur Speicherung in eine Gruppe von Speicherknoten des Speichersystems einschließlich der ersten und der zweiten Gruppe von Speicherknoten zu platzieren, und, als Reaktion auf die konsolidierte Platzierungsanfrage für mehrere Blöcke, Generieren und Übertragen, an den ersten hierarchischen Switch, der ersten verteilten Datenplatzierungsanfrage für mehrere Blöcke, um die ersten Speicherdaten in die erste Gruppe von Speicherknoten des Speichersystems zu platzieren, und, an den zweiten hierarchischen Switch, der zweiten verteilten Datenplatzierungsanfrage für mehrere Blöcke, um die zweiten Speicherdaten in die zweite Gruppe von Speicherknoten des Speichersystems zu platzieren.
  18. System nach Anspruch 17, ferner umfassend: einen Client-Knoten, der mit dem dritten hierarchischen Switch gekoppelt ist und Logik für eine konsolidierte Platzierungsanfrage aufweist, die zu Folgendem konfiguriert ist: Empfangen von Speicherdaten einschließlich der ersten und der zweiten Speicherdaten, Löschcodieren der empfangenen Daten in Blöcke von löschcodierten Blöcken der ersten und der zweiten Speicherdaten, von denen zumindest einige Paritätsdaten beinhalten, und Generieren und Übertragen, an den dritten hierarchischen Switch, der konsolidierten Platzierungsanfrage für mehrere Blöcke, die eine Nutzinformation der löschcodierten Blöcke der ersten und der zweiten Speicherdaten aufweist, zur Speicherung jeweils in der ersten und der zweiten Gruppe von Speicherknoten.
  19. System nach Anspruch 18, ferner Folgendes umfassend: ein erstes Speicher-Rack, das die erste Gruppe von Speicherknoten aufweist, wobei jeder Speicherknoten der ersten Gruppe Logik zur Block-Platzierung aufweist, die zu Folgendem konfiguriert ist: Speichern, als Reaktion auf eine Datenblock-Platzierungsanfrage der ersten Gruppe von Datenblock-Platzierungsanfragen, die von dem zugewiesenen Speicherknoten der ersten Gruppe von Speicherknoten empfangen wurden, eines einzelnen löschcodierten Blocks von Daten der ersten Gruppe von löschcodierten Blöcken von Daten, wobei jeder Speicherknoten der ersten Gruppe ferner Logik zur Generierung von Platzierungsbestätigungen aufweist, die konfiguriert ist, an den ersten hierarchischen Switch eine Datenblock-Platzierungsbestätigung zu senden, welche die Speicherung eines einzelnen löschcodierten Blocks von Daten der ersten Gruppe von löschcodierten Blöcken von Daten bestätigt; wobei der erste hierarchische Switch Logik zur Bestätigungskonsolidierung innerhalb eines Racks aufweist, die zu Folgendem konfiguriert ist: Empfangen einer ersten Vielzahl von Datenblock-Platzierungsbestätigungen, wobei jede Datenblock-Platzierungsbestätigung die Speicherung eines einzelnen löschcodierten Blocks von Daten der ersten Gruppe von löschcodierten Blöcken von Daten in einen zugewiesenen Speicherknoten der ersten Gruppe von Speicherknoten bestätigt, und Generieren und Übertragen, an den dritten Switch, als Reaktion auf den Empfang der ersten Vielzahl von Datenblock-Platzierungsbestätigungen, einer ersten Datenplatzierungsbestätigung für mehrere Blöcke, welche die Speicherung der ersten Speicherdaten in der ersten Gruppe von Speicherknoten des Speichersystems bestätigt; ein zweites Speicher-Rack, das die zweite Gruppe von Speicherknoten aufweist, wobei jeder Speicherknoten der zweiten Gruppe Logik zur Block-Platzierung aufweist, die zu Folgendem konfiguriert ist: Speichern, als Reaktion auf eine Datenblock-Platzierungsanfrage der zweiten Gruppe von Datenblock-Platzierungsanfragen, die von dem zugewiesenen Speicherknoten der zweiten Gruppe von Speicherknoten empfangen wurde, eines einzelnen löschcodierten Blocks von Daten der zweiten Gruppe von löschcodierten Blöcken von Daten, wobei jeder Speicherknoten der zweiten Gruppe ferner Logik zur Generierung von Platzierungsbestätigungen aufweist, die konfiguriert ist, an den zweiten hierarchischen Switch eine Datenblock-Platzierungsbestätigung zu senden, welche die Speicherung eines einzelnen löschcodierten Blocks von Daten der zweiten Gruppe von löschcodierten Blöcken von Daten bestätigt; wobei der zweite hierarchische Switch Logik zur Bestätigungskonsolidierung innerhalb eines Racks aufweist, die zu Folgendem konfiguriert ist: Empfangen einer zweiten Vielzahl von Datenblock-Platzierungsbestätigungen, wobei jede Datenblock-Platzierungsbestätigung die Speicherung eines einzelnen löschcodierten Blocks von Daten der zweiten Gruppe von löschcodierten Blöcken von Daten in einem zugewiesenen Speicherknoten der zweiten Gruppe von Speicherknoten bestätigt, und, als Reaktion auf den Empfang der zweiten Vielzahl von Datenblock-Platzierungsbestätigungen, Generieren und Übertragen, an den dritten Switch, einer zweiten Datenplatzierungsbestätigung für mehrere Blöcke, welche die Speicherung der zweiten Speicherdaten in der zweiten Gruppe von Speicherknoten des Speichersystems bestätigt.
  20. System nach Anspruch 19, wobei der dritte hierarchische Switch Logik zur Bestätigungskonsolidierung zwischen einzelnen Racks aufweist, die zu Folgendem konfiguriert ist: Empfangen der ersten und der zweiten Datenplatzierungsbestätigung für mehrere Blöcke und Generieren und Übertragen, an den Client-Knoten des Speichersystems, einer konsolidierten Platzierungsbestätigung für mehrere Blöcke, welche die Speicherung der ersten und der zweiten Speicherdaten in jeweils der ersten und der zweiten Gruppe von Speicherknoten des Speichersystems bestätigt.
  21. System nach einem der Ansprüche 15-20, wobei die Logik zur Anfragegenerierung innerhalb eines Racks ferner zu Folgendem konfiguriert ist: Löschcodieren der ersten Speicherdaten der ersten verteilten Datenplatzierungsanfrage für mehrere Blöcke, die von dem ersten hierarchischen Switch empfangen wurden, in die löschcodierten Blöcke von Daten für die erste Gruppe von Datenblock-Platzierungsanfragen, um die einzelnen löschcodierten Blöcke von Daten der ersten Speicherdaten in zugewiesene Speicherknoten der ersten Gruppe von Speicherknoten zu platzieren.
  22. System nach einem der Ansprüche 15-20, ferner umfassend eine Anzeige, die kommunikativ mit dem Switch gekoppelt ist.
DE102018131983.5A 2018-01-12 2018-12-12 Switch-unterstützte datenspeicher-netzwerkverkehrsverwaltung in einem rechenzentrum Pending DE102018131983A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/870,709 2018-01-12
US15/870,709 US20190044853A1 (en) 2018-01-12 2018-01-12 Switch-assisted data storage network traffic management in a data storage center

Publications (1)

Publication Number Publication Date
DE102018131983A1 true DE102018131983A1 (de) 2019-07-18

Family

ID=65230101

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018131983.5A Pending DE102018131983A1 (de) 2018-01-12 2018-12-12 Switch-unterstützte datenspeicher-netzwerkverkehrsverwaltung in einem rechenzentrum

Country Status (3)

Country Link
US (1) US20190044853A1 (de)
CN (1) CN110032468A (de)
DE (1) DE102018131983A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11360949B2 (en) 2019-09-30 2022-06-14 Dell Products L.P. Method and system for efficient updating of data in a linked node system
US11604771B2 (en) 2019-09-30 2023-03-14 Dell Products L.P. Method and system for data placement in a linked node system
US11422741B2 (en) 2019-09-30 2022-08-23 Dell Products L.P. Method and system for data placement of a linked node system using replica paths
US11481293B2 (en) 2019-09-30 2022-10-25 Dell Products L.P. Method and system for replica placement in a linked node system
US11068345B2 (en) * 2019-09-30 2021-07-20 Dell Products L.P. Method and system for erasure coded data placement in a linked node system
US11347419B2 (en) * 2020-01-15 2022-05-31 EMC IP Holding Company LLC Valency-based data convolution for geographically diverse storage

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7551638B2 (en) * 2005-03-31 2009-06-23 Intel Corporation Network interface with transmit frame descriptor reuse
US10298957B2 (en) * 2010-10-06 2019-05-21 International Business Machines Corporation Content-based encoding in a multiple routing path communications system
US10037340B2 (en) * 2014-01-21 2018-07-31 Red Hat, Inc. Tiered distributed storage policies
US20160224638A1 (en) * 2014-08-22 2016-08-04 Nexenta Systems, Inc. Parallel and transparent technique for retrieving original content that is restructured in a distributed object storage system
US9916200B2 (en) * 2016-08-12 2018-03-13 Dell Products, Lp Fault-tolerant distributed information handling systems and methods
US10705911B2 (en) * 2017-04-24 2020-07-07 Hewlett Packard Enterprise Development Lp Storing data in a distributed storage system
US20190034306A1 (en) * 2017-07-31 2019-01-31 Intel Corporation Computer System, Computer System Host, First Storage Device, Second Storage Device, Controllers, Methods, Apparatuses and Computer Programs
US10394490B2 (en) * 2017-10-23 2019-08-27 Weka.IO Ltd. Flash registry with write leveling

Also Published As

Publication number Publication date
US20190044853A1 (en) 2019-02-07
CN110032468A (zh) 2019-07-19

Similar Documents

Publication Publication Date Title
DE102018131983A1 (de) Switch-unterstützte datenspeicher-netzwerkverkehrsverwaltung in einem rechenzentrum
DE112020002526B4 (de) Blockmodusumschaltung in datenspeichersystem
DE102012214324B4 (de) Verfahren und Vorrichtung zur Erleichterung der Datenüberprüfung mithilfe einer Prüfsumme in Verbindung mit einem Sidefile
DE102020107659A1 (de) Zonenbildung für gezonte namensräume
DE112018004256T5 (de) Redundanzcodierstreifen basierend auf internen adressen von speichervorrichtungen
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden
DE112020000139T5 (de) Nicht sequentiell in zonen aufgeteilte namensräume
DE102005013683A1 (de) Speicherkarte und zugehöriges Betriebsverfahren
DE112013004400B4 (de) Herstellen einer Zeitpunktkopie-Beziehung zwischen logischen Quellenadressen und logischen Zieladressen
DE202010017667U1 (de) Datenspeichervorrichtung mit Flash-Speicherchips
DE112010003662T5 (de) Ausgleich nachlassender Funktionsfähigkeit von Halbleiterdatenträgern auf der Grundlage der von einer RAID-Steuereinheit empfangenen Daten- und Paritätsnutzungsinformationen
DE102010044529B4 (de) Autonomes speicher-sub-system mit hardwarebeschleuniger
DE112020005787T5 (de) Verbesserte dateisystem-unterstützung für zonen-namespace-speicher
DE102019112772A1 (de) Technologien für eine dienstgütefrist-bewusste ende-zu-ende-e/a-planung
DE112018005121T5 (de) Speichersystem unter verwendung von cloud-speicher als eine speicherbank
DE112018000900T5 (de) Verarbeiten eines Befehls zum Freigeben von Speicherplatz in einem Computersystem
DE102012206283A1 (de) Verteilung des Datenflusses auf mehrere Pfade (Multi-Pathing) in einem Speicherbereichsnetzwerk
DE112019001863T5 (de) Verwenden von spursperren und schrittweitengruppensperren zum verwalten von cacheoperationen
WO2014020032A2 (de) Hochverfügbares rechnersystem, arbeitsverfahren und dessen verwendung
DE112012002796T5 (de) Übertragen von in virtuellen Datenträgern organisierten deduplizierten Daten in einen Zielsatz von physischen Medien
DE112020005350T5 (de) Aktualisieren von korrigierenden lesespannung-offsetwerten in nichtflüchtigen direktzugriffsspeichern
DE102016119298A1 (de) Zeitpunktkopieren mit klonen von ketten
DE112022000468T5 (de) Unterschiedliche schreibpriorisierung in zns-vorrichtungen
DE112019005392T5 (de) Steigern von datenleistung durch transferieren von daten zwischen speicherebenen unter verwendung von arbeitslastmerkmalen