-
TECHNISCHES GEBIET
-
Die vorliegende Offenbarung betrifft In-Speicher-Datenverarbeitung und insbesondere kontinuierliche Verfügbarkeit des missionskritischen Zustands, der in persistentem Speicher in einem Knoten eines Computerclusters gespeichert ist.
-
HINTERGRUND
-
Ein Computercluster ist eine Menge verbundener Computer, die zusammenarbeiten und als ein einziges System betrachtet werden können. Die Knoten (Server) eines Computerclusters (das auch als Datenzentrale bezeichnet werden kann) sind typischerweise mittels lokaler Netzwerke verbunden. Cloud-Hostingeinrichtungen können typischerweise große Datenzentralen mit mehreren Servern verwenden. In einem System, das In-Speicher-Datenverarbeitung verwendet, werden Daten direkt in einem persistenten Systemspeicher in jedem Knoten (Server) des Computerclusters gespeichert. Ein persistenter Speicher ist ein byteadressierbarer nichtflüchtiger Write-In-Place-Speicher. In-Speicher-Datenverarbeitung verringert Latenz durch Beseitigen der mit dem Bewegen von Daten zwischen einer Speicherungsvorrichtung und Systemspeicher im Knoten (Server) verbrachten Zeit.
-
Ein missionskritisches System ist ein System, das für das Überleben eines Unternehmens oder einer Organisation wesentlich ist. Verteilte missionskritische Anwendungen umfassen virtuelle Netzwerkfunktionen, Netzwerk-Grenzschutzsysteme, Java®/Web-Commerce-Maschinen, VSAN (virtuelle Speicherungsnetzwerke) und relationale In-Speicher-Datenbankverwaltungssysteme, zum Beispiel SAP® HANA®.
-
Figurenliste
-
Merkmale von Ausführungsformen des beanspruchten Gegenstands werden im Verlauf der folgenden ausführlichen Beschreibung und bei Bezugnahme auf die Zeichnungen, in denen gleiche Bezugszahlen gleiche Teile abbilden, ersichtlich. Es zeigen:
- 1 eine Blockdarstellung einer Ausführungsform eines Computerclusters, das mehrere Knoten (zum Beispiel Server) umfasst;
- 2 eine Blockdarstellung eines beliebigen der in 1 gezeigten Knoten, der eine energiesparende Netzwerkschnittstelle umfasst, um das Wiederherstellen von Daten aus persistentem Speicher durch einen anderen Knoten in dem Computercluster zu erlauben, wenn der Knoten zum Beispiel aufgrund eines Stromausfallzustands ausgefallen ist;
- 3 eine Blockdarstellung eines lokalen stabilen Speicherblocks in dem persistenten Speicher in dem Knoten, der in 2 gezeigt ist, der zugänglich ist, während das System während einer Wiederherstellungsoperation mit Strom versorgt wird;
- 4A ein Flussdiagramm von Operationen, die in einem Knoten während des Normalbetriebs ausgeführt werden;
- 4B ein Flussdiagramm von Operationen in einem Knoten während einer Fernübernahme des ausgefallenen Knotens durch einen anderen Knoten aufgrund eines Stromausfalls in dem ausgefallenen Knoten;
- 4C ein Flussdiagramm von Operationen in einem Knoten während der Wiederherstellung des ausgefallenen Knotens in einem isolierten Modus;
- 4D ein Flussdiagramm von Operationen in einem Knoten während des Neustarts und der Neuintegration des Knotens in das Cluster;
- 5 eine Blockdarstellung einer Ausführungsform eines Servers in einem Cloud-Datenverarbeitungssystem, das eine Fernschnittstelle, Fern-Wiederherstellungsfirmware und einen POE-Stromversorgungsadapter umfasst; und
- 6 ein Beispiel für eine Datenzentrale, die mehrere Knoten umfasst.
-
Obwohl die folgende ausführliche Beschreibung unter Bezugnahme auf beispielhafte Ausführungsformen des beanspruchten Gegenstands erfolgt, werden Fachleuten viele Alternativen, Modifikationen und Varianten dieser ersichtlich sein. Es ist deshalb beabsichtigt, dass der beanspruchte Gegenstand allgemein betrachtet und nur so definiert wird, wie es in den beigefügten Ansprüchen dargelegt wird.
-
BESCHREIBUNG VON AUSFÜHRUNGSFORMEN
-
Kritische Anwendungen wie Rechnungsstellung, Vergebührung Zugangsschutz und Einhaltung von Bestimmungen, die in einer Datenzentrale ausgeführt werden, erfordern ein schnelles Failover, wenn bei einem Knoten in der Datenzentrale ein Stromausfall auftritt. Jeder Knoten des Computerclusters kann einen Teil einer relationalen In-Speicher-Datenbank in einem persistenten Speicher speichern. Wenn ein Knoten zum Beispiel mit Terrabytespeicher sich jedoch in einer Situation eines Stromausfalls befindet, sind seine Speicherinhalte von einem entfernten Peer-Knoten im Computercluster aus nicht erreichbar. Bei einer Ausführungsform können Daten aus persistentem Speicher in einem Knoten, der einen Stromausfall aufweist, durch einen Peer-Knoten mittels einer energiesparenden Netzwerkschnittstelle wiederhergestellt werden.
-
Verschiedene Ausführungsformen und Aspekte der Erfindungen werden mit Bezug auf nachfolgend besprochene Einzelheiten beschrieben, und die beigefügten Zeichnungen stellen die verschiedenen Ausführungsformen dar. Die folgende Beschreibung und die Zeichnungen veranschaulichen die Erfindung und sind nicht als Beschränkung der Erfindung aufzufassen. Es werden zahlreiche spezifische Einzelheiten beschrieben, um ein umfassendes Verständnis verschiedener Ausführungsformen der vorliegenden Erfindung zu gewährleisten. In bestimmten Fällen werden jedoch wohlbekannte oder herkömmliche Einzelheiten nicht beschrieben, um eine prägnante Besprechung von Ausführungsformen der vorliegenden Erfindung bereitzustellen.
-
Erwähnungen von „einer Ausführungsform“ in der Patentschrift bedeuten, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder ein bestimmtes Charakteristikum, das bzw. die in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform der Erfindung enthalten sein kann. Das Erscheinen der Phrase „bei einer Ausführungsform“ an verschiedenen Stellen in der Patentschrift bezieht sich nicht unbedingt immer auf dieselbe Ausführungsform.
-
Verschiedene Ausführungsformen und Aspekte der Erfindungen werden mit Bezug auf nachfolgend besprochene Einzelheiten beschrieben, und die beigefügten Zeichnungen stellen die verschiedenen Ausführungsformen dar. Die folgende Beschreibung und die Zeichnungen veranschaulichen die Erfindung und sind nicht als Beschränkung der Erfindung aufzufassen. Es werden zahlreiche spezifische Einzelheiten beschrieben, um ein umfassendes Verständnis verschiedener Ausführungsformen der vorliegenden Erfindung zu gewährleisten. In bestimmten Fällen werden jedoch wohlbekannte oder herkömmliche Einzelheiten nicht beschrieben, um eine prägnante Besprechung von Ausführungsformen der vorliegenden Erfindung bereitzustellen.
-
Erwähnungen von „einer Ausführungsform“ in der Patentschrift bedeuten, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder ein bestimmtes Charakteristikum, das bzw. die in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform der Erfindung enthalten sein kann. Das Erscheinen der Phrase „bei einer Ausführungsform“ an verschiedenen Stellen in der Patentschrift bezieht sich nicht unbedingt immer auf dieselbe Ausführungsform.
-
1 ist eine Blockdarstellung einer Ausführungsform eines Computerclusters 100, das mehrere Knoten 101a-d (zum Beispiel Server) umfasst. Jeder Knoten 101a-d in dem Computercluster 100 umfasst eine Schnittstelle, um Zugang mittels einer energiesparenden Netzwerkschnittstelle durch mindestens einen anderen Knoten 101a-d in dem Computercluster 100 auf den persistenten Speicher in dem Knoten 101a-d zu erlauben. Wenn ein Knoten ausfällt, zum Beispiel Knoten 100a aufgrund eines Stromausfalls, kann ein Peer-Knoten 101b-d in dem Computercluster 100 mittels der energiesparenden Netzwerkschnittstelle auf Daten zugreifen, die in dem persistenten Speicher in dem ausgefallenen Knoten 101a gespeichert sind.
-
2 ist eine Blockdarstellung eines Knotens 101a in dem in 1 gezeigten Computercluster 100. Der Knoten 101a umfasst eine energiesparende Netzwerkschnittstelle, um Wiederherstellung von Daten aus persistentem Speicher in einem ausgefallenen Knoten 100a-d durch einen Peer-Knoten 101a-d in dem Computercluster 100 zu erlauben.
-
Mit Bezug auf 2 umfasst Knoten 101a einen Prozessor 204 mit einem integrierten Speichercontroller 206, persistenten Speicher auf einem NVDIMM (Non-Volatile Memory Dual In-Line Memory Modul) 208, einen NIC (Netzwerkschnittstellencontroller) 202, eine Stromversorgung 236 und einen Stromversorgungsadapter 210 (der auch als PoE-Stromversorgungsadapter (Power Over Ethernet) bezeichnet wird). Der integrierte Speichercontroller 206 umfasst eine Fernschnittstelle 212. Bei der gezeigten Ausführungsform gibt es zwei Prozessoren 204 und zwei NVDIMM 208.
-
Das NVDIMM 208 umfasst persistenten Speicher 222. Bei einer Ausführungsform ist der persistente Speicher 222 mindestens eine integrierte persistente Speicherschaltung auf dem NVDIMM 208. Bei der in 2 gezeigten Ausführungsform befindet sich der persistente Speicher 222 auf einem NVDIMM 208. Bei anderen Ausführungsformen kann der persistente Speicher 222 eine integrierte persistente Speicherschaltung sein, die direkt mit dem integrierten Speichercontroller 206 gekoppelt ist.
-
Ein NVM (nichtflüchtiger Speicher) ist ein Speicher, dessen Zustand selbst dann bestimmt ist, wenn die Stromversorgung der Vorrichtung unterbrochen wird. Ein persistenter Speicher ist ein nichtflüchtiger byteadressierbarer Write-In-Place-Speicher. Der persistente Speicher weist im Gegensatz zu Speicher auf Blockbasis, wie zum Beispiel NAND einen Zugriff für Schreiboperationen wie bei DRAM (dynamischem Direktzugriffsspeicher) auf (Write-In-Place). Bei einer Ausführungsform kann der persistente Speicher 222 eine byteadressierbarer nichtflüchtiger Write-in-Place-Speicher. Der persistente Speicher 128 kann eine byteadressierbare dreidimensionale Write-in-Place-Kreuzpunkt-Speichervorrichtung oder andere byteadressierbare Write-in-Place-NVM-Vorrichtungen umfassen, wie etwa Einzel- oder Mehrebenen-Phasenänderungsspeicher (PCM) oder Phasenänderungsspeicher mit einem Schalter (PCMS), NVM-Vorrichtungen, die Chalcogenid-Phasenänderungsmaterial (zum Beispiel Chalcogenidglas) verwenden, resistiver Speicher, darunter Metalloxidbasis-, Sauerstoffleerstellenbasis- und CB-RAM-Speicher (Conductive Bridge Random Access Memory), Nanodrahtspeicher, FeRAM (ferroelektrischen Direktzugriffsspeicher), MRAM (magnetoresistiven Direktzugriffsspeicher) mit Memristor-Technologie, STT-MRAM (Spin Transfer Torque), eine auf Spintronic-Magnetsperrschichtspeicher basierende Vorrichtung, eine auf MTJ (Magnetic Tunneling Junction) basierende Vorrichtung, eine Vorrichtung auf der Basis von DW (Domänenwand) und SOT (Spin Orbit Transfer), eine Speichervorrichtung auf Thyristorbasis, oder eine Kombination beliebiger von Obigen oder einen anderen geeigneten Speicher.
-
Der Knoten 101a umfasst eine reguläre Stromquelle 214, die Strom aus der Stromversorgung 236 während des Normalbetriebs den Prozessoren 204, der NIC 202 und den NVDIMM 208 bereitstellt. Während der Knoten 101a heruntergefahren ist und die Stromversorgung 236 keinen Strom liefert, kann Stromversorgung stattdessen über eine Reserve- oder Hilfsstromquelle 216 oder über die reguläre Stromquelle 214 bereitgestellt werden. Die Reserve- oder Hilfsstromquelle 216 weist während Normalbedingungen eine Stromentnahme von ungefähr null auf, während Strom durch die Stromversorgung 236 über die reguläre Stromquelle 214 bereitgestellt wird.
-
Bei einer Ausführungsform wird unter Verwendung des PoE-Standards (Power over Ethernet) (IEEE (Institute of Electrical and Electronics Engineers) 802.3af) Hilfsstromversorgung durch eine Ethernet-Schnittstelle in dem NIC 202 empfangen. Der PoE-Standard umfasst ein Verbindungs-/Trennprotokoll zum Anlegen und Trennen von Hilfsstromversorgung von dem Knoten 101a. Das Verbindungs-/Trennprotokoll detektiert, ob der Knoten 101a Hilfsstromversorgung benötigt, bestimmt die Menge erforderlicher Hilfsstromversorgung und wann Hilfsstromversorgung anzulegen und zu entfernen ist. Bei einer anderen Ausführungsform kann Hilfsstromversorgung über eine USB-Schnittstelle (Universal Serial Bus) bereitgestellt werden, statt über die Ethernet-Schnittstelle. Zum Beispiel ist USB-Stromabgabe 2.0 Typ A/B/C USB ein Stromversorgungsstandard, der maximal 100 Watt Stromversorgung bereitstellen kann.
-
Der integrierte Speichercontroller 206 umfasst Fernschnittstellenschaltkreise 212, trainiert die Speicherschnittstelle zum NVDIMM 208 für energiesparenden Betrieb um. Die Fernschnittstellenschalkreise 212 erhalten Stromversorgung von der Hilfsstromquelle 216. Die Fernschnittstellenschaltkreise 212 in dem integrierten Speichercontroller 206 sind über eine Fernzugangsschnittstelle 218 kommunikativ mit dem NIC 202 gekoppelt. Während den Fernschnittstellenschaltkreisen 212 in dem integrierten Speichercontroller 206 über die Hilfsstromquelle 216 Hilfsstromversorgung bereitgestellt wird, kann der integrierte Speichercontroller 206 in persistentem Speicher 222 in dem NVDIMM 208 gespeicherte kritische Informationen extrahieren. Die extrahierten kritischen Informationen können mittels des NIC 202 zu einem anderen Knoten 101b-d in dem Computercluster 100 gesendet werden.
-
Der NIC 202 umfasst ein Netzwerkport. Der Netzwerkport wird als Extraktionspunkt zum Zugreifen auf in dem persistenten Speicher 222 in dem Knoten 101a gespeicherte Daten für ein kurzes Zeitintervall nach Ausfall der Stromversorgung von der Stromversorgung 236 benutzt. Der NIC 202 umfasst Fern-Wiederherstellungsfirmware 220, die aktiviert wird, wenn es einen Wechsel von der regulären Stromquelle 214 zu der Hilfsstromquelle 216 gibt, um Stromversorgung für den Knoten 101a bereitzustellen. Die Fern-Wiederherstellungsfirmware 220 im NIC 202 implementiert das notwendige Protokoll (zum Beispiel RDMA (Remote Direct Memory Access)) zum Lesen (Zugreifen auf) Daten, die in dem persistenten Speicher 222 im NVDIMM 208 gespeichert sind, als Reaktion auf eine von mindestens einem Peer-Knoten empfangene Anforderung.
-
Die Fern-Wiederherstellungsfirmware 220 im NIC 202 umfasst die physische(n) Adresse(n) für den Ort kritischer Daten, die in dem persistenten Speicher 222 in dem NVDIMM 208 gespeichert sind. Die gespeicherten kritischen Daten können Transaktionslogs, Dateisystem-Änderungsjournals, Listen/Arrays/Bitmaps, die beschreiben, welche Seiten oder Blöcke in einem Speicherbereich zugeteilt sind, umfassen. Die kritischen Daten können im Allgemeinen beliebige Informationen umfassen, auf deren Basis es möglich ist, das Softwareinformationen findet oder wiederherstellt, die nur teilweise aktualisiert werden, wenn normale Ausführung aufgrund eines Stromausfallzustands unterbrochen wird.
-
Die einzige während des energiesparenden Betriebs (während Stromversorgung über die Hilfsstromquelle 216 angelegt wird) ausgeführte speicherbezogene Operation ist das Lesen der kritischen Daten, die in dem persistenten Speicher 222 in dem NVDIMM 208 gespeichert sind. Die Hilfsstromquelle stellt Stromversorgung nur für Leseoperationen bereit, weil es nicht notwendig ist, zusätzliche Stromversorgung zum Ausführen anderer Arten von Speicheroperationen bereitzustellen. Die anderen Arten von Speicheroperationen wären zum Beispiel eine Schreiboperation zum Beispiel zum Schreiben von Daten in den persistenten Speicher 222 in dem NVDIMM 208 oder andere Speicheroperationen zum Beispiel zum Zuteilen von Speicher, Freigeben von Speicher oder Ausführen beliebiger anderer prozessorgestützter Operationen in dem Knoten 101a, während die kritischen Daten aus dem persistenten Speicher 222 im NVDIMM 208 gelesen werden.
-
Wenn der Speicherinhalt des persistenten Speichers 222 in dem NVDIMM 208 verschlüsselt ist, führt die Fernschnittstelle 212 in dem integrierten Speichercontroller 206 Authentifizierung mit dem Knoten 101a (auch als Plattform oder Server bezeichnet) und potentiell anwendungsspezifischen kryptografischen Schlüsseln durch, um Zugriff auf den verschlüsselten Speicherinhalt zu erhalten. Kritische Daten werden in einen Teil des persistenten Speichers 222 persistiert, der in dem NVDIMM 208 zum Zeitpunkt des Verlusts der regulären Stromquelle 214 (zum Beispiel durch die Stromversorgung 236 bereitgestellte Stromversorgung) durch Firmware zugeteilt wird (der als kritische Region des persistenten Speichers) bezeichnet werden kann). Die kritischen Daten können durch eine persistente Stromausfall-Flash-Operation zum Schreiben der kritischen Daten in den persistenten Speicher 222 im NVDIMM 208 persistiert werden.
-
Typischerweise verwendet ein Cloud-Dienstanbieter Reservebatterien in dem Knoten 101a zur Bereitstellung von Stromversorgung während transienter Ausfälle der Stromversorgungsverteilung. Diese Reservebatterien können verwendet werden, um die Hilfsstromquelle 214 mit Strom zu versorgen. Bei einer Ausführungsform kann Stromversorgung aus den Reservebatterien in einer Parallelschaltung zu der Stromversorgung aus Hauptstromversorgungen in den verschiedenen Knoten 101a-d bereitgestellt werden. Es kann Stromversorgungs-Steuerschalter zwischen den Batterien und den Verbindungspunkten, an denen die Batterieschaltung sich an die Stromversorungsbusse/-leitungen von den Stromversorgungen anschließt, geben. Die Stromversorgungs-Steuerschalter können verwendet werden, um zu priorisieren, welche Knoten 101a-d Stromversorgung erhalten, wenn sich ein transienter Stromausfall auf mehrere Knoten auswirkt, und ein zentralisierter Scheduler (der typischerweise als Orchestrierer, Rack-Manager, Pod-Manager usw. bezeichnet wird) trifft Prioritätsentscheidungen darüber, welche Knoten 101a-d mit welchem Stromversorgungsniveau aktiviert zu halten sind.
-
Auf einigen Knoten 101a-d können kritische Datenaktualisierungen laufen, während andere Knoten 101a-d Aufgaben ausführen können, die später ohne Risiko von Datenverlust oder -verfälschung neu eingeleitet werden können und in diesem Fall können die Stromversorgungs-Steuerschalter verwendet werden, um Stromversorgung von den Reservebatterien zu der ersten Art von Knoten und nicht zu der zweiten Art von Knoten zu lenken. Wenn zum Beispiel auf einem Knoten 101a-d ein Orchestrierer läuft, ist er selbst ein Prioritätsknoten. Ähnlich ist, wenn ein Knoten Datenbanktransaktionen durchführt, er ein Prioritätsknoten, weil ihm eine gewisse Übergangsperiode gegeben werden muss, in der er ordnungsgemäß Ergebnisse in einem dauerhaften Log verzeichnen kann, woraus später die Datenbanktabellen aktualisiert werden können.
-
Die PoE-Hilfsstromquelle (Power over Ethernet) 216 ist nur während Wiederherstellung/Failover mit begrenzter Dauer funktionsfähig. Während des normalen Systembetriebs entnimmt die Hilfsstromquelle 216 keinen Strom und stört Zugriffe auf den persistenten Speicher 222 im NVDIMM 208 nicht
-
Ein PoD (Point of Delivery) ist ein Modul von Netzwerk-, Datenverarbeitungs-, Speicherungs- und Anwendungskomponenten, die zusammenarbeiten, um Vernetzungsdienste abzuliefern. Ein Orchestriererelement (wie etwa ein PoD-Manager) kann Systeme (zum Beispiel die Knoten 101a-d), in denen kritische Dienste laufen, verfolgen und diese Systeme (zum Beispiel die Knoten 101a-d) bezüglich Stromversorgungskontinuität priorisieren.
-
3 ist eine Blockdarstellung, die die Verwendung der kritischen Region in dem in 2 gezeigten Knoten 101a veranschaulicht. Der persistente Speicher 222 in dem NVDIMM 208 umfasst die kritische Region, die auch als lokaler stabiler Speicherungsblock 304 bezeichnet wird, die zugänglich ist, während einer Wiederherstellungsoperation nach einem Stromausfall der Hilfsstromquelle 214 in dem Knoten 101a Hilfsstromversorgung bereitgestellt wird. Während des regulären Betriebs können Replikation von Daten und Wiedergabe von Datenlogs und Journals in dem lokalen stabilen Steuerblock 304 (der auch als kritische Region bezeichnet wird) in dem persistenten Speicher 222 in dem NVDIMM 208 durch gewöhnliche, aber asynchrone Operationen durchgeführt werden, weil der lokale stabile Speicherungsblock 304 (auch als kritische Region bezeichnet) garantiert jederzeit erreichbar ist. Während des Normalbetriebs werden somit lokale Operationen mit Cache-Geschwindigkeiten (Nanosekunden) und nicht Netzwerkgeschwindigkeiten (Mikrosekunden) ausgeführt.
-
Der in dem lokalen stabilen Speicherungsblock 304 gespeicherte missionskritische Zustand ist anwendungsabhängig und kann wiederabspielbare Datenlogs, Journals, Differenz-Puffer, LSM (Log Structured Memory), Metadaten und/oder wiederabspielbare Operationslogs umfassen. Zusätzlich zu dem nichtflüchtigen Speicher 206, der den lokalen stabilen Speicherungsblock 304 umfasst, umfasst der Knoten 101a einen Speichercontroller 206 und einen flüchtigen Speicher 310. Der Speichercontroller 206 kann in einem von drei Modi arbeiten: lokal, isoliert und entfernt. Während des Normalbetriebs arbeitet der Speichercontroller 206 im Lokal-Modus. Der Speichercontroller 206 arbeitet nach einem Betriebssystem-Neubooten aufgrund von Stromausfall für einen kurzen Zeitraum im Isoliert-Modus. Der Speichercontroller 206 arbeitet kurz nach einem Stromausfall in dem Knoten 101a im Entfernt-Modus.
-
Der lokale stabile Speicherungsblock (LSSB) 304 ist ein Teil des persistenten Speichers 222, der für Aktualisierungen, die sowohl an dem lokalen Knoten 101a als auch entfernten Peer-Knoten 101b-d vorgenommen werden, zum Speichern von Replikaten oder anderweitigen Bereitstellen stabiler Speicherung verwendet wird (das heißt, eine oder mehrere Kopien von Daten werden in einem oder mehreren Knoten gespeichert). Mit der Zeit werden neue Daten in dem lokalen stabilen Speicherungsblock 304 gespeichert und ältere Daten werden in andere Speicherungsmedien (zum Beispiel ein Speicherungsvorrichtung wie etwa eine HDD (Festplatte) oder ein SSD (Solid-State Drive)) verlagert.
-
Der lokale stabile Speicherungsblock 304 (der auch als kritische Region bezeichnet wird) umfasst eine Lokal-Zustandspartition 312 und eine Fern-Zustandspartition 314. Die Lokal-Zustandspartition 312 speichert die Aktualisierungen, die in dem lokalen Knoten 101a an dem lokalen Zustand eines entfernten persistenten Speichers 222 in einem Peer-Knoten 101b-d, der sich in einem Stromausfallzustand befindet, vorgenommen werden. Die Fern-Zustandspartition 314 speichert ausgewählte Daten (zum Beispiel Log-Einträge), die von einem Peer-Knoten 101b-d empfangen werden. Die ursprünglichen ausgewählten Daten werden in einem Teil des persistenten Speichers 222 gespeichert. Kritische Daten, zum Beispiel von einem Peer-Knoten empfangene Log-Einträge und Aktualisierungen, die in einem Peer-Knoten vorgenommen werden, auf die ein anderer Peer-Knoten zugreifen kann, umfassen die Lokal-Zustandspartition 312 und die Fern-Zustandspartition 314.
-
Der Knoten 101a umfasst einen Software-Daemon (zum Beispiel einen „Pull-Daemon“ 302), der in flüchtigem Speicher 310 gespeichert ist. Ein Software-Daemon ist ein Computerprogramm, das als Hintergrundprozess in dem Knoten 101a läuft. Während normalen Bedingungen, während Stromversorgung durch die Stromversorgung 236 über die reguläre Stromquelle 214 bereitgestellt wird, läuft der Pull-Daemon 302 periodisch und kann eingeteilt werden, wenn es notwendig ist, um Daten aus einem entfernten lokalen stabilen Speicherungsblock in 304 in einem entfernten Knoten 101b-d abzurufen (zu „pullen“) und die abgerufenen Daten in einer Fern-Zustandspartition 314 des lokalen stabilen Speicherungsblocks 304 zu speichern.
-
Die Operation (der Prozess) des Wiederherstellens konfiguriert einen Port an einem Switch (nicht gezeigt) dafür, Stromversorgung für PoE bereitzustellen. Die Fern-Wiederherstellungsfirmware 220 wird auf dem NIC 202 aktiviert. Das bzw. die NVDIMM 208 und der bzw. die Speichercontroller 206 werden über den Stromversorgungsadapter 210 mit Strom versorgt, der eine Spannung in einen erforderlichen Spannungspegel für die Hilfsstromquelle 216 umsetzt. Der erforderliche Spannungspegel kann durch Kalibration und Konfiguration bestimmt werden. Bei einer Ausführungsform werden die Kalibration und Konfiguration vor der Wiederherstellungsoperation durchgeführt, und der erforderliche Spannungspegel wird in einer Tabelle gespeichert, die als Teil der in dem bzw. den NVDIMM 208 gespeicherten kritischen Daten verfügbar ist.
-
Der erforderliche Spannungspegel für den Knoten hängt von den Stromversorgungsanforderungen für Komponenten ab, die für die Wiederherstellungsoperation verwendet werden. Ein Knoten 101a-d kann Lüfter, NVDIMM, flüchtige Speicher-DIMM, Prozessoren, Speicherungsvorrichtungen (Halbleiterlaufwerke, Festplattenlaufwerke) usw. umfassen. Bei einer Ausführungsform kann in einem Knoten, der einen Stromausfall aufweist, die Hilfsstromversorgung verwendet werden, um einen von mehreren Prozessoren in dem Knoten Stromversorgung bereitzustellen, die anderen Prozessoren in dem Knoten sind in einem Schlafzustand konfiguriert. Nach einem kurzen Burst von Schreibvorgängen zum Ausräumen aller modifizierten Cachelinien aus Caches in den Prozessoren können die anderen Prozessoren in energiesparendste Schlaf-/suspendierte (angehaltene) Zustände versetzt werden. Die Stromversorgung für langsamen Lesezugriff wird dem NVDIMM bereitgestellt, der zum Speichern der kritischen Daten designiert ist. Anderen Komponenten, die nicht funktionsfähig sein müssen, um die in dem NVDIMM gespeicherten kritischen Daten zu lesen, wird keine Stromversorgung bereitgestellt. Zum Beispiel wird Lüftern keine Stromversorgung bereitgestellt, weil passive Kühlung ausreicht und die insgesamte Wärmeableitung passiv verwaltet werden kann, ohne dass Lüfter weiterlaufen müssen.
-
Die Fern-Wiederherstellungsfirmware 220 umfasst Anweisungen zum Durchführen von Speicherschnittstellen-Neutraining (zum Beispiel RAS (Row Address Strobe) - Cache-Schaltung (Column Address Strobe) für einen persistenten Speicher, der eine DDR-Speicherschnittstelle (Doppeldatenrate) gemäß JEDEC (Joint Electronic Device Engineering Council) aufweist) des/der Speichercontroller(s) 206 zum Betrieb mit durch den Stromversorgungsadapter 210 gelieferter reduzierter Stromversorgung.
-
Die NIC-Fern-Wiederherstellungsfirmware 220 entdeckt den/die Speichercontroller 206 und dient als Proxy/Transportmechanismus zur Authentifizierung bei dem entdeckten Speichercontroller bzw. den entdeckten Speichercontrollern 206. Die NIC-Fern-Wiederherstellungsfirmware 220 stellt anwendungsspezifische Authentifizierungsschlüssel zum Zugriff auf geschützte Bereiche des persistenten Speichers 222 in dem/den NVDIMM 208 bereit.
-
Ein Authentifizierungsprozess (zum Beispiel MKTME (Multi-Key Total Memory Encryption) von Intel®) kann verwendet werden, um eine UUID (Universally Unique Identifier) und einen öffentlichen Schlüssel zur Fernwiederherstellung zu erhalten. Eine UUID ist eine 128-Bit-Zahl, mit der Informationen in einem Computersystem identifiziert werden. In diesem Fall erfordert die Fernschnittstelle 212 in dem Speichercontroller 206 Berechtigungsnachweise zum Zugriff auf verschlüsselte Speicherteile des persistenten Speichers 222 in dem/den NVDIMM 208. Der öffentliche Schlüssel kann für eine bestimmte Anwendungsdomäne bereitgestellt werden. Der öffentliche Schlüssel und die UUID können in einem Teil (einer Partition) des NVDIMM 208 gespeichert werden, der sich an einer bekannten Adresse befindet, die im Speichercontroller 206 konfiguriert ist.
-
4A-4D beschreiben Operationen, die in beliebigen der Knoten 101a-d ausgeführt werden, die in 1 gezeigt sind. 4a ist ein Flussdiagramm von Operationen, die im Knoten 101a-d während des Normalbetriebs ausgeführt werden. 4B ist ein Flussdiagramm von Operationen in einem Knoten 101a-d während Fernübernahme eines ausgefallenen Knotens 101a-d durch einen anderen Knoten 101a-d aufgrund eines Stromausfalls in dem ausgefallenen Knoten 101a-d. 4C ist ein Flussdiagramm von Operationen in einem Knoten 101a-d während der Wiederherstellung des ausgefallenen Knotens in einem Isoliert-Modus. 4D ein Flussdiagramm von Operationen in einem Knoten 101a-d während des Neustarts und der Neuintegration des Knotens 101a-d im Cluster. Ein Beispiel für Failover in dem Cluster 100 wird für den Knoten 101a und einen entfernten Peer-Knoten 101b beschrieben.
-
Nunmehr mit Bezug auf 4A wird in Block 400 der Knoten 101a auf einen bekannten Zustand initialisiert, nachdem Stromversorgung an den Knoten 101a an gelegt wurde, oder während einer Neuboot-Operation in dem Knoten 101a.
-
In Block 402 wird der Speichercontroller 206 im Knoten 101a für Normalbetrieb zum Zugriff auf den persistenten Speicher 222 im NVDIMM 208 konfiguriert.
-
In Block 404 führt der Knoten 101a während des Normalbetriebs Anwendungen aus. Während des Ausführens von Anwendungen aktualisiert der Knoten 101a asynchron replizierte Daten (zum Beispiel eine Kopie von Daten, die von Peer-Knoten gesendet werden, die im Fern-Zustand 314 gespeichert sind) und den lokalen Zustand 312 („kritischen Zustand“), der im nichtflüchtigen Speicher 308 gespeichert ist, über das Netzwerk in einem oder mehreren anderen Knoten (einem entfernten Peer) 101b-d. Dies begrenzt die Menge an Daten und Zustand, die während einer Stromausfall-Übernahme des Knotens 101b durch den Knoten 101a oder einer Stromausfall-Übernahme des Knotens 101a durch den Knoten 101b in dem Cluster 100 abzugleichen sind.
-
In Block 406 tritt, wenn Knoten 101a eine Benachrichtigung empfängt, dass der entfernte Peer-Knoten 101b einen Herunterfahrzustand erfährt, der Knoten 101a in einem Übernahmemodus ein, während er gleichzeitig den Normalbetrieb fortsetzt, und die Verarbeitung wird mit Block 410 (4B) fortgesetzt. Andernfalls wird die Verarbeitung mit Block 408 fortgesetzt.
-
Im Block 408 wird, wenn es einen Stromausfall im Knoten 101a gibt, die Verarbeitung mit Block 418 (4C) fortgesetzt. Andernfalls wird die Verarbeitung mit Block 404 fortgesetzt und der Knoten 101a setzt den Normalbetrieb fort.
-
Nunmehr mit Bezug auf 4B befindet sich in Block 410 der Knoten 101a im Übernahmemodus für den ausgefallenen Knoten (entfernten Peer) 101b. Bei einer Ausführungsform repliziert ein Pull-Daemon 302 in den flüchtigen Speicher 310 im Knoten 101a in Knoten 101a einen lokalen Zustand 312, der in Knoten 101b gespeichert ist. Knoten 101a empfängt den lokalen Zustand 312, der in dem lokalen stabilen Speicherungsblock 304 in nichtflüchtigem Speicher 308 in dem ausgefallenen Knoten 101b gespeichert ist. Der abgerufene lokale Zustand 312 von dem ausgefallenen Knoten 101b wird in dem Fern-Zustand 314 in dem lokalen stabilen Speicherungsblock 304 in nichtflüchtigem Speicher 308 in dem Knoten 101a gespeichert.
-
In Block 412 beginnt der Knoten 101a, für den ausgefallenen Knoten 101b im Aktiv-Substitutionsmodus einzutreten. Knoten 101a übernimmt die Operationen für Peer-Knoten, die Knoten 101b ausführte.
-
In Block 414 kann, nachdem Knoten 101a das Eintreten für den ausgefallenen Knoten 101b stabilisiert und etwaige Zustandsaktualisierungen in replizierte Daten (stabiler Speicherung unterliegende Daten) in dem lokalen stabilen Speicherungsblock (LSSB) 304 aus dem ausgefallenen Knoten abgeglichen hat, Neustart des ausgefallenen Knotens 101b mit einer Anforderung an den ausgefallenen Knoten 101b, mit der Wiederherstellung voranzuschreiten, eingeleitet werden. Neustart wird über eine Neustartanforderung eingeleitet, die über den Netzwerkschnittstellencontroller 102 in Knoten 101a zu Knoten 101b gesendet wird. Knoten 101a ist weiter Ersatz (Stellvertreter) für Knoten 101b, bis Knoten 101b zum Normalbetrieb zurückgekehrt ist.
-
In Block 416 wird der Aktiv-Substitutionsmodus verlassen. Knoten 101b hat sich wiederhergestellt und benötigt nicht mehr aktive Substitution.
-
Nunmehr mit Bezug auf 4C führt in Block 418 als Reaktion auf den Stromausfall der Knoten 101b ein asynchrones DRAM-Auffrischen (ADR) aus, um Datenpuffer im flüchtigen Speicher 310 in nichtflüchtigen Speicher auszuräumen und den flüchtigen Speicher 310 in einen Selbstauffrischmodus zu versetzen. Nachdem die Datenpuffer ausgeräumt wurden, aktiviert Knoten 101b den PoE-Stromversorgungsadapter 110 durch Aktivieren der PoE-Stromquellen.
-
In Block 422 wird der Speichercontroller 206 in Knoten 101b durch Aktivierung der Fernschnittstelle 112 in dem Speichercontroller 106 in den Fernmodus versetzt.
-
In Block 424 tritt der Knoten 101b in den Fernzugriffsmodus ein. Knoten 101b sendet ein Signal zu dem Peer-Knoten 101a, das aktive Intervention anfordert, und suspendiert den Normalbetrieb. Der Stromversorgungsadapter 210 ist aktiv und der Speichercontroller 206 befindet sich im Fernmodus, wodurch Knoten 101a Daten abrufen kann, die in dem nichtflüchtigen Speicher 308 im Knoten 101b gespeichert sind.
-
Nunmehr mit Bezug auf 4D hat in Block 426 Knoten 101a Zustandsextraktion abgeschlossen und Neustart für Knoten 101b aktiviert. Knoten 101b verlässt den Fernzugriffsmodus und bootet neu in den Isoliert-Modus.
-
In Block 428 befindet sich Knoten 101b im Isoliert-Modus (nicht Mitglied des Clusters). Während er sich im Isoliert-Modus befindet, schließt Knoten 101b den Abgleich des lokalen Zustands und der Daten ab.
-
In Block 430 bootet Knoten 101b nach Wiederherstellungsabschluss neu und die Verarbeitung wird mit Block 402 fortgesetzt, um den Speichercontroller 206 im Normalmodus zu konfigurieren. Knoten 101b schließt sich als Peer-Knoten des Knotens 101a dem Cluster wieder an.
-
Stromversorgungsverlust in einem Knoten 101a-d kann auf nichttransiente oder transiente Bedingungen zurückzuführen sein. Ein Knoten kann sich automatisch von einem Stromausfall aufgrund einer transienten Bedingung erholen. Eine transiente Bedingung kann zum Beispiel auf hohe Auslastung der Stromversorgung in einer Datenzentrale zurückzuführen sein, während der die Stromversorgung in der Datenzentrale nicht die erforderliche Menge an Ampere bei der korrekten Spannung liefern kann, was abruptes vorübergehendes Nebenschließen der Stromversorgung erfordert, um den Überlastzustand anzugehen oder ihn zu korrigieren. Der Knoten nimmt den Betrieb wieder auf, nachdem sich der Knoten von der Überlastbedingung erholt. Ein anderes Beispiel für eine transiente Bedingung ist ein Abfall der Kühlwirksamkeit im Server, der aufgrund einer Zunahme der Außentemperatur (zum Beispiel Raumtemperatur) auftreten kann, was Verringern der Stromversorgungsauslastung in der Datenzentrale erfordert, indem einige Teile der Datenzentrale offline genommen werden.
-
Eine nichttransiente Bedingung kann auf einen Ausfall einer Komponente im Knoten zurückzuführen sein, der Auswechseln oder Reparieren der ausgefallenen Komponente erfordern kann. Ein Beispiel für eine nichttransiente Bedingung in einem Datenserver ist ein Ausfall in einer Stromversorgung.
-
Nichttransiente Bedingungen (Faktoren), zu denen ein Stromversorgungsausfall in einem Server gehören kann, können die Zeit zum Neubooten und Wiederherstellen und Neuintegrieren von Zustandsänderungen für Fortsetzung einer auf mehreren Knoten 101a-d im Computercluster arbeitenden verteilten Anwendung willkürlich verlängern. Selbst transiente Ausfälle können die Verfügbarkeit kompromittieren, wenn es aufgrund des Ausführens von Operationen wie etwa Dateisystemprüfungen und Datenstrukturaudits für Strukturen in nichtflüchtigem Speicher lange dauert, einen Knoten 101a-d wiederherzustellen. Bei einer Ausführungsform kann ein Peer-Knoten einen ausgefallenen Knoten übernehmen, etwaige Abgleichung des Zustands abschließen und Operationen können in dem Computercluster anständig fortgesetzt werden, nachdem der ausgefallene Knoten neu startet.
-
Bei Datenverarbeitung kann die in Verbindung mit 4a-d beschriebene Wiederherstellungsoperation ausgeführt werden, wenn ein Computerprogramm, wie etwa eine Softwareanwendung oder ein Betriebssystem, aufgrund von Stromausfall aufhört, zu funktionieren.
-
5 ist eine Blockdarstellung einer Ausführungsform eines Servers 500 in einem Cloud-Datenverarbeitungssystem, das eine Fernschnittstelle 212, Fern-Wiederherstellungsfirmware 120 und einen PoE-Stromversorgungsadapter 110 umfasst. Der Server 500 umfasst ein System-auf-Chip (SOC oder SoC) 504, das Prozessor, Grafik, Speicher und Steuerlogik für Eingabe/Ausgabe (E/A) in einer SoC-Kapselung kombiniert. Die E/A-Adapter 516 können einen PCIe-Adapter (Peripheral Component Interconnect Express) umfassen, der über den Bus 544 kommunikativ mit einem Netzwerkschnittstellencontroller 550 gekoppelt ist. Der Netzwerkschnittstellencontroller 550 kann eine Komprimierungsengine zum Komprimieren von aus dem Netzwerk 552 empfangenen Daten umfassen.
-
Das SoC 504 umfasst mindestens ein CPU-Modul (Zentralverarbeitungseinheit) 508, einen Speichercontroller 514 und ein GPU-Modul (Grafikprozessoreinheit) 510. Bei anderen Ausführungsformen kann sich der Speichercontroller 514 außerhalb des SoC 504 befinden. Das CPU-Modul 508 umfasst mindestens einen Prozessorkern 502 und einen L2-Cache (Ebene 2) 506.
-
Obwohl es nicht gezeigt ist, kann der Prozessorkern 502 intern einen oder mehrere Anweisungs-/Daten-Caches (L1-Cache), Ausführungseinheiten, Vorabrufpuffer, Anweisungswarteschlangen, Verzweigungsadressen-Berechnungseinheiten, Anweisungsdecoder, Gleitkommaeinheiten, Zurückzieheinheiten usw. umfassen. Das CPU-Modul 508 kann gemäß einer Ausführungsform einem Einzelkern- oder einem Mehrkern-Vielzweckprozessor entsprechen, wie etwa denen, die von der Intel® Corporation bereitgestellt werden. Bei einer Ausführungsform kann das SoC 504 eine selbstständige CPU sein, wie etwa ein skalierbarer Prozessor Intel® Xeon® SP, ein Datenzentralen- bzw. D-SoC Intel® Xeon® oder ein intelligentes NIC-Beschleunigerkartenformat.
-
Der Speichercontroller 514 kann über einen Speicherbus 530 mit einem persistenten Speichermodul 528, das mindestens eine integrierte persistente Speicherschaltung aufweist, und einem flüchtigen Speichermodul 526, das mindestens eine integrierte flüchtige Speicherschaltung aufweist, gekoppelt sein. Eine nichtflüchtige Speichervorrichtung (NVM) (integrierte Schaltung) ist ein Speicher, dessen Zustand selbst dann bestimmt ist, wenn die Stromversorgung der Vorrichtung unterbrochen wird.. Bei einer Ausführungsform kann die NVM-Vorrichtung eine blockadressierbare Speichervorrichtung umfassen, wie etwa NAND-Technologien, oder spezieller Mehrfach-Schwellenpegel-NAND-Flash-Speicher (zum Beispiel Einzelpegelzellen („SLC“), Mehrpegelzellen („MLC“), Quad-Pegelzellen („QLC“), Tri-Pegelzellen („TLC“) oder ein gewisser anderer NAND). Eine NVM-Vorrichtung kann auch eine byteadressierbare dreidimensionale Write-in-Place-Kreuzpunkt-Speichervorrichtung oder eine andere byteadressierbare Write-in-Place-NVM-Vorrichtung (auch als persistenter Speicher bezeichnet) umfassen, wie etwa Einzel- oder Mehrpegel-Phasenänderungsspeicher (PCM) oder Phasenänderungsspeicher mit einem Schalter (PCMS), NVM-Vorrichtungen, die Chalcogenid-Phasenänderungsmaterial (zum Beispiel Chalcogenidglas) verwenden, resistiver Speicher, darunter Metalloxidbasis-, Sauerstoffleerstellenbasis- und CB-RAM-Speicher (Conductive Bridge Random Access Memory), Nanodrahtspeicher, FeRAM (ferroelektrischen Direktzugriffsspeicher), MRAM (magnetoresistiven Direktzugriffsspeicher) mit Memristor-Technologie, STT-MRAM (Spin Transfer Torque), eine auf Spintronic-Magnetsperrschichtspeicher basierende Vorrichtung, eine auf MTJ (Magnetic Tunneling Junction) basierende Vorrichtung, eine Vorrichtung auf der Basis von DW (Domänenwand) und SOT (Spin Orbit Transfer), eine Speichervorrichtung auf Thyristorbasis, oder eine Kombination beliebiger von Obigen oder einen anderen geeigneten Speicher.
-
Ein flüchtiger Speicher ist ein Speicher, dessen Zustand (und daher die in ihm gespeicherten Daten) unbestimmt ist, wenn die Stromzufuhr zu der Vorrichtung unterbrochen wird. Ein dynamischer flüchtiger Speicher macht ein Aktualisieren der in der Vorrichtung gespeicherten Daten erforderlich, um den Zustand aufrechtzuerhalten. Ein Beispiel für einen dynamischen flüchtigen Speicher umfasst einen DRAM (Dynamic Random Access Memory, Dynamischen Direktzugriffsspeicher) oder eine Variante davon, wie z.B. einen synchronen DRAM (SDRAM). Ein Speicher-Teilsystem, wie hierin beschrieben, kann mit einer Anzahl von Speichertechnologien kompatibel sein, wie z.B. DDR3 (Double Data Rate Version 3, ursprüngliche Veröffentlichung durch JEDEC (Joint Electronic Device Engineering Council) am 27. Juni 2007), DDR4 (DDR Version 4, ursprüngliche Spezifikation veröffentlicht im September 2012 durch JEDEC), DDR4E (DDR Version 4), LPDDR3 (Low-Power-DDR Version 3, JESD209-3B, August 2013 durch JEDEC), LPDDR4 Version 4, JESD209-4, ursprünglich veröffentlicht durch JEDEC im August 2014), WIO2 (Wide Input/Output Version 2, JESD229-2, ursprünglich veröffentlicht durch JEDEC im August 2014), HBM (High Bandwidth Memory, JESD325, ursprünglich veröffentlicht durch JEDEC im Oktober 2013), LPDDR5 (aktuell erwogen durch JEDEC), HBM2 (HBM Version 2, aktuell erwogen durch JEDEC), oder anderen oder Kombinationen von Speichertechnologien und Technologien auf der Basis von Ableitungen oder Erweiterungen solcher Spezifikationen. Die JEDEC-Standards sind bei www.jedec.org verfügbar.
-
Das GPU-Modul (Grafikprozessoreinheit) 510 kann einen oder mehrere GPU-Kerne und einen GPU-Cache umfassen, der grafikbezogene Daten für den GPU-Kern speichern kann. Der GPU-Kern kann intern eine oder mehrere Ausführungseinheiten und einen oder mehrere Anweisungs- und Daten-Caches umfassen. Zusätzlich kann das GPU-Modul (Grafikprozessoreinheit) 510 andere Grafiklogikeinheiten enthalten, die in 1 nicht gezeigt sind, wie etwa eine oder mehrere Vertexverarbeitungseinheiten, Rasterisierungseinheiten, Medienverarbeitungseinheiten und Codecs.
-
In dem E/A-Subsystem 512 sind ein oder mehrere E/A-Adapter 516 anwesend, um ein in dem Prozessorkern bzw. den Prozessorkernen 502 benutztes Host-Kommunikationsprotokoll in ein mit bestimmten E/A-Vorrichtungen kompatibles Protokoll zu übersetzen. Einige der Protokolle, die Adapter für Übersetzung benutzen können, wären PCIe (Peripheral Component Interconnect(PCI)-Express); USB (Univeral Serial Bus); SATA (Serial Advanced Technology Attachment) und „Firewire“ 1594 des IEEE (Institute of Electrical and Electronics Engineers).
-
Der E/A-Adapter bzw. die E/A-Adapter 516 können mit externen E/A-Vorrichtungen 524 kommunizieren, die zum Beispiel Benutzeroberflächenvorrichtung(en) umfassen können, darunter eine Anzeige und/oder eine Touchscreen-Anzeige 540, Drucker, Tastenfeld, Tastatur, Kommunikationslogik, verdrahtete und/oder drahtlose Speicherungsvorrichtung(en), darunter „HDD“ (Festplatten), „SSD“ (Solid-State Drives) 518, wechselbare Speicherungsmedien, ein DVD-Laufwerk (Digital Video Disk), ein CD-Laufwerk (Compact Disk), ein RAID (Redundant Array of Independent Disks), ein Bandlaufwerk oder eine andere Speicherungsvorrichtung. Die Speicherungsvorrichtungen können durch einen oder mehrere Busse, die eines oder mehrere von vielfältigen Protokollen verwenden können, darunter, aber ohne Beschränkung darauf, SAS (Serial Attached SCSI (Small Computer System Interface)), PCIe (Peripheral Component Interconnect Express), NVMe (NVM Express) über PCIe (Peripheral Component Interconnect Express) und SATA (Serial ATA (Advanced Technology Attachment)) kommunikativ und/oder physisch miteinander gekoppelt sein.
-
Außerdem können ein oder mehrere Drahtlosprotokoll-E/A-Adapter vorliegen. Beispiele für drahtlose Protokolle werden unter anderem in persönlichen Netzwerken verwendet, wie etwa IEEE 802.15 und Bluetooth 4.0; drahtlose lokale Netzwerke wie drahtlose Protokolle auf der Basis von IEEE 802.11; und Mobilfunkprotokolle.
-
Es wird in Betracht gezogen, dass Aspekte der vorliegenden Ausführungsformen in verschiedenen Arten von Datenverarbeitungs- und Vernetzungsgeräten implementiert werden können, wie etwa Switches, Routern und Blade-Servern, sowie sie in einer Datenzentralen- und/oder Serverfarm-Umgebung eingesetzt werden. Typischerweise umfassen die in Datenzentralen und Serverfarmen verwendeten Server in Arrays angeordnete Serverkonfigurationen, wie etwa Server auf Rack-Basis oder Blade-Server. Diese Server sind über verschiedene Netzwerkvorkehrungen, wie etwa Partitionierung von Mengen von Servern zu LAN (Lokalen Netzwerken) mit geeigneten Switching- und Routing-Einrichtungen zwischen den LAN zur Bildung eines privaten Intranet, in Kommunikation miteinander verbunden. Zum Beispiel können Cloud-Hostingeinrichtungen typischerweise große Datenzentralen mit einer Vielzahl von Servern verwenden. Jedes Blade umfasst eine getrennte Datenverarbeitungsplattform, die dafür ausgelegt ist, Funktionen des Servertyps auszuführen, das heißt, ein „Server auf einer Karte“. Dementsprechend umfasst jedes Blade übliche Komponenten herkömmlicher Server, darunter eine Hauptleiterplatte (Hauptplatine), die interne Verdrahtung (d.h. Busse) zur Kopplung geeigneter integrierter Schaltungen (ICs) und anderer auf der Platine angebrachter Komponenten bereitstellt. Diese Komponenten können die zuvor in Verbindung mit 5 besprochenen Komponenten umfassen.
-
6 zeigt ein Beispiel für eine Datenzentrale 600. Verschiedene Ausführungsformen können in oder mit der Datenzentrale von 6 verwendet werden. Wie in 6 gezeigt, kann die Datenzentrale 600 ein optisches Feld 612 umfassen. Das optische Feld 612 kann im Allgemeinen eine Kombination von optischen Signalisierungsmedien (wie etwa optische Verkabelung) und optischer Switching-Infrastruktur umfassen, worüber ein beliebiges konkretes Sled in der Datenzentrale 600 Signale zu den anderen Sleds in der Datenzentrale 600 senden (und Signale von diesen empfangen) kann. Die Signalisierungskonnektivität, die das optische Feld 612 für ein beliebiges gegebenes Sled bereitstellt, kann Konnektivität sowohl zu anderen Sleds in einem selben Rack als auch Sleds in anderen Racks umfassen. Die Datenzentrale 600 umfasst vier Racks 602A bis 602D, und in den Racks 602A bis 602D sind jeweilige Paare von Sleds 604A-1 und 604A-2, 604B-1 und 604B-2, 604C-1 und 604C-2 und 604D-1 und 604D-2 untergebracht. Somit umfasst in diesem Beispiel die Datenzentrale 600 insgesamt acht Sleds. Das optische Feld 612 kann Sled-Signalisierungskonnektivität mit einem oder mehreren der sieben anderen Sleds bereitstellen. Zum Beispiel kann über das optische Feld 612 Sled 604A-1 in Rack 602A Signalisierungskonnektivität mit Sled 604A-2 in Rack 602A sowie den sechs anderen Sleds 604B-1, 604B-2, 604C-1, 604C-2, 604D-1 und 604D-2 besitzen, die auf die anderen Racks 602B, 602C und 602D der Datenzentrale 600 verteilt sind. Die Ausführungsformen sind nicht auf dieses Beispiel beschränkt. Zum Beispiel kann das optische Feld 612 optische und/oder elektrische Signalisierung bereitstellen.
-
Flussdiagramme wie hier dargestellt geben Beispiele für Sequenzen verschiedener Prozesshandlungen. Die Flussdiagramme können Operationen, die durch eine Software- oder Firmwareroutine auszuführen sind, sowie physische Operationen angeben. Bei einer Ausführungsform kann ein Flussdiagramm den Zustand eines Automaten (FSM) darstellen, der in Hardware und/oder Software implementiert werden kann. Obwohl sie in einer bestimmten Sequenz oder Reihenfolge gezeigt sind, kann die Reihenfolge der Handlungen, sofern es nicht anders angegeben wird, modifiziert werden. Die dargestellten Ausführungsformen sollten deshalb nur als Beispiel aufgefasst werden, und der Prozess kann in einer anderen Reihenfolge ausgeführt werden und manche Aktionen können parallel ausgeführt werden. Außerdem können eine oder mehrere Aktionen bei verschiedenen Ausführungsformen weggelassen werden; somit sind nicht alle Handlungen in jeder Ausführungsform erforderlich. Es sind andere Prozessflüsse möglich.
-
Soweit hier verschiedene Operationen oder Funktionen beschrieben werden, können sie als Softwarecode, Befehle, eine Konfiguration und/oder Daten beschrieben oder definiert werden. Der Inhalt kann direkt ausführbar („Objekt-“ oder „ausführbares-Programm“-Form), Quellcode oder Differenzcode („Delta“ oder „Patch“-Code) sein. Der Softwareinhalt der hier beschriebenen Ausführungsformen kann über einen Herstellungsartikel mit dem Inhalt darauf gespeichert oder über ein Verfahren zum Betreiben einer Kommunikationsschnittstelle zum Senden von Daten über die Kommunikationsschnittstelle bereitgestellt werden. Ein maschinenlesbares Speicherungsmedium kann eine Maschine zum Durchführen der beschriebenen Funktionen oder Vorgänge veranlassen und beinhaltet einen beliebigen Mechanismus, der Informationen in einer Form speichert, die für eine Maschine (z. B. eine Rechenvorrichtung, ein elektronisches System usw.) zugänglich ist, wie etwa beschreibbare/nichtbeschreibbare Medien (z. B. Nur-Lese-Speicher (ROM), Direktzugriffsspeicher (RAM), Magnetplattenspeicherungsmedien, optische Speicherungsmedien, Flash-Speichervorrichtungen usw.). Eine Kommunikationsschnittstelle beinhaltet einen beliebigen Mechanismus, der an ein beliebiges eines festverdrahteten, drahtlosen, optischen usw. Mediums ankoppelt, um mit einer anderen Vorrichtung zu kommunizieren, wie etwa eine Speicherbusschnittstelle, eine Prozessorbusschnittstelle, eine Internetverbindung, eine Plattensteuerung usw. Die Kommunikationsschnittstelle kann durch Bereitstellen von Konfigurationsparametern und/oder Senden von Signalen oder beides konfiguriert werden, um die Kommunikationsschnittstelle zum Bereitstellen eines Datensignals, das den Softwareinhalt beschreibt, vorzubereiten. Auf die Kommunikationsschnittstelle kann über ein(en) oder mehrere Befehle oder Signale, die an die Kommunikationsschnittstelle gesendet werden, zugegriffen werden.
-
Verschiedene hier beschriebene Komponenten können ein Mittel zum Durchführen der beschriebenen Vorgänge oder Funktionen sein. Jede hier beschriebene Komponente beinhaltet Software, Hardware oder eine Kombination von diesen. Die Komponenten können als Softwaremodule, Hardwaremodule, Spezialhardware (z. B. anwendungsspezifische Hardware, anwendungsspezifische integrierte Schaltkreise (ASICs), digitale Signalprozessoren (DSPs) usw.), eingebettete Steuerungen, festverdrahtete Schaltungsanordnung usw. implementiert werden.
-
Abgesehen von dem, was hier beschrieben ist, können verschiedene Modifikationen an den offenbarten Ausführungsformen und Implementierungen der Erfindung vorgenommen werden, ohne von ihrem Schutzumfang abzuweichen.
-
Daher sollten die Veranschaulichungen und Beispiele hier in einem veranschaulichenden und nicht einem begrenzenden Sinn ausgelegt werden. Der Schutzumfang der Erfindung sollte allein durch Bezugnahme auf die Ansprüche, die folgen, bemessen werden.