DE102004038649A1 - Dauerspeichervorrichtung für Sicherungsprozess-Prüfpunktzustände - Google Patents

Dauerspeichervorrichtung für Sicherungsprozess-Prüfpunktzustände Download PDF

Info

Publication number
DE102004038649A1
DE102004038649A1 DE200410038649 DE102004038649A DE102004038649A1 DE 102004038649 A1 DE102004038649 A1 DE 102004038649A1 DE 200410038649 DE200410038649 DE 200410038649 DE 102004038649 A DE102004038649 A DE 102004038649A DE 102004038649 A1 DE102004038649 A1 DE 102004038649A1
Authority
DE
Germany
Prior art keywords
checkpoint data
storage unit
backup process
checkpoint
primary process
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.)
Granted
Application number
DE200410038649
Other languages
English (en)
Other versions
DE102004038649B4 (de
Inventor
Roger San Francisco Hansen
Pankaj San Jose Mehra
Sam Palo Alto Fineberg
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE102004038649A1 publication Critical patent/DE102004038649A1/de
Application granted granted Critical
Publication of DE102004038649B4 publication Critical patent/DE102004038649B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/202Error 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 processing functionality is redundant
    • G06F11/2046Error 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 processing functionality is redundant where the redundant components share persistent storage
    • 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/202Error 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 processing functionality is redundant
    • G06F11/2038Error 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 processing functionality is redundant with a single idle spare processing component
    • 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/2097Error 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 maintaining the standby controller/processing unit updated
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Ein System ist beschrieben, das eine Netzwerkschnittstelle umfasst, die an eine Dauerspeichereinheit angebracht ist. Die Dauerspeichereinheit ist konfiguriert, um Prüfpunktdaten von einem Primärprozess zu empfangen und um Zugriff auf die Prüfpunktdaten zur Verwendung bei einem Sicherungsprozess zu liefern, der eine Wiedergewinnungsfähigkeit in dem Fall eines Ausfalls des Primärprozesses liefert. Die Netzwerkschnittstelle ist konfiguriert, um Adressübersetzungsinformationen zwischen virtuellen und physischen Adressen in der Dauerspeichereinheit zu liefern. Bei anderen Ausführungsbeispielen ist die Dauerspeichereinheit in der Lage zum Speichern von mehreren Aktualisierungen des Prüfpunktzustands. Der Prüfpunktzustand und die Aktualisierungen des Prüfpunktzustands, falls vorhanden, können durch den Sicherungsprozess periodische oder alle auf einmal nach einem Ausfall des Primärprozesses wiedergewonnen werden.

Description

  • Der Ausfall eines Computers sowie von Anwendungsprogrammen, die auf einem Computer ausgeführt werden, kann häufig zu dem Verlust von beträchtlichen Datenmengen und Zwischenberechnungen führen. Die Ursache des Ausfalls kann entweder hardware- oder softwarebezogen sein, aber in jedem Fall können die Folgen teuer sein, insbesondere wenn Datenmanipulationen mitten im Strom unterbrochen werden. In dem Fall von großen Softwareanwendungen könnte ein Ausfall einen umfassenden Aufwand erfordern, um den Status des Zustands der Anwendung vor dem Ausfall wiederherzustellen.
  • Im Allgemeinen speichern Prüfpunkt- und Wiederherstellungstechniken periodisch den Prozesszustand während der normalen Ausführung und speichern nachfolgend erneut den gesicherten Zustand zu einem Sicherungsprozess, der einem Ausfall folgt. Auf diese Weise wird die Menge der verlorenen Arbeit auf den Fortschritt minimiert, der durch den Anwendungsprozess seit dem zurückgespeicherten Prüfpunkt gemacht wurde.
  • Üblicherweise haben Computer die Prüfpunktdaten entweder in einem Systemspeicher, der mit dem Prozessor des Computers gekoppelt ist, oder auf anderen Eingabe-/Ausgabe- (I/O-) Speicherungsvorrichtungen gespeichert, wie z. B. einem Magnetband oder einer Platte. I/O-Speicherungsvorrichtungen können an ein System angebracht sein, durch einen I/O-Bus, wie z. B. eine PCI (ursprünglich genannt Peripheral Component Interconnect = Peripheriekomponentenverbindung), oder durch ein Netz, wie z. B. ein Faserkanal-, Infiniband-, ServerNet- oder Ethernet-Netz. I/O-Speicherungsvorrichtungen sind üblicherweise langsam, mit Zugriffszeiten von mehr als einer Millisekunde. Sie verwenden spezielle I/O- Protokolle, wie z. B. ein SCSI-Protokoll (SCSI = small Computer systems interface), oder ein TCP/IP-Protokoll (TCP/IP = transmission control protocol/internet protocol), und arbeiten üblicherweise als Blockaustauschvorrichtungen (z. B. werden Daten in Datenblöcken fester Größe gelesen oder geschrieben). Ein Merkmal dieser Typen von I/O-Speicherungsvorrichtungen ist, dass sie dauerhaft sind, derart, dass sie die Informationen behalten, wenn sie Leistung verlieren oder neu gestartet werden, die vorangehend auf denselben gespeichert waren. Zusätzlich dazu kann auf I/O-Speicherungsvorrichtungen von mehreren Prozessoren durch gemeinschaftlich verwendete I/O-Netzwerke zugegriffen werden, sogar nachdem einige Prozessoren ausgefallen sind.
  • Wie hierin verwendet, bezieht sich der Ausdruck „dauerhaft" auf eine Computerspeicher-Speicherungsvorrichtung, die einer Leistungsrücksetzung widerstehen kann, ohne den Verlust der Inhalte in dem Speicher. Dauerhafte Speichervorrichtungen wurden verwendet, um Daten zu speichern, zum Starten oder Neustarten von Softwareanwendungen. Bei einfachen Systemen sind Dauerspeichervorrichtungen statisch und werden nicht modifiziert, wenn die Software ausgeführt wird. Der Anfangszustand der Softwareumgebung ist in dem Dauerspeicher gespeichert. In dem Fall eines Leistungsausfalls an dem Computer oder einem anderen Ausfall, startet die Software ihre Ausführung von dem Anfangszustand neu. Ein Problem bei diesem Lösungsansatz ist, dass alle Zwischenberechnungen neu berechnet werden müssen. Dies kann insbesondere lästig sein, wenn große Mengen von Benutzerdaten während dieses Prozesses neu geladen werden müssen. Wenn einige oder alle der Benutzerdaten nicht mehr verfügbar sind, ist es vielleicht nicht möglich, den Zustand vor dem Ausfall wiederherzustellen.
  • Der Systemspeicher ist allgemein mit einem Prozessor durch einen Systembus verbunden, wo ein solcher Speicher relativ schnell mit garantierten Zugriffszeiten ist, die in jeweils zehn Nanosekunden gemessen werden. Ferner kann auf den Systemspeicher direkt mit Byte-Pegel-Körnung zugegriffen werden. Der Systemspeicher ist jedoch normalerweise flüchtig, derart, dass sein Inhalt verloren geht, wenn die Leistung verloren geht, oder wenn ein System, das einen solchen Speicher verkörpert, neu gestartet wird. Ferner ist ein Systemspeicher üblicherweise innerhalb desselben Ausfallbereichs wie ein Prozessor, derart, dass der zugehörige Speicher ebenfalls ausfällt und auf denselben nicht mehr zugegriffen werden kann, wenn ein Prozessor ausfällt. Metadaten, die das Layout des Speichers beschreiben, gehen ebenfalls verloren, wenn die Leistung verloren geht oder wenn das System, das einen solchen Speicher verkörpert, neu gestartet wird.
  • Bekannte Systeme verwenden batteriegesicherte dynamische Direktzugriffsspeicher (BBDRAM; BBDRAM = battery-backed dynamic random access memory), Festzustandsplatten und netzwerkangebrachte flüchtige Speicher. Ein bekannter BBDRAM kann Verhaltensvorteile z. B. gegenüber einem wahrlich Dauerspeicher aufweisen. Er ist jedoch nicht global zugreifbar. Ferner wird ein BBDRAM, der in demselben Ausfallbereich liegt wie eine zugehörige CPU, in dem Fall eines CPU-Ausfalls oder eines Betriebssystemzusammenbruchs unzugreifbar. Entsprechend wird ein BBDRAM häufig in Situationen verwendet, in denen der gesamte Systemspeicher dauerhaft ist, so dass das System schnell nach einem Leistungsausfall oder einem Neustart wiedergestartet werden kann. Ein BBDRAM ist während langer Leistungsaussetzer flüchtig, derart, dass eine alternative Einrichtung bereitgestellt werden muss, um dessen Inhalte zu speichern, bevor die Batterien leer werden. Es ist wichtig, darauf hinzuweisen, dass diese Verwendung des BBDRAM sehr eingeschränkt ist und nicht für eine Verwendung z. B. bei netzwerkangebrachten Dauerspeicheranwendungen abgeändert werden kann.
  • Batteriegepufferte Festkörperplatten (BBSSDs; BBSSD = battery-backed solid-state disk) wurden ebenfalls für andere Inkrementierungen vorgeschlagen. Diese BBSSDs lie fern Dauerspeicher, aber funktional emulieren sie ein Plattenlaufwerk. Ein wichtiger Nachteil dieses Lösungsansatzes ist die zusätzliche Latenzzeit, die dem Zugriff auf diese Vorrichtungen durch I/O-Adapter zugeordnet ist. Diese Latenzzeit ist inhärent in den blockorientierten und dateiorientierten Speicherungsmodellen, die durch Platten verwendet werden, und ihrerseits in BBSSDs, die das Betriebssystem des Hostcomputers nicht umgehen. Während es möglich ist, Festkörperplatten zu modifizieren, um einige Mängel zu beseitigen, kann die inhärente Latenzzeit nicht beseitigt werden, da das Verhalten durch die I/O-Protokolle und ihre zugeordneten Vorrichtungslaufwerke eingeschränkt ist. Wie bei einem BBDRAM sind zusätzliche Techniken erforderlich, um den Prüfpunktzustand eines Anwendungsprogramms in einem ausgefallenen Bereich zu einer Sicherungskopie des Anwendungsprogramms zu liefern, das in einem Betriebsbereich läuft.
  • Es ist die Aufgabe der vorliegenden Erfindung, ein System zum Speichern von Prüfpunktzustandsinformationen, ein Verfahren zum Wiedergewinnen des Operationszustands eines Primärprozesses, ein Computerprodukt, eine Vorrichtung, ein Verfahren zum Aufzeichnen des Betriebszustands eines Primärprozesses und ein Verfahren zum Wiedergewinnen des Betriebszustands eines Primärprozesses mit verbesserten Charakteristika zu schaffen.
  • Diese Aufgabe wird durch ein System zum Speichern von Prüfpunktzustandsinformationen gemäß Anspruch 1, ein Verfahren zum Wiedergewinnen des Betriebszustands eines Primärprozesses gemäß Anspruch 10 und 35, ein Computerprodukt gemäß Anspruch 21, eine Vorrichtung gemäß Anspruch 26 und ein Verfahren zum Aufzeichnen des Betriebszustands eines Primärprozesses gemäß Anspruch 32 gelöst.
  • Bei einigen Ausführungsbeispielen umfasst ein System eine Netzwerkschnittstelle, die an eine Dauerspeichereinheit angebracht ist. Die Dauerspeichereinheit ist konfiguriert, um Prüfpunktdaten von einem Primärprozess zu empfangen, und um Zugriff auf die Prüfpunktdaten zur Verwendung in einem Sicherungsprozess zu liefern, um die Wiedergewinnungsfähigkeit in dem Fall eines Ausfalls des Primärprozesses zu unterstützen. Die Netzwerkschnittstelle ist konfiguriert, um Adressübersetzungsinformationen zwischen einer virtuellen und einer physischen Adresse in der Dauerspeichereinheit zu liefern. Bei anderen Ausführungsbeispielen ist die Dauerspeichereinheit in der Lage zum Speichern von mehreren Aktualisierungen für den Prüfpunktzustand. Der Prüfpunktzustand und die Aktualisierungen für den Prüfpunktzustand, falls vorhanden, können durch den Sicherungsprozess periodisch oder alle zusammen nach einem Ausfall des Primärprozesses wiedergewonnen werden.
  • Bei einem wiederum anderen Ausführungsbeispiel umfasst ein Verfahren zum Wiedergewinnen des Operationszustands eines Primärprozesses das Abbilden virtueller Adressen einer Dauerspeichereinheit in physische Adressen der Dauerspeichereinheit und das Empfangen von Prüfpunktdaten im Hinblick auf den Operationszustand des Primärprozesses in der Dauerspeichereinheit. Bei einigen Ausführungsbeispielen werden die Prüfpunktdaten zu einem Sicherungsprozess geliefert. Bei wiederum anderen Ausführungsbeispielen werden die Kontextinformationen im Hinblick auf die Adresse zu dem Primärprozess und dem Sicherungsprozess geliefert.
  • Bei anderen Ausführungsbeispielen liefert die Dauerspeichereinheit die Prüfpunktdaten zu dem Sicherungsprozess, wenn der Primärprozesses ausfällt. Alternativ, bei wiederum anderen Ausführungsbeispielen, kann die Dauerspeichereinheit konfiguriert sein, um mehrere Sätze von Prüfpunktdaten zu speichern, die von dem Prozessor in aufeinander folgenden Zeitintervallen gesendet werden, oder um die mehreren Sätze von Prüfpunktdaten gleichzeitig zu dem Sicherungsprozess zu liefern.
  • Diese und andere Ausführungsbeispiele werden nach einem Verständnis der vorliegenden Offenbarung durch einen Durchschnittsfachmann auf dem Gebiet verständlich, auf das sich dieselbe bezieht.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1A ein Blockdiagramm eines Ausführungsbeispiels eines Systems, das eine netzwerkangebrachte Dauerspeichereinheit (NPMU; NPMU = network attached persistent memory unit) umfasst, die in der Lage ist, Prüfpunktzustandsinformationen zu speichern;
  • 1B ein Diagramm eines Ausführungsbeispiels eines Verfahrens zum Zugreifen auf Prüfpunktzustandsinformationen von der NPMU aus 1A;
  • 1C ein Blockdiagramm eines Ausführungsbeispiels eines Systems, das eine netzwerkangebrachte Dauerspeichereinheit (NPMU) umfasst, die in der Lage ist, mehrere Sätze von Prüfpunktzustandsinformationen zu speichern;
  • 1D ein Diagramm eines Ausführungsbeispiels eines anderen Verfahrens zum Zugreifen auf Prüfpunktzustandsinformationen aus der NPMU aus 1C;
  • 2 ein Blockdiagramm eines Ausführungsbeispiels einer netzwerkangebrachten Dauerspeichereinheit (NPMU);
  • 3 ein Blockdiagramm eines Ausführungsbeispiels einer netzwerkangebrachten Dauerspeichereinheit (NPMU), die eine Batteriesicherung verwendet;
  • 4 ein Blockdiagramm, das Abbildungen von einem virtuellen Adressraum eines Dauerspeichers auf einen physischen Adressraum eines Dauerspeichers darstellt; und
  • 5 ein Blockdiagramm eines darstellenden Computersystems, auf dem eine netzwerkangebrachte Dauerspeichereinheit (NPMU) implementiert sein kann.
  • Obwohl bekannte Systeme Dauerspeicher nur im Kontext von blockorientierten und dateiorientierten I/O-Architekturen mit ihren relativ langen Latenzzeiten verwendet haben, beschreiben die vorliegenden Lehren einen Speicher, der dauerhaft ist, wie traditionelle I/O-Speicherungsvorrichtungen, aber auf den wie auf einen Systemspeicher mit feiner Körnung und niedriger Latenzzeit zugegriffen werden kann. Systeme gemäß den vorliegenden Lehren ermöglichen es Anwendungsprogrammen, einen oder mehrere Prüfpunktzustände zu speichern, auf die durch eine Sicherungskopie der Anwendung in dem Fall eines Hardware- oder Softwareausfalls zugegriffen werden kann, der verhindert, dass das Primäranwendungsprogramm ausgeführt wird.
  • Wie in 1 gezeigt ist, umfasst ein System 100, das einen netzwerkangebrachten Dauerspeicher verwendet, eine netzwerkangebrachte Dauerspeichereinheit (NPMU) 102, auf die durch einen oder mehrere Prozessorknoten 104, 106 durch entsprechende Netzwerkschnittstellen (NI) 108, 110 zugegriffen werden kann, und ein Systembereichsnetzwerk (SAN) 112, wie z. B. ein entferntes direktspeicherzugriffsaktiviertes (RDMA-aktiviertes) SAN. Ein RDMA (RDMA = Remote Direct Memory Access) kann als ein Merkmal von NIs 108, 110 und 114 implementiert sein, um es Prozessorknoten 104, 106 zu ermöglichen, Informationen in dem Speicher einer NPMU 102 direkt zu speichern und wiederzugewinnen. Das Übertragen von Daten direkt zu oder von einer NPMU 102 beseitigt den Bedarf zum Kopieren von Daten zwischen einem Speicher in Prozessorknoten 104, 106 und Kern-I/O-Prozessen in Betriebssystemen 144, 146. Eine RDMA-Fähigkeit reduziert somit die Anzahl von Kontextschaltungen zwischen Primärprozess 116 und Sicherungsprozess 122 und Betriebssystemen 144, 146, während Speicherübertragungen über das SAN 112 gehandhabt werden.
  • Ein SAN 112 greift auf eine NPMU 102 über eine Netzwerkschnittstelle (NI) 114 zu. Eine NPMU 102 kombiniert die Dauerhaftigkeit und die Wiedergewinnbarkeit von Speicherungs-I/O mit der Geschwindigkeit und dem feinkörnigen Zugriff des Systemspeichers. Wie die Speicherung können Inhalte einer NPMU 102 den Verlust von Leistung oder einen Systemneustart überleben. Wie auf einen entfernten Speicher kann auf eine NPMU 102 über ein SAN 112 zugegriffen werden. Im Gegensatz zu einem direkt angeschlossenen Speicher jedoch kann auf die NPMU 102 weiter zugegriffen werden, sogar nachdem einer oder mehrere Prozessorknoten 104, 106 ausgefallen sind.
  • Ein Primärprozess 116, der auf einem Prozessorknoten 104 läuft, kann entfernte Befehle initiieren, z. B. einen Schreibbefehl, um Daten für einen Prüfpunktzustand 120 in der NPMU 102 zu senden. Der Primärprozess 116 kann Daten für einen Prüfpunktzustand 120 ferner periodisch liefern. Ein Sicherungsprozess 122, der auf dem Prozessorknoten 106 läuft, ist konfiguriert, um die Funktionen des Primärprozesses 116 in dem Fall eines Ausfalls des Primärprozesses 116 auszuführen. Der Sicherungsprozess 122 kann ferner entfernte Lese- und Schreiboperationen zu der NPMU 102 initiieren, wie z. B. einen Lesebefehl, um auf einen Prüfpunktzustand 120 periodisch und/oder nach einem Ausfall des Primärprozesses 116 zuzugreifen.
  • Bei einer Schreiboperation, die durch den Prozessorknoten 104 initiiert wird, z. B. sobald Daten erfolgreich in der NPMU 102 gespeichert wurden, sind die Daten dauerhaft und werden eine Leistungsunterbrechung oder Ausfall des Prozessorknotens 104, 106 überleben. Insbesondere werden Spei cherinhalte beibehalten, solange die NPMU 102 weiterhin korrekt funktioniert, sogar nachdem die Leistung für eine ausgedehnte Zeitperiode abgetrennt wurde, oder das Betriebssystem an dem Prozessorknoten 104, 106 neu gestartet wurde. Zusätzlich zu Datenübertragungsoperationen kann die NPMU 102 konfiguriert sein, um auf verschiedene Verwaltungsbefehle zu antworten.
  • Bei einigen Ausführungsbeispielen sind Prozessorknoten 104, 106 Computersysteme, die zumindest eine zentrale Verarbeitungseinheit (CPU) und einen Systemspeicher umfassen, bei dem die CPU konfiguriert ist, um Betriebssysteme 144, 146 zu betreiben. Prozessorknoten 104, 106 können zusätzlich konfiguriert sein, um einen oder mehrere eines Typs von Anwendungsprogramm zu betreiben, wie z. B. einen Primärprozess 116 und einen Sicherungsprozess 118. Obwohl das System 100 mit zwei Prozessorknoten 104, 106 gezeigt ist, können zusätzliche Prozessorknoten (nicht gezeigt) mit dem SAN 112 sowie den Prozessorknoten 104, 106 über ein Netzwerk (nicht gezeigt) über Netzwerkschnittstellen 108, 110, 114 kommunizieren.
  • Bei einigen Ausführungsbeispielen ist das SAN 112 ein RDMA-freigegebenes Netzwerk, das mehrere Netzwerkschnittstelleneinheiten (NI) verbindet, wie z. B. NIs 108, 110 und 114, die Byte-Pegel-Speicheroperationen zwischen zwei Prozessorknoten 104, 106 oder zwischen Prozessorknoten 104, 106 und einer Vorrichtung durchführen können, wie z. B. der NPMU 102, ohne Betriebssysteme 144, 146 zu benachrichtigen. In diesem Fall ist das SAN 112 konfiguriert, um eine Virtuell-zu-Physisch-Adressübersetzung durchzuführen, um zusammenhängende virtuelle Netzwerkadressräume in nicht zusammenhängende physische Adressräume abzubilden. Dieser Typ von Adressübersetzung ermöglicht eine dynamische Verwaltung der NPMU 102. Handelsüblich erhältliche SANs 112 mit RDMA-Fähigkeit umfassen, sind jedoch nicht beschränkt auf, ServerNet, GigaNet, Infiniband und alle SANs, die einer Virtual Interface Architecture entsprechen.
  • Prozessorknoten 104, 106 sind allgemein an ein SAN 112 durch jeweilige NIs 108, 110 angebracht, viele Variationen sind jedoch möglich. Allgemeiner ausgedrückt muss ein Prozessorknoten jedoch nur mit einer Vorrichtung zum Kommunizieren von Lese- und Schreiboperationen verbunden sein. Zum Beispiel, bei einer anderen Implementierung dieses Ausführungsbeispiels, umfassen Prozessorknoten 104, 106 verschiedene CPUs an einer Hauptplatine, die einen Datenbus verwenden, z. B. einen PCI-Bus, anstelle des SAN 112. Es wird darauf hingewiesen, dass die vorliegenden Lehren aufwärts- oder abwärtsskaliert werden können, um größere oder kleinere Implementierungen unterzubringen, je nach Bedarf.
  • Netzwerkschnittstellen (NI) 108, 110, 114 sind kommunikativ mit der NPMU 102 gekoppelt, um einen Zugriff auf den Dauerspeicher zu ermöglichen, der in der NPMU 102 enthalten ist. Eine geeignete Technik kann für die verschiedenen Komponenten aus 1A verwendet werden, einschließlich dem Typ eines Dauerspeichers. Entsprechend ist das Ausführungsbeispiel aus 1A nicht auf eine spezifische Technik zum Realisieren des Dauerspeichers eingeschränkt. Tatsächlich können mehrere Speichertechniken, einschließlich einem magnetischen Direktzugriffsspeicher (MRAM), einem magnetoresistiven Direktzugriffsspeicher (MRRAM), einem polymerferroelektrischen Direktzugriffsspeicher (PFRAM), einem Ovonic-Einheits-Speicher (OUM), einem BBDRAM und FLASH-Speicher aller Arten geeignet sein. Das System 100 kann konfiguriert sein, um einen Speicherzugriff mit hoher Körnung zu ermöglichen, einschließlich einem Byte-Pegel-Speicherzugriff, der im Vergleich zu BBSSDs gesamte Informationsblöcke überträgt.
  • Es wird darauf hingewiesen, dass die Speicherzugriffskörnung nach Bedarf in dem System 100 eingestellt werden kann. Die Zugriffsgeschwindigkeit des Speichers in einer NPMU 102 sollte ebenfalls schnell genug sein, um die Übertragungsra ten des Datenkommunikationsschemas zu unterstützen, das für ein System 100 implementiert ist.
  • Es sollte darauf hingewiesen werden, dass Dauerinformationen zu dem Ausmaß geliefert werden, zu dem der Dauerspeicher in Verwendung Daten halten kann. Zum Beispiel kann bei vielen Anwendungen ein Dauerspeicher erforderlich sein, um Daten zu speichern, unabhängig von der Zeitdauer, für die Leistung verloren geht; wohingegen bei anderen Anwendungen ein Dauerspeicher vielleicht nur für wenige Minuten oder Stunden erforderlich ist.
  • Eine Speicherverwaltungsfunktionalität kann in dem System 100 bereitgestellt werden, um eine oder mehrere unabhängige, indirekt adressierte Speicherregionen zu erzeugen. Ferner können NPMU-Metadaten für eine Speicherwiedergewinnung bereitgestellt werden, nach einem Leistungsverlust oder einem Prozessorausfall. Metadaten können z. B. die Inhalte und das Layout der geschützten Speicherregionen innerhalb einer NPMU 102 umfassen. Auf diese Weise speichert die NPMU 102 die Daten sowie die Art und Weise des Verwendens der Daten. Wenn der Bedarf entsteht, kann die NPMU 102 die Metadaten zu dem Sicherungsprozess 122 liefern, um dem System 100 zu ermöglichen, sich von einem Leistungs- oder Systemausfall zu erholen, der dem primären Prozess 116 zugeordnet ist.
  • Bei dem Ausführungsbeispiel des Systems 100, das in 1A gezeigt ist, kann jede Aktualisierung an dem Prüfpunktzustand 120 einige oder alle Informationen überschreiben, die momentan für den Prüfpunktzustand 120 gespeichert sind. Da nur eine Kopie des Prüfpunktzustands 120 vorliegt, kann der Sicherungsprozess 122 im Leerlauf bleiben, bis der Primärprozess 116 ausfällt, und dann den Prüfpunktzustand 120 lesen, um die Funktionen fortzusetzen, die durch den Primärprozess 116 ausgeführt wurden. 1B ist ein Diagramm eines Ausführungsbeispiels eines Verfahrens zum Zugreifen auf einen Prüfpunktzustand 120 von der NPMU 102. Wie ge zeigt ist, schreibt der Primärprozess 116 Daten in die Anfangsadresse des Prüfpunktzustands 120 und der Sicherungsprozess 122 liest Daten von dem Anfang des Prüfpunktzustands 120. Bei einem solchen Ausführungsbeispiel muss nur eine Kopie des Prüfpunktzustands 120 beibehalten werden.
  • 1C zeigt ein anderes Ausführungsbeispiel einer NPMU 102, die mit mehreren Prüfpunktaktualisierungsbereichen 128132 konfiguriert ist, die dem Prüfpunktzustand 120 zugeordnet sind. Ein Prüfpunktzustand 120 kann einen Vollsicherungszustand für einen Primärprozess 116 umfassen. Jede Aktualisierung an dem Prüfpunktzustand 120 kann an die vorangehend geschriebenen Informationen angehängt werden, wodurch eine Reihe von Aktualisierungen an dem Prüfpunktzustand 120 in nichtüberlappenden Aktualisierungsbereichen 128132 der NPMU 102 erzeugt wird. Wenn der Prüfpunktzustand 120 relativ groß ist, liefern Aktualisierungsbereiche 128132 einen Vorteil des Beseitigens des Bedarfs für einen Primärprozess 116, einen vollständigen Prüfpunktzustand 120 jedes Mal zu schreiben, wenn Zeitinformationen mit einem Prüfpunkt versehen werden.
  • Zum Beispiel kann ein Primärprozess 116 in großen Datenblöcken während der Initialisierung lesen, und verschiedene Segmente der Daten in unterschiedlichen Operationsphasen aktualisieren. Der anfängliche Prüfpunktzustand 120 kann eine Sicherung aller Daten umfassen, während Aktualisierungsbereiche 128132 verwendet werden können, um kleinere Segmente der Daten zu speichern, wenn die Segmente aktualisiert werden. Der Sicherungsprozess 122 kann sich dann selbst mit dem Prüfpunktzustand 120 initialisieren und Daten aus den nachfolgenden Aktualisierungsbereichen 128132 in der Reihenfolge anwenden, in der sie geschrieben wurden. Ferner muss der Sicherungsprozess 122 nicht warten, bis ein Primärprozess 116 ausfällt, um damit zu beginnen, sich selbst mit Daten aus dem Prüfpunktzustand 120 und den Aktualisierungsbereichen 128132 zu initialisieren. Dies gilt insbesondere, wenn ein Potential vorliegt, die Menge von Speicherungsraum zu überschreiten, der für den Prüfpunktzustand 120 und die Aktualisierungsbereiche 128132 verfügbar ist. Dies gilt ferner, wenn es eine größere Zeitmenge als erwünscht für den Sicherungsprozess 122 erfordern würde, den Zustand des Primärprozesses 116 wiederzuerzeugen, nachdem der Primärprozess 116 ausfällt.
  • 1D ist ein Diagramm eines Ausführungsbeispiels eines Verfahrens zum Zugreifen auf einen Prüfpunktzustand 120 aus der NPMU 102 von 1C. Wie gezeigt ist, hängt der Primärprozess 116 Daten an die Adresse des Prüfpunktzustands 120 und Aktualisierungsbereiche (nicht gezeigt) nach der Adresse an, wo die Daten zuletzt in die NPMU 102 geschrieben wurden. Der Sicherungsprozess 122 liest Daten von dem Anfang zu dem Ende des letzten Bereichs, der durch den Primärprozess 116 geschrieben wurde. Bei solchen Ausführungsbeispielen werden Einrichtungen bereitgestellt, um einen Sicherungsprozess 122 mit dem Start- und Endort der aktuellsten Aktualisierung zu dem Prüfpunktzustand 120 zu liefern, wie hierin weitergehend erörtert wird.
  • Egal ob der Sicherungsprozess 122 den Prüfpunktzustand 120 und die Aktualisierungsbereiche 128132 periodisch liest oder wenn der Primärprozess 116 ausfällt, kann der Sicherungsprozess 122 einen vorangehend nicht gelesenen Abschnitt des mit einem Prüfpunkt versehenen Zustands 120 und Aktualisierungsbereiche 128132 lesen, bevor für den Primärprozess 116 übernommen wird.
  • Das Verwenden einer NPMU 102 ermöglicht, dass der Primärprozess 116 den Prüfpunktzustand 120 speichert, unabhängig von der Identität, dem Ort oder dem Operationszustand des Sicherungsprozesses 122. Der Sicherungsprozess 122 kann in einem entfernten System erzeugt werden, das Zugriff auf die NPMU 102 hat. Der Primärprozess 116 kann einen Prüfpunktzustand 120 und/oder Aktualisierungsbereiche 128132 schreiben, immer wenn dies erforderlich ist, ohne darauf zu warten, dass der Sicherungsprozess 122 den Empfang der Nachrichten bestätigt. Zusätzlich dazu ermöglicht die NPMU 102 eine effiziente Verwendung von verfügbaren Informationstechnikressourcen (IT-Ressourcen), da der Sicherungsprozess 122 nur ausgeführt werden muss, entweder (1) wenn der Primärprozess 116 ausfällt; oder (2) um Informationen periodisch aus dem Prüfpunktzustand 120 und/oder Aktualisierungsbereichen 128132 zu lesen, um ein Überschreiten der NPMU 102 zu vermeiden. Im Gegensatz dazu verwenden einige bisher bekannte Prüfpunkterzeugungstechniken eine Meldung, die zwischen einem Primärprozess und einem Sicherungsprozess läuft, um Prüfpunktinformationen zu kommunizieren. Der Primärprozess erfordert somit Informationen im Hinblick auf die Identität und den Ort des Sicherungsprozesses. Zusätzlich dazu musste der Sicherungsprozess bei vorangehend bekannten Systemen betriebsfähig sein, um mit dem Primärprozess synchronisiert zu sein, um die Prüfpunktmeldung zu empfangen.
  • Ferner kann die NPMU 102 in Hardware implementiert sein, wodurch ein schneller Zugriff für Lese- und Schreiboperationen geliefert wird. Andere bereits bekannte Prüfpunkterzeugungstechniken speichern Prüfpunktinformationen auf magnetischen oder optischen Medien, was viel mehr Zugriffszeit erfordert als die NPMU 102.
  • 2 zeigt ein Ausführungsbeispiel der NPMU 102, die einen nichtflüchtigen Speicher 202 verwendet, der kommunikativ mit einer NI 114 über eine Kommunikationsverknüpfung 206 gekoppelt ist. Ein nichtflüchtiger Speicher 202 kann z. B. ein MRAM- oder Flash-Speicher sein. Eine NI 114 initiiert üblicherweise nicht ihre eigenen Anforderungen, sondern statt dessen empfängt die NI 114 Verwaltungsbefehle von dem SAN 112 über die Kommunikationsverknüpfung 210 und führt die angeforderten Verwaltungsoperationen aus. Genauer gesagt kann die NPMU 200 eingehende Anforderungen übersetzen und dann die angeforderte Operation ausführen. Weitere Details über die Befehlsverarbeitung werden nachfolgend erörtert. Kommunikationsverknüpfungen 206, 210 können für eine verdrahtete und/oder drahtlose Kommunikation konfiguriert sein. Das SAN 112 kann eine geeignete Kommunikations- und Verarbeitungs-Infrastruktur zwischen der NI 114 und anderen Knoten sein, wie z. B. Prozessorknoten 104, 106 in 1A. Zum Beispiel kann das SAN 112 ein lokales Netz und/oder ein weites Netz sein, wie z. B. das Internet.
  • 3 zeigt ein anderes Ausführungsbeispiel einer NPMU 102 unter Verwendung einer Kombination von einem flüchtigen Speicher 302 mit einer Batterie 304 und einem nichtflüchtigen Sekundärspeicher 310. Bei diesem Ausführungsbeispiel, wenn die Leistung ausfällt, werden Daten innerhalb des flüchtigen Speichers 302 bewahrt, unter Verwendung der Leistung der Batterie 304, bis solche Daten in einem nichtflüchtigen Sekundärspeicher 310 gespeichert werden können. Ein nichtflüchtiger Sekundärspeicher kann z. B. eine Magnetplatte oder ein langsamer FLASH-Speicher sein. Die Übertragung von Daten von dem flüchtigen Speicher 302 zu dem nichtflüchtigen Sekundärspeicher 310 kann ohne externen Eingriff erfolgen oder ohne zusätzliche Leistung außer der von der Batterie 304. Entsprechend werden geforderte Aufgaben üblicherweise beendet, bevor die Batterie 304 vollständig entladen ist. Wie gezeigt ist, umfasst die NPMU 102 eine optionale CPU 306, die ein eingebettetes Betriebssystem betreibt. Entsprechend kann die Sicherungsaufgabe (d. h. Datenübertragung von flüchtigem Speicher 302 zu nichtflüchtigem Sekundärspeicher 310) durch eine Software durchgeführt werden, die auf der CPU 306 läuft. Die NI 114 initiiert Anforderungen unter der Steuerung der Software, die auf der CPU 306 läuft. Die CPU 306 kann Verwaltungsbefehle von dem Netzwerk empfangen und kann die angeforderte Verwaltungsoperation ausführen.
  • Verschiedene Ausführungsbeispiele der NPMU 102 können verwaltet werden, um eine Ressourcen-Zuordnung und -Gemeinschaftsverwendung zu ermöglichen. Bei einigen Ausführungsbeispielen wird die NPMU 102 durch einen Dauerspeicherver walter (PMM; PMM = persistent memory manager) 140 verwaltet, wie in 1A gezeigt ist. Der PMM 140 kann innerhalb oder außerhalb der NPMU 102 angeordnet sein. Wenn der PMM 140 innerhalb der NPMU 102 ist, können Prozessorknoten 104, 106 mit dem PMM 140 über ein SAN 112 und eine Netzwerkschnittstelle (NI) 114 kommunizieren, um angeforderte Verwaltungsaufgaben auszuführen, wie z. B. das Zuordnen oder das Aufheben der Zuordnung von Regionen von Dauerspeicher der NPMU 102, oder eine existierende Region von Dauerspeicher zu verwenden. Wenn ein PMM 140 außerhalb einer NPMU 102 ist, können Prozessorknoten 104, 106 Anforderungen an die NPMU 102 ausgeben, und die NPMU 102 kann schnittstellenmäßig mit einem PMM 140 über die NI 114, das SAN 112 und die NI 114 verbunden werden, die dem PMM 140 zugeordnet ist. Als weitere Alternative können die Prozessorknoten 104, 106 direkt mit dem PMM 140 über die NI 108 bzw. 110 und das SAN 112 und die NI 114 kommunizieren. Der PMM 140 kann dann die geeigneten Befehle an die NPMU 102 ausgeben, um angeforderte Verwaltungsaufgaben auszuführen.
  • Es wird darauf hingewiesen, da die NPMU 102 dauerhaft sein kann und einen selbstbeschreibenden Körper aus dauerhaften Daten beibehalten kann, können Metadaten, die sich auf existierende Dauerspeicherregionen beziehen, in der NPMU 102 gespeichert werden. Der PMM 140 kann Verwaltungsaufgaben ausführen, die die Metadaten auf der NPMU 102 konsistent mit den dauerhaften Daten halten, die in der NPMU 102 gespeichert sind. Auf diese Weise können die gespeicherten Daten der NPMU immer unter Verwendung der gespeicherten Metadaten der NPMU interpretiert werden und dadurch nach einem möglichen System-Leistungsabfall oder -Ausfall wiedergewonnen werden. Die NPMU 102 behält somit auf dauerhafte Weise nicht nur die Daten bei, die manipuliert werden, sondern auch den Zustand der Verarbeitung solcher Daten. Nach einem Bedarf zur Wiedergewinnung ist das System 100 unter Verwendung einer NPMU 102 somit in der Lage, eine Operation aus dem Speicherzustand wiederzugewinnen und fortzusetzen, in dem ein Leistungsabfall oder ein Betriebssystemzusammenbruch aufgetreten ist.
  • Wie Bezug nehmend auf 1A beschrieben wurde, liefert das SAN 112 eine Basisspeicherverwaltung und eine virtuelle Speicherunterstützung. Bei einer solchen Implementierung kann der PMM 140 die Logik in der NI 114 programmieren, um entfernte Lese- und Schreiboperationen zu ermöglichen, während gleichzeitig der Dauerspeicher vor einem nichtautorisierten oder unbeabsichtigten Zugriff durch alle außer einem ausgewählten Satz von Entitäten auf dem SAN 112 geschützt wird. Ferner, wie in 4 gezeigt ist, kann die NPMU 102 eine Virtuell-zu-Physisch-Adressübersetzung unterstützen. Zum Beispiel kann ein durchgehender virtueller Adressraum, wie z. B. virtuelle Adressen 402416 des Dauerspeichers (PM; PM = persistent memory), in physische Adressen 418448 eines nicht zusammenhängenden Dauerspeichers abgebildet oder übersetzt werden. Auf virtuelle Adressen des PM kann relativ zu einer Basisadresse Bezug genommen werden, durch N inkrementelle Adressen. Solche virtuellen PM-Adressen können jedoch ebenfalls nicht zusammenhängenden physischen PM-Adressen entsprechen.
  • Wie gezeigt ist, kann die virtuelle PM-Adresse 402 tatsächlich einer physischen PM-Adresse 436 entsprechen usw. Entsprechend kann die NPMU 102 die entsprechende Übersetzung von dem virtuellen PM-Adressraum zu dem physischen PM-Adressraum und umgekehrt liefern. Auf diese Weise ermöglicht der Übersetzungsmechanismus der NPMU 102, den Prozessorknoten 104, 106 zusammenhängende virtuelle Adressbereiche zu präsentieren, während weiterhin eine dynamische Verwaltung des physischen Speichers der NPMU ermöglicht wird. Dies kann wichtig sein, aufgrund des dauerhaften Wesens der Daten auf einer NPMU 102. Aufgrund von Konfigurationsänderungen kann sich die Anzahl von Prozessen, die auf eine bestimmte NPMU 102 zugreifen, oder möglicherweise die Größen ihrer jeweiligen Zuordnungen, im Lauf der Zeit ändern. Der Adressübersetzungsmechanismus ermöglicht es einer NPMU 102, solche Änderungen ohne einen Datenverlust ohne weiteres unterzubringen. Der Adressübersetzungsmechanismus ermöglicht ferner eine leichte und effiziente Verwendung einer Dauerspeicherkapazität weder durch Zwingen der Prozessorknoten 104, 106, zukünftige Speicherbedürfnisse vor einer Zuordnung vorherzusagen, noch durch zwingen der Prozessorknoten 104, 106, eine Dauerspeicherkapazität durch pessimistische Zuordnung zu verschwenden.
  • Unter Bezugnahme wiederum auf 1A ist ein ServerNet-SAN, das in seinem nativen Zugriffsvalidierungs- und Übersetzungsblock-Übertragungsmaschinenmodus (AVT/BTE-Modus) arbeitet, ein Beispiel eines Einzeladressraum-SAN 112. Jedes Ziel auf einem solchen SAN stellt denselben flachen virtuellen Netzwerkadressraum für alle Komponenten dar, die Anforderungen an das SAN 112 ausgeben, wie z. B. Prozessorknoten 104, 106. Virtuelle Netzwerkadressbereiche können durch das Ziel von virtuellen PM-Adressbereichen auf physische PM-Adressbereiche abgebildet werden, mit Seitenkörnung. Virtuelle Netzwerk-PM-Adressbereiche können ausschließlich auf einem einzelnen Initiator angeordnet sein (z. B. Prozessorknoten 104), und mehrere virtuelle PM-Adressen können auf dieselbe physische Seite zeigen.
  • Wenn der Prozessorknoten 104 anfordert, dass der PMM 140 eine Region aus Dauerspeicher in der NPMU 102 öffnet (d. h. zuordnet und dann mit der Verwendung beginnt), kann die NI 114 der NPMU durch den PMM 140 programmiert werden, um es einem Prozessorknoten 104 zu ermöglichen, auf die entsprechende Region zuzugreifen. Diese Programmierung ordnet einen Block aus virtuellen Netzwerkadressen zu und bildet (d. h. übersetzt) dieselben in einen Satz von physischen Seiten in dem physischen Speicher ab. Der Bereich der virtuellen PM-Adressen kann zusammenhängend sein, unabhängig davon, auf wie viele Seiten einer physischen PM-Adresse zugegriffen werden soll. Die physischen Seiten können jedoch irgendwo innerhalb des physischen PM-Speichers sein. Nach dem erfolgreichen Einrichten der Übersetzung kann die NPMU 102 den anfordernden Prozessorknoten 104 der virtuellen PM-Adresse des zusammenhängenden Blocks benachrichtigen. Sobald er offen ist, kann der Prozessorknoten 104 auf die NPMU-Speicherseiten zugreifen, durch Ausgeben von Lese- oder Schreiboperationen zu der NPMU 102. Die NPMU 102 kann ebenfalls nachfolgende anfordernde Prozessorknoten 106 benachrichtigen, die auf Daten zugreifen möchten, die durch den Prozessorknoten 104 der virtuellen Adresse des entsprechenden Speichers geliefert werden. Der PMM 140 kann die virtuelle Adresse in die entsprechende physische Adresse des Speichers umwandeln, um angeforderte Informationen zu liefern, wie z. B. den Prüfpunktzustand 120 und/oder Aktualisierungsbereiche 128132, um den Prozess 122 in dem Prozessor 106 zu sichern.
  • Bei einigen Ausführungsbeispielen kann der Sicherungsprozess 122 mit Informationen im Hinblick auf den Ort des Prüfpunktzustands 120 und/oder Aktualisierungsbereiche 128132 konfiguriert sein. Bei anderen Ausführungsbeispielen kann der Sicherungsprozess 122 eine Nachricht ausgeben, die den Ort des Prüfpunktzustands 120 und der Aktualisierungsbereiche 128132 von dem PMM 140, der NPMU 102 und/oder einem Primärprozess 116 bei Laufzeit anfordert. Der PMM 140, die NPMU 102 und/oder der Primärprozess 116 geben dann eine Antwortmeldung mit dem angeforderten Ort des Prüfpunktzustands 120 und den Aktualisierungsbereichen 128132 in der NPMU 102 aus. Bei einigen Ausführungsbeispielen zeichnet der PMM 120 Informationen im Hinblick auf die Start- und Endadresse der letzten Aktualisierung des Prüfpunktzustands 120 auf, egal ob die letzte Information in dem Prüfpunktzustand 120 oder den Aktualisierungsbereichen 128132 liegt. Die Start- und Endadresse des aktuellsten Prüfpunktzustands 120 und der aktuellsten Aktualisierungsbereiche 128132 kann dann nach Anfrage zu dem Sicherungsprozess 122 geliefert werden. Eine Erlaubnis zum Zugreifen auf Speicherressourcen in der NPMU 102 kann dann in der Übersetzungs- und Schutztabelle (TPT; TPT = Translation and Protection Table) 142 beibehalten werden, die in der NPMU 102 gezeigt ist. Der PMM 140 kann Einträge in der TPT 142 erzeugen, mit geeigneten Genehmigungen zu der Zeit des Erzeugens oder Öffnens von Dauerspeicherregionen. Zum Beispiel fordert ein Primärprozess 116 an, dass der PMM 140 eine Region mit Genehmigung zum Schreiben erzeugt. Nachfolgend öffnet der Sicherungsprozess 122 diese Region mit Genehmigung zum Lesen.
  • Der Primärprozess 116 und der Sicherungsprozess 122 können mit dem PMM 140 kommunizieren und auf die NPMU 102 durch ihre jeweiligen NIs zugreifen. Entsprechende Betriebssysteme (OS; OS = operating system) 144, 146 in den Prozessoren 104, 106 verwalten nicht nur den Zugriff auf die NIs 108, 110, sondern behalten ferner Kontextinformationen über die Verbindungen bei, die durch diese NI 108, 110 erzeugt werden. Informationen im Hinblick auf Zugriffsrecht und Verbindungskontexte können durch entsprechende Prozessoren 104, 106 gespeichert werden.
  • Der Primärprozess 116 und der Sicherungsprozess 122 müssen eine Genehmigung von ihren entsprechenden Betriebssystemen 144, 146 erhalten, um Anforderungen zu dem PMM 140 zu senden, um eine Region in der NPMU 102 zu öffnen oder zu erzeugen. Der PMM 140 richtet entsprechende Einträge in der TPT 142 ein und sendet die gewährten Zugriffsrechte zu dem Anforderer zurück.
  • Erst nachdem die Zugriffsrechte erhalten wurden, ermöglichen es die jeweiligen Betriebssysteme 144, 146 dem Primärprozess 116 oder dem Sicherungsprozess 122, die physischen Speicherinhalte aus der NPMU 102 in ihren offenen Regionen zu lesen oder zu schreiben. Die Zugriffsrechte werden durch die NI 114 verstärkt, die ihren Zustand aus Einträgen in die TPT 142 konfiguriert, die durch den PMM 140 an der NPMU 102 beibehalten wird.
  • Bei einigen Ausführungsbeispielen, wenn der Primärprozess 116 oder der Sicherungsprozess 122 auswählt, eine Verbin dung mit der NPMU 102 einzurichten, und dann Lese- oder Schreibanforderungen über diese Verbindung sendet, können die Zugriffsrechte an die Verbindung „gebunden" werden und müssen nicht mit jeder Anforderung wiederholt werden. Wenn der Primärprozess 116 und der Sicherungsprozess 122 auswählen, Anforderungen zu der NPMU 102 zu senden, ohne zuerst eine Verbindung einzurichten, dann kann jede Anforderung die Authentifizierungsinformationen umfassen, die in den Zugriffsrechten enthalten sind.
  • Die NPMU 102 kann den PMM 140 direkt authentifizieren. Eine Vielzahl von Implementierungsschemata kann verwendet werden. Bei einigen Ausführungsbeispielen nimmt der PMM 140 das Eigentum bestimmter NPMUs 102 an sich, wenn eine bestimmte NPMU 102 zuerst mit dem SAN 112 verbunden wird. In einer solchen Situation initiiert der PMM 140 die TPT 142 an der NPMU 102, um sich selbst Schreiberlaubnis in die TPT 142 zu gewähren. Andere Ausführungsbeispiele können eine passwortbasierte Authentifizierung verwenden, bei der die NPMU 102 Anforderungen von dem PMM 140 unter Verwendung eines vorkonfigurierten Passworts validiert, das nur den PMMs 140 bekannt ist. Eine Vielzahl von anderen Schemata ist möglich, einschließlich einer Zertifikat-basierten Authentifizierung, die erfordert, dass das SAN 112 einen Authentifizierungsdienst einer dritten Partei unterstützt, um die kommunizierenden Entitäten gegenüber einander zu authentifizieren.
  • Die weitere Funktionalität des vorliegenden Lösungsansatzes, wie gezeigt ist, z. B. in 1A, ist nun verständlich. Zum Beispiel, sobald der Prozessorknoten 104 mit dem PMM 140 kommuniziert hat, um eine Speicherregion zu öffnen, kann der Prozessorknoten 104 dann direkt auf den Speicher der NPMU 102 zugreifen, ohne durch den PMM 140 zu gehen. Zum Beispiel liefert ein entfernter Lesebefehl eine virtuelle Startnetzwerkadresse und einen Versatz sowie einen Kontextidentifizierer (in dem Fall von mehreren Adressräumen). Für eine ordnungsgemäße Operation sollte dieser Adressbereich innerhalb des Bereichs liegen, der durch den PMM 140 zugeordnet ist. Der Prozessorknoten 104 liefert der NI 108 einen entfernten Lesebefehl, der einen Zeiger zu einer lokalen physischen Speicherposition an dem Knoten 104 enthält. Die NI 108 in dem anfordernden Prozessorknoten 104 überträgt dann den entfernten Lesebefehl zu der NI 114 der NPMU 102 über das SAN 112. Die NI 114 übersetzt die virtuelle Startnetzwerkadresse in eine physische Adresse innerhalb der NPMU 102 unter Verwendung der Übersetzungstabellen, die der Region zugeordnet sind. Mit Hilfe der NI 114 sendet die NPMU 102 dann Daten zu dem Leseprozessorknoten zurück, beginnend an der übersetzten physischen Adresse. Die NI 114 fährt dann mit dem Übersetzen von Adressen fort, sogar wenn die NPMU 102 Seitengrenzen erreicht, da die physischen Seiten der zusammenhängenden virtuellen PM-Adressen nicht notwendigerweise in zusammenhängende physische PM-Adressen übersetzt werden. Wenn der Lesebefehl abgeschlossen ist, markiert die NI 108 die Leseübertragung als abgeschlossen. Außerdem kann ein wartender Prozess benachrichtigt und seinerseits verarbeitet werden.
  • Ein entferntes Schreiben in einen Dauerspeicher ist ähnlich. Der Prozessorknoten 104 liefert eine virtuelle PM-Netzwerk-Startadresse und einen Versatz sowie einen Kontextidentifizierer (in dem Fall von mehreren Adressräumen) für die NPMU 102. Wie vorher muss der virtuelle PM-Netzwerkadressbereich in den zugeordneten Bereich fallen. Der Prozessorknoten 104 liefert ferner einen Zeiger zu der physischen Adresse der Daten, die übertragen werden sollen. Die NI 108 in dem Prozessorknoten 104 gibt dann einen entfernten Schreibbefehl an die NI 114 in der NPMU 102 aus und beginnt mit dem Senden der Daten. Die NI 114 übersetzt die Startadresse in eine physische Adresse in der NPMU 102 unter Verwendung von Übersetzungstabellen, die der Region zugeordnet sind. Ferner speichert die NPMU 102 Daten beginnend an der übersetzten physischen Adresse. Die NI 114 fährt mit dem Übersetzen von Adressen fort, sogar wenn die NPMU 102 Seitengrenzen erreicht, da die physischen Seiten der zusammenhängenden virtuellen PM-Netzwerkadresse nicht notwendigerweise in zusammenhängende physische PM-Adressen übersetzt werden. Wenn der Schreibbefehl abgeschlossen ist, markiert die NI 108 die Schreibübertragung als abgeschlossen. Jegliche wartenden Prozesse können dann benachrichtigt und ihrerseits verarbeitet werden.
  • Es sollte darauf hingewiesen werden, dass bei dem Latenzzeittesten eines Ausführungsbeispiels der NPMU 102 gemäß den vorliegenden Lehren ein Speicherzugriff weit innerhalb 80 Mikrosekunden erreicht werden könnte. Das Verhalten der NPMU 102 kann vorteilhaft mit alternativen I/O-Operationen verglichen werden, die über 800 Mikrosekunden erfordern. Tatsächlich ist dieses Ergebnis möglich, da die Latenzzeiten der I/O-Operationen, einschließlich ihrer notwendigen Unterbrechungen, vermieden werden. Die NPMU gemäß den vorliegenden Lehren weist somit die Dauerhaftigkeit einer Speicherung mit dem feinkörnigen Zugriff des Systemspeichers auf.
  • Bei einigen Ausführungsbeispielen können die Prozessoreinheiten 104, 106, die NPMU 102 und der PMM 140 auf einem Computersystem 500, wie z. B. in 5 gezeigt ist, implementiert sein. Das Computersystem 500 ist üblicherweise mit einem Datenbus 502 konfiguriert, der verschiedene Komponenten kommunikativ koppelt. Wie in 5 gezeigt ist, ist eine zentrale Verarbeitungseinheit (CPU) 504 mit einem Bus 502 zum Verarbeiten von Informationen und Anweisungen gekoppelt, wie z. B. dem Betriebssystem 506 und einem oder mehreren Anwendungsprogrammen 508. Zum Beispiel kann das Betriebssystem 506 Betriebssysteme 144 oder 146 (1A) darstellen, und die Anwendungsprogramme 508 können den Primärprozess 116 oder den Sicherungsprozess 122 (1A) umfassen.
  • Ein computerlesbarer, flüchtiger Speicher, wie z. B. ein Direktzugriffsspeicher (RAM; RAM = random access memory) 509, kann ebenfalls mit dem Bus 502 gekoppelt sein, um Informationen und Anweisungen zu laden, die durch die CPU 504 ausgeführt werden sollen. Ferner kann ein computerlesbarer Nur-Lese-Speicher (ROM; ROM = read-only memory) 510 ebenfalls mit dem Bus 502 gekoppelt sein, um statische Informationen und Anweisungen zu speichern, auf die durch die CPU 504 zugegriffen werden kann. Eine Datenspeicherungsvorrichtung 512, wie z. B. ein magnetisches oder optisches Plattenmedium, kann ebenfalls mit dem Bus 502 gekoppelt sein, um große Mengen von Informationen und Anweisungen zu speichern. Eine alphanumerische Eingabevorrichtung 514, die alphanumerische und Funktions-Tasten umfasst, und eine Cursorsteuerungsvorrichtung 516, wie z. B. eine Maus, können mit dem Bus 502 gekoppelt sein, um es einem Benutzer zu ermöglichen, Informationen und Befehle in die CPU 504 einzugeben.
  • Eines oder mehrere Kommunikationstore 518 können in dem System 500 umfasst sein, um eine Kommunikation mit verschiedenen Peripheriegeräten zu ermöglichen, wie z. B. Druckern; externen Netzwerken, wie z. B. dem SAM 122; und anderen Verarbeitungssystemen, wie z. B. Prozessorknoten 104, 106 (1A). Das Kommunikationstor 518 kann ferner mit der Netzwerkschnittstelle (NI) 520 gekoppelt sein, um eine Kommunikation mit externen Netzwerken zu ermöglichen. Die NI 520 kann z. B. die NI 108, 114, 141 oder 110 in 1A darstellen.
  • Eine Anzeige 522 kann mit dem Bus 502 gekoppelt sein, um einem Benutzer des Systems 500 Informationen anzuzeigen. Die Anzeige 522 kann eine Flüssigkristallvorrichtung, eine Kathodenstrahlröhre oder eine andere Anzeigevorrichtung sein, die geeignet ist zum Erzeugen von graphischen Bildern und alphanumerischen Zeichen, die durch den Benutzer erkannt werden können. Die alphanumerische Eingabevorrichtung 514 und die Cursorsteuerungsvorrichtung 516 ermöglichen es dem Computerbenutzer, dynamisch die zweidimensionale Bewegung eines sichtbaren Symbols (Zeiger) auf der Anzeige 522 zu signalisieren.
  • Bei einigen Ausführungsbeispielen können Komponenten in dem Computersystem 500 miteinander und mit anderen externen Netzwerken über geeignete Schnittstellenverknüpfungen kommunizieren, wie z. B. über eine oder eine Kombination aus T1, ISDN, Kabelleitung, eine drahtlose Verbindung durch ein Zellular- oder Satellitennetzwerk, oder ein lokales Datentransportsystem, wie z. B. das Ethernet oder einen Token-Ring über ein lokales Netz. Ein geeignetes Kommunikationsprotokoll, wie z. B. das Hypertext Transfer Protocol (HTTP) oder das Transfer Control Protocol/Internet Protocol (TCP/IP), kann verwendet werden, um mit anderen Komponenten in den externen Netzwerken zu kommunizieren. Zusätzlich dazu kann das Computersystem 500 in einer geeigneten Rechenvorrichtung verkörpert sein und kann so persönliche Datenassistenten (PDAs), Telefone mit Anzeigebereichen, Netzwerkanwendungen, Desktops, Laptops, X-Fenster-Anschlüsse, oder andere solche Rechenvorrichtungen umfassen.
  • Logische Anweisungen können auf einem computerlesbaren Medium gespeichert sein oder in der Form von elektronischen Signalen zugegriffen werden. Die Logikmodule, Verarbeitungssysteme und Schaltungsanordnungen, die hierin beschrieben sind, können unter Verwendung einer geeigneten Kombination aus Hardware, Software und/oder Firmware implementiert sein, wie z. B. feldprogrammierbaren Gatterarrays (FPGA; FPGA = field programmable gate array), anwendungsspezifischen integrierten Schaltungen (ASIC; ASIC = application specific integrated circuit), oder anderen geeigneten Vorrichtungen. Die Logikmodule können unabhängig implementiert sein oder in einer der anderen Systemkomponenten umfasst sein. Auf ähnliche Weise sind hierin andere Komponenten als separate und einzelne Komponenten offenbart. Diese Komponenten können jedoch kombiniert werden, um größere oder unterschiedliche Softwaremodule, Logikmodule, integrierte Schaltungen oder elektrische Anordnungen zu bilden, falls erwünscht.
  • Während die vorliegende Offenbarung verschiedene Ausführungsbeispiele beschreibt, werden diese Ausführungsbeispiele als darstellend betrachtet und sollen den Schutzumfang der Ansprüche nicht einschränken. Viele Variationen, Modifikationen, Hinzufügungen und Verbesserungen der beschriebenen Ausführungsbeispiele sind möglich. Zum Beispiel können Durchschnittsfachleute auf dem Gebiet ohne weiteres die Prozesse implementieren, die notwendig sind, um die Strukturen und Verfahren bereitzustellen, die hierin offenbart sind. Abweichungen und Modifikationen der Ausführungsbeispiele, die hierin offenbart sind, können ebenfalls durchgeführt werden, während sie innerhalb des Schutzbereichs der nachfolgenden Ansprüche verbleiben. Die Funktionalität und die Kombinationen der Funktionalität der individuellen Module kann eine beliebige geeignete Funktionalität sein. In den Ansprüchen, außer anderweitig angezeigt, soll der Artikel „ein" sich auf „einen oder mehrere als einen" beziehen.

Claims (37)

  1. System (100) zum Speichern von Prüfpunktzustandsinformationen, das folgende Merkmale aufweist: eine Netzwerkschnittstelle (114) zu einem externen Netzwerk (112); und eine Dauerspeichereinheit (102), die mit der Netzwerkschnittstelle (114) gekoppelt ist, wobei: die Dauerspeichereinheit (102) konfiguriert ist, um die Prüfpunktdaten über einen direkten Speicherschreibbefehl von einem Primärprozess (116) zu empfangen, und um Zugriff auf die Prüfpunktdaten (120) über einen direkten Speicherlesebefehl von einem Sicherungsprozess (122) durch die Netzwerkschnittstelle (108, 110) zu liefern; und der Sicherungsprozess eine Wiedergewinnungsfähigkeit in dem Fall eines Ausfalls des Primärprozesses (116) liefert.
  2. System gemäß Anspruch 1, das ferner folgendes Merkmal aufweist: einen Dauerspeicherverwalter (140), der konfiguriert ist, um Adresskontextinformationen zu der Netzwerkschnittstelle (108) zu liefern.
  3. System gemäß Anspruch 1 oder 2, bei dem die Dauerspeichereinheit (102) konfiguriert ist, um die Prüfpunktdaten (120) zu einem anderen Prozessor (106) zu übertragen, und der Sicherungsprozess (122) durch den anderen Prozessor (106) ausgeführt wird.
  4. System gemäß einem der Ansprüche 1 bis 3, bei dem die Dauerspeichereinheit (102) die Prüfpunktdaten nach ei ner Anforderung durch den Sicherungsprozess (122) liefert, wenn der Primärprozess (106) ausfällt.
  5. System gemäß einem der Ansprüche 1 bis 4, bei dem die Dauerspeichereinheit (102) konfiguriert ist, um mehrere Sätze von Prüfpunktdaten zu speichern, die von dem Prozessor (104) in aufeinander folgenden Zeitintervallen gesendet werden.
  6. System gemäß Anspruch 5, bei dem die Dauerspeichereinheit (102) die mehreren Sätze von Prüfpunktdaten (120) nach einer Anforderung durch den Sicherungsprozess (122) gleichzeitig liefert.
  7. System gemäß einem der Ansprüche 1 bis 6, bei dem der Primärprozess (116) die Prüfpunktdaten (120) zu der Dauerspeichereinheit (102) liefert, unabhängig von dem Sicherungsprozess (122).
  8. System gemäß einem der Ansprüche 1 bis 7, bei dem die Dauerspeichereinheit (102) als ein Teil eines entfernten Direktspeicherzugriff-freigegeben Systembereichsnetzwerks (102) konfiguriert ist.
  9. System gemäß einem der Ansprüche 1 bis 8, bei dem die Dauerspeichereinheit (102) mit Adress-Schutz- und -Übersetzungs-Tabellen (142) konfiguriert ist, um Anforderungen von entfernten Prozessoren (104, 106) zu authentifizieren, und um Zugriffsinformationen zu den authentifizierten entfernten Prozessoren (104, 106) zu liefern.
  10. Verfahren zum Wiedergewinnen des Operationszustands eines Primärprozesses, das folgende Schritte aufweist: Abbilden einer virtuellen Adresse einer Dauerspeichereinheit (102) auf physische Adressen der Dauerspeichereinheit; Empfangen von Prüfpunktdaten im Hinblick auf den Operationszustand des Primärprozesses in der Dauerspeichereinheit; und Liefern der Prüfpunktdaten zu einem Sicherungsprozess (122) über einen Direktspeicherlesebefehl von dem Sicherungsprozess.
  11. Verfahren gemäß Anspruch 10, das ferner folgenden Schritt aufweist: Liefern von Kontextinformationen im Hinblick auf die Adressen zu dem Primärprozess (116) und dem Sicherungsprozess (122).
  12. Verfahren gemäß Anspruch 10 oder 11, das ferner folgenden Schritt aufweist: Liefern der Prüfpunktdaten zu dem Sicherungsprozess (122) nach dem Ausfall des Primärprozesses (116).
  13. Verfahren gemäß einem der Ansprüche 10 bis 12, das ferner folgenden Schritt aufweist: Überschreiben der Prüfpunktdaten mit den aktuellen Prüfpunktdaten.
  14. Verfahren gemäß einem der Ansprüche 10 bis 13, das ferner folgenden Schritt aufweist: Anhängen der aktualisierten Prüfpunktdaten an zumindest einen vorangehenden Satz der Prüfpunktdaten.
  15. Verfahren gemäß Anspruch 14, das ferner folgende Schritte aufweist: periodisches Liefern von zumindest einem Abschnitt der mehreren Sätzen von Prüfpunktdaten in dem Sicherungsprozess (122); und Löschen des Abschnitts der mehreren Sätze von Prüfpunktdaten.
  16. Verfahren gemäß Anspruch 15, das ferner folgende Schritte aufweist: Liefern von vorangehend nicht gelesenen Abschnitten der Prüfpunktdaten zu dem Sicherungsprozess nach dem Ausfall des Primärprozesses (116); und Wiederaufnehmen von Funktionen, die durch den Primärprozess mit dem Sicherungsprozess (122) ausgeführt wurden.
  17. Verfahren gemäß einem der Ansprüche 10 bis 16, das ferner folgende Schritte aufweist: Speichern von Zugriffsinformationen zu den physischen Adressen der Prüfpunktdaten in der Dauerspeichereinheit, wenn der Primärprozess (116) eine Speicherregion für die Prüfpunktdaten öffnet; und Liefern der Zugriffsinformationen zu nachfolgenden Anforderern der Prüfpunktdaten.
  18. Verfahren gemäß Anspruch 17, das ferner folgende Schritte aufweist: Einrichten einer Verbindung zu einem Prozess, der einen Zugriff auf die Prüfpunktdaten anfordert; und Binden der Zugriffsinformationen an die Verbindung.
  19. Verfahren gemäß Anspruch 17 oder 18, das ferner folgenden Schritt aufweist: Verifizieren der Authentifizierungsinformationen von den nachfolgenden Anforderern.
  20. Verfahren gemäß einem der Ansprüche 10 bis 19, das ferner folgenden Schritt aufweist: Authentifizieren eines Dauerspeicherverwalters während einer Initialisierung der Adress-Schutz- und -Übersetzungs-Tabellen an der Dauerspeichereinheit.
  21. Computerprodukt, das folgende Merkmale aufweist: computerausführbare Anweisungen, die betreibbar sind zum: Empfangen eines Direktspeicherzugriffsbefehls von einem entfernten Prozessor über ein Netzwerk, wobei der Direktspeicherzugriffsbefehl eine Referenz auf eine dauerhafte virtuelle Speicheradresse umfasst; Empfangen von Prüfpunktdaten von einem Primärprozess (116); Übersetzen der virtuellen Adresse in eine physische Adresse in der Dauerspeichereinheit; und Ermöglichen eines Zugriffs auf die Prüfpunktdaten zur Verwendung bei einem Sicherungsprozess (122).
  22. Computerprodukt gemäß Anspruch 21, das ferner folgendes Merkmal aufweist: computerausführbare Anweisungen, die wirksam sind zum: Liefern von Adresskontextinformationen zu dem Prozessor.
  23. Computerprodukt gemäß Anspruch 21 oder 22, das ferner folgendes Merkmal aufweist: computerausführbare Anweisungen, die wirksam sind zum: Speichern mehrerer Aktualisierungen zu den Prüfpunktdaten, die bei aufeinander folgenden Zeitintervallen gesendet werden.
  24. Computerprodukt gemäß einem der Ansprüche 21 bis 23, das ferner folgendes Merkmal aufweist: computerausführbare Anweisungen, die wirksam sind zum: Liefern der mehreren Sätze von Prüfpunktdaten gleichzeitig zu dem Sicherungsprozess (122).
  25. Computerprodukt gemäß einem der Ansprüche 21 bis 24, bei dem der Dauerspeicher als ein Teil eines entfernten direktspeicherzugriffs-freigegeben Systembereichsnetzwerks konfiguriert ist.
  26. Vorrichtung, die folgende Merkmale aufweist: eine Einrichtung zum kommunikativen Koppeln einer Dauerspeichereinheit mit einem Netzwerk, das einen direkten Zugriff auf die Dauerspeichereinheit ermöglicht; eine Einrichtung zum Abbilden von virtuellen Adressen der Dauerspeichereinheit auf physische Adressen der Dauerspeichereinheit; eine Einrichtung zum Empfangen von Prüfpunktdaten für einen Primärprozess (116) in der Dauerspeichereinheit über das Netzwerk; und eine Einrichtung zum Liefern der Prüfpunktdaten zu dem Sicherungsprozess über das Netzwerk.
  27. Vorrichtung gemäß Anspruch 26, die ferner folgendes Merkmal aufweist: eine Einrichtung zum Liefern von Kontextinformationen im Hinblick auf die Adressen zu dem Primärprozess und dem Sicherungsprozess.
  28. Vorrichtung gemäß Anspruch 26 oder 27, die ferner folgendes Merkmal aufweist: eine Einrichtung zum Liefern der Prüfpunktdaten zu dem Sicherungsprozess nach dem Ausfall des Primärprozesses.
  29. Vorrichtung gemäß einem der Ansprüche 26 bis 28, die ferner folgende Merkmale aufweist: eine Einrichtung zum Erzeugen mehrerer Sätze von Prüfpunktdaten durch Anhängen von aktualisierten Prüfpunktdaten an zumindest einen vorangehenden Satz der Prüfpunktdaten; und eine Einrichtung zum Überschreiben der Prüfpunktdaten mit aktuellen Prüfpunktdaten.
  30. Vorrichtung gemäß Anspruch 29, die ferner folgendes Merkmal aufweist: eine Einrichtung zum periodischen Liefern von zumindest einem Abschnitt der mehreren Sätze von Prüfpunktdaten in dem Sicherungsprozess.
  31. Vorrichtung gemäß Anspruch 30, die ferner folgendes Merkmal aufweist: eine Einrichtung zum Liefern von vorangehend nicht gelesenen Abschnitten der Prüfpunktdaten zu dem Sicherungsprozess nach einem Ausfall des Primärprozesses.
  32. Verfahren zum Aufzeichnen eines Betriebszustands eines Primärprozesses, das folgenden Schritt aufweist: Übertragen von Prüfpunktdaten im Hinblick auf den Operationszustand des Primärprozesses in der Dauerspeichereinheit über einen Direktspeicherzugriffs-Schreibbefehl.
  33. Verfahren gemäß Anspruch 32, das ferner folgenden Schritt aufweist: Überschreiben der Prüfpunktdaten in der Dauerspeichereinheit mit aktuellen Prüfpunktdaten über einen Direktspeicherzugriffs-Schreibbefehl.
  34. Verfahren gemäß Anspruch 32 oder 33, das ferner folgenden Schritt aufweist: Anhängen von aktualisierten Prüfpunktdaten an einen vorangehenden Satz der Prüfpunktdaten über einen Direktspeicherzugriffs-Schreibbefehl.
  35. Verfahren zum Wiedergewinnen des Operationszustands eines Primärprozesses, das folgenden Schritt aufweist: Übertragen eines Direktspeicherzugriffs-Lesebefehls über ein Netzwerk zu einer entfernten Dauerspeichereinheit von einem Sicherungsprozess für den Primärprozess.
  36. Verfahren gemäß Anspruch 35, das ferner folgenden Schritt aufweist: periodisches Übertragen des Direktspeicherzugriffs-Lesebefehls zum Wiedergewinnen von zumindest einem Abschnitt der Prüfpunktdaten für den Sicherungsprozess.
  37. Verfahren gemäß Anspruch 35 oder 36, das ferner folgenden Schritt aufweist: Übertragen des Direktspeicherzugriffs-Lesebefehls zum Wiedergewinnen von vorangehend nicht gelesenen Abschnitten der Prüfpunktdaten nach einem Ausfall des Primärprozesses.
DE102004038649.8A 2003-12-16 2004-08-09 Dauerspeichervorrichtung für Sicherungsprozess-Prüfpunktzustände Expired - Fee Related DE102004038649B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/737,374 2003-12-16
US10/737,374 US9213609B2 (en) 2003-12-16 2003-12-16 Persistent memory device for backup process checkpoint states

Publications (2)

Publication Number Publication Date
DE102004038649A1 true DE102004038649A1 (de) 2005-07-21
DE102004038649B4 DE102004038649B4 (de) 2016-05-19

Family

ID=34654098

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004038649.8A Expired - Fee Related DE102004038649B4 (de) 2003-12-16 2004-08-09 Dauerspeichervorrichtung für Sicherungsprozess-Prüfpunktzustände

Country Status (3)

Country Link
US (1) US9213609B2 (de)
JP (1) JP2005182781A (de)
DE (1) DE102004038649B4 (de)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8250295B2 (en) 2004-01-05 2012-08-21 Smart Modular Technologies, Inc. Multi-rank memory module that emulates a memory module having a different number of ranks
US7219210B2 (en) * 2004-03-30 2007-05-15 International Business Machines Corporation Memory allocation to multiple computing units
US8688800B2 (en) * 2005-10-05 2014-04-01 Hewlett-Packard Development Company, L.P. Remote configuration of persistent memory system ATT tables
KR20070120447A (ko) * 2006-06-19 2007-12-24 삼성전자주식회사 시스템 프로그램 갱신 장치 및 방법
US8396937B1 (en) * 2007-04-30 2013-03-12 Oracle America, Inc. Efficient hardware scheme to support cross-cluster transactional memory
US8301833B1 (en) 2007-06-01 2012-10-30 Netlist, Inc. Non-volatile memory module
US8874831B2 (en) 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US8904098B2 (en) 2007-06-01 2014-12-02 Netlist, Inc. Redundant backup using non-volatile memory
US7818610B2 (en) * 2007-09-27 2010-10-19 Microsoft Corporation Rapid crash recovery for flash storage
US8244954B2 (en) * 2008-10-10 2012-08-14 International Business Machines Corporation On-demand paging-in of pages with read-only file system
US8245013B2 (en) * 2008-10-10 2012-08-14 International Business Machines Corporation Mapped offsets preset ahead of process migration
US8346996B2 (en) * 2008-10-29 2013-01-01 Nec Corporation Information processing system
US8250588B2 (en) 2009-06-16 2012-08-21 Microsoft Corporation Persisting application state
US8769535B2 (en) * 2009-09-24 2014-07-01 Avaya Inc. Providing virtual machine high-availability and fault tolerance via solid-state backup drives
US8424009B2 (en) 2009-12-04 2013-04-16 Microsoft Corporation Lock resolution for distributed durable instances
US20110179303A1 (en) * 2010-01-15 2011-07-21 Microsoft Corporation Persistent application activation and timer notifications
US8296780B2 (en) * 2010-03-23 2012-10-23 Microsoft Corporation Reducing persistence commands
US8898508B2 (en) * 2010-05-18 2014-11-25 Vmware, Inc. Method and system for enabling checkpointing fault tolerance across remote virtual machines
US8898518B2 (en) * 2010-05-18 2014-11-25 Vmware, Inc. Method and system for enabling checkpointing fault tolerance across remote virtual machines
US8898509B2 (en) * 2010-05-18 2014-11-25 Vmware, Inc. Policy-based checkpointing fault tolerance across remote virtual machines
US10198350B2 (en) 2011-07-28 2019-02-05 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
US10380022B2 (en) 2011-07-28 2019-08-13 Netlist, Inc. Hybrid memory module and system and method of operating the same
US10838646B2 (en) 2011-07-28 2020-11-17 Netlist, Inc. Method and apparatus for presearching stored data
WO2013130106A1 (en) 2012-03-02 2013-09-06 Hewlett-Packard Development Company, L.P. Versioned memories using a multi-level cell
US10372551B2 (en) 2013-03-15 2019-08-06 Netlist, Inc. Hybrid memory system with configurable error thresholds and failure analysis capability
US9436600B2 (en) 2013-06-11 2016-09-06 Svic No. 28 New Technology Business Investment L.L.P. Non-volatile memory storage for multi-channel memory system
US9146819B2 (en) 2013-07-02 2015-09-29 International Business Machines Corporation Using RDMA for fast system recovery in virtualized environments
US10248328B2 (en) 2013-11-07 2019-04-02 Netlist, Inc. Direct data move between DRAM and storage on a memory module
JP6194764B2 (ja) * 2013-11-08 2017-09-13 富士通株式会社 情報処理装置、制御方法、および制御プログラム
US9792190B2 (en) 2015-06-26 2017-10-17 Intel Corporation High performance persistent memory
WO2017131779A1 (en) * 2016-01-29 2017-08-03 Hewlett Packard Enterprise Development Lp Versioning virtual address spaces
US10949378B2 (en) * 2016-05-31 2021-03-16 Fujitsu Limited Automatic and customisable checkpointing
US10565057B2 (en) * 2016-07-19 2020-02-18 Western Digital Technologies, Inc. Indirection-based storage system backups using markers including sets of serial numbers associated with segments
US9794366B1 (en) * 2016-10-19 2017-10-17 Red Hat, Inc. Persistent-memory management
US10255153B2 (en) 2016-10-21 2019-04-09 Microsoft Technology Licensing, Llc Systematic testing of failover and recovery for distributed system components
US10789179B1 (en) * 2017-10-06 2020-09-29 EMC IP Holding Company LLC Decentralized access management in information processing system utilizing persistent memory
US10523675B2 (en) * 2017-11-08 2019-12-31 Ca, Inc. Remote direct memory access authorization
US11029875B2 (en) * 2018-09-28 2021-06-08 Dell Products L.P. System and method for data storage in distributed system across multiple fault domains
EP3726384B1 (de) * 2019-04-18 2022-01-05 Bayerische Motoren Werke Aktiengesellschaft Verfahren und system zur aufrechterhaltung der konsistenz von zuständen während einer ausfallbetriebssichere kontextumschaltung
US11249804B2 (en) 2019-10-07 2022-02-15 International Business Machines Corporation Affinity based optimization of virtual persistent memory volumes
US11416148B2 (en) 2020-01-10 2022-08-16 Samsung Electronics Co., Ltd. System and method of providing atomicity to large writes to persistent memory
JP2021189719A (ja) 2020-05-29 2021-12-13 富士通株式会社 情報処理装置及び受信処理プログラム
US11847048B2 (en) 2020-09-24 2023-12-19 Advanced Micro Devices, Inc. Method and apparatus for providing persistence to remote non-volatile memory
US11249907B1 (en) 2020-12-08 2022-02-15 Micron Technology, Inc. Write-back cache policy to limit data transfer time to a memory device
US11775382B2 (en) 2020-12-09 2023-10-03 Micron Technology, Inc. Modified parity data using a poison data unit
US11416331B2 (en) 2020-12-09 2022-08-16 Micron Technology, Inc. Modified checksum using a poison data pattern
US11544007B2 (en) 2021-03-30 2023-01-03 Netapp, Inc. Forwarding operations to bypass persistent memory
US12112057B2 (en) 2021-07-19 2024-10-08 Micron Technology, Inc. Strategic memory cell reliability management
US11966608B2 (en) * 2021-11-15 2024-04-23 Samsung Electronics Co., Ltd. Memory controller with improved data reliability and memory system including the same
CN114090317B (zh) * 2021-11-16 2023-04-28 河南省儿童医院郑州儿童医院 一种高可用婴幼儿呼吸设备及系统

Family Cites Families (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US62005A (en) * 1867-02-12 John s
US71463A (en) * 1867-11-26 Edward -da-vies and richard hobbs taunton
US122001A (en) * 1871-12-19 Improvement in japanned furniture-springs
US709321A (en) * 1901-08-30 1902-09-16 Ichthyol Ges Cordes Hermanni & Co Process of separating sulfonic acids.
US4590554A (en) * 1982-11-23 1986-05-20 Parallel Computers Systems, Inc. Backup fault tolerant computer system
US4814971A (en) * 1985-09-11 1989-03-21 Texas Instruments Incorporated Virtual memory recovery system using persistent roots for selective garbage collection and sibling page timestamping for defining checkpoint state
US5446857A (en) * 1992-06-12 1995-08-29 Unisys Corporation Method and apparatus for writing files on nonerasable storage medium
US5715386A (en) * 1992-09-30 1998-02-03 Lucent Technologies Inc. Apparatus and methods for software rejuvenation
EP0680634B1 (de) * 1993-01-21 1997-05-14 Apple Computer, Inc. Vorrichtung und verfahren zur datensicherung von speichereinheiten in einem rechnernetzwerk
EP0880096B1 (de) * 1993-07-19 1999-09-29 Cheyenne Advanced Technology Limited Dateisicherungssystem
JP3504763B2 (ja) * 1994-08-19 2004-03-08 富士通株式会社 分散システムに使用されるクライアント,サーバ及び記憶装置並びに分散システムにおける資源管理用サーバの復旧方法
US6044475A (en) * 1995-06-16 2000-03-28 Lucent Technologies, Inc. Checkpoint and restoration systems for execution control
US6105148A (en) * 1995-06-16 2000-08-15 Lucent Technologies Inc. Persistent state checkpoint and restoration systems
JP3086779B2 (ja) * 1995-06-19 2000-09-11 株式会社東芝 メモリ状態復元装置
US5864657A (en) * 1995-11-29 1999-01-26 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
US5721918A (en) * 1996-02-06 1998-02-24 Telefonaktiebolaget Lm Ericsson Method and system for fast recovery of a primary store database using selective recovery by data type
JP2916420B2 (ja) * 1996-09-04 1999-07-05 株式会社東芝 チェックポイント処理加速装置およびデータ処理方法
US5842222A (en) * 1996-10-04 1998-11-24 Taiwan Semiconductor Manufacturing Company, Ltd. Production information system enhanced for availability
US5864849A (en) * 1996-12-16 1999-01-26 Lucent Technologies Inc. System and method for restoring a multiple checkpointed database in view of loss of volatile memory
US6393569B1 (en) * 1996-12-18 2002-05-21 Alexander S. Orenshteyn Secured system for accessing application services from a remote station
US6185702B1 (en) * 1997-01-24 2001-02-06 Kabushiki Kaisha Toshiba Method and system for process state management using checkpoints
US7082553B1 (en) * 1997-08-25 2006-07-25 At&T Corp. Method and system for providing reliability and availability in a distributed component object model (DCOM) object oriented system
JP2001523855A (ja) * 1997-11-14 2001-11-27 マラソン テクノロジーズ コーポレイション 故障回復/耐故障計算機
US6351754B1 (en) * 1998-06-23 2002-02-26 Oracle Corporation Method and system for controlling recovery downtime
US6141773A (en) * 1998-06-30 2000-10-31 Emc Corporation Method and apparatus for undoing changes to computer memory
US6195760B1 (en) * 1998-07-20 2001-02-27 Lucent Technologies Inc Method and apparatus for providing failure detection and recovery with predetermined degree of replication for distributed applications in a network
US6266781B1 (en) * 1998-07-20 2001-07-24 Academia Sinica Method and apparatus for providing failure detection and recovery with predetermined replication style for distributed applications in a network
US6449623B1 (en) * 1998-09-04 2002-09-10 Lucent Technologies Inc, Method and apparatus for detecting and recovering from data corruption of a database via read logging
EP1058190B1 (de) * 1999-06-01 2010-02-24 Hitachi, Ltd. Verfahren zur Datensicherung
US6622263B1 (en) * 1999-06-30 2003-09-16 Jack Justin Stiffler Method and apparatus for achieving system-directed checkpointing without specialized hardware assistance
JP3697124B2 (ja) 1999-12-15 2005-09-21 京セラミタ株式会社 画像形成装置
GB0002019D0 (en) * 2000-01-29 2000-03-22 Ibm Data migration tool
US6823474B2 (en) * 2000-05-02 2004-11-23 Sun Microsystems, Inc. Method and system for providing cluster replicated checkpoint services
WO2001093106A2 (en) * 2000-05-26 2001-12-06 Infolibria, Inc. High performance efficient subsystem for data object storage
US6957237B1 (en) * 2000-06-02 2005-10-18 Sun Microsystems, Inc. Database store for a virtual heap
US6941410B1 (en) * 2000-06-02 2005-09-06 Sun Microsystems, Inc. Virtual heap for a virtual machine
US7725558B2 (en) * 2000-07-26 2010-05-25 David Dickenson Distributive access controller
US6691245B1 (en) * 2000-10-10 2004-02-10 Lsi Logic Corporation Data storage with host-initiated synchronization and fail-over of remote mirror
US7085742B2 (en) * 2000-10-30 2006-08-01 Xybo Systems, Inc. Authenticating software licenses
US6658656B1 (en) * 2000-10-31 2003-12-02 Hewlett-Packard Development Company, L.P. Method and apparatus for creating alternative versions of code segments and dynamically substituting execution of the alternative code versions
US8949471B2 (en) * 2000-11-02 2015-02-03 Oracle America, Inc. TCP/UDP acceleration
JP2002140315A (ja) 2000-11-02 2002-05-17 Nec Soft Ltd 二重化マルチプロトコルスイッチ
US6704831B1 (en) * 2000-11-16 2004-03-09 Sun Microsystems, Inc. Method and apparatus for converting address information between PCI bus protocol and a message-passing queue-oriented bus protocol
US6742136B2 (en) * 2000-12-05 2004-05-25 Fisher-Rosemount Systems Inc. Redundant devices in a process control system
US20020103819A1 (en) * 2000-12-12 2002-08-01 Fresher Information Corporation Technique for stabilizing data in a non-log based information storage and retrieval system
US6766471B2 (en) * 2000-12-28 2004-07-20 International Business Machines Corporation User-level checkpoint and restart for groups of processes
US6662281B2 (en) * 2001-01-31 2003-12-09 Hewlett-Packard Development Company, L.P. Redundant backup device
US6847983B2 (en) * 2001-02-28 2005-01-25 Kiran Somalwar Application independent write monitoring method for fast backup and synchronization of open files
US6601148B2 (en) * 2001-03-01 2003-07-29 International Business Machines Corporation Infiniband memory windows management directly in hardware
JP2003015901A (ja) 2001-06-28 2003-01-17 Nissin Electric Co Ltd 監視制御装置
US20030018828A1 (en) * 2001-06-29 2003-01-23 International Business Machines Corporation Infiniband mixed semantic ethernet I/O path
US7251747B1 (en) * 2001-09-20 2007-07-31 Ncr Corp. Method and system for transferring data using a volatile data transfer mechanism such as a pipe
US6829685B2 (en) * 2001-11-15 2004-12-07 International Business Machines Corporation Open format storage subsystem apparatus and method
US6883068B2 (en) * 2001-12-17 2005-04-19 Sun Microsystems, Inc. Methods and apparatus for implementing a chche replacement scheme
US7047358B2 (en) * 2001-12-26 2006-05-16 Boon Storage Technologies, Inc. High-performance log-structured RAID
JP4108973B2 (ja) * 2001-12-26 2008-06-25 株式会社日立製作所 バックアップシステム
US6983303B2 (en) * 2002-01-31 2006-01-03 Hewlett-Packard Development Company, Lp. Storage aggregator for enhancing virtualization in data storage networks
US20030163780A1 (en) * 2002-02-18 2003-08-28 Marc Kossa Enhancing management of a distributed computer system
US20040030731A1 (en) * 2002-04-03 2004-02-12 Liviu Iftode System and method for accessing files in a network
JP2003330782A (ja) * 2002-05-10 2003-11-21 Hitachi Ltd 計算機システム
US20040010612A1 (en) * 2002-06-11 2004-01-15 Pandya Ashish A. High performance IP processor using RDMA
JP3774826B2 (ja) * 2002-07-11 2006-05-17 日本電気株式会社 情報処理装置
JP4186537B2 (ja) * 2002-07-23 2008-11-26 株式会社日立製作所 ディスクアレイシステムのバックアップ方法
FR2843209B1 (fr) * 2002-08-02 2006-01-06 Cimai Technology Procede de replication d'une application logicielle dans une architecture multi-ordinateurs, procede pour realiser une continuite de fonctionnement mettant en oeuvre ce procede de replication, et systeme multi-ordinateurs ainsi equipe.
US20040049580A1 (en) * 2002-09-05 2004-03-11 International Business Machines Corporation Receive queue device with efficient queue flow control, segment placement and virtualization mechanisms
US7299266B2 (en) * 2002-09-05 2007-11-20 International Business Machines Corporation Memory management offload for RDMA enabled network adapters
US6721806B2 (en) * 2002-09-05 2004-04-13 International Business Machines Corporation Remote direct memory access enabled network interface controller switchover and switchback support
US7069307B1 (en) * 2002-12-20 2006-06-27 Network Appliance, Inc. System and method for inband management of a virtual disk
US20040148360A1 (en) * 2003-01-24 2004-07-29 Hewlett-Packard Development Company Communication-link-attached persistent memory device
US7080221B1 (en) * 2003-04-23 2006-07-18 Emc Corporation Method and apparatus for managing migration of data in a clustered computer system environment
US7260737B1 (en) * 2003-04-23 2007-08-21 Network Appliance, Inc. System and method for transport-level failover of FCP devices in a cluster
US7577692B1 (en) * 2003-04-25 2009-08-18 Netapp, Inc. System and method for reserving space to guarantee file writability in a file system supporting persistent consistency point images
US8631133B1 (en) * 2003-05-06 2014-01-14 Symantec Operating Corporation Method and system of providing a virtual transport session
US7610348B2 (en) * 2003-05-07 2009-10-27 International Business Machines Distributed file serving architecture system with metadata storage virtualization and data access at the data server connection speed
US20040230862A1 (en) * 2003-05-16 2004-11-18 Arif Merchant Redundant data assigment in a data storage system
US7412460B2 (en) * 2003-06-19 2008-08-12 International Business Machines Corporation DBMS backup without suspending updates and corresponding recovery using separately stored log and data files
US7716323B2 (en) * 2003-07-18 2010-05-11 Netapp, Inc. System and method for reliable peer communication in a clustered storage system
US7308607B2 (en) * 2003-08-29 2007-12-11 Intel Corporation Periodic checkpointing in a redundantly multi-threaded architecture
US7165186B1 (en) * 2003-10-07 2007-01-16 Sun Microsystems, Inc. Selective checkpointing mechanism for application components
US7188273B2 (en) * 2003-11-24 2007-03-06 Tsx Inc. System and method for failover
US7912979B2 (en) * 2003-12-11 2011-03-22 International Business Machines Corporation In-order delivery of plurality of RDMA messages
US20050129039A1 (en) * 2003-12-11 2005-06-16 International Business Machines Corporation RDMA network interface controller with cut-through implementation for aligned DDP segments
US7529897B1 (en) * 2003-12-31 2009-05-05 Vmware, Inc. Generating and using checkpoints in a virtual computer system
JP2007279890A (ja) * 2006-04-04 2007-10-25 Hitachi Ltd バックアップシステム及びバックアップ方法
US8069366B1 (en) * 2009-04-29 2011-11-29 Netapp, Inc. Global write-log device for managing write logs of nodes of a cluster storage system

Also Published As

Publication number Publication date
US20050132250A1 (en) 2005-06-16
US9213609B2 (en) 2015-12-15
DE102004038649B4 (de) 2016-05-19
JP2005182781A (ja) 2005-07-07

Similar Documents

Publication Publication Date Title
DE102004038649B4 (de) Dauerspeichervorrichtung für Sicherungsprozess-Prüfpunktzustände
DE10348326A1 (de) Permanentspeichervorrichtung, die an eine Kommunikationsverbindung angeschlossen ist
DE102017104125B4 (de) Zonen von Übersetzungstabellen von logischen in physische Datenadressen mit parallelisiertem Log-Listenreplay
DE102017104150B4 (de) Abnutzungsausgleich in Speichervorrichtungen
DE69223287T2 (de) Steuerungsverfahren für eine Computerspeichereinrichtung
DE112011106078B4 (de) Verfahren, Vorrichtung und System zur Implementierung eines mehrstufigen Arbeitsspeichers mit Direktzugriff
DE102010013263B4 (de) Techniken, um ein energieausfallsicheres Caching ohne atomare Metadaten durchzuführen
DE112019000146T5 (de) Multivorrichtungsspeichersystem mit verteilter lese-/schreibverarbeitung
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden
DE112017003334T5 (de) Lastreduzierte nichtflüchtige speicherschnittstelle
DE102018113447A1 (de) Speichervorrichtung zum Koppeln mit einem Host und Verfahren zum Betreiben des Hosts und der Speichervorrichtung
DE102020132764A1 (de) Solid-state-drive mit externer softwareausführung zum bewirken von internen operationen des solid-state-drive
DE112019000149T5 (de) Multivorrichtungsspeichersystem mit gehosteten diensten auf peer-speichervorrichtungen
DE102015005744A1 (de) SYSTEM UND VERFAHREN FÜR PEER-ZU-PEER-PCIe-SPEICHERTRANSFERS
DE102017128952A1 (de) Datenspeichervorrichtung, die konfiguriert ist, um eine nicht-blockierende Steuerungs-Aktualisierungsoperation auszuführen
DE102005063250A1 (de) Datenspeicherungssteuersystem, Speicher- und Rechnersystem und Betriebsverfahren
DE112013004250T5 (de) Systeme, Verfahren und Schnittstellen für adaptive Persistenz
DE112019005511T5 (de) Halten von schreibbefehlen in gezonten namensräumen
DE102013110085A1 (de) Host zum Steuern einer nicht-flüchtigen Speicherkarte, System mit demselben sowie Verfahren zum Betreiben des Hosts und des Systems
DE112018004252T5 (de) Redundanzcodierstreifen auf der basis eines koordinierten internen adressschemas über mehrere vorrichtungen
DE112011103026T5 (de) Bedarfsgesteuertes Streaming von Abbildern virtueller Maschinen
DE112008002634T5 (de) Gerät, System und Verfahren zur systemübergreifenden Proxy-basierten Aufgabenentlastung
DE112012002241T5 (de) Migration eines transparenten Dateisystems zu einem neuen physischen Speicherort
DE102020122182A1 (de) Virtuelle-maschine-replikation und -migration
DE102019106126A1 (de) Massenspeicherungsvorrichtung mit vom Host eingeleiteter Pufferausräumung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R081 Change of applicant/patentee

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, HOU, US

Free format text: FORMER OWNER: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., HOUSTON, TEX., US

R082 Change of representative

Representative=s name: SCHOPPE, ZIMMERMANN, STOECKELER, ZINKLER, SCHE, DE

R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee