DE202019005816U1 - System zur Aufrechterhaltung der Fehlertoleranz einer Speichervorrichtung in einer zusammensetzbaren Infrastruktur - Google Patents

System zur Aufrechterhaltung der Fehlertoleranz einer Speichervorrichtung in einer zusammensetzbaren Infrastruktur Download PDF

Info

Publication number
DE202019005816U1
DE202019005816U1 DE202019005816.8U DE202019005816U DE202019005816U1 DE 202019005816 U1 DE202019005816 U1 DE 202019005816U1 DE 202019005816 U DE202019005816 U DE 202019005816U DE 202019005816 U1 DE202019005816 U1 DE 202019005816U1
Authority
DE
Germany
Prior art keywords
drives
server
servers
storage
coupled
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.)
Expired - Lifetime
Application number
DE202019005816.8U
Other languages
English (en)
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.)
Twitter Inc
Original Assignee
Twitter Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Twitter Inc filed Critical Twitter Inc
Publication of DE202019005816U1 publication Critical patent/DE202019005816U1/de
Expired - Lifetime legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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]

Abstract

System mit einer zusammensetzbaren Infrastruktur, beinhaltend:
ein Kommunikationssubsystem;
Plattenlaufwerke, die mit dem Kommunikationssubsystem gekoppelt sind, wobei die Laufwerke gemäß mindestens einem gekoppelten Ausfallmechanismus, der sich auf die Laufwerke bezieht, in Speichergruppen organisiert sind, und wobei jede der Speichergruppen alle Laufwerke mindestens einer gekoppelten Ausfalldomäne umfasst, wobei keine zwei oder mehr der Speichergruppen einen gekoppelten Ausfallmechanismus gemeinsam nutzen; und
einen Satz von Servern, wobei jeder der Server mit dem Kommunikationssubsystem gekoppelt ist und ihm gemäß der Speichergruppenzugehörigkeit der Laufwerke eine unterschiedliche Laufwerksuntergruppe zugewiesen wurde, und jeder der Server mindestens ein Rechensubsystem beinhaltet, das dazu konfiguriert ist, mindestens eine Anwendung auszuführen, die es jedem dieser Server ermöglicht, auf die ihm zugewiesenen Laufwerke zuzugreifen, jedoch nicht auf die Laufwerke, die nicht jedem der Server zugewiesen wurden.

Description

  • Technisches Gebiet
  • Die Erfindung bezieht sich auf Systeme, in denen Computergeräte (Server) über ein Netzwerk oder andere Kommunikationsmechanismen auf Plattenlaufwerke (außerhalb der Server) und auf Geräte zum Implementieren solcher Systeme zugreifen. Gemäß einigen Ausführungsformen sind Plattenlaufwerke in Speichergruppen organisiert (z. B. derart, dass die Laufwerke in jeder Speichergruppe mindestens einen gekoppelten Ausfallmechanismus haben) und die Laufwerke werden Servern gemäß der Speichergruppenzugehörigkeit der Laufwerke zugewiesen (und typischerweise werden auch Datenelemente auf den Servern platziert).
  • Hintergrund
  • Die folgenden Definitionen gelten in dieser gesamten Beschreibung, einschließlich in den Ansprüchen:
    • „Speichervorrichtung“ bezeichnet eine Vorrichtung, die dazu konfiguriert ist, Daten zu speichern und abzurufen (z. B. ein Plattenlaufwerk oder ein Flash-Speicher). Typischerweise wird auf Speichervorrichtungen unter Verwenden logischer Blockadresse (LBA, Logical Block Address) und einer Anzahl von Blöcken zugegriffen. Ein logischer Block ist ein Stück mit fester Größe der Gesamtspeicherkapazität (z. B. 512 oder 4096 Byte);
    • „Festplattenlaufwerk“ (oder „Laufwerk“) bezeichnet ein Massendatenspeichergerät. Beispiele für Plattenlaufwerke beinhalten (sind jedoch nicht beschränkt auf) Laufwerke, die sich drehende magnetische Medien oder Flash-Speicherzellen enthalten oder mindestens eine andere Datenspeichertechnologie implementieren;
    • „JBOD“ (oder Just a Bunch Of Disks) bezeichnet ein Gehäuse, das einen Satz von mindestens zwei Festplatten enthält. Das Gehäuse verfügt typischerweise über redundante Netzteile und Datenkommunikationsverbindungen;
    • „Zusammensetzbare Infrastruktur“ bezeichnet eine Technik zum Entwerfen eines Systems (z. B. ein Rechenzentrum) mit Servern (die jeweils mindestens ein Rechenelement implementieren) und Festplattenlaufwerken, wobei sich die Festplattenlaufwerke außerhalb der Server befinden (und mit den Servern über ein Datennetzwerk oder einen anderen Kommunikationsmechanismus verbunden oder gekoppelt sind), sodass Untergruppen der Plattenlaufwerke einzelnen der Server zuweisbar (zuordnungsbar) sind und jeder der Server mindestens eines der Plattenlaufwerke, das außerhalb dieses Servers liegt und ihm zugewiesen ist, verwenden (z. B. Daten darauf speichern) kann. Der Kommunikationsmechanismus wird hierin manchmal als ein „Kommunikationssubsystem“ (eines Systems mit einer zusammensetzbaren Infrastruktur) bezeichnet. Jeder der Server kann (muss aber nicht) auch mindestens ein internes Plattenlaufwerk beinhalten (z. B. direkt enthalten), aber keines dieser internen Plattenlaufwerke (sofern vorhanden) zählt zu den (externen und zuweisbaren) Plattenlaufwerken, die im vorherigen Satz erwähnt wurden. So kann beispielsweise mindestens einer der Server ein internes Plattenlaufwerk (hierin manchmal als „Boot“-Laufwerk bezeichnet) beinhalten, das ausschließlich zum Booten seines Betriebssystems verwendet wird. Als weiteres Beispiel kann mindestens einer der Server kein internes Plattenlaufwerk beinhalten. Als weiteres Beispiel kann mindestens einer der Server ein internes Plattenlaufwerk (z. B. ein DAS-Plattenlaufwerk) beinhalten, das der Server für mindestens eine andere Operation als das Booten des Betriebssystems des Servers verwendet, das aber nicht zu den externen und zuweisbaren Laufwerken des Systems zählt. In diesem Zusammenhang kann ein internes Plattenlaufwerk (welches sich intern in einem Server befindet) im Servergehäuse enthalten sein oder direkt mit einem Rechenelement (Rechensubsystem) des Servers verdrahtet sein, obwohl es nicht im Gehäuse des Servers enthalten ist. Ein System (z. B. ein Rechenzentrum), das gemäß der oben (in diesem Absatz) erwähnten Technik entworfen wurde, wird hierin manchmal als eine zusammensetzbare Infrastruktur (oder eine zusammensetzbare Architektur) oder ein System mit einer zusammensetzbaren Infrastruktur (oder einer zusammensetzbaren Architektur) bezeichnet. Auf die Laufwerke eines Systems mit einer zusammensetzbaren Infrastruktur wird typischerweise (aber nicht notwendigerweise) (von Servern, denen sie zugewiesen sind) direkt als „rohe“ Speichergeräte zugegriffen, ohne die Fähigkeit (außer wie von den Servern selbst bereitgestellt) RAID, Snapshot-Verarbeitung, Deduplizierungsdienste usw., die traditionell in NAS- und SAN-Umgebungen verfügbar sind, bereitzustellen. In einigen Ausführungsformen wird auf die Laufwerke eines Systems mit einer zusammensetzbaren Infrastruktur von RAID-Controllern direkt als „rohe“ Speichergeräte zugegriffen, um Daten von Servern der zusammensetzbaren Infrastruktur auf den Laufwerken zu speichern;
    • „Server“ bezeichnet ein Computergerät (Computer oder Prozessor), das dazu konfiguriert ist, Anwendungen auszuführen und typischerweise auch über ein Netzwerk (oder einen anderen Kommunikationsmechanismus) auf ein Speichergerät (z. B. ein Plattenlaufwerk) zuzugreifen und dieses dazu zu verwenden, um Daten (z. B. Dateien) und/oder Anwendungen zu speichern und abzurufen). Ein Server umfasst typischerweise mindestens ein Computersubsystem (hierin manchmal als „Rechenelement“ bezeichnet), das programmiert und/oder anderweitig dazu konfiguriert ist, um Anwendungen auszuführen;
    • „Adapter“ bezeichnet ein Gerät, das dazu konfiguriert ist, um ein Speichergerät (z. B. ein Festplattenlaufwerk) oder ein Speichersystem (z. B. ein JBOD mit zwei oder mehr Festplattenlaufwerken), das zwei oder mehr Speichergeräte umfasst, mit einem Kommunikationssubsystem (z. B. ein Netzwerk) eines Systems mit zusammensetzbarer Infrastruktur zu verbinden. Beispiele für Adapter sind im US-Patent 9,794,112 mit dem Titel „Method and System for Balancing Storage Data Traffic in Converged Networks“ beschrieben;
    • „Serverschnittstelle“ bezeichnet eine Komponente eines Servers, die den Server mit einem Kommunikationssubsystem (z. B. einem Netzwerk) eines Systems mit zusammensetzbarer Infrastruktur verbindet, und „Adapterschnittstelle“ bezeichnet eine Komponente eines Adapters, der den Adapter mit einem Kommunikationssubsystem (z. B. ein Netzwerk) eines Systems mit zusammensetzbarer Infrastruktur verbindet. Beispiele für eine Serverschnittstelle (oder eine Adapterschnittstelle) sind eine physische Vorrichtung (das heißt eine Netzwerk-Schnittstellensteuervorrichtung (NIC, Network Interface Controller)), und ein softwaredefinierter Wrapper mehrerer NICs (wie für die Link-Aggregation). In einigen Ausführungsformen der Erfindung ist eine Serverschnittstelle (oder Adapterschnittstelle) ein Hardware- oder Softwareelement, das seine eigene Internet Protocol-Adresse (IP-Adresse) in einem konvergierten Netzwerk hat;
    • „Computerrack“ bezeichnet in einer zusammensetzbaren Architektur ein Serverrack. Typischerweise enthält keiner der Server ein Festplattenlaufwerk für die Massenspeicherung (häufig enthält er jedoch ein Festplattenlaufwerk zum Booten seines Betriebssystems);
    • „DAS“ (oder „Direct Attached Storage“) für einen Server bezeichnet ein oder mehrere Festplattenlaufwerke zur Massenspeicherung für ein Rechenelement (des Servers), wobei jedes dieser Festplattenlaufwerke (manchmal als „DAS-Laufwerk“ bezeichnet) direkt mit einem Rechenelement (Rechensubsystem) des Servers verbunden ist. Normalerweise ist jedes DAS-Laufwerk für einen Server im Gehäuse des Servers enthalten. Beispiele für kabelgebundene Verbindungstechniken umfassen (sind aber nicht beschränkt auf) SATA, SAS und NVMe;
    • „Datenknoten“ bezeichnet einen Server (oder eine virtuelle Maschine, die durch einen Server oder ein anderes Element eines Servers implementiert wird), der konfiguriert ist, um Speicheroperationen für eine Scale-out-Anwendung (z. B. Hadoop) durchzuführen;
    • „Scale-out-Anwendung“ bezeichnet eine Anwendung, für deren Ausführung ein Server konfiguriert ist (normalerweise ist der Server mit Software zur Ausführung der Anwendung programmiert), um das Verhalten des Servers mit dem anderer Server (die typischerweise auch für die Ausführung derselben Anwendung konfiguriert sind) zu koordinieren, welche (unter Verwendung eines Datennetzwerks oder eines anderen Kommunikationsmechanismus) mit dem Server verbunden oder gekoppelt sind, um es dem Server zu ermöglichen, mit mindestens einem der anderen Server zusammenzuarbeiten, um eine Verarbeitungsoperation durchzuführen (z. B. um ein Problem auf verteilte Weise zu lösen). Um beispielsweise ein Problem auf verteilte Weise zu lösen, können alle Server (die jeweils so konfiguriert sind, dass sie dieselbe Anwendung mit horizontaler Skalierung ausführen) die Anwendung mit horizontaler Skalierung ausführen, welche ihr Verhalten koordiniert;
    • „Hadoop“ bezeichnet eine Scale-out-Anwendung, die von der Apache Foundation bereitgestellt wird;
    • „Datenplatzierungsrichtlinie“ einer Anwendung (z. B. einer Scale-out-Anwendung) bezeichnet Regeln, gemäß denen ein Server, auf dem die Anwendung ausgeführt wird, Datenelemente platziert (z. B. die Datenelemente an einen oder mehrere andere Server sendet) und/oder Datenelemente speichert (z. B. auf Plattenlaufwerken außerhalb des Servers). „Datenreplikationsrichtlinie“ bezeichnet eine Datenplatzierungsrichtlinie, gemäß deren Regeln der Server Datenelemente in redundanter Weise auf Festplattenlaufwerken außerhalb des Servers speichert;
    • „NAS“ (oder „Network Attached Storage“) bezeichnet eine Datenspeicherarchitektur, bei der ein externer Dateiserver (d. h. dem Rechenelement mindestens eines anderen Servers) Zugriff auf Daten in Form von Dateien bereitstellt. NAS-Systeme bieten normalerweise Fehlertoleranz, Deduplizierung und Snapshot-Dienste, wenn auch zu viel höheren Kosten als DAS;
    • „RAID“ (ursprünglich „Redundant Array of Inexpensive Disks“) oder eine „RAID-Technik“ oder „RAID-Funktion“ bezeichnet hierin eine Technik (oder eine Operation) zum Kombinieren von Plattenlaufwerken (z. B. unzuverlässige Plattenlaufwerke) durch das Speichern von Daten in redundanter Weise auf mehreren Festplattenlaufwerken, um einen zuverlässigen Speichermechanismus zu schaffen. Die Plattenlaufwerke, auf denen ein Datenelement Daten (in redundanter Weise) durch oder in Übereinstimmung mit einer RAID-Technik oder RAID-Funktion gespeichert sind, werden hierin als „RAID-Array“ oder „RAID-Gruppe“ bezeichnet;
    • „SAN“ (oder „Storage Area Network“) bezeichnet eine Speicherarchitektur, bei der ein externer Speicherkopf Zugriff auf Speicher auf Blockebene (d. h. dem Rechenelement eines Servers) bereitstellt. SAN-Systeme bieten normalerweise Fehlertoleranz, Deduplizierung und Snapshot-Dienste, wenn auch zu viel höheren Kosten als DAS;
    • „softwaredefinierter Speicher“ bezeichnet eine Infrastruktur, bei der ein Softwaremodul oder -system für die Bereitstellung von Servern (z. B. Bereitstellung des Rechenelements jedes der Server) mit Speicher verantwortlich ist;
    • „Speichergruppe“ bezeichnet eine Gruppe von Plattenlaufwerken (z. B. eine Gruppe, die durch eine programmierte Rechenvorrichtung zu einem Satz zusammen organisiert sind), die einen Zuweisungspool (z. B. einen Ersatzpool) bereitstellen können und die, wenn sie so aufgebaut sind, dass sie mindestens einem allgemeinen Ausfallszenario entsprechen, verwendet werden können, um sicherzustellen, dass der Zugriff eines Servers (oder einer Anwendung) auf Datenelemente Ausfälle überstehen kann. In diesem Dokument bezeichnet ein Zuweisungspool (für einen Server) eine Gruppe von Laufwerken, die für die Zuweisung an den Server verfügbar sind. Ein Beispiel für die Zuweisung ist der Ersatz, d. h. wenn ein Laufwerk (das zuvor einem Server zugewiesen wurde) ausfällt, ist die Zuweisung eines anderen Laufwerks an den Server (als Ersatz für das ausgefallene Laufwerk) ein Zuweisungsfall, der manchmal als „Ersatz“ eines ausgefallenen Laufwerks bezeichnet wird. Beispiele für eine Speichergruppe sind: alle Laufwerke in einem oder mehreren JBODs und alle Laufwerke in einem oder mehreren Speicherracks;
    • „gemeinsamer Ausfall“ von Plattenlaufwerken (z. B. wie in „gemeinsamer Ausfall“-Risiko oder Besorgnismodus oder Szenario, auf die Laufwerke bezogen) bezeichnet den Ausfall aller Laufwerke zusammen als Ergebnis einer gemeinsamen Abhängigkeit der Laufwerke. So haben beispielsweise Plattenlaufwerke, die in einem einzelnen Rack installiert sind (wobei das Rack mit einem Netzwerk gekoppelt ist und eine Reihe von Stromanschlüssen und Netzwerkschaltern an das Rack angeschlossen ist) eine gemeinsame Abhängigkeit vom Status des Racks und unterliegen daher typischerweise einem gemeinsamen Ausfallrisiko, dass alle Laufwerke aufgrund eines Rackausfalls ausfallen (d. h. über das Netzwerk unzugänglich werden). Die Gruppe aller Laufwerke, die einem gemeinsamen Ausfallrisiko (oder einer einzelnen Gruppe gemeinsamer Ausfallrisiken) unterliegt, wird manchmal als „Domäne mit gemeinsamem Modus“ bezeichnet; und
    • „Speicherrack“ bezeichnet in einer zusammensetzbaren Architektur ein Rack mit Plattenlaufwerken und/oder JBODs, einschließlich Plattenlaufwerken und gegebenenfalls auch Geräten (z. B. Adaptern) zum Bereitstellen des Zugriffs auf die Laufwerke (einschließlich der Laufwerke in jedem der JBODS). Ein Beispiel für einen Adapter, der (z. B. mit mindestens einem Plattenlaufwerk und/oder JBOD) in einem Speicherrack beinhaltet sein kann, ist der DriveScale-Speicheradapter.
  • Plattenlaufwerke (entweder rotierende magnetische Medien oder Flash-Speicher) werden üblicherweise zum Speichern von Massendaten auf Computern verwendet. Einzelne Laufwerke können ausfallen, wodurch alle darauf gespeicherten Daten verloren gehen. Wenn wichtige Daten nur auf einem Laufwerk gespeichert sind und dieses ausfällt, kann dies enorme negative Auswirkungen auf den Betrieb eines Unternehmens haben. Infolgedessen wurden verschiedene Techniken verwendet, um sicherzustellen, dass der Ausfall eines Speichergeräts die Wiederherstellung der Daten nicht beeinträchtigt.
  • In der Vergangenheit wurden Festplatten zum Speichern von Daten für Computer-Server entweder direkt mit Servern verbunden (als Direct Attached Storage oder „DAS“ bezeichnet) oder über ein Netzwerk mit einem Dateiserver (Network Attached Storage oder „NAS“) oder einem Blockspeicherkopf (Storage Area Networks oder „SANs“) verbunden. Im Fall einer SAN-Speicherung kann der Blockspeicherkopf mit einem Datennetzwerk verbunden sein und Rechenserver können auch mit dem Datennetzwerk verbunden sein, sodass die Festplattenlaufwerke (verbunden mit einem Speichernetzwerk, das sich von dem Datennetzwerk unterscheidet) über den Blockspeicherkopf mit dem Datennetz verbunden sind. Die Techniken für jeden Verbindungstyp sind ähnlich, aber die Details variieren je nach Verbindungstyp.
  • Für Direct Attached Storage (DAS) auf einem einzelnen System kann der Schutz von Daten vor Datenverlust entweder durch eine Hardware- oder Softwarekomponente bereitgestellt werden, bei der RAID (Redundant Arrays of Inexpensive Disks)-Software implementiert ist, um sicherzustellen, dass der Verlust eines Festplattenlaufwerks keinen Datenverlust nach sich zieht. RAID-Techniken werden ebenso in den so genannten Speicherköpfen oder Dateiservern verwendet, die zum Bereitstellen von SAN- bzw. NAS-Speicherung verwendet werden. Diese Techniken verhindern im Allgemeinen den Verlust von Daten. In den meisten Fällen kann der Ausfall eines einzelnen Servers oder Speicherkopfs jedoch dazu führen, dass es sehr lange dauert, bis der Zugriff auf die Daten wiederhergestellt ist.
  • Eine neue Anwendungsarchitektur, die so genannte Scale-out-Architektur, wurde entwickelt, um Probleme zu lösen, die größer sind, als dass sie von einem einzelnen Computer bewältigt werden können. In einer solchen Architektur führt jeder Computer einer Anzahl an Computern (typischerweise eine große Anzahl an weniger teuren Computern, von denen jeder mindestens ein DAS-Laufwerk beinhaltet) eine Scale-out-Anwendung aus, sodass Teile der Arbeit auf die Computer verteilt werden, und die Teilergebnisse werden wieder zusammengeführt (z. B. auf einem Computer), um die gewünschte Antwort (Endergebnis) zu bilden. Die Computer sind Server, die durch einen Kommunikationsmechanismus (z. B. Datennetzwerk) miteinander gekoppelt sind, und auf jedem der Server wird die Scale-out-Anwendung ausgeführt, die ihr Verhalten koordiniert, um die Probleme zu lösen. Da jedoch viele Computer zur Lösung beitragen, würde es typischerweise viele Fälle geben, in denen mindestens einer von ihnen defekt wäre oder anderweitig nicht richtig funktionieren würde. Während es oft möglich ist, Daten von einem defekten Computer nach einiger Zeit wiederherzustellen, kann es unmöglich sein, die vollständige Lösung eines Problems zu berechnen, wenn einige der Daten nicht verfügbar wären. Die ursprüngliche Idee, das Problem der Datenverfügbarkeit zu lösen, bestand darin, dass die Anwendung (die auf vielen Servern installiert ist und deren Verhalten koordiniert) sicherstellen würde, dass jedes Datenelement mehreren solcher Server (manchmal Datenknoten genannt) bereitgestellt wird, unter der Annahme, dass jeder der Server das Element speichert (z. B. auf einem DAS-Plattenlaufwerk des Servers), sodass beim Ausfall eines der Server (z. B. Ausfall eines DAS-Plattenlaufwerks eines Servers) keine Daten verloren gehen oder auch sie nur für kurze Zeit nicht verfügbar sind. Bei einer solchen redundanten Speicherung auf DAS-Laufwerken mehrerer Server wäre es kontraproduktiv, eine RAID-Technik auf DAS-Laufwerken auf (oder direkt mit) einem einzelnen Server zu verwenden, da der Verlust eines Servers an sich die Daten, die darauf (oder auf DAS-Laufwerken, die direkt damit verdrahtet sind) dupliziert sind, unzugänglich machen würde, wobei jedoch weiterhin die Kosten für den zusätzlichen Speicherplatz für die Datenduplizierung anfallen würden.
  • Einige Scale-out-Anwendungen wurden implementiert, um Gruppen von Geräten zu berücksichtigen, die aufgrund der Installation in einem einzigen Rechenzentrumsrack zusammen ausfallen können, wobei anerkannt wird, dass viele Server und ihre Festplatten in einem Rechenzentrumsrack installiert sein können, jeweils mit einer Reihe von Stromanschlüssen und Netzwerk-Switches, die an jedem Rack angebracht sind. Um die Möglichkeit zu vermeiden, den Zugriff auf Daten aufgrund des Ausfalls der Stromversorgung oder der Netzwerkverbindungen eines Racks zu verlieren, implementieren einige Scale-out-Anwendungen (z. B. Hadoop) eine Datenplatzierungsrichtlinie, um jedes Datenelement (jeden Block) auf Servern in verschiedenen Racks zu platzieren, um so sicherzustellen, dass jedes Element auf mehr als einem Rack gespeichert ist. Solche Verfahren erkennen oder behandeln jedoch nicht das Problem, wie (jedem Server einer zusammensetzbaren Architektur) Laufwerke, die sich außerhalb des Servers befinden, in einer Weise (z. B. einer effizienten Weise) zugewiesen werden können, welche die allgemeinen Ausfallrisiken berücksichtigt, und die Datenplatzierungsrichtlinie dieser Verfahren kann viele gemeinsame Ausfallrisiken nicht berücksichtigen. Wenn beispielsweise mehrere Gerätegruppen einer zusammensetzbaren Architektur auf einem Rack vorhanden sind und jede der Gruppen ein anderes gemeinsames Ausfallrisiko teilt, können die herkömmlichen Verfahren solche verschiedenen gemeinsamen Ausfallrisiken nicht berücksichtigen. Als weiteres Beispiel gilt, dass selbst wenn die herkömmlichen Verfahren Kopien eines einzelnen Datenelements auf Servern in mehreren Racks platzieren - wenn alle diese Server Daten auf Laufwerken speichern, die ein gemeinsames Ausfallrisiko haben (z. B. Laufwerke, die alle in einem einzelnen JBOD enthalten sind), könnte ein Auftreten des gemeinsamen Ausfalls (z. B. eines Ausfalls des einzelnen JBOD einschließlich aller Laufwerke) die Daten unzugänglich machen.
  • Im Laufe der Zeit wechselten herkömmliche Rechenzentrumsumgebungen von DAS zu anderen Verbindungstypen (z. B. NAS und SAN), da die Unterbringung von Rechenelement und Speicherelement(en) in einem einzigen Gerät (gemäß DAS) Anpassungen erschwerte, als sich die relative Nachfrage nach Rechenelementen gegenüber Speicherelementen änderte. Die Verwendung von DAS-Speicher auf Servern in Scale-out-Anwendungen ermöglichte es, die Gesamtkosten des Rechenzentrums zu senken, und ermöglichte dem Rechenzentrum, eine höhere Leistung als herkömmliche Rechenzentrumsarchitekturen auf der Grundlage von NAS und SAN zu liefern, führte jedoch zu der gleichen Inflexibilität, die ursprünglich dazu führte, dass DAS in den herkömmlichen Rechenzentren weitgehend aufgegeben wurde.
  • Moderne Rechenzentren beginnen, ein neues Konzept einer „zusammensetzbaren Infrastruktur“ zu verwenden. In einer zusammensetzbaren Infrastruktur ist das Rechenelement in einem Server (Datenknoten) über einen Kommunikationsmechanismus mit dem Speicher (mindestens einem Plattenlaufwerk) verbunden. Der Kommunikationsmechanismus kann ein Netzwerk sein (z. B. ein Standarddatennetzwerk) oder er kann eine andere Kommunikationstechnologie implementieren (z. B. PCle, wobei „PCle“ für Peripheral Component Interconnect Express, einen seriellen Computer-Erweiterungsbusstandard, steht).
  • Typischerweise sind viele der Plattenlaufwerke (einer zusammensetzbaren Infrastruktur) in einer Box zusammengefasst, die als JBOD (Just a Bunch Of Disks) bezeichnet wird, sodass über den Kommunikationsmechanismus auf jedes Laufwerk zugegriffen werden kann. Das JBOD (oder die JBODs) kann bzw. können in demselben Rack wie der/die Server installiert sein, oder das JBOD (oder die JBODs) und der/die Server können in separaten Racks platziert werden. In gewisser Weise ähnelt diese Anordnung dem herkömmlichen SAN, um jedoch die Kosten zu senken und die Leistung zu verbessern, wird jedes Remote-Festplattenlaufwerk als Raw-Laufwerk angeboten, nicht als Teil eines Speicherarrays, das Funktionen wie RAID bereitstellen könnte. Da es, wie oben besprochen, in Scale-out-Anwendungsarchitekturen (in denen jeder Server mindestens ein DAS-Laufwerk beinhaltet) kontraproduktiv wäre, RAID auf DAS-Laufwerken innerhalb einer oder direkt mit einem einzelnen Server einer Scale-out-Anwendungsarchitektur verdrahtet zu implementieren, bietet das Fehlen von RAID-Funktionen im Datenverbindungsmechanismus (einer zusammensetzbaren Infrastruktur) (im Vergleich zu den Scale-out-Anwendungsarchitekturen) einen Kosten- und Leistungsvorteil ohne Nachteile.
  • Daher kann die Verwendung einer zusammensetzbaren Infrastruktur für Scale-out-Anwendungen die niedrigen Kosten und die hohe Leistung von DAS bereitstellen, während dessen Inflexibilität bei der Anpassung an sich ändernde Verhältnisse zwischen Speicher- und Rechengeräten vermieden wird. Herkömmliche Implementierungen zusammensetzbarer Infrastrukturen haben sich jedoch nicht mit der Frage befasst, wie der Verlust des Zugriffs auf Daten im Fall eines Ausfalls eines Geräts verhindert werden kann, während sichergestellt wird, dass Pools von zuweisbaren Speicherressourcen ausreichend groß sind. Damit die Ressourcenzuweisung effektiv ist, ist es wünschenswert sicherzustellen, dass die Pools der zuzuweisenden Ressourcen so groß wie möglich sind. Andernfalls riskiert ein Rechenzentrum ein Problem, das als Ressourcensilos bekannt ist. Das heißt, durch Aufteilen von Ressourcen in Silos und durch Einschränken, welches Silo verwendet werden kann, kann oft eine Situation entstehen, in der genügend Ressourcen vorhanden sind, um eine gewünschte Zuweisung durchzuführen, dass sich die Ressourcen jedoch in Silos befinden, die nicht für die Operation verwendet werden können. Wenn die Zuweisungen von Laufwerken zu Servern jedoch uneingeschränkt sind, kann dies zu Situationen führen, in denen ein Ausfall eines Geräts zum Verlust eines Datenelements führen kann. Wenn beispielsweise die Zuweisungen von Laufwerken zu Servern uneingeschränkt sind und eine Anwendung (z. B. Hadoop) Kopien eines einzelnen Datenelements auf Servern in mehreren Racks platziert, und die zusammensetzbare Infrastruktur Laufwerke für alle diese Server von einem einzelnen JBOD bereitstellt, dann könnte der Ausfall dieser einen JBOD-Box die Daten unzugänglich machen (was z. B. gegen das Versprechen von Hadoop verstoßen würde, die Daten immer zugänglich zu halten). Die Erfinder haben erkannt, dass in zusammensetzbaren Infrastrukturen für Scale-out-Anwendungen strenge oder grobe Einschränkungen bei der Zuweisung von Plattenlaufwerken zu Servern unerwünscht sind (z. B. da sie zu dem Ressourcensiloproblem oder zu anderen Ineffizienzen führen können), einige dieser Einschränkungen jedoch erforderlich sind, um einen Datenverlust aufgrund eines Geräteausfalls (z. B. Ausfall eines einzelnen Geräts) zu verhindern.
  • Typische Ausführungsformen der vorliegenden Erfindung stellen Systeme bereit, die sicherstellen, dass die Haltbarkeits- und Verfügbarkeitsanforderungen von Scale-out-Anwendungen erfüllt werden können, während die Leistungs-, Kosten- und Flexibilitätsvorteile einer softwaredefinierten Speicherbereitstellung in einer zusammensetzbaren Infrastruktur beibehalten werden.
  • Kurze Beschreibung der Erfindung
  • Ein Aspekt bevorzugter Ausführungsformen der Erfindung ist die Organisation von Plattenlaufwerken in als Speichergruppen bezeichneten Sammlungen gemäß mindestens einem gekoppelten Ausfallmechanismus (z. B. Installation im gleichen JBOD und/oder im gleichen Rack), der sich auf die Laufwerke bezieht. Laufwerkszuweisungs- und Datenplatzierungsentscheidungen können dann von der Zugehörigkeit jedes relevanten Laufwerks in einer der Speichergruppen geleitet (z. B. in Übereinstimmung damit getroffen) werden. Wenn zum Beispiel eine erste Teilmenge der Laufwerke einem ersten gekoppelten Ausfallrisiko unterliegt und eine zweite Teilmenge der Laufwerke einem zweiten gekoppelten Ausfallrisiko unterliegt, können die Laufwerke in einer ersten Speichergruppe (bestehend aus der oder beinhaltend die erste Laufwerksuntergruppe) und in einer zweiten Speichergruppe (bestehend aus der oder beinhaltend die zweite Laufwerksuntergruppe) organisiert sein, und die Laufwerke können Servern zugewiesen sein und es kann eine Datenplatzierungsrichtlinie implementiert sein, um sicherzustellen, dass ein Duplikat eines jeden Datenelements (das von einem Server auf einem Laufwerk in der ersten Speichergruppe gespeichert werden soll) vom Server an mindestens einen anderen Server (zur Speicherung durch den anderen Server in einem Laufwerk in der zweiten Speichergruppe) gesendet wird, um sicherzustellen, dass der Ausfall eines Laufwerks (bzw. eines JBOD aus Laufwerken) in der ersten Untergruppe den Zugriff auf kein Datenelement eliminieren kann. In einer bevorzugten Ausführungsform, die in einem großen Rechenzentrum mit vielen Speicherracks nützlich ist, besteht eine Speichergruppe aus allen Laufwerken und JBODs innerhalb eines physikalischen Racks. In einer anderen bevorzugten Ausführungsform, die in kleineren Rechenzentren nützlich ist, werden JBODs in jedem Speicherrack in zwei oder mehr Speichergruppen aufgeteilt. In anderen Ausführungsformen ist jedes JBOD oder sogar jedes Plattenlaufwerk als seine eigene Speichergruppe designiert. Es können Speichergruppen unterschiedlicher Größe designiert werden, um unterschiedliche Vorteile zu erzielen.
  • In einer Klasse von Ausführungsformen werden Laufwerke (in Speichergruppen organisiert) mit Servern in einem System (z. B. einem Rechenzentrum) verwendet, welches eine zusammensetzbare Infrastruktur hat. Jeder der Server ist so konfiguriert (z. B. programmiert), dass er mindestens eine Anwendung ausführt (z. B. eine Scale-out-Anwendung, die beispielsweise Hadoop oder eine andere Rack-bewusste Scale-out-Anwendung sein kann). Laufwerke werden mindestens einem der Server (z. B. gemäß einer Scale-out-Anwendung oder zum Bestimmen einer RAID-Gruppe gemäß einer Anwendung, in die eine RAID-Technik implementiert ist) gemäß der Zugehörigkeit von jedem der Laufwerke in den Speichergruppen zugewiesen (d. h. zugeteilt)(z. B. gehören für jeden der Server alle Laufwerke, die dem Server zugewiesen sind, zu einer einzelnen Speichergruppe pro Server). Typischerweise führen auch mindestens zwei der Server eine gemeinsame Anwendung aus (z. B. sind horizontal skalierte Anwendungen, die von den Servern ausgeführt werden, identische oder kompatible Anwendungen), die es jedem der Server ermöglicht, auf die ihm zugewiesenen Laufwerke zuzugreifen, jedoch nicht auf eines der Laufwerke, die ihm nicht zugewiesen wurden, und eine Datenplatzierungsrichtlinie der gemeinsamen Anwendung wird gemäß der Speichergruppenzugehörigkeit der den Servern zugewiesenen Laufwerke festgelegt (z. B. um sicherzustellen, dass jeder Datenblock oder jedes andere Datenelement, das gemäß der Anwendung gespeichert ist, redundant in mindestens zwei getrennten Speichergruppen gespeichert wird). Wenn die gemeinsame Anwendung beispielsweise eine Scale-out-Anwendung ist, kann die Datenplatzierungsrichtlinie erfordern, dass ein Duplikat eines Datenelements (das von einem ersten Server gespeichert werden soll) vom ersten Server an mindestens einen anderen Server (z. B. Speicherung durch den anderen Server) gesendet wird, wobei der andere Server ausgewählt wird, um sicherzustellen, dass das Datenelement redundant in mindestens zwei unterschiedlichen Speichergruppen gespeichert wird (z. B. um sicherzustellen, dass der Ausfall eines Laufwerks, JBOD oder Speicherracks den Zugriff auf ein beliebiges Datenelement nicht eliminiert).
  • In einigen Ausführungsformen werden Laufwerke (in Speichergruppen organisiert) mit Servern (und gegebenenfalls auch mindestens einem RAID-Controller extern zu jedem der Server und jedem der Laufwerke) in einem System (z. B. einem Rechenzentrum) verwendet, das eine zusammensetzbare Infrastruktur aufweist. Die Laufwerke befinden sich außerhalb der Server und können diesen zugewiesen werden. Mindestens einer der Server (oder mindestens einer der RAID-Controller) ist dazu konfiguriert, eine Anwendung auszuführen (z. B. eine Anwendung, die keine Scale-out-Anwendung ist), die es dem Server (oder RAID-Controller) ermöglicht, eine RAID-Technik zu implementieren, um Daten in einer RAID-Gruppe zu speichern, welche Laufwerke des Systems umfasst (z. B. um die Daten selbst zu speichern und/oder sie auf mindestens einem anderen Server zu platzieren, der sie speichert). Typischerweise werden dem Server (oder RAID-Controller, der mit dem Server interagiert) Plattenlaufwerke zugewiesen, die zu mindestens zwei Speichergruppen gehören, um sicherzustellen, dass jede RAID-Gruppe (z. B. RAID-1- oder RAID-10-Gruppe), die redundante Daten vom Server speichert, Laufwerke beinhaltet, die zu verschiedenen Speichergruppen gehören. Die Speichergruppen können bestimmt und die Laufwerke so zugewiesen werden, dass die Laufwerke jedes RAID-Satzes Laufwerke beinhalten, die keinen gemeinsamen Ausfallmechanismus haben (z. B. enthält die RAID-Gruppe Laufwerke unterschiedlicher JBODs und wo möglich unterschiedliche Speicherracks). In einigen solchen Ausführungsformen kann zum Implementieren der RAID-Technik ein Subsystem des Servers als RAID-Controller fungieren, und eine Anwendung, die auf dem Server ausgeführt wird, kann als RAID-Host fungieren. Der Server (oder RAID-Controller außerhalb des Servers) baut eine RAID-Gruppe auf, sodass Laufwerke unterschiedlicher Speichergruppen für jedes gespeicherte Datenelement Kopien des Datenelements speichern (z. B. sodass der Ausfall eines beliebigen JBOD, welches das Datenelement speichert, und dessen Laufwerke zu einer einzelnen Speichergruppe gehören, den Zugriff des Servers auf das Datenelement nicht verhindert). So ist beispielsweise in einer solchen Ausführungsform n der Replikationsfaktor für jedes zu speichernde Datenelement (z. B. n = 2 oder n = 3), die Laufwerke der RAID-Gruppe werden so bestimmt, dass nicht mehr als 1/n der Laufwerke zu einer einzelnen Speichergruppe gehören. Somit gehören die n Laufwerke der RAID-Gruppe, die Kopien desselben Datenelements enthalten sollen, zu unterschiedlichen Speichergruppen.
  • Einige Ausführungsformen der Erfindung sind Systeme (z. B. Rechenzentren) mit einer zusammensetzbaren Infrastruktur. Andere Ausführungsformen sind Vorrichtungen (z. B. Server), die zum Implementieren dieser Systeme nützlich sind. In einigen Ausführungsformen umfasst das System Server und Plattenlaufwerke, die mit einem Kommunikationsmechanismus (z. B. einem Netzwerk) gekoppelt sind, wobei die Laufwerke in Speichergruppen organisiert wurden (typischerweise so, dass mindestens eine der Speichergruppen aus jenen Laufwerken mit mindestens einem gekoppelten Ausfallmechanismus besteht bzw. diese beinhaltet), und keines der Plattenlaufwerke ist direkt in einem der Server enthalten. Typischerweise ist oder enthält jeder der Server ein Rechenelement, das dazu konfiguriert (z. B. programmiert) ist, eine Anwendung (z. B. eine Scale-out-Anwendung) auszuführen. Jedem der Server wird (z. B. durch eine Anwendung, die auf ihm ausgeführt wird) eine andere Laufwerkuntergruppe gemäß der Zugehörigkeit eines jeden der Laufwerke in den Speichergruppen zugewiesen. Typischerweise speichert auch jeder der Server beim Betrieb eines jeden der Server (z. B. gemäß einer Anwendung, die er ausführt) Daten auf den ihm zugewiesenen (d. h. zugeteilten) Laufwerken gemäß einer Datenplatzierungsrichtlinie (z. B. implementiert durch eine Anwendung, die auf jedem der Server ausgeführt wird), wobei die Datenplatzierungsrichtlinie in Übereinstimmung mit der Speichergruppenzugehörigkeit eines jeden Laufwerks festgelegt wurde, das jedem dieser Server zugewiesen ist (z. B. um sicherzustellen, dass jeder gespeicherte Datenblock oder ein anderes Datenelement, in mindestens zwei unterschiedlichen Speichergruppen gespeichert wird). Das System kann auch zusätzliche Plattenlaufwerke enthalten, die in keiner der Speichergruppen enthalten sind (z. B. kann mindestens einer der Server direkt ein Boot-Laufwerk enthalten, das zum Booten seines Betriebssystems verwendet wird, ein solches Boot-Laufwerk gehört jedoch nicht zu den Plattenlaufwerken, die in Speichergruppen organisiert wurden).
  • In einigen Ausführungsformen umfasst das System einen Administrator, der eine Administrationsanwendung ausführt, die einen Administrationsprozess implementiert, einschließlich durch Zuweisen von Laufwerken zu Servern des Systems gemäß der Zugehörigkeit in Speichergruppen und typischerweise auch durch Implementieren einer Datenplatzierungsrichtlinie für die Server, denen Laufwerke zugewiesen sind. Der Administrator ist typischerweise ein Server, der konfiguriert (z. B. programmiert) ist, um die Administrationsanwendung auszuführen und mit Anwendungen zu interagieren, die auf anderen Servern und/oder mindestens einem RAID-Controller des Systems ausgeführt werden (z. B. den anderen Servern Laufwerke zuzuweisen und/oder um die anderen Server so zu konfigurieren, dass sie gemäß einer Datenplatzierungsrichtlinie arbeiten, und/oder um den RAID-Controller zu konfigurieren).
  • In einigen Ausführungsformen greift ein Server (kein Administrator) in eine zusammensetzbare Infrastruktur ein, um die Zuweisung von Laufwerken zu mindestens einem anderen Server (z. B. unter Berücksichtigung eines bestimmten Anwendungsfalls für jeden anderen Server) gemäß der Zugehörigkeit der Laufwerke in Speichergruppen zu initiieren. In diesen Ausführungsformen kann/können der/die andere(n) Server Aufgaben implementieren, die ihm/ihnen von einem ersten Server zugewiesen wurden, einschließlich durch Vornehmen einer Zuweisung (und anschließender Freigabe) der Laufwerke (und Platzieren von Daten gemäß einer Datenplatzierungsrichtlinie zum Sicherstellen einer redundanten Speicherung von Daten in verschiedene Speichergruppen), z. B. als Antwort auf eine Anforderung von einem Software-Framework (z. B. einem Orchestrierungssystem zum Bereitstellen von Aufgaben auf einer Anzahl von Servern zur Ausführung, häufig für einen kurzen Zeitraum), das auf dem ersten Server ausgeführt wird. In einigen Ausführungsformen fordert der erste Server (kein Administrator) die Speicherung eines Datenelements durch einen RAID-Controller einer zusammensetzbaren Infrastruktur an, und der RAID-Controller arbeitet (als Reaktion auf die Anforderung), indem er eine RAID-Technik implementiert, um das Datenelement darin auf redundante Weise auf Laufwerken in verschiedenen Speichergruppen zu speichern.
  • In typischen Ausführungsformen können verschiedene Ausfalltoleranz- und Flexibilitätsniveaus bei der Laufwerkszuweisung (einschließlich des Laufwerksaustauschs) erreicht werden, indem die Zusammensetzung der Speichergruppe angepasst wird.
  • In einigen Ausführungsformen der Erfindung, wenn maximale Ressourcenzuweisungsflexibilität ein primäres Ziel für ein Rechenzentrum ist, und unter der Voraussetzung, dass ein Ausfall eines einzelnen Elements (bis zur Rackebene) kein Datenelement unzugänglich macht, werden alle Speicherracks im Rechenzentrum in zwei Speichergruppen unterteilt, mit ungefähr der gleichen Anzahl von Laufwerken und Speicherkapazität. Durch Zuweisen aller Laufwerke für jeden Server des Rechenzentrums aus nur einer Speichergruppe und Festlegen der Datenreplikations-(Platzierungs-)Richtlinie (z. B. Anpassen einer einstellbaren Datenreplikationsrichtlinie einer von den Servern ausgeführten Scale-out-Anwendung), um sicherzustellen, dass jedes Datenelement auf mindestens zwei Servern (in mindestens zwei Computerracks) unter Verwendung von mindestens zwei verschiedenen Speichergruppen repliziert wird (sodass sich das Datenelement in mindestens zwei Speichergruppen befindet), kann das Ziel einer maximalen Ressourcenzuweisungsflexibilität erreicht werden. Wenn ein Laufwerk ausfällt, kann sein Ersatz aus im Wesentlichen der Hälfte der Laufwerke im Rechenzentrum ausgewählt werden, ohne dass dies zu einem Verlust der Ausfalltoleranz führt (d. h. der Ersatz kann von jedem JBOD in der Speichergruppe kommen, welches die Hälfte des Rechenzentrums umfasst).
  • Wenn in einigen Ausführungsformen der Erfindung die Ausfalltoleranz ein primäres Ziel ist, d. h. der Ausfall eines einzelnen Elements (bis zur Rackebene) die Zugänglichkeit eines beliebigen Datenelements nicht um mehr als eine Kopie verringern sollte, lassen sich alle Speicherracks in einem Rechenzentrum in drei ungefähr gleich große Speichergruppen unterteilen, und jedes Datenelement kann in mindestens drei Speichergruppen platziert werden. Durch die Zuweisung von Laufwerken für jeden Server aus (einer beliebigen) Speichergruppe und die Anforderung von Datenkopien auf Servern in mindestens drei Computerracks kann der Ausfall von zwei beliebigen Laufwerken, Servern, JBOD oder Racks den Zugriff auf kein Datenelement verhindern. Wenn ein Laufwerk ausgetauscht werden muss, wäre etwa ein Drittel der Laufwerke im Rechenzentrum für einen Austausch geeignet, ohne dass die Fehlertoleranz beim Datenzugriff beeinträchtigt würde.
  • In einigen Ausführungsformen befinden sich alle einem Server zugewiesenen Laufwerke in derselben Speichergruppe. Dadurch wird sichergestellt, dass sich jedes vom Server gespeicherte Datenelement in der Speichergruppe befindet, unabhängig davon, welches Laufwerk vom Server zum Speichern der Daten ausgewählt wurde. Eine Datenplatzierungsrichtlinie einer Scale-out-Anwendung (die auf dem Server ausgeführt wird) wird vorzugsweise auch eingestellt, um sicherzustellen, dass alle Datenelemente von einem Server an mindestens einen anderen Server gesendet (auf diesem platziert) werden, sodass jedes Element zumindest in zwei unterschiedlichen Speichergruppen gespeichert wird.
  • In einigen Ausführungsformen, in denen eine Scale-out-Anwendung die Datenplatzierung (eines Datenelements durch einen Server) auf der Plattenlaufwerksebene steuern kann, können dem Server zugewiesene (und von ihm verwendete) Laufwerke zu mehreren Speichergruppen gehören. Wenn einem Server Laufwerke in unterschiedlichen Speichergruppen zugewiesen werden, wird vorzugsweise eine Datenplatzierungsrichtlinie einer Scale-out-Anwendung (die auf dem Server ausgeführt wird) eingestellt, um sicherzustellen, dass Kopien eines jeden einzelnen Datenelements auf die Speichergruppen verteilt werden (d. h. jedes Element wird in jeder von mindestens zwei Speichergruppen gespeichert), um sicherzustellen, dass kein einzelner Ausfall den Zugriff auf ein Element verhindern kann.
  • In einigen Ausführungsformen werden ein oder mehrere Adapter verwendet, um Laufwerke (die entweder in einem JBOD oder durch andere Mittel verbunden sind) mit einem Netzwerk zu koppeln, und Server sind ebenfalls mit dem Netzwerk gekoppelt. Die Laufwerke sind in Speichergruppen organisiert, sodass die Konnektivität der Adapter mit den Ausfalleigenschaften der Laufwerke kompatibel ist. Aspekte der Erfindung umfassen einen Adapter, ein Plattenlaufwerk (oder ein anderes Speichergerät), das in einen solchen Adapter integriert ist, ein JBOD (oder ein anderes Speichergerätesystem), das in einem solchen Adapter integriert ist, und einen Server (der zur Implementierung programmiert und/oder anderweitig für die Implementierung einer Ausführungsform des erfindungsgemäßen Verfahrens konfiguriert ist).
  • In einigen Ausführungsformen ist die Erfindung ein System zum Konfigurieren eines Systems mit zusammensetzbarer Infrastruktur, sodass Plattenlaufwerke des Systems in Speichergruppen organisiert sind (typischerweise so, dass die Laufwerke in jeder Speichergruppe mindestens einen gekoppelten Ausfallmechanismus haben), einschließlich durch Zuweisen der Laufwerke zu Servern des Systems (und typischerweise auch durch das Festlegen einer Datenplatzierungsrichtlinie des Systems, sodass Datenelemente auf den Servern platziert werden) in Übereinstimmung mit der Speichergruppenzugehörigkeit der Laufwerke. Andere Ausführungsformen sind Systeme zum Speichern von Daten auf Laufwerken (einschließlich RAID-Verfahren zum Speichern von Daten in RAID-Arrays einschließlich Laufwerken) eines solchen Systems, Systeme zum Platzieren von Datenelementen auf Servern eines solchen Systems zum Speichern auf Laufwerken des Systems und Systeme zum Konfigurieren oder Steuern von Geräten (z. B. Server oder RAID-Controller) eines solchen Systems. Andere Ausführungsformen beinhalten Systeme, die konfiguriert sind, um ein beliebiges derartiges Verfahren auszuführen, und Vorrichtungen, die konfiguriert sind, um ein derartiges Verfahren zu implementieren oder in einem derartigen System verwendet zu werden. Aspekte der Erfindung sind Verfahren, die beim Betrieb einer beliebigen Ausführungsform des erfindungsgemäßen Systems, Adapters, Festplattenlaufwerks, JBOD, Servers oder einer anderen Vorrichtung ausgeführt werden.
  • Die Erfindung stellt ein ein System bereit, um sicherzustellen, dass die Anforderungen an Haltbarkeit und Verfügbarkeit (d. h. Fehlertoleranz) von Scale-out-Anwendungen (und Anwendungen, bei denen RAID-Techniken implementiert werden) erfüllt werden können, während die Leistungs-, Kosten- und Flexibilitätsvorteile von softwaredefinierter Bereitstellung in einer zusammensetzbaren Infrastruktur beibehalten werden. Die technischen Probleme, die gemäß typischen Ausführungsformen der Erfindung gelöst werden, umfassen die Implementierung von:
    • einer flexiblen (mit einstellbarem Verhältnis von Festplattenspeicher zu Rechenvorrichtung für jede Rechenvorrichtung) Scale-out-Architektur mit Fehlertoleranz, größerer Effizienz und damit reduzierten Kosten (d. h. durch Reduzierung oder Eliminierung von „Ressourcensilo“-Fällen, in denen verfügbarer Speicher nicht zu einer der Rechenvorrichtungen (Server) aufgrund ineffizienter Einschränkungen bezüglich der Zuweisung zugewiesen wird) und hoher Leistung (indem sichergestellt wird, dass für jede Rechenvorrichtung ausreichend Speicherplatz vorhanden ist, um mit hoher Leistung zu arbeiten). Die Anforderungen an Haltbarkeit und Verfügbarkeit (d. h. Fehlertoleranz) von Scale-out-Anwendungen (und Anwendungen, bei denen RAID-Techniken implementiert werden) können mit reduzierten Kosten erfüllt werden, indem sie (unter Verwendung von Speichergruppen gemäß Ausführungsformen der Erfindung) in eine zusammensetzbare Infrastruktur implementiert werden, wodurch die Leistungs- und Flexibilitätsvorteile der softwaredefinierte Speicherbereitstellung in einer zusammensetzbaren Infrastruktur beibehalten werden; und
    • einer zusammensetzbaren Infrastruktur mit Fehlertoleranz, sowie größerer Effizienz und damit reduzierten Kosten (d. h. durch Reduzierung oder Eliminierung von „Ressourcensilo“-Fällen, in denen verfügbarer Speicher Servern aufgrund ineffizienter Beschränkungen bezüglich der Bereitstellung) nicht zugewiesen wird. Die Ausfalltoleranz und erhöhte Effizienz und die reduzierten Kostenvorteile werden durch Implementieren der zusammensetzbaren Infrastruktur unter Verwendung von Speichergruppen (gemäß Ausführungsformen der Erfindung) erreicht, wodurch die Flexibilität (anpassbares Verhältnis von Speicher- zu Rechenvorrichtung) und High-Performance-Vorteile von Software-definierter Speicherbereitstellung in einer zusammensetzbaren Infrastruktur beibehalten werden.
  • Figurenliste
    • 1 ist ein Blockdiagramm einer Ausführungsform des erfindungsgemäßen Systems mit einer zusammensetzbaren Infrastruktur.
    • 2 ist ein greifbares, computerlesbares Medium, das eine nichtvorübergehende Speicherung von Code zum Ausführen (z. B. Code, der zur Durchführung ausführbar ist) des Verfahrens oder von Schritten davon implementiert.
  • Ausführliche Beschreibungen von Ausführungsformen der Erfindung
  • Beispiele von Ausführungsformen des erfindungsgemäßen Systems mit zusammensetzbarer Infrastruktur werden unter Bezugnahme auf 1 beschrieben.
  • Das System von 1 (das ein Rechenzentrum ist) hat eine zusammensetzbare Infrastruktur. Im System von 1 ist jeder der Server 1, 3 und 30 (und gegebenenfalls auch andere Server), Adapter 21, 23 und 25 (und gegebenenfalls auch andere Adapter), das Plattenlaufwerk 28 und die JBOD 27 und 29 (und gegebenenfalls auch andere Plattenlaufwerke und/oder JBOD, die z. B. im Speicherrack 12 beinhaltet sind) mit dem Netzwerk 20 gekoppelt. Das JBOD 22 ist über den Adapter 21 mit dem Netzwerk 20 gekoppelt, das Plattenlaufwerk 24 ist über den Adapter 23 mit dem Netzwerk 20 gekoppelt und das JBOD 26 ist über den Adapter 25 mit dem Netzwerk 20 gekoppelt. Jedes JBOD beinhaltet mehrere Festplattenlaufwerke. Einige Implementierungen des Systems beinhalten auch einen RAID-Controller 40, der mit dem Netzwerk 20 gekoppelt ist.
  • Jedes der Elemente 1, 3, 30 und 40 ist ein Server, der zum Ausführen von Anwendungssoftware programmiert ist. Genauer gesagt ist der Server 1 so konfiguriert, dass er das Anwendungssubsystem 4 beinhaltet (z. B. mit einer Softwareimplementierung programmiert ist) und daher manchmal beschrieben wird als dazu konfiguriert, die Anwendung 4 auszuführen. Server 3 ist so konfiguriert, dass er das Anwendungssubsystem 5 beinhaltet (z. B. mit einer Softwareimplementierung programmiert ist) und daher manchmal beschrieben wird als dazu konfiguriert, die Anwendung 5 auszuführen. Server 30 ist so konfiguriert, dass er das Anwendungssubsystem 31 beinhaltet (z. B. mit einer Softwareimplementierung programmiert ist) und daher manchmal beschrieben wird als dazu konfiguriert, die Anwendung 31 auszuführen. Der RAID-Controller 40 ist ein Server, der so konfiguriert ist, dass er das Anwendungssubsystem 41 beinhaltet (z. B. mit Softwareimplementierung programmiert ist) und manchmal beschrieben wird als dazu konfiguriert, die Anwendung 41 auszuführen. Jeder Server umfasst eine Serverschnittstelle (z. B. Serverschnittstelle 1A von Server 1, Serverschnittstelle 3A von Server 3 und Serverschnittstelle 30A von Server 30), die so konfiguriert ist, dass sie den Server mit dem Netzwerk 20 verbindet. Jeder Server kann auch ein Plattenlaufwerk beinhalten (z. B. ein Laufwerk, das nur zum Booten verwendet wird), das gemäß keiner Ausführungsform der Erfindung irgendeinem anderen Server des Systems von 1 zuweisbar (oder zuteilbar) ist.
  • Jeder Adapter (z. B. Adapter 21, 23 und 25) beinhaltet eine Adapterschnittstelle (z. B. ist der Adapter mit Softwareimplementierung programmiert oder anderweitig konfiguriert, um ein Adapterschnittstellen-Subsystem zu implementieren), die dazu konfiguriert ist, den Adapter mit dem Netzwerk 20 zu verbinden. In einigen Ausführungsformen kann mindestens eine (z. B. jede) Adapterschnittstelle und/oder mindestens eine (z. B. jede) Serverschnittstelle des Systems von 1 als ein physisches Gerät (d. h. ein Netzwerkschnittstellencontroller („NIC“)) oder ein softwaredefinierter Wrapper mehrerer NIC implementiert sein, und/oder ist ein Hardware- oder Softwareelement, das über eine eigene Internet Protocol(IP)-Adresse verfügt.
  • Typischerweise wird mindestens einer der Server des Systems von 1 (z. B. eines der Elemente 1, 3, 30 und 40 oder ein anderer Server (in 1 nicht dargestellt), der mit dem Netzwerk 20 gekoppelt ist) als Administrator implementiert (unten beschrieben), der ein Anwendungssubsystem hat, welches sich von dem der anderen Server des Systems, die keine Administratoren sind, unterscheidet.
  • Die Server 1 und 3 (und gegebenenfalls auch andere Server) sind in Rack 10 montiert (das ein „Computerrack“ ist, da es nur Server beinhaltet). Die Elemente 21, 22, 23, 24, 25 und 26 sind in Rack 11 montiert (das ein „Speicherrack“ ist, da es Plattenlaufwerke und Adapter für den Netzwerkzugriff auf die Laufwerke beinhaltet, aber keinen Server oder RAID-Controller). Die Speichergeräte 27, 28 und 29 und der Server 30 (und gegebenenfalls auch andere Speichergeräte und/oder Server) sind im Rack 13 montiert.
  • Das Netzwerk 20 ist ein Netzwerk (von einem Typ, der manchmal als „konvergiertes Netzwerk“ bezeichnet wird), das sowohl Speicherdatenverkehr als auch anderen (Nicht-Speicherdaten-)Verkehr übermittelt. In einer Ausführungsform ist das Netzwerk 20 ein Ethernet-basiertes Netzwerk, auf dem der gesamte Verkehr zwischen Servern gesendet wird (z. B. den Servern 1, 3 und 30 und dem Controller 40), die mit dem Netzwerk gekoppelt sind, und den mit dem Netzwerk gekoppelten Speichervorrichtungen. Die Elemente eines solchen Ethernet-basierten Netzwerks (z. B. Server 1, 3 und 30, Controller 40 und Adapter 21, 23 und 25) können so konfiguriert sein, dass sie gemäß iSCSI (Internet Small Computer System Interface)-Netzwerkprotokoll über das Netzwerk kommunizieren. In einigen Ausführungsformen koppelt das Netzwerk 20 die Server und Speichergeräte des Systems durch einen anderen Verbindungstyp, z. B. einen RoCE, Fibre Channel, Infiniband, PCle oder einen anderen Verbindungstyp. Alternativ wird das Netzwerk 20 durch einen anderen Kommunikationsmechanismus (z. B. die oben erwähnte PCIe-Technologie), der die Server und Speichergeräte des Systems miteinander koppelt, ersetzt. Einige der Speichervorrichtungen sind über Adapter (z. B. Adapter 21, 23 und 25) mit dem Element 20 gekoppelt, und einige der Speichervorrichtungen (z. B. JBOD27, Plattenlaufwerk 28 und JBOD29) sind ohne die Verwendung von Adaptern oder separat implementierten Adaptern mit dem Element 20 gekoppelt.
  • Die Plattenlaufwerke der zusammensetzbaren Infrastruktur (z. B. Laufwerke 22, 24, 25, 27, 28, 29 und die Laufwerke in Rack 12) sind in Speichergruppen organisiert und können Servern der zusammensetzbaren Infrastruktur (z. B. Server 1, 3 und 30) entsprechend der Laufwerkszugehörigkeit in den Speichergruppen zugewiesen werden. Jeder der Server, denen die Laufwerke zuweisbar sind (z. B. jeder der Server 1, 3 und 30), ist so programmiert, dass er eine Scale-out-Anwendung ausführt (z. B. ist jede der Anwendungen 4, 5 und 31 eine Scale-out-Anwendung), bei der es sich beispielsweise um Hadoop oder eine andere rackfähige Scale-out-Anwendung handeln kann. Gemäß der Scale-out-Anwendung kann jeder der Server Daten auf einem der ihm zugewiesenen Laufwerke speichern (jedoch nicht auf einem der Laufwerke, die ihm nicht zugewiesen sind). Wenn mindestens zwei solcher Server eine gemeinsame Anwendung ausführen (d. h. wenn die von den Servern ausgeführten Scale-out-Anwendungen identische oder kompatible Anwendungen sind), kann eine Datenplatzierungsrichtlinie der gemeinsamen Anwendung gemäß der Speichergruppenzugehörigkeit der Laufwerke, die den Servern zugewiesen sind, festgelegt werden (z. B. um sicherzustellen, dass jeder Datenblock oder jedes andere Datenelement, das gemäß der Anwendung gespeichert wird, auf redundante Weise in mindestens zwei unterschiedlichen Speichergruppen gespeichert wird). Somit kann jeder Server ein Datenelement (das vom Server gespeichert werden soll) auf mindestens einem anderen der Server (gemäß einer Datenplatzierungsrichtlinie der gemeinsamen Anwendung) zur Speicherung durch den anderen der Server auf einem Laufwerk platzieren, das dem jeweils anderen der Server zugeordnet ist (z. B. um sicherzustellen, dass das Datenelement auf redundante Weise in mindestens zwei unterschiedlichen Speichergruppen gespeichert wird).
  • Plattenlaufwerke der zusammensetzbaren Infrastruktur (z. B. die Laufwerke 22, 24, 25, 27, 28, 29 und die Laufwerke in Rack 12) sind durch RAID-Controller 40 (d. h. gemäß Anwendung 41, bei der eine RAID-Technik implementiert ist) an Server der zusammensetzbaren Infrastruktur (z. B. Server 1, 3 und 30) gemäß der Zugehörigkeit der Laufwerke in den Speichergruppen zuweisbar, d. h., dass der RAID-Controller 40 dazu konfiguriert ist, die Anwendung 41 auszuführen, um eine RAID-Gruppe der Laufwerke zu ermitteln (entsprechend der Laufwerkzugehörigkeit in den Speichergruppen) und um ein Datenelement von einem der Server auf den Laufwerken der RAID-Gruppe zu speichern (oder die Speicherung davon anderweitig zu veranlassen).
  • So gehören beispielsweise in einer Ausführungsform jeder der Server 1, 3 und 30, alle dem Server zugeordneten Laufwerke zu einer einzelnen Speichergruppe pro Server (d. h. die dem Server 1 zugewiesenen Laufwerke gehören zu einer ersten Speichergruppe, die dem Server 3 zugewiesenen Laufwerke gehören zu einer zweiten Speichergruppe und die dem Server 30 zugewiesenen Laufwerke gehören zu einer dritten Speichergruppe). Auf den Servern 1, 3 und 30 wird eine gemeinsame Anwendung ausgeführt (d. h. die Anwendungen 4, 5 und 31 sind identische oder kompatible Scale-out-Anwendungen), und eine Datenplatzierungsrichtlinie der gemeinsamen Anwendung wird gemäß der Speichergruppenzugehörigkeit der zu den Servern zugewiesenen Laufwerke festgelegt (um sicherzustellen, dass jeder Datenblock oder jedes andere Datenelement, das gemäß der Anwendung gespeichert wird, in redundanter Weise in mindestens zwei unterschiedlichen Speichergruppen gespeichert wird). Insbesondere kann die Datenplatzierungsrichtlinie erfordern, dass Server 1 ein Duplikat eines Datenelements (das von Server 1 auf einem Laufwerk gespeichert werden soll, welches Server 1 zugewiesen ist, der zur ersten Speichergruppe gehört) an jeden der Server 3 und 30 sendet (sodass das Datenelement von Server 3 auf einem Laufwerk gespeichert wird, das Server 3 zugewiesen ist, der zur zweiten Speichergruppe gehört, und auch von Server 30 auf einem Laufwerk gespeichert wird, das Server 30 zugewiesen ist, der zur dritten Speichergruppe gehört). Die Speichergruppen können bestimmt werden, um sicherzustellen, dass der Ausfall eines beliebigen Laufwerks, JBOD oder Speicherracks des Systems den Zugriff auf kein Datenelement eliminieren kann.
  • Typischerweise ist einer der Server der zusammensetzbaren Infrastruktur (z. B. Server 1, 3 oder 30) so konfiguriert (z. B. programmiert), dass er als Administrator fungiert. In typischen Ausführungsformen ist der Administrator so programmiert, dass er eine Anwendung (eine Administrationsanwendung) ausführt, die einen Administrationsprozess implementiert, einschließlich durch Zuweisen von Laufwerken zu Servern des Systems gemäß der Zugehörigkeit zu Speichergruppen und typischerweise auch durch Implementieren einer Datenplatzierungsrichtlinie für die Server, denen Laufwerke zugewiesen sind (gemäß der auf den anderen Servern eine gemeinsame Anwendung ausgeführt wird, z. B. um eine redundante Speicherung eines jeden Datenelements in unterschiedlichen Speichergruppen zu gewährleisten). Die auf dem Administrator ausgeführte Administrationsanwendung kann das Rechenzentrum konfigurieren (oder rekonfigurieren), einschließlich durch Zuweisung der Laufwerke zu Servern des Rechenzentrums in Übereinstimmung mit der Zugehörigkeit zu Speichergruppen (und gegebenenfalls auch durch Informieren eines RAID-Controllers des Rechenzentrums über die Zuweisung und Speichergruppeninformationen). Der Administrator ist typischerweise konfiguriert (z. B. programmiert), um die Administrationsanwendung auszuführen und mit Anwendungen zu interagieren, die auf anderen Servern und/oder auf mindestens einem RAID-Controller des Systems ausgeführt werden (z. B. um Laufwerke zu den anderen Servern zuzuweisen und/oder um die anderen Server für den Betrieb gemäß einer Datenplatzierungsrichtlinie zu konfigurieren und/oder um den RAID-Controller zu konfigurieren). Die Administrationsanwendung kann die Speichergruppen selbst ermitteln, wenn sie so konfiguriert wurde, dass sie Kenntnis von den Laufwerken hat, die für die Zuweisung zu Servern verfügbar sind, und von gekoppelten Ausfallrisiken in Bezug auf die Laufwerke, oder sie kann von einem Anwender/einer Anwenderin so konfiguriert werden, dass sie in Übereinstimmung mit vom Anwender/von der Anwenderin angegebenen Speichergruppen agiert. Die Administrationsanwendung hat typischerweise eine Benutzerschnittstelle, die es einem/einer menschlichen Anwenderin ermöglicht, Beschränkungen für die Speichergruppenbestimmung einzugeben. In einigen Fällen kann die Benutzerschnittstelle einem Anwender/einer Anwenderin die Angabe der Speichergruppen ermöglichen. Im Betrieb interagiert der Administrator mit einer Anwendung, die auf jedem der Server ausgeführt wird, z. B. um Laufwerke der zusammensetzbaren Infrastruktur dem jeweiligen Server gemäß der Speichergruppenzugehörigkeit zuzuweisen.
  • Beispielsweise können Anwendungen 4, 5 und 31 (von 1), die auf den Servern 1, 3 bzw. 30 ausgeführt werden, und Anwendungen, die auf anderen Servern im Rack 10 ausgeführt werden, Funktionen implementieren, die jenen ähneln, die von der herkömmlichen Hadoop-Anwendung implementiert werden, wobei Anwendung 4 (beispielsweise) als Administrationsanwendung implementiert ist (die Funktionen implementiert, die jenen von ResourceManager und NameNode von Hadoop ähneln). Anders als in der herkömmlichen Hadoop-Anwendung würde die Administrationsanwendung (4) Speichergruppen ermitteln (gemäß einer Ausführungsform der Erfindung) und mit den Anwendungen 5 und 31 (und jenen, die auf anderen Servern im Rack 10 ausgeführt werden) interagieren, um sicherzustellen, dass Laufwerke gemäß der Speichergruppenzugehörigkeit den Servern 3 und 30 (und anderen Servern in Rack 10) zugewiesen werden, und dass für die Server 3 und 30 (und andere Server in Rack 10) eine Datenplatzierungsrichtlinie gemäß der Speichergruppenzugehörigkeit der ihnen zugewiesenen Laufwerke implementiert ist. Die Datenplatzierungsrichtlinie kann erfordern, dass ein Datenblock (auf einem Server) auch auf zwei anderen Servern platziert wird, sodass die drei Server den Block auf Laufwerken von mindestens zwei (z. B. drei) unterschiedlichen Speichergruppen speichern. Der Administrator (Server 1) würde verfolgen, welche anderen Server des Systems den jeweiligen Block empfangen haben.
  • In einigen Ausführungsformen wird Administrationssoftware in zwei oder mehr getrennte, zusammenarbeitende Teile (z. B. Softwaresubsysteme) zerlegt, die auf einem einzelnen Gerät (z. B. Server) oder zwei oder mehr getrennten Geräten (z. B. zwei oder mehr Server) beinhaltet sind (und konfiguriert sind, darauf zu laufen). Somit kann der Administrator des erfindungsgemäßen Systems in einigen Ausführungsformen als zwei oder mehr getrennte Geräte implementiert sein (die jeweils ein unterschiedliches Subsystem der Administrationssoftware ausführen).
  • Die Server (von Ausführungsformen des erfindungsgemäßen Systems) außer dem Administrator können Anwendungen ausführen, die mit der Administrationsanwendung kompatibel sind. Oder der Administrator (der ein Server ist) und die anderen Server können alle dieselbe Anwendung ausführen, die auf dem Administrator ausgeführte Anwendung ist jedoch so konfiguriert (dass sie als Administrationsanwendung fungiert), dass sie über Privilegien verfügt (z. B. Fähigkeit und Berechtigung zum Zuweisen von Laufwerken in Übereinstimmung mit der Speichergruppenzugehörigkeit oder zum Festlegen einer Datenplatzierungsrichtlinie), die in der Anwendung, die auf den anderen Servern ausgeführt wird, nicht aktiviert sind.
  • Ein Administrator einer Ausführungsform des erfindungsgemäßen Systems kann mit einer Anwendung interagieren, die auf einem Server des Systems ausgeführt wird, um anzuordnen, dass der Server eine RAID-Funktion implementiert. Der Server selbst kann die RAID-Funktion ausführen. Oder der Server kann einen RAID-Controller (z. B. RAID-Controller 40) der zusammensetzbaren Infrastruktur verwenden, um die RAID-Funktion auszuführen. Typischerweise wurde auch der RAID-Controller (z. B. das Anwendungssubsystem 41 des RAID-Controllers 40) vom Administrator konfiguriert. Der Server kann den RAID-Controller verwenden, indem er (zu speichernde) Daten an den RAID-Controller sendet, sodass der RAID-Controller als Reaktion darauf ein RAID-Array aufbaut (einschließlich durch Auswählen von Laufwerken der zusammensetzbaren Infrastruktur gemäß der Speichergruppenzugehörigkeit) und die Daten darauf speichert.
  • In typischen Ausführungsformen, die RAID-Techniken implementieren, implementiert ein Server (z. B. einer der Server 1, 3 und 30 aus 1) intern eine RAID-Funktion, um Daten auf externen Laufwerken zu speichern, auf die er über die zusammensetzbare Infrastruktur zugreift (üblicherweise sind die Laufwerke vom Server als Raw-Laufwerke über die zusammensetzbare Infrastruktur zugänglich). Dies steht im Gegensatz zu herkömmlichen Systemen (ohne zusammensetzbare Infrastruktur), bei denen RAID-Funktionen am Standort des/der Festplattenlaufwerk(e) ausgeführt sind, entweder auf dem Server (für Direct Attached Storage) oder auf einem Speicher-Array-Controller (für NAS und SAN). In typischen Ausführungsformen kann ein Administrator einem Server (z. B. über das Netzwerk 20) eine Anweisung für eine auf dem Server auszuführende RAID-Funktion (und typischerweise auch das erforderliche Maß an Ausfalltoleranz) zusenden, woraufhin der Server die RAID-Funktion einschließlich durch Bestimmen eines RAID-Arrays (einschließlich durch Auswählen von Laufwerken der zusammensetzbaren Infrastruktur gemäß der Speichergruppenzugehörigkeit, z. B. um Einzelpunktausfälle auszuschließen) implementiert.
  • RAID wird häufig mit einer herkömmlichen Dateisystemstruktur (ähnlich wie Ordner auf einer PC-Festplatte) verwendet, sodass eine Anwendung, die auf einer Computervorrichtung (z. B. einem Server) ausgeführt wird, keine weiteren Platzierungsentscheidungen trifft, außer Daten auf ihren „lokalen“ Dateisystemen zu speichern, und eine RAID-Controller-Funktion (Software-Subsystem) der Rechenvorrichtung implementiert eine RAID-Technik, um die Daten zu speichern. Ein Aspekt der Erfindung ist die Ausführung einer RAID-Controllerfunktion (typischerweise in der Software, aber alternativ mit Hardwarebeschleunigung oder unter Verwendung einer vollständigen Hardwareimplementierung) auf einem Server oder einem RAID-Controller außerhalb eines Servers unter Verwendung von Remote-Laufwerken (in Speichergruppen organisiert) einer zusammensetzbaren Infrastruktur, um Daten (vom Server) redundant (entsprechend der Zugehörigkeit der Laufwerke zu den Speichergruppen) auf den Remote-Laufwerken zu speichern. Die Laufwerke sind aufgrund der zusammensetzbaren Infrastruktur verfügbar und zuweisbar.
  • In einigen Ausführungsformen werden Daten von einem Server (z. B. einem der Server 1, 3 oder 30 aus 1) redundant (unter Verwendung von Speichergruppeninformationen) auf entfernten Laufwerken unter Verwendung einer RAID-Technik gespeichert, wobei die RAID-Controller-Funktionen durch eine Vorrichtung (z. B. RAID-Controller 40 aus 1) außerhalb des Servers implementiert werden, wobei RAID-Controller, Laufwerke und Server über den Kommunikationsmechanismus (z. B. Netzwerk 20 aus 1) einer zusammensetzbaren Infrastruktur gekoppelt sind. Herkömmliche externe RAID-Controller haben eine vorab zugewiesene Gruppe von Laufwerken mit bekannten Ausfallbeziehungen. Im Gegensatz dazu identifiziert gemäß den in diesem Absatz beschriebenen Ausführungsformen der RAID-Controller Laufwerke aus einer zusammensetzbaren Infrastruktur (und kombiniert sie, um ein RAID-Array aufzubauen) unter Verwendung von Speichergruppeninformationen, um eine redundante RAID-Speicherung von Daten (vom Server) auf den Laufwerken weiter zu implementieren (z. B. um Ausfallunabhängigkeit zu gewährleisten). In diesen Ausführungsformen wird der RAID-Controller typischerweise (z. B. durch einen Administrator) über die Speichergruppen der Laufwerke informiert, um das RAID-Array aufzubauen. So kann der RAID-Controller beispielsweise adäquat programmiert sein (z. B. kann er einen Server-Agenten enthalten, der adäquat programmiert ist), um die bereitgestellten Speichergruppeninformationen dazu zu nutzen, das RAID-Array aufzubauen.
  • In typischen Ausführungsformen ist ein Anwendungssubsystem eines jeden Servers (z. B. Anwendungssubsystem 4, 5 bzw. 31 von Server 1, 3 oder 30) oder jeder Server einiger der Server eines Rechenzentrums (mit zusammensetzbarer Infrastruktur) dazu konfiguriert, über den Server Zugriffe auf Plattenlaufwerke einzuleiten, die mit einem Kommunikationsmechanismus (z. B. Netzwerk 20) des Rechenzentrums gekoppelt sind (z. B. Plattenlaufwerke, die dem Server gemäß einer Ausführungsform der Erfindung zugewiesen wurden), und ein Anwendungssubsystem mindestens eines RAID-Controllers (z. B. Anwendungssubsystem 41 des RAID-Controllers 40) des Rechenzentrums ist dazu konfiguriert, auf Plattenlaufwerke zuzugreifen, die mit einem Kommunikationsmechanismus (z. B. Netzwerk 20) des Datenzentrums gekoppelt sind, um Daten von einem Server des Rechenzentrums auf redundante Weise auf einem RAID-Laufwerksarray (entsprechend Speichergruppenzugehörigkeit der Laufwerke) zu speichern. Im typischen Betrieb hat ein Administrator des Systems das Anwendungssubsystem über die Speichergruppenzugehörigkeit der Laufwerke des Systems informiert.
  • Typischerweise wird die Entscheidung, eine zusammensetzbare Infrastruktur einzusetzen, um einem Server Laufwerke zuzuweisen, von einem Administrator (oder einer anderen Vorrichtung außerhalb des Servers) unter Berücksichtigung eines bestimmten Anwendungsfalls für den Server getroffen. So kann beispielsweise das Anwendungssubsystem 4 des Servers 1 eine Administrationsanwendung implementieren, gemäß der Server 1 (der als Administrator fungiert) in Übereinstimmung mit der Zugehörigkeit der Laufwerke in Speichergruppen Plattenlaufwerke anderen Servern des Systems von 1 zuweist (und typischerweise auch eine Datenplatzierungsrichtlinie bestimmt und/oder implementiert). Jedoch wird in einigen Ausführungsformen der Erfindung eine Entscheidung zum Zuweisen von Laufwerken zu einem oder mehreren Servern (und/oder für einen oder mehrere Server zum Implementieren einer RAID-Technik unter Verwendung zugewiesener Laufwerke) durch einen Server selbst implementiert, z. B. als Reaktion auf eine Anforderung durch ein Software-Framework (z. B. Kubernetes, ein Orchestrierungssystem zum Bereitstellen von Aufgaben auf einer Reihe von Servern zur Ausführung, häufig für einen kurzen Zeitraum). Um ihm zugewiesene Aufgaben (z. B. durch Kubernetes oder ähnliche Software) auszuführen, kann ein Server (z. B. einer der Server 1, 3 und 30 von 1) die Zuweisung und Freigabe von Plattenlaufwerken zu einem oder mehreren Servern (in Übereinstimmung mit der Speichergruppenzugehörigkeit) konsistent mit den Aufgabenzuweisungen verwalten.
  • In herkömmlicher Scale-out-Anwendungssoftware werden Server typischerweise mit DAS-Laufwerken modelliert, sodass die einzige gemeinsame Ausfalldomäne für das/die Laufwerk(e) in jedem einzelnen Server das Gehäuse des enthaltenden Servers ist. Die Ausfalldomäne für jeden Server (und jedes darin enthaltene DAS-Laufwerk) wird manchmal gemäß dem Rack verwaltet, in dem sich der Server befindet, sodass eine redundante Kopie von Daten in einem Rack in einem zweiten Rack platziert wird. Bei Verwendung in Servern in einer zusammensetzbaren Infrastruktur (mit zuweisbaren Festplattenlaufwerken außerhalb der Server) kann eine solche Scale-out-Anwendungssoftware gekoppelte Fehler einführen, die von der Datenplatzierungsrichtlinie der Scale-out-Anwendung nicht vorhergesehen werden. Durch Zuweisen aller Laufwerke für jeden dieser Server gemäß einer Ausführungsform der Erfindung (z. B. durch Zuweisen von Laufwerken aus nur einer einzigen Speichergruppe pro Server) können die gekoppelten Ausfalldomänen jedoch (gemäß einer Ausführungsform der Erfindung) eingeschränkt werden, sodass sie durch die standardmäßige Datenplatzierung der Anmeldungen abgedeckt sind.
  • So kann beispielsweise ein Rechenzentrum mit einer zusammensetzbaren Infrastruktur Racks („Computerrack“) voller Rechenserver und andere Racks („Speicherracks“) voller JBOD von Festplatten umfassen. Wenn allen Servern in jedem Computerrack Laufwerke nur von einem bestimmten Speicherrack zugewiesen werden, dann würde eine herkömmliche Datenplatzierungsrichtlinie (z. B. die herkömmliche Hadoop-Datenplatzierungsrichtlinie), die Daten so auf Servern platziert, dass die Daten auf mindestens zwei Speicherracks gespeichert werden, auch sicherstellen, dass sich mindestens eine Kopie der Daten außerhalb des einem Server zugeordneten Speicherracks befindet. Daher kann der Ausfall eines einzelnen Laufwerks, Servers, JBOD, Comkputerracks oder Speicherracks den Zugriff auf die Daten nicht verhindern. Die Verwendung von Speichergruppen gemäß Ausführungsformen der Erfindung kann diese Operationen vereinfachen, beispielsweise das Gruppieren aller JBOD (und damit Laufwerke) in jedem Speicherrack in eine eindeutige Speichergruppe pro Rack. Dann wird die Zuweisung von Laufwerken zu Servern vereinfacht, indem (gemäß einer Ausführungsform der Erfindung) nur Laufwerke von einem bestimmten Speicherrack (d. h. einer Speichergruppe) allen Servern im Computerrack zugewiesen werden. Ein Vorteil dieses Zuweisungsbeispiels gemäß der Erfindung besteht darin, dass die Datenplatzierungsmechanismen der Scale-out-Anwendung (z. B. Hadoop) nicht geändert werden müssen. Dieses Zuweisungsbeispiel schränkt jedoch die Flexibilität beim Zuweisen von Laufwerken zu Servern ein. Wenn beispielsweise in jedem Computerrack mehr oder weniger Laufwerke benötigt werden, als von einem Speicherrack bereitgestellt werden, könnten die verbleibenden Ressourcen verschwendet werden.
  • Einige Scale-Out-Anwendungen (z. B. Hadoop) ermöglichen einer Installation, den Datenplatzierungsalgorithmus zu modifizieren, um die Platzierung von Datenkopien einzuschränken, um andere Ausfallkopplungsmechanismen zu vermeiden, die nicht direkt von der Scale-Out-Anwendung modelliert werden. Viele solcher Funktionen wurden eingeführt, um mit Datenknoteninstanzen, die in virtuellen Maschinen implementiert sind, umzugehen, wobei mehrere solcher Datenknoteninstanzen auf einem einzigen physischen Rechenserver gehostet werden können. Unter Verwendung dieser Merkmale können der Datenplatzierung zusätzliche Beschränkungen auferlegt werden, sodass zwei Kopien eines einzelnen Datenelements nicht auf Mitgliedern innerhalb einer spezifizierten Gruppe von Datenknoten platziert werden können (z. B. zwei virtuelle Maschinen auf einem physischen Server). Diese Merkmale können mit Speichergruppen kombiniert (d. h. gemäß Ausführungsformen der Erfindung auf neue Weise verwendet) werden, um ein Mittel zum Verhindern gekoppelter Ausfälle in einer Scale-out-Anwendung bereitzustellen, während die Flexibilität der Server- und Laufwerkszuweisung weitgehend erhalten bleibt, um Ressourcenverschwendung zu vermeiden.
  • Gehen wir beispielsweise von einem großen Rechenzentrum mit vielen Speicherracks und Computerracks aus. Es sei ferner angenommen, dass Speichergruppen (gemäß einer Ausführungsform der Erfindung) so bestimmt werden, dass jede Speichergruppe eine ganzzahlige Anzahl ganzer Speicherracks ist (d. h. die „ i“-te Speichergruppe besteht aus Ni ganzen Speicherracks, wobei Ni eine Ganzzahl ist und der Index i über die Anzahl der Speichergruppen reicht), sodass viele Speichergruppen verfügbar sind. Dann kann durch Zuweisen aller Plattenlaufwerke für einen Server aus einer Speichergruppe und Modifizieren der Datenplatzierungsrichtlinie der Scale-out-Anwendung (gemäß einer Ausführungsform der Erfindung), um sicherzustellen, dass alle Datenelemente so an Server gesendet werden, dass alle Datenelemente in mindestens zwei unterschiedlichen Speichergruppen gespeichert werden, sichergestellt werden, dass der Ausfall eines Laufwerks, JBOD oder Speicherracks den Zugriff auf kein Datenelement verhindern kann. In Kombination mit der üblichen Richtlinie der Scale-out-Anwendung, bei der sichergestellt wird, dass Server in mindestens zwei Computerracks über eine Kopie verfügen, kann gewährleistet werden, dass der Ausfall eines Laufwerks, Servers, JBOD, Speicherracks oder Computerracks den Zugriff auf kein Datenelement verhindern kann. Außerdem können abhängig von der Wahl der Anzahl (Ni) von Speicherracks in jeder Speichergruppe die einem Server zugeordneten (zugewiesenen oder zugeteilten) Laufwerke aus einer gewünschten Anzahl (z. B. einer vorbestimmten großen Anzahl) an Speicherracks stammen, sodass das Problem der Verschwendung von Ressourcen im Wesentlichen eliminiert wird.
  • Für den Durchschnittsfachmann ist angesichts der Beschreibung hierin ersichtlich, dass das Kombinieren von Speicher- und Computervorrichtungen in einzelnen Racks (anstatt zu verhindern, dass ein Rack sowohl eine Speichervorrichtung als auch eine Computervorrichtung beinhaltet) die Anwendbarkeit und Wert der vorliegenden Erfindung nicht ändert. Angenommen, eine Scale-out-Anwendung wird bei einem kleinen Rechenproblem verwendet, und alle Speicherressourcen (einschließlich JBOD) und Rechenressourcen passen in ein Rack (z. B. Rack 11 in 1). Obgleich die vorliegende Erfindung keinen Schutz gegen den Ausfall eines einzigen Racks bieten kann (da es alle Ressourcen enthält), kann sie dennoch verwendet werden, um den Zugriff auf die Daten angesichts des Ausfalls einer einzelnen Komponente im Rack (sofern genügend Ressourcen vorhanden sind, wie z. B. JBOD und Server) sicherzustellen, indem die Gruppe der JBOD in zwei oder mehr Speichergruppen aufgeteilt wird. In dieser Umgebung würden alle Laufwerke für jeden Server aus einer Speichergruppe heraus zugewiesen werden. Dann kann der Administrator durch Konfigurieren der Datenplatzierungsrichtlinie der Scale-out-Anwendung (gemäß einer Ausführungsform der Erfindung), um sicherzustellen, dass jedes Datenelement auf mindestens zwei Servern unter Verwendung von mindestens zwei unterschiedlichen Speichergruppen repliziert wird, sicherstellen, dass kein Ausfall eines Servers, Laufwerks oder JBOD im Rack den Zugriff auf Datenelemente verhindern kann.
  • Da typische Scale-out-Anwendungen Datenplatzierungsentscheidungen nur basierend auf dem Server treffen, der die zu speichernden Daten beinhaltet, sind hierin Beispiele für die Verwendung von Speichergruppen beschrieben, in denen sich alle einem Server zugewiesenen Laufwerke in derselben Speichergruppe befinden. Dadurch wird sichergestellt, dass sich jedes vom Server gespeicherte Datenelement in der Speichergruppe befindet, unabhängig davon, welches Laufwerk vom Server zum Speichern der Daten ausgewählt wurde. In solchen Beispielen wird die Datenplatzierungsrichtlinie der Scale-out-Anwendung vorzugsweise so festgelegt, dass sichergestellt ist, dass alle Datenelemente von einem Server an mindestens einen anderen Server gesendet werden, sodass jedes Element in mindestens zwei unterschiedlichen Speichergruppen gespeichert wird. Wenn die Scale-out-Anwendung jedoch eine Möglichkeit bietet, die Datenplatzierung auf der Plattenlaufwerksebene zu steuern, gestatten einige Ausführungsformen der Erfindung, dass Laufwerke, die von einem Server verwendet werden, aus mehreren Speichergruppen stammen (d. h. zu diesen gehören). In diesen Ausführungsformen wird die Datenplatzierungsrichtlinie der Scale-out-Anwendung festgelegt (z. B. durch einen Administrator), um sicherzustellen, dass Kopien jedes einzelnen Datenelements auf die Speichergruppen verteilt werden (d. h. jedes Element wird in jeder von mindestens zwei Speichergruppen gespeichert), um sicherzustellen, dass kein einzelner Fehler den Zugriff auf ein Element verhindern kann. Somit befinden sich in einigen Ausführungsformen einige Laufwerke, die einem Server zugewiesen sind, in unterschiedlichen Speichergruppen.
  • In einigen bevorzugten Ausführungsformen werden ein oder mehrere Adapter (z. B. Adapter 21, 23 und 25 von 1) verwendet, um Laufwerke (entweder in einem JBOD oder durch andere Mittel verbunden) mit dem Kommunikationsmechanismus (z. B. Netzwerk) eines Systems mit einer zusammensetzbaren Infrastruktur (bei dem Server auch mit dem Kommunikationsmechanismus gekoppelt sind) zu koppeln, und die Laufwerke sind in Speichergruppen organisiert, sodass die Konnektivität der Adapter mit den Ausfalleigenschaften der Laufwerke kompatibel ist. In diesem Fall können die Adapter zur Aufrechterhaltung der Ausfallunabhängigkeit so verbunden werden, dass jeder Adapter Laufwerke aus nur einer Speichergruppe bedient (z. B. können Speichergruppen so festgelegt werden, dass Adapter 21 Laufwerke aus einer Speichergruppe bedient, Adapter 23 Laufwerke (einschließlich Laufwerk 24) aus einer zweiten Speichergruppe bedient, und Adapter 25 Laufwerke aus einer dritten Speichergruppe bedient). So kann beispielsweise jeder Adapter eine Verbindung zu einem oder mehreren JBOD herstellen, jedoch nur zu JBOD, deren Laufwerke sich in derselben Speichergruppe befinden. Selbst wenn nur einer dieser Adapter mit dem JBOD oder den JBOD verbunden ist, kann der Ausfall des Adapters (oder eines der JBOD) den Zugriff auf die dort gespeicherten Datenelemente nicht verhindern, vorausgesetzt, dass jedes Datenelement auf mindestens zwei Servern unter Verwendung von mindestens zwei verschiedenen Speichergruppen repliziert wird. Es wird jedoch bevorzugt, dass mehrere Adapter (die alle eine Gruppe von Laufwerken aus nur einer Speichergruppe bedienen) verwendet werden, um auf die Gruppe von Laufwerken zuzugreifen (wie im oben genannten US-Patent 9,794,112 beschrieben), um die Folgen von Adapterausfällen weiter zu verringern und einen ausgeglichenen Datenverkehr im Netzwerk zwischen den Adaptern zu ermöglichen.
  • In einigen Ausführungsformen, in denen ein oder mehrere Adapter verwendet werden, um mindestens ein Plattenlaufwerk in mindestens einer Speichervorrichtung (z. B. einem JBOD) mit dem Kommunikationsmechanismus (z. B. Netzwerk) eines Systems mit zusammensetzbarer Infrastruktur zu koppeln, ist mindestens einer der Adapter in mindestens einer solchen Speichervorrichtung integriert. So können beispielsweise ein JBOD (z. B. JBOD 22 aus 1) und mindestens ein Adapter (z. B. Adapter 21 aus 1 und gegebenenfalls auch ein weiterer Adapter, der dazu konfiguriert ist, mit dem Netzwerk 20 gekoppelt zu werden) als eine einzelne Vorrichtung implementiert werden (das JBOD ist in den/die Adapter integriert), die dazu konfiguriert ist, mit dem Kommunikationsmechanismus gekoppelt zu werden. Einer der Hauptvorteile typischer Ausführungsformen der vorliegenden Erfindung besteht darin, dass sie das Gruppieren von Ressourcen in größere Pools für die Zuweisung (z. B. zum Ersetzen) als in herkömmlichen Systemen ermöglichen. Angenommen beispielsweise, dass Laufwerke für einen Server immer von einem einzelnen JBOD zugewiesen werden und dass es möglich ist, eine Scale-out-Anwendung zu implementieren, um jedes Datenelement in mehreren JBODs zu speichern, um Datenverluste zu vermeiden, wenn ein JBOD ausfällt. Ohne die Flexibilität, Speichergruppen gemäß typischen Ausführungsformen der Erfindung zu definieren, würde eine solche Anordnung jedoch typischerweise zu einer Ineffizienz bei der Zuweisung von Ressourcen führen und/oder es schwierig machen, eine ausgefallene Ressource zu ersetzen. Angenommen, jedes JBOD enthält 100 Festplattenlaufwerke und jeder Server benötigt 13 Laufwerke. Dann könnten nur 91 der Laufwerke im JBOD verwendet werden (d. h. höchstens sieben Untergruppen mit 13 Laufwerken könnten sieben Servern zugewiesen werden), wenn alle Laufwerke von demselben JBOD stammen müssen. Die verbleibenden 9 Laufwerke würden im Wesentlichen verschwendet werden. Wenn jedoch (gemäß einer Ausführungsform der Erfindung) eine Speichergruppe bestimmt würde, die aus 13 JBODs bestünde, und Laufwerke für Server mit der Einschränkung zugewiesen würden, dass alle Laufwerke für jeden Server aus einer einzigen Speichergruppe stammen müssten, dann könnten alle 1300 Laufwerke in der Speichergruppe Servern zugewiesen werden.
  • Als weiteres Beispiel angenommen, dass Laufwerke für einen Server immer von einem einzigen JBOD zugewiesen werden, dass es möglich ist, eine Scale-out-Anwendung so einzurichten, dass jedes Datenelement in mehreren JBODs aufbewahrt wird, um Datenverluste zu vermeiden, wenn ein JBOD ausfällt, und dass jedes JBOD 100 Plattenlaufwerke und dass jeder Server 10 Laufwerke benötigt. In diesem Beispiel könnten alle Laufwerke in einem JBOD verwendet (d. h. Servern zugewiesen) werden, wenn jedoch ein Laufwerk (das einem Server zugewiesen ist) ausfiele, gäbe es kein Laufwerk im JBOD, das dem Server zum Ersetzen zugewiesen werden könnte. Wenn jedoch (gemäß einer Ausführungsform der Erfindung) eine Speichergruppe bestimmt würde, die aus zwei oder mehr der JBODs bestünde, und wenn Laufwerke für Server mit der Einschränkung zugewiesen würden, dass alle Laufwerke für jeden Server aus einer einzigen Speichergruppe stammen müssten, und falls dann ein (einem Server zugewiesenes) Laufwerk in der Speichergruppe ausfiele, stünde möglicherweise eine andere Vorrichtung in der Speichergruppe zur Verfügung, die dem Server zugewiesen werden könnte, um das ausgefallene Laufwerk zu ersetzen.
  • Wenn in einigen Ausführungsformen der Erfindung maximale Flexibilität bei der Ressourcenzuweisung das primäre Ziel ist, mit der Maßgabe, dass ein Ausfall eines beliebigen Elements (bis hoch zur Rack-Ebene) kein Datenelement unzugänglich macht, kann ein Administrator (z. B. einer der Server 1, 3 und 30 in 1, konfiguriert zum Ausführen einer Administrationsanwendung) alle Speicherracks in einem Rechenzentrum (z. B. das System von 1) in zwei Speichergruppen mit ungefähr derselben Anzahl an Laufwerken und Speicherkapazität zwischen ihnen aufteilen. Das Rechenzentrum erfüllt dieses Ziel durch Zuweisen aller Laufwerke für jeden Server aus nur einer Speichergruppe und Festlegen einer Datenplatzierungsrichtlinie (z. B. Konfigurieren einer konfigurierbaren Datenplatzierungsrichtlinie) einer horizontal skalierten Anwendung, die von den Servern ausgeführt wird, um sicherzustellen, dass jedes Datenelement mindestens auf zwei Servern (in mindestens zwei Computerracks) repliziert wird, die mindestens zwei verschiedene Speichergruppen verwenden (sodass sich das Datenelement in mindestens zwei Speichergruppen befindet). Wenn ein Laufwerk ausfällt, kann sein Ersatz aus im Wesentlichen der Hälfte der Laufwerke im Rechenzentrum ausgewählt werden, ohne dass dies zu einem Verlust der Ausfalltoleranz führt (d. h. der Ersatz kann von jedem JBOD in der Speichergruppe kommen, welches die Hälfte des Rechenzentrums umfasst).
  • Alternativ wird in einigen Ausführungsformen der Erfindung, wenn die Fehlertoleranzbeschränkung verschärft wird, sodass der Ausfall eines einzelnen Elements eines Rechenzentrums (bis zur Rack-Ebene) die Zugänglichkeit eines beliebigen Datenelements nicht um mehr als eine Kopie verringert, kann ein Administrator (z. B. einer der Server 1, 3 und 30 aus 1, der zum Ausführen einer Administrationsanwendung konfiguriert ist) alle Speicherracks im Rechenzentrum (z. B. das System aus 1) in drei etwa gleich große Speichergruppen unterteilen und verlangen, dass jedes Datenelement in mindestens drei Speichergruppen platziert wird. Durch die Zuweisung von Laufwerken für jeden Server aus (einer beliebigen) Speichergruppe und die Anforderung von Datenkopien auf Servern in mindestens drei Computerracks kann der Ausfall von zwei beliebigen Laufwerken, Servern, JBOD oder Racks den Zugriff auf kein Datenelement verhindern. Wenn ein Laufwerk ausgetauscht werden muss, wäre etwa ein Drittel der Laufwerke im Rechenzentrum für einen Austausch geeignet, ohne dass die Fehlertoleranz beim Datenzugriff beeinträchtigt würde.
  • In einigen Ausführungsformen umfasst eine Speichergruppe (oder jede von zwei oder mehr Speichergruppen) mehrere gekoppelte Ausfalldomänen. Wenn sich die Speichergruppe beispielsweise über mehrere Racks erstreckt (d. h. die Plattenlaufwerke davon beinhaltet), haben alle Platten in der Speichergruppe keinen einzelnen gekoppelten Ausfallmodus. Stattdessen umfasst die Gruppe mehrere unabhängige gekoppelte Ausfalldomänen von Laufwerken (die mehr als einem Typ oder einer Instanz eines gekoppelten Fehlers entsprechen können). Solche Ausführungsformen können einen größeren Pool von zuweisbaren Laufwerken (als in herkömmlichen Systemen bereitgestellt) bereitstellen, aus denen ausgewählt werden kann (wenn eine Laufwerkszuweisung implementiert wird), während sie eine Fehlertoleranz bereitstellen und die Administration des Rechenzentrums einfach halten. Somit beinhaltet eine Speichergruppe in einigen Ausführungsformen Laufwerke (bzw. sie besteht daraus), die alle einen gekoppelten Ausfallmodus (Mechanismus) teilen, und in anderen Ausführungsformen beinhaltet eine Speichergruppe Laufwerke, die einen gemeinsamen gekoppelten Ausfallmodus (Mechanismus) teilen und mindestens ein anderes Laufwerk, das den gemeinsam gekoppelten Ausfallmodus (Mechanismus) nicht teilt.
  • Für den Durchschnittsfachmann auf dem Gebiet wird es angesichts der Beschreibung hierin offensichtlich sein, dass durch die Anpassung der Zusammensetzung der Speichergruppen verschiedene Fehlertoleranz- sowie Zuweisungs- und Ersetzungsflexibilitätsniveaus erreicht werden können (wenn Ausführungsformen der Erfindung implementiert werden).
  • Als nächstes werden zusätzliche Aspekte einiger Ausführungsformen der Erfindung, in die RAID-Techniken implementiert sind, beschrieben.
  • Unter den herkömmlichen RAID-Techniken gibt es zwei, die ganze Laufwerke als Kopien anderer Laufwerke ausweisen, um den Zugriff auf die Daten zu vermeiden: RAID-1 (Spiegelung) und RAID-10 (Spiegelung und Striping). Wenn einzelne Laufwerke einer zusammengestzten Infrastruktur einem Server zugewiesen sind (d. h. die Laufwerke außerhalb des Servers eine RAID-Gruppe zum Speichern mindestens eines Datenelements des Servers umfassen), ohne Rücksicht auf gemeinsame Ausfälle, dann kann jedes der Laufwerke (z. B. beide Laufwerke) einer RAID-Gruppe von einem einzelnen JBOD stammen. Wenn das JBOD ausfallen würde, würde der Server den Zugriff auf die Daten verlieren, selbst wenn der Server weiter ausgeführt wird. Speichergruppen werden in einigen Ausführungsformen der Erfindung verwendet, um sicherzustellen, dass Plattenlaufwerke (einer zusammensetzbaren Infrastruktur) für jeden Teil (z. B. die Hälfte) einer RAID-1- oder RAID-10-Gruppe von unterschiedlichen JBODs stammen, und wenn möglich, von unterschiedlichen Speicherracks. Wenn n der Replikationsfaktor für die Speicherung von Daten (von einem Server) in Plattenlaufwerken einer RAID-Gruppe ist (wobei n typischerweise zwei oder manchmal drei ist), werden in einigen solchen Ausführungsformen Speichergruppen (der Laufwerke, die zum Implementieren der RAID-Gruppe verfügbar sind) bestimmt (vorzugsweise so, dass die Laufwerke in jeder Speichergruppe mindestens einen gekoppelten Ausfallmechanismus haben, dass z. B. die Laufwerke in einem JBOD enthalten sind), und Laufwerke der RAID-Gruppe werden so bestimmt, dass nicht mehr als 1/n der Laufwerke (der RAID-Gruppe zugewiesen) zu einer einzigen Speichergruppe gehören. Genauer gesagt werden Laufwerke, die ein RAID-Controller (der ein Software-, Firmware- und/oder Hardware-Subsystem eines Servers sein kann oder außerhalb des Servers sein kann) in eine RAID-Gruppe aufnimmt, durch den Controller (z. B. durch das Controller-Subsystem eines Servers) dem Server (auf dem sich die Daten befinden, die gespeichert werden sollen) gemäß der Zugehörigkeit eines jeden Laufwerks in den Speichergruppen zugewiesen, sodass nicht mehr als 1/n der Laufwerke (der RAID-Gruppe) zu einer einzelnen Speichergruppe gehören. Somit ist in der beschriebenen Ausführungsform die RAID-Gruppe so aufgebaut, dass, wenn Daten vom Server in der RAID-Gruppe gespeichert werden, die n (wiederum typischerweise zwei) Laufwerke, die Kopien jedes einzelnen Datenelements enthalten, zu unterschiedlichen Speichergruppen gehören. Dadurch kann sichergestellt werden, dass der Ausfall eines Laufwerks oder JBOD in einer einzelnen Speichergruppe den Server nicht daran hindert, auf die Daten zuzugreifen. Wenn die Speichergruppe alle Laufwerke und JBOD innerhalb eines Speicherracks (oder zwei oder mehr Speicherracks) beinhaltet, wird durch den Ausfall eines Laufwerks oder eines JBOD innerhalb des Racks (oder der Ausfall eines gesamten Speicherracks einer Speichergruppe, einschließlich mindestens zwei Speicherracks) der Zugriff auf die Daten in der RAID-Gruppe durch den Server nicht verhindert.
  • Als nächstes werden detaillierter operative Aspekte beschrieben, die einige Ausführungsformen der Erfindung betreffen.
  • In einigen Ausführungsformen der Erfindung können JBOD (und somit ihre darin enthaltenen Plattenlaufwerke) automatisch Speichergruppen zugewiesen werden, wenn sie zum ersten Mal in einem Rechenzentrum installiert werden. In einer bevorzugten Ausführungsform legt ein Anwender/eine Anwenderin (z. B. durch Interaktion mit einer Benutzerschnittstelle einer Administrationsanwendung, die auf einem Administrator des Datenzentrums ausgeführt wird) oder ein Administrator des Rechenzentrums (durch Betrieb einer Administrationsanwendung, die auf dem Administrator ausgeführt wird) eine Standardrichtlinie fest, um zu ermitteln, wie viele Speichergruppen pro Rack erstellt werden sollen (oder nach einem anderen Maß für die Nähe, wie z. B. Festplatten-Subnetz oder gemeinsamer erster Netzwerk-Switch). In einigen solchen Ausführungsformen werden die JBOD (Speichergruppen) auf eine Weise zugewiesen, bei der versucht wird, die Anzahl und Kapazität von Laufwerken in jeder erstellten Speichergruppe auszugleichen. In einigen Ausführungsformen kann der Rechenzentrumsarchitekt die Speichergruppen für Laufwerke und/oder JBOD manuell festlegen.
  • In einigen Ausführungsformen des erfindungsgemäßen Systems können Server und Laufwerke gemeinsam durch Verwendung eines auf Beschränkungen basierenden Auswahlmechanismus in einem softwaredefinierten Speichersystem zugewiesen werden (z. B. eines auf Beschränkungen basierenden Auswahlmechanismus, der durch eine Administrationsanwendung implementiert wird, die auf einem Administrator einer zusammensetzbaren Infrastruktur ausgeführt wird), indem einem oder mehreren Servern (mit einer angeforderten Rechen- und Speicherkapazität) Laufwerke zugewiesen werden, die über die zusammensetzbare Infrastruktur verbindbar sind, sodass alle Laufwerke die gewünschte Kapazität und den gewünschten Typ haben und dass alle aus einer einzigen Speichergruppe stammen. Ein solcher Mechanismus entlastet den Administrator von der Aufgabe (die mühsam sein kann), einzelne Server und Laufwerke zu identifizieren, die miteinander verbunden werden sollten. Außerdem kann der beschränkungsbasierte Auswahlmechanismus (hierin manchmal als Beschränkungslöser bezeichnet) implizite Erwägungen enthalten, wie z. B. die Unterschiede in den Verbindungsgeschwindigkeiten zwischen den verfügbaren Servern und Laufwerken, ohne dass der Administrator ausdrücklich verlangt, dass diese Elemente berücksichtigt werden.
  • Typische Ausführungsformen der Erfindung stellen einen einfachen Mechanismus bereit, um die Verwendung von Scale-out-Anwendungen in zusammensetzbaren Rechenzentrumsinfrastrukturen zu ermöglichen, sodass das Rechenzentrum die niedrigen Kosten und die hohen Leistungsattribute von DAS-Speicher und die Flexibilität der zusammensetzbaren Infrastruktur beibehalten kann, und stellen zudem sicher, dass der Ausfall eines einzelnen Elements im Rechenzentrum den Zugriff auf die Daten nicht verhindern kann.
  • Typische Ausführungsformen der Erfindung skalieren von sehr kleinen Systemen, bei denen alle Vorrichtungen in ein einziges Rack passen, bis hin zu Rechenzentren in voller Größe mit vielen Racks mit Speicher- und Computergeräten, alle mit einem einzigen Mechanismus, der sicherstellen kann, dass das verfügbare Ausfalltoleranzniveau erreicht wird.
  • Typische Ausführungsformen der Erfindung ermöglichen es einem Administrator, ein gewünschtes Maß an Ausfall-/Fehlertoleranz unter Verwendung einer einfachen hochrangigen Spezifikation bereitzustellen, während die Vorteile der Zuweisungsflexibilität einer zusammensetzbaren Infrastruktur beibehalten werden. Einmal eingerichtet, können typische Ausführungsformen eines Administrators den Ausfall-/Fehlertoleranzzustand einer gesamten Datenstruktur leicht beurteilen und analysieren. Darüber hinaus wird die Validierung der Ausfalltoleranz selbst eines sehr komplexen Satzes von Verbindungen in einer großen Scale-out-Anwendung, die in einem Rechenzentrum bereitgestellt wird, fast trivial. Im Gegensatz dazu kann ohne die Verwendung solcher Ausführungsformen die Freiheit der Ressourcenzuweisung, die durch zusammensetzbare Infrastrukturen bereitgestellt wird, zu einer kombinatorischen Explosion von gekoppelten Ausfallmöglichkeiten in einer großskalierten Anwendungsbereitstellung führen. So kann beispielsweise das Ersetzen eines Laufwerks durch ein anderes (auf eine Weise, die nicht einer Ausführungsform der Erfindung entspricht) zu unerwarteten gekoppelten Ausfällen führen, die schwer zu erkennen sind, insbesondere wenn Tausende von Servern und Zehntausende von Laufwerken an der Bereitstellung beteiligt sind.
  • Ausführungsformen der vorliegenden Erfindung, die in einer zusammensetzbaren Infrastruktur eingesetzt werden und die verbesserte Versionen herkömmlicher Anwendungen (z. B. zum Implementieren von RAID-Techniken) implementieren, können eine bessere Fehlertoleranz als die herkömmlichen Anwendungen (sowie andere Vorteile) bereitstellen. Mit einer adäquat konzipierten RAID-Gruppe (konstruiert gemäß der Speichergruppenzugehörigkeit) können jene, die verbesserte Versionen herkömmlicher RAID-Anwendungen (unter Verwendung von RAID-Techniken) implementieren, sicherstellen, dass die einzige gemeinsame Vorrichtung zwischen den beiden Seiten der Raid-Gruppe der Server selbst ist. Daher kann es trivial sein, zu validieren, dass kein Ausfall dieser Vorrichtung (z. B. eines beliebigen Festplattenlaufwerks oder JBOD oder Racks einschließlich eines beliebigen Festplattenlaufwerks der RAID-Gruppe) den Zugriff auf die Daten verhindern kann, da alle Vorrichtungen für jeden Datenspeicherpfad (mit Ausnahme des Servers selbst) separat und markant sind.
  • Typische Ausführungsformen der Erfindung können unter Verwendung von JBOD, Adaptern oder anderen spezifischen Ausrüstungsteilen implementiert werden, deren Verwendung ist jedoch nicht erforderlich. Wenn keine JBOD vorhanden sind, können einzelne Laufwerke in Speichergruppen platziert werden, die einem bestimmten häufig auftretenden Ausfallmodus entsprechen. So kann beispielsweise eine Speichergruppe eine gemeinsame Stromversorgung oder eine gemeinsame Netzwerkverbindung darstellen.
  • In einigen Ausführungsformen ist der erfindungsgemäße Server (z. B. ein Server, der als Administrator oder RAID-Controller konfiguriert ist) ein programmierbarer Allzweckprozessor, digitaler Signalprozessor oder Mikroprozessor, der mit Software oder Firmware programmiert und/oder anderweitig konfiguriert ist, um eine Vielzahl von Operationen an Daten durchzuführen. Dieser Allzweckprozessor kann ein Computersystem sein oder beinhalten, das eine Eingabevorrichtung, einen Speicher und ein Verarbeitungssubsystem enthält.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 9794112 [0002, 0053]

Claims (9)

  1. System mit einer zusammensetzbaren Infrastruktur, beinhaltend: ein Kommunikationssubsystem; Plattenlaufwerke, die mit dem Kommunikationssubsystem gekoppelt sind, wobei die Laufwerke gemäß mindestens einem gekoppelten Ausfallmechanismus, der sich auf die Laufwerke bezieht, in Speichergruppen organisiert sind, und wobei jede der Speichergruppen alle Laufwerke mindestens einer gekoppelten Ausfalldomäne umfasst, wobei keine zwei oder mehr der Speichergruppen einen gekoppelten Ausfallmechanismus gemeinsam nutzen; und einen Satz von Servern, wobei jeder der Server mit dem Kommunikationssubsystem gekoppelt ist und ihm gemäß der Speichergruppenzugehörigkeit der Laufwerke eine unterschiedliche Laufwerksuntergruppe zugewiesen wurde, und jeder der Server mindestens ein Rechensubsystem beinhaltet, das dazu konfiguriert ist, mindestens eine Anwendung auszuführen, die es jedem dieser Server ermöglicht, auf die ihm zugewiesenen Laufwerke zuzugreifen, jedoch nicht auf die Laufwerke, die nicht jedem der Server zugewiesen wurden.
  2. System nach Anspruch 1, wobei mindestens eine der Speichergruppen aus Laufwerken mit mindestens einem gekoppelten Ausfallmechanismus besteht oder diese beinhaltet, und wobei die Anwendung so konfiguriert ist, dass sie in Übereinstimmung mit einer Datenplatzierungsrichtlinie ausgeführt wird, die in Übereinstimmung mit der Speichergruppenzugehörigkeit der den Servern zugewiesenen Laufwerke festgelegt ist, um sicherzustellen, dass jedes Datenelement, das in Übereinstimmung mit der Anwendung gespeichert ist, in mindestens zwei der Speichergruppen auf redundante Weise gespeichert ist, wobei eine der beiden Speichergruppen aus Laufwerken besteht oder diese beinhaltet, die einen gekoppelten Ausfallmechanismus haben, und wobei eine andere der beiden Speichergruppen keines der Laufwerke mit dem gekoppelten Ausfallmechanismus beinhaltet.
  3. System nach Anspruch 1, wobei die Server der Servergruppe über eine ausreichende Anzahl an Racks verteilt sind, sodass ein Ausfall irgendeines der Racks zu einem effektiven Verlust von nicht mehr als einer vorbestimmten Anzahl oder einem Bruchteil der Server führen würde.
  4. System nach Anspruch 3, wobei die Servergruppe s Server ist oder beinhaltet, die über mindestens n Racks verteilt sind, wobei s und n ganze Zahlen sind, wobei nicht mehr als floor(s/n) der Server in einem einzigen Rack sind, und wobei floor(s/n) die größte Ganzzahl als kleiner als oder gleich s/n angibt.
  5. Server, der zur Verwendung in einem System mit einer zusammensetzbaren Infrastruktur konfiguriert ist, wobei das System Plattenlaufwerke, die mit einem Kommunikationssubsystem gekoppelt sind, und andere Server, die mit dem Kommunikationssubsystem gekoppelt sind, beinhaltet, wobei die Laufwerke gemäß mindestens einem gekoppelten Ausfallmechanismus in Speichergruppen organisiert sind, der sich auf die Laufwerke bezieht, und wobei jede der Speichergruppen alle Laufwerke von mindestens einer gekoppelten Ausfalldomäne umfasst, wobei keine zwei oder mehr der Speichergruppen diesen gekoppelten Ausfallmechanismus gemeinsam nutzen, der Server beinhaltend: eine Serverschnittstelle, die dazu konfiguriert ist, um den Server mit dem Kommunikationssubsystem zu koppeln; und mindestens ein Rechensubsystem, das gekoppelt und dazu konfiguriert ist, mindestens eine Anwendung auszuführen, wobei dem Server und jedem der anderen Server eine andere Untergruppe der Laufwerke gemäß der Speichergruppenzugehörigkeit eines jeden Laufwerks in der Untergruppe zugewiesen ist, und wobei die Anwendung dem Server den Zugriff auf die Laufwerke, die dem Server zugewiesen wurden, ermöglicht, nicht jedoch den Zugriff auf die Laufwerke, die dem Server nicht zugewiesen wurden.
  6. Server nach Anspruch 5, wobei mindestens eine der Speichergruppen aus Laufwerken mit mindestens einem gekoppelten Ausfallmechanismus besteht oder diese beinhaltet, und wobei die Anwendung so konfiguriert ist, dass sie in Übereinstimmung mit einer Datenplatzierungsrichtlinie, die in Übereinstimmung mit der Speichergruppenzugehörigkeit der Laufwerke festgelegt ist, ausgeführt wird, um sicherzustellen, dass, wenn der Server ein Datenelement in einem der ihm zugeordneten Laufwerke speichert, der Server das Datenelement gemäß der Datenplatzierungsrichtlinie auch auf mindestens einem anderen Server des Systems ablegt, um sicherzustellen, dass das Datenelement in mindestens zwei der Speichergruppen auf redundante Weise gespeichert wird, wobei eine der beiden Speichergruppen aus jenen Laufwerken mit einem gekoppelten Ausfallmechanismus besteht oder diese beinhaltet und eine andere der zwei Speichergruppen keines der Laufwerke mit diesem gekoppelten Ausfallmechanismus beinhaltet.
  7. Server nach Anspruch 5, wobei mindestens eine der Anwendungen so konfiguriert ist, dass sie mindestens einige der Laufwerke den anderen Servern zuweist, sodass jedem der anderen Server eine andere Laufwerkuntergruppe gemäß der Speichergruppenzugehörigkeit eines jeden Laufwerks in jeder Untergruppe der Laufwerke zugewiesen ist.
  8. Administrator, der zur Verwendung in einem System mit einer zusammensetzbaren Infrastruktur konfiguriert ist, wobei das System Plattenlaufwerke und Server beinhaltet, die mit einem Kommunikationssubsystem gekoppelt sind, und die Laufwerke den Servern so zuweisbar sind, dass jeder der Server auf jedes der Laufwerke, die ihm zugewiesen sind, zugreifen kann, nicht jedoch auf irgendeines der Laufwerke, das ihm nicht zugewiesen wurde, wobei der Administrator beinhaltet: eine Serverschnittstelle, die dazu konfiguriert ist, den Administrator mit dem Kommunikationssubsystem zu koppeln; und mindestens ein Datenverarbeitungssubsystem, gekoppelt und konfiguriert zum Ausführen mindestens einer Administrationsanwendung zum Zuweisen der Laufwerke zu den Servern, sodass die Laufwerke in Speichergruppen gemäß mindestens einem gekoppelten Ausfallmechanismus organisiert sind, der sich auf die Laufwerke bezieht, wobei jede der Speichergruppen alle Laufwerke von mindestens einer gekoppelten Ausfalldomäne umfasst, wobei keine zwei oder mehr der Speichergruppen einen gekoppelten Ausfallmechanismus gemeinsam nutzen, und wobei jedem der Server eine Laufwerkuntergruppe gemäß der Gruppenzugehörigkeit eines jeden Laufwerks in jeder Laufwerkuntergruppe zugewiesen ist.
  9. RAID-Controller, der zur Verwendung in einem System mit einer zusammensetzbaren Infrastruktur konfiguriert ist, wobei das System Plattenlaufwerke und Server beinhaltet, die mit einem Kommunikationssubsystem gekoppelt sind, wobei die Laufwerke gemäß mindestens einem gekoppelten Ausfallmechanismus, der sich auf die Laufwerke bezieht, in Speichergruppen organisiert sind, und jede der Speichergruppen alle Laufwerke von mindestens einer gekoppelten Fehlerdomäne umfasst, wobei keine zwei oder mehr der Speichergruppen einen gekoppelten Ausfallmechanismus gemeinsam nutzen, und wobei den Servern entsprechend unterschiedliche Laufwerkuntergruppen gemäß der Speichergruppenzugehörigkeit der Laufwerke zugewiesen wurden, sodass jeder der Server auf jedes der Laufwerke zugreifen kann, das ihm zugewiesen wurde, nicht jedoch auf eines der Laufwerke, das ihm nicht zugewiesen wurde, wobei der RAID-Controller beinhaltet: eine Serverschnittstelle, die dazu konfiguriert ist, um den RAID-Controller mit dem Kommunikationssubsystem zu koppeln; und mindestens ein Rechensubsystem, das gekoppelt und dazu konfiguriert ist, eine RAID-Funktion zu implementieren, einschließlich durch Bestimmen einer RAID-Laufwerksgruppe gemäß der Speichergruppenzugehörigkeit eines jeden Laufwerks innerhalb der RAID-Gruppe.
DE202019005816.8U 2018-06-28 2019-06-03 System zur Aufrechterhaltung der Fehlertoleranz einer Speichervorrichtung in einer zusammensetzbaren Infrastruktur Expired - Lifetime DE202019005816U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/021,189 2018-06-28
US16/021,189 US11436113B2 (en) 2018-06-28 2018-06-28 Method and system for maintaining storage device failure tolerance in a composable infrastructure

Publications (1)

Publication Number Publication Date
DE202019005816U1 true DE202019005816U1 (de) 2022-05-18

Family

ID=68985179

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202019005816.8U Expired - Lifetime DE202019005816U1 (de) 2018-06-28 2019-06-03 System zur Aufrechterhaltung der Fehlertoleranz einer Speichervorrichtung in einer zusammensetzbaren Infrastruktur

Country Status (8)

Country Link
US (2) US11436113B2 (de)
EP (1) EP3814871A4 (de)
JP (1) JP2022517890A (de)
KR (1) KR20210022121A (de)
CN (1) CN112703462A (de)
DE (1) DE202019005816U1 (de)
TW (1) TW202018462A (de)
WO (1) WO2020005468A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10540496B2 (en) * 2017-09-29 2020-01-21 International Business Machines Corporation Dynamic re-composition of patch groups using stream clustering
US11379246B2 (en) * 2019-07-24 2022-07-05 EMC IP Holding Company LLC Automatic configuration of multiple virtual storage processors
US11082505B2 (en) * 2019-07-29 2021-08-03 Cisco Technology, Inc. Dynamic discovery of available storage servers
US11416180B2 (en) * 2020-11-05 2022-08-16 International Business Machines Corporation Temporary data storage in data node of distributed file system
CN114721585A (zh) * 2021-01-06 2022-07-08 伊姆西Ip控股有限责任公司 存储管理方法、设备和计算机程序产品
US11632337B1 (en) * 2021-10-11 2023-04-18 Cisco Technology, Inc. Compute express link over ethernet in composable data centers

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9794112B2 (en) 2015-08-06 2017-10-17 Drivescale, Inc. Method and system for balancing storage data traffic in converged networks

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7389312B2 (en) 1997-04-28 2008-06-17 Emc Corporation Mirroring network data to establish virtual storage area network
US6438141B1 (en) 1998-04-20 2002-08-20 Sun Microsystems, Inc. Method and management of communications over media of finite bandwidth
US6556541B1 (en) 1999-01-11 2003-04-29 Hewlett-Packard Development Company, L.P. MAC address learning and propagation in load balancing switch protocols
US6868062B1 (en) 2000-03-28 2005-03-15 Intel Corporation Managing data traffic on multiple ports
US7392291B2 (en) * 2000-08-11 2008-06-24 Applied Micro Circuits Corporation Architecture for providing block-level storage access over a computer network
US20020156974A1 (en) * 2001-01-29 2002-10-24 Ulrich Thomas R. Redundant dynamically distributed file system
JP2003084923A (ja) * 2001-09-06 2003-03-20 Hitachi Ltd クラスタ型ディスクアレイ装置の構成方法
US6996741B1 (en) * 2001-11-15 2006-02-07 Xiotech Corporation System and method for redundant communication between redundant controllers
US7134040B2 (en) 2002-04-17 2006-11-07 International Business Machines Corporation Method, system, and program for selecting a path to a device to use when sending data requests to the device
US20050050187A1 (en) 2003-09-03 2005-03-03 International Business Machines Corporation Method and apparatus for support of bottleneck avoidance in an intelligent adapter
US20050216552A1 (en) * 2004-03-24 2005-09-29 Samuel Fineberg Communication-link-attached persistent memory system
US7760626B2 (en) 2004-03-31 2010-07-20 Intel Corporation Load balancing and failover
US7590775B2 (en) 2004-08-06 2009-09-15 Andrew Joseph Alexander Gildfind Method for empirically determining a qualified bandwidth of file storage for a shared filed system
US7876689B2 (en) 2005-06-29 2011-01-25 Hewlett-Packard Development Company, L.P. Method and apparatus for load balancing network interface adapters based on network information
US20070156879A1 (en) 2006-01-03 2007-07-05 Klein Steven E Considering remote end point performance to select a remote end point to use to transmit a task
US8635376B2 (en) 2006-02-22 2014-01-21 Emulex Design & Manufacturing Corporation Computer system input/output management
JP2007328611A (ja) 2006-06-08 2007-12-20 Hitachi Ltd ストレージ仮想化システム及び方法
JP2008083939A (ja) 2006-09-27 2008-04-10 Hitachi Ltd 計算機システム及び動的ポート割当方法
US9430297B2 (en) 2008-12-15 2016-08-30 International Business Machines Corporation Load balancing of adapters on a multi-adapter node
US8155518B2 (en) 2009-03-30 2012-04-10 Lsi Corporation Dynamic load balancing of fibre channel traffic
US9124423B2 (en) 2010-05-14 2015-09-01 International Business Machines Corporation Iterative data secret-sharing transformation
CN103444133A (zh) * 2010-09-16 2013-12-11 卡尔克塞达公司 性能和功率优化计算机系统架构和运用功率优化树结构互连的方法
US9652343B2 (en) * 2011-09-21 2017-05-16 Kevin Mark Klughart Raid hot spare system and method
CN105843557B (zh) * 2016-03-24 2019-03-08 天津书生云科技有限公司 冗余存储系统、冗余存储方法和冗余存储装置
US11474704B2 (en) 2012-05-18 2022-10-18 Atto Technology, Inc. Target path selection for storage controllers
US9613656B2 (en) * 2012-09-04 2017-04-04 Seagate Technology Llc Scalable storage protection
US9417997B1 (en) * 2012-09-28 2016-08-16 Emc Corporation Automated policy based scheduling and placement of storage resources
US9401862B2 (en) 2013-02-07 2016-07-26 Dell Products L.P. Optimized internet small computer system interface path
US9781041B2 (en) 2013-07-24 2017-10-03 Dell Products Lp Systems and methods for native network interface controller (NIC) teaming load balancing
US20150100826A1 (en) * 2013-10-03 2015-04-09 Microsoft Corporation Fault domains on modern hardware
US9641615B1 (en) 2014-03-31 2017-05-02 EMC IP Holding Company LLC Allocating RAID storage volumes across a distributed network of storage elements
US10209898B2 (en) 2014-04-03 2019-02-19 International Business Machines Corporation Estimation of performance utilization of a storage device
US9582355B2 (en) * 2014-07-09 2017-02-28 Qualcomm Incorporated Systems and methods for reliably storing data using liquid distributed storage
US10084648B2 (en) * 2015-03-12 2018-09-25 International Business Machines Corporation Creating new cloud resource instruction set architecture
US10466913B2 (en) 2015-04-29 2019-11-05 EMC IP Holding Company LLC Method and system for replicating and using grid level metadata in a storage system
US10291707B1 (en) * 2015-05-18 2019-05-14 Twitter, Inc. Systems and methods for balancing storage resources in a distributed database
US9851906B2 (en) 2015-06-16 2017-12-26 Vmware, Inc. Virtual machine data placement in a virtualized computing environment
CN104965677B (zh) * 2015-06-26 2018-04-13 北京百度网讯科技有限公司 存储系统
CN105068836A (zh) * 2015-08-06 2015-11-18 北京百度网讯科技有限公司 一种基于sas网络的远程可共享的启动系统
US10203992B2 (en) * 2016-05-12 2019-02-12 Futurewei Technologies, Inc. Worker node rebuild for parallel processing system
US10387273B2 (en) * 2016-09-16 2019-08-20 Oracle International Corporation Hierarchical fault tolerance in system storage
US10353602B2 (en) * 2016-11-30 2019-07-16 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Selection of fabric-attached storage drives on which to provision drive volumes for realizing logical volume on client computing device within storage area network
US20190068466A1 (en) * 2017-08-30 2019-02-28 Intel Corporation Technologies for auto-discovery of fault domains
US20190095296A1 (en) * 2017-09-27 2019-03-28 Hewlett Packard Enterprise Development Lp Reading or Reconstructing Requested Data from RAID Volume
US10452503B2 (en) * 2017-09-29 2019-10-22 Hewlett Packard Enterprise Development Lp Bidirectional replication
US10534629B1 (en) * 2017-10-31 2020-01-14 EMC IP Holding Company LLC Virtual data management services
US10587463B2 (en) * 2017-12-20 2020-03-10 Hewlett Packard Enterprise Development Lp Distributed lifecycle management for cloud platforms
US11520506B2 (en) * 2018-01-31 2022-12-06 Salesforce.Com, Inc. Techniques for implementing fault domain sets
US10860211B2 (en) * 2018-02-06 2020-12-08 Western Digital Technologies, Inc. Modularized multi-purpose storage system
US20190251279A1 (en) * 2018-02-13 2019-08-15 Pure Storage, Inc. Storage layer data security
US10802753B2 (en) * 2018-02-15 2020-10-13 Seagate Technology Llc Distributed compute array in a storage system
US10732995B2 (en) * 2018-02-27 2020-08-04 Portworx, Inc. Distributed job manager for stateful microservices
US10887416B2 (en) * 2018-05-07 2021-01-05 International Business Machines Corporation Efficient high availability and storage efficiency in a multi-site object storage environment
US10871922B2 (en) * 2018-05-22 2020-12-22 Pure Storage, Inc. Integrated storage management between storage systems and container orchestrators
US20190394088A1 (en) * 2018-06-25 2019-12-26 Hewlett Packard Enterprise Development Lp Network device configuration versioning

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9794112B2 (en) 2015-08-06 2017-10-17 Drivescale, Inc. Method and system for balancing storage data traffic in converged networks

Also Published As

Publication number Publication date
US20220413976A1 (en) 2022-12-29
TW202018462A (zh) 2020-05-16
US20200004650A1 (en) 2020-01-02
US11436113B2 (en) 2022-09-06
JP2022517890A (ja) 2022-03-11
EP3814871A4 (de) 2022-03-16
KR20210022121A (ko) 2021-03-02
WO2020005468A1 (en) 2020-01-02
CN112703462A (zh) 2021-04-23
EP3814871A1 (de) 2021-05-05

Similar Documents

Publication Publication Date Title
DE202019005816U1 (de) System zur Aufrechterhaltung der Fehlertoleranz einer Speichervorrichtung in einer zusammensetzbaren Infrastruktur
DE602004008849T2 (de) System und Methode zur Partitionierung und zum Management von Speichersubsystemen
DE10014448B4 (de) Speicherverwaltungssystem
DE602005002713T2 (de) Informationsverarbeitungssystem mit redundanten Pfaden und Zugriffsverfahren
DE112017000629T5 (de) Multi-Tenant-Arbeitsspeicherdienst für Architekturen mit Arbeitsspeicher-Pools
DE102020120553A1 (de) Virtuell persistente volumes für containerisierte anwendungen
DE112021003061T5 (de) Ausgleichen von resilienz und leistung durch selektive verwendung von verschlechterten schreibvorgängen und freier kapazität in speichersystemen
DE102012206283B4 (de) Verteilung des Datenflusses auf mehrere Pfade (Multi-Pathing) in einem Speicherbereichsnetzwerk
EP2880534B1 (de) Hochverfügbares rechnersystem, arbeitsverfahren und dessen verwendung
DE112009000411T5 (de) Verfahren und System zum Implementieren eines virtuellen Speicherpools in einer virtuellen Umgebung
DE112013006414T5 (de) Computersystem und Betriebsmittelmanagementverfahren
DE112013006549T5 (de) Computersystem und Datensteuerverfahren
DE112011105294T5 (de) Abhängigkeiten-basierte Auswirkungsanalyse unter Verwendung eines mehrdimensionalen Modells eines Software-Angebots
DE112020000305B4 (de) Verringern der wiederherstellungszeit in einer computerspeicherumgebung
DE112013006643T5 (de) Speichersystem und Steuerungsyerfahren für Speichersystem
DE102021108572A1 (de) Containerisierte anwendungsmanifeste und virtuelle persistente volumes
DE102021109227A1 (de) Weiterleitung von speicheroperationsanfragen an speichersysteme unter verwendung der zugrunde liegenden datenträgerkennungen
DE102014116808A1 (de) Realisieren einer dynamischen Virtualisierung eines Sriov-fähigen SAS-Adapters
DE112018005121T5 (de) Speichersystem unter verwendung von cloud-speicher als eine speicherbank
DE202016009092U1 (de) System zum Ausgleichen von Speicherdatenverkehr in konvergierten Netzwerken
DE102016219854A1 (de) Computersystem und Verfahren zum dynamischen Anpassen eines software-definierten Netzwerks
DE102021109502A1 (de) Ändern virtueller persistenter volumes auf der grundlage der analyse von leistungskennzahlen
DE112020005819T5 (de) Virtuelle einschübe in einem server
DE112018004415B4 (de) Optimierung von cloud-ressourcen bei operationen in mehrstufigem speicher auf richtliniengrundlage
DE112020003062T5 (de) Dynamische anpassung einer logischen speicherkapazität für speicherlaufwerke

Legal Events

Date Code Title Description
R207 Utility model specification
R156 Lapse of ip right after 3 years