DE112021001517T5 - Abschirmen von nicht reagierenden anschlüssen in einer netzwerkstruktur - Google Patents

Abschirmen von nicht reagierenden anschlüssen in einer netzwerkstruktur Download PDF

Info

Publication number
DE112021001517T5
DE112021001517T5 DE112021001517.6T DE112021001517T DE112021001517T5 DE 112021001517 T5 DE112021001517 T5 DE 112021001517T5 DE 112021001517 T DE112021001517 T DE 112021001517T DE 112021001517 T5 DE112021001517 T5 DE 112021001517T5
Authority
DE
Germany
Prior art keywords
node
computer
response
management query
management
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112021001517.6T
Other languages
English (en)
Inventor
Constantine GAVRILOV
Eli KOREN
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112021001517T5 publication Critical patent/DE112021001517T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • 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/1608Error detection by comparing the output signals of redundant hardware
    • G06F11/1625Error detection by comparing the output signals of redundant hardware in communications, e.g. transmission, interfaces
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Ceramic Products (AREA)
  • Hardware Redundancy (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Ein durch einen Computer umgesetztes Verfahren gemäß einem Aspekt umfasst ein Bestimmen, ob ein Betriebssystem eines Knotens einer verteilten Datenübertragungsumgebung korrekt arbeitet, indem eine erste Verwaltungsabfrage zu dem Knoten gesendet wird; in Reaktion auf das Bestimmen, dass das Betriebssystem des Knotens nicht korrekt arbeitet, Bestimmen, ob der Knoten eine aktive Datenübertragungsverbindung hat, indem eine zweite Verwaltungsabfrage zu Anschlüssen gesendet wird, die dem Knoten zugehörig sind; und in Reaktion auf das Bestimmen, dass der Knoten eine aktive Datenübertragungsverbindung hat, Zurücksetzen der aktiven Datenübertragungsverbindung für den Knoten, indem eine Zurücksetzanforderung zu den Anschlüssen gesendet wird, die dem Knoten zugehörig sind.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung betrifft verteilte Datenverarbeitungssysteme, und insbesondere betrifft diese Erfindung ein Identifizieren und Adressieren von nicht reagierenden Anschlüssen von Knoten in einem verteilten Datenverarbeitungssystem.
  • Moderne verteilte Datenverarbeitungsumgebungen führen Datenverarbeitungsaufgaben durch, wobei eine effiziente gemeinsame Nutzung von Datenverarbeitungs- und Speicher-Ressourcen verwendet wird. Diese Umgebungen verwenden ein Datenübertragungsmedium mit hoher Geschwindigkeit und niedriger Latenz, um Daten zur Verarbeitung auf eine Mehrzahl von miteinander verbundenen Knoten zu verteilen. Allerdings treten Probleme auf, wenn einer oder mehrere Knoten nicht richtig funktionieren, aber immer noch eingehende Daten zur Verarbeitung empfangen. Dies kann zu einer Situation führen, in der die gesamte verteilte Datenverarbeitungsumgebung aus- und wieder eingeschaltet werden muss, um eine Verarbeitung in einer optimierten Weise fortzusetzen. Herkömmliche Mittel zum Identifizieren und Entfernen von fehlerhaften Knoten nehmen keine genaue Identifizierung vor und reagieren auf nicht richtig funktionierende Knoten mit aktiven Datenübertragungsanschlüssen.
  • Insbesondere unterstützen moderne schnelle Interconnect-Lösungen eine Hochgeschwindigkeits-Datenübertragung. Bei derartigen Geschwindigkeiten sieht ein Anschluss ein physisches Verbindungsproblem nicht und ist fähig, die korrekte Geschwindigkeit zu vermitteln, ohne auf Fehler zu stoßen, was schnell zu einer Stauung in der Netzwerkstruktur und den Anwendungsabläufen führt, wenn Daten nicht mit derselben Geschwindigkeit in Anspruch genommen werden können. Zum Beispiel kann ein Host-Channel-Adapter (HCA) ein Problem mit einem Übertragen von Daten zu dem Host-Arbeitsspeicher haben, weil er Hardware-Probleme bei Übertragungen mit Peripheriekomponentenverbindungen (PCI) hat, oder weil die Hardware für den direkten Arbeitsspeicherzugriff (DMA) eine Fehlfunktion aufweist.
  • Ähnliche Probleme können auftreten, wenn ein ganzer Knoten nicht richtig funktioniert und die System-Firmware das Betriebssystem davon abhält, ausgeführt zu werden, während ein Hardware-Fehler bearbeitet wird. Wenn der Fault Handler (Fehlerverarbeitungsroutine) für eine Ausführung erhebliche Zeit braucht, füllt sich die Netzwerkadapter-Warteschlange sehr schnell und ist nicht mehr in der Lage, neue Datenpakete zu empfangen. Wenn andererseits eine Fehlfunktion eines lokalen oder entfernt angeordneten HCA Anwendungen daran hindert, Daten mit erforderlicher Integrität und Geschwindigkeit zu senden und zu empfangen, können Anwendungen daran gehindert werden, Transaktionen abzuschließen.
  • Eine Situation wird kritisch, wenn die gesamte Struktur wegen eines Vorhandenseins eines abgestürzten Knotens mit Verbindungen in einem aktiven Zustand nicht richtig funktioniert. Bei vielen praktischen Fehlerszenarios können Interconnect-Verbindungen schnell ausfallen, wenn ein Betriebssystem nicht ausgeführt werden kann. Außerdem sind viele Interconnect-Strukturen zuverlässige Netzwerke, die Mechanismen zur Hardware-Punkteflusssteuerung (hardware credit flow control) verwenden und Zeitüberschreitungen für ein vorderes Ende von Warteschlangenpaketen und alle Pakete in der Übertragungswarteschlange haben. Die Transportstandards werden einer Komponente gerecht, die in dem Netzwerk vorhanden ist, aber keine Datenpakete senden oder empfangen kann.
  • Die Standards sind so definiert, dass ein Vorhandensein einer nicht richtig funktionierenden Komponente (z.B. eine, die keine Punkte (credits) freigibt, weil sie nicht in der Lage ist, Daten zu empfangen) nicht die gesamte Struktur über längere Zeit blockiert, was zu deren Zusammenbruch führt. Wenn jedoch ein Software-Teil in einem kritischen Abschnitt liegt, in dem er immer wieder mit einem fehlerhaften Bestimmungsort Daten austauschen muss, bis er einen Fehler sieht oder erfolgreich ist, um den kritischen Abschnitt zu verlassen, kann er andere Software-Teile (wie eine Grid-Logik eines Clusters) daran hindern, Daten austauschen, da alle Sendeanschlusspunkte von einer fehlerhaften Komponente wiederholt in Anspruch genommen werden. Somit ist die Software weder in der Lage, E/A-Dienste bereitzustellen (da sie sich in einem kritischen Abschnitt befindet), noch ist sie in der Lage, den kritischen Abschnitt abzubrechen, da die Datenübertragung, die dem kritischen Abschnitt zugehörig ist, anderen Verkehr blockiert, der den Fehler erkennen und den Fehler über das Grid übermitteln kann.
  • Außerdem zeigen reale Testszenarios, dass Netzwerkausrüstung die Transportstandards zum Freigeben der Übertragungspunkte, die von nicht reagierenden Knoten in der Verbindungsstruktur in Anspruch genommen werden, oft nicht einwandfrei umsetzt. Fehlerfreie Netzwerkadapter und Schalter können ein unberechenbares Verhalten in der Anwesenheit von nicht fehlerfreien Knoten in der Struktur zeigen, bis hin zu dem Punkt, dass die gesamte Struktur eingefroren wird, bis eine nicht fehlerfreie Komponente physisch aus der Struktur entfernt wird. In bestimmten Fällen kann der Fehler nach dem Entfernen der nicht fehlerfreien Komponente weiterhin bestehen und einen Neustart oder ein Zurücksetzen von Komponenten in der Struktur (Schalter und Knoten) erfordern, was zu einer längeren Ausfallzeit führt.
  • Daher wird eine rechtzeitige Erkennung von nicht reagierenden Knoten zu einer kritischen Aufgabe, die eine katastrophale Auswirkung von Unterbrechungsoperationen verhindern kann.
  • KURZDARSTELLUNG
  • Ein durch einen Computer umgesetztes Verfahren gemäß einem Aspekt umfasst ein Bestimmen, ob ein Betriebssystem eines Knotens einer verteilten Datenübertragungsumgebung korrekt arbeitet, indem eine erste Verwaltungsabfrage zu dem Knoten gesendet wird; in Reaktion auf das Bestimmen, dass das Betriebssystem des Knotens nicht korrekt arbeitet, Bestimmen, ob der Knoten eine aktive Datenübertragungsverbindung hat, indem eine zweite Verwaltungsabfrage zu Anschlüssen gesendet wird, die dem Knoten zugehörig sind; und in Reaktion auf das Bestimmen, dass der Knoten eine aktive Datenübertragungsverbindung hat, Zurücksetzen der aktiven Datenübertragungsverbindung für den Knoten, indem eine Zurücksetzanforderung zu den Anschlüssen gesendet wird, die dem Knoten zugehörig sind.
  • Auf diese Weise können problematische Knoten mit einer fehlerhaften Betriebssystemfunktionalität oder fehlerhaften Netzwerkadaptern sowie aktive Verbindungen abgeschirmt werden (z.B. identifiziert und aus der verteilten Datenverarbeitungsumgebung entfernt werden). Dadurch können alle Datenübertragungsrückstände beseitigt werden, die durch diese problematischen Knoten in der verteilten Datenverarbeitungsumgebung verursacht werden, und daher kann eine Funktionsweise aller Knoten in der verteilten Datenverarbeitungsumgebung verbessert werden.
  • In einem Aspekt sind sowohl die erste Verwaltungsabfrage als auch die zweite Verwaltungsabfrage Abfragen mit hoher Priorität. Auf diese Weise können Datenübertragungsprobleme in der verteilten Datenverarbeitungsumgebung minimiert werden, indem der verteilten Überwachung von Knoten in der Umgebung Priorität eingeräumt wird.
  • Gemäß einem weiteren Aspekt umfasst ein Computerprogrammprodukt für ein Abschirmen (fencing) von nicht reagierenden Anschlüssen in einer Netzwerkstruktur ein durch einen Computer lesbares Speichermedium mit darauf verkörperten Programmanweisungen, wobei das durch einen Computer lesbare Speichermedium kein flüchtiges Signal per se ist, und wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um den Prozessor zu veranlassen, ein Verfahren durchzuführen, das ein Bestimmen, ob ein Betriebssystem eines Knotens einer verteilten Datenverarbeitungsumgebung korrekt arbeitet, indem eine erste Verwaltungsabfrage durch Verwenden des Prozessors zu dem Knoten gesendet wird; in Reaktion auf das Bestimmen, dass das Betriebssystem des Knotens nicht korrekt arbeitet, ein Bestimmen, ob der Knoten eine aktive Datenübertragungsverbindung hat, indem durch Verwenden des Prozessors eine zweite Verwaltungsabfrage zu Anschlüssen gesendet wird, die dem Knoten zugehörig sind; und in Reaktion auf das Bestimmen, dass der Knoten eine aktive Datenübertragungsverbindung hat, ein Zurücksetzen der aktiven Datenübertragungsverbindung für den Knoten, indem durch Verwenden des Prozessors eine Zurücksetzanforderung zu den Anschlüssen gesendet wird, die dem Knoten zugehörig sind, umfasst.
  • In einem Aspekt darf ein Überwachungsknoten in der verteilten Datenverarbeitungsumgebung innerhalb eines vorbestimmten Zeitraums nur eine vorbestimmte Anzahl von Zurücksetzanforderungen zu einem anderen Knoten senden.
  • Auf diese Weise kann ein fehlerhafter Überwachungsknoten daran gehindert werden, einen anderen funktionierenden Knoten mit unbegründeten Zurücksetzanforderungen zu unterbrechen.
  • Gemäß einem weiteren Aspekt umfasst ein System einen Prozessor; und eine in den Prozessor integrierte Logik, die durch den Prozessor ausführbar ist oder in den Prozessor integriert und ausführbar ist, wobei die Logik konfiguriert ist, um zu bestimmen, ob ein Betriebssystem eines Knotens einer verteilten Datenübertragungsumgebung korrekt arbeitet, indem eine erste Verwaltungsabfrage zu dem Knoten gesendet wird; in Reaktion auf das Bestimmen, dass das Betriebssystem des Knotens nicht korrekt arbeitet, zu bestimmen, ob der Knoten eine aktive Datenübertragungsverbindung hat, indem eine zweite Verwaltungsabfrage zu Anschlüssen gesendet wird, die dem Knoten zugehörig sind; und in Reaktion auf das Bestimmen, dass der Knoten eine aktive Datenübertragungsverbindung hat, die aktive Datenübertragungsverbindung für den Knoten zurückzusetzen, indem eine Zurücksetzanforderung zu den Anschlüssen gesendet wird, die dem Knoten zugehörig sind.
  • Gemäß einem weiteren Aspekt umfasst ein durch einen Computer umgesetztes Verfahren ein Senden einer ersten Verwaltungsabfrage von einem ersten Knoten einer verteilten Datenverarbeitungsumgebung zu einem zweiten Knoten der verteilten Datenverarbeitungsumgebung, wobei die erste Verwaltungsabfrage einem Betriebssystem des zweiten Knotens zugehörig ist; in Reaktion auf ein Fehlschlagen, an dem ersten Knoten eine Reaktion auf die erste Verwaltungsabfrage von dem zweiten Knoten zu erhalten, Senden einer zweiten Verwaltungsabfrage von dem ersten Knoten zu einem oder mehreren Datenübertragungsanschlüssen, die dem zweiten Knoten zugehörig sind; und in Reaktion auf ein Empfangen, an dem ersten Knoten, einer Reaktion auf die zweite Verwaltungsabfrage von dem einen oder den mehreren Datenübertragungsanschlüssen, der bzw. die dem zweiten Knoten zugehörig sind, der bzw. die angeben, dass der zweite Knoten eine aktive Datenübertragungsverbindung hat, Senden einer Verbindungs-Zurücksetzanforderung zum Zurücksetzen des einen oder der mehreren Datenübertragungsanschlüsse des zweiten Knotens mit der aktiven Datenübertragungsverbindung von dem ersten Knoten zu dem einen oder den mehreren Datenübertragungsanschlüssen, der bzw. die dem zweiten Knoten zugehörig sind.
  • Auf diese Weise kann der erste Knoten als ein verwaltender Knoten wirken und kann das Entfernen des zweiten Knotens aus der verteilten Datenverarbeitungsumgebung in Reaktion auf ein Bestimmen eines spezifischen Szenarios auslösen, in dem der zweite Knoten ein Problem mit dem Betriebssystem oder ein Problem mit dem Netzwerkadapter hat und auch eine aktive Datenübertragungsverbindung hat. Dies kann eine Netzwerk-Stauung in der verteilten Datenverarbeitungsumgebung beseitigen, die durch den zweiten Knoten verursacht wird, und kann dadurch eine Leistung des ersten Knotens und aller anderen Datenverarbeitungsknoten in der verteilten Datenverarbeitungsumgebung verbessern.
  • Gemäß einem weiteren Aspekt umfasst ein Computerprogrammprodukt zum Umsetzen eines Verwaltungsknotens in einer verteilten Datenverarbeitungsumgebung ein durch einen Computer lesbares Speichermedium mit darauf verkörperten Programmanweisungen, wobei das durch einen Computer lesbare Speichermedium kein flüchtiges Signal per se ist, und wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um den Prozessor zu veranlassen, ein Verfahren durchzuführen, das ein Senden einer ersten Verwaltungsabfrage von einem ersten Knoten einer verteilten Datenverarbeitungsumgebung zu einem zweiten Knoten der verteilten Datenverarbeitungsumgebung durch Verwenden des Prozessors aufweist, wobei die erste Verwaltungsabfrage einem Betriebssystem des zweiten Knotens zugehörig ist; in Reaktion auf ein Fehlschlagen an dem ersten Knoten eine Reaktion auf die erste Verwaltungsabfrage von dem zweiten Knoten zu erhalten, Senden einer zweiten Verwaltungsabfrage durch Verwenden des Prozessors von dem ersten Knoten zu einem oder mehreren Datenübertragungsanschlüssen, die dem zweiten Knoten zugehörig sind; und in Reaktion auf ein Empfangen, an dem ersten Knoten, einer Reaktion auf die zweite Verwaltungsabfrage von dem einen oder den mehreren Datenübertragungsanschlüssen, der bzw. die dem zweiten Knoten zugehörig sind, der bzw. die angeben, dass der zweite Knoten eine aktive Datenübertragungsverbindung hat, Senden einer Verbindungs-Zurücksetzanforderung zum Zurücksetzen des einen oder der mehreren Datenübertragungsanschlüsse des zweiten Knotens mit der aktiven Datenübertragungsverbindung durch den ersten Knoten zu dem einen oder den mehreren Datenübertragungsanschlüssen, der bzw. die dem zweiten Knoten zugehörig sind.
  • Weitere Aspekte und Ausführungsformen der vorliegenden Erfindung, die in Verbindung mit den Zeichnungen beispielhaft die Grundgedanken der Erfindung veranschaulichen, werden aus der folgenden ausführlichen Beschreibung offenkundig.
  • Figurenliste
    • 1 stellt eine Cloud-Computing-Umgebung gemäß einem Aspekt der vorliegenden Erfindung dar.
    • 2 stellt Abstraktionsmodellschichten gemäß einem Aspekt der vorliegenden Erfindung dar.
    • 3 stellt einen Cloud-Computing-Knoten gemäß einem Aspekt der vorliegenden Erfindung dar.
    • 4 veranschaulicht ein Mehrebenen-Datenspeichersystem gemäß einem Aspekt der vorliegenden Erfindung.
    • 5 veranschaulicht einen Ablaufplan eines Verfahrens für ein Abschirmen von nicht reagierenden Anschlüssen in einer Netzwerkstruktur gemäß einem Aspekt der vorliegenden Erfindung.
    • 6 veranschaulicht einen Ablaufplan eines Verfahrens für ein Umsetzen eines Verwaltungsknotens in einer verteilten Datenverarbeitungsumgebung gemäß einem Aspekt der vorliegenden Erfindung.
    • 7 veranschaulicht ein beispielhaftes verteiltes Datenverarbeitungsnetzwerk gemäß einem Aspekt der vorliegenden Erfindung.
    • 8 veranschaulicht einen Ablaufplan eines Verfahrens zum Durchführen einer Knotenüberwachung in einer verteilten Datenverarbeitungsumgebung gemäß einem Aspekt der vorliegenden Erfindung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende Beschreibung wird zum Zweck einer Veranschaulichung der allgemeinen Grundgedanken der vorliegenden Erfindung angegeben und soll die hierin beanspruchten erfinderischen Konzepte keinesfalls einschränken. Ferner können bestimmte, hierin beschriebene Merkmale in Kombination mit anderen beschriebenen Merkmalen in jeder der verschiedenen möglichen Kombinationen und Variationen verwendet werden.
  • Sofern hierin nicht speziell anders definiert, gilt für alle Begriffe die breitestmögliche Interpretation, einschließlich aus der Patentschrift implizierten Bedeutungen sowie Bedeutungen, die von einem Fachmann verstanden werden und/oder wie sie in Wörterbüchern, Abhandlungen usw. definiert sind.
  • Es ist auch anzumerken, dass die Singularformen „ein“, „eine“ und „der/die/das“, wie in der Patentschrift und in den Ansprüchen im Anhang verwendet, Plural-Entsprechungen enthalten, sofern nicht anders angegeben. Es versteht sich des Weiteren, dass die Begriffe „weist auf“ und/oder „aufweisend“ bei Verwendung in dieser Patentschrift das Vorhandensein ausgewiesener Merkmale, Ganzzahlen, Schritte, Vorgänge, Elemente und/oder Komponenten angeben, das Vorhandensein oder die Hinzufügung von einem oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Vorgängen, Elementen, Komponenten und/oder Gruppen davon aber nicht ausschließen.
  • Die folgende Beschreibung offenbart mehrere Aspekte eines Abschirmens von nicht reagierenden Anschlüssen in einer Netzwerkstruktur.
  • In einem allgemeinen Aspekt umfasst ein durch einen Computer umgesetztes Verfahren ein Bestimmen, ob ein Betriebssystem eines Knotens einer verteilten Datenübertragungsumgebung korrekt arbeitet, indem eine erste Verwaltungsabfrage zu dem Knoten gesendet wird; in Reaktion auf das Bestimmen, dass das Betriebssystem des Knotens nicht korrekt arbeitet, Bestimmen, ob der Knoten eine aktive Datenübertragungsverbindung hat, indem eine zweite Verwaltungsabfrage zu Anschlüssen gesendet wird, die dem Knoten zugehörig sind; und in Reaktion auf das Bestimmen, dass der Knoten eine aktive Datenübertragungsverbindung hat, Zurücksetzen der aktiven Datenübertragungsverbindung für den Knoten, indem eine Zurücksetzanforderung zu den Anschlüssen gesendet wird, die dem Knoten zugehörig sind.
  • Auf diese Weise können problematische Knoten mit einer fehlerhaften Betriebssystemfunktionalität oder fehlerhaften Netzwerkadaptern sowie aktive Verbindungen abgeschirmt werden (z.B. identifiziert und aus der verteilten Datenverarbeitungsumgebung entfernt werden). Dadurch können alle Datenübertragungsrückstände beseitigt werden, die durch diese problematischen Knoten in der verteilten Datenverarbeitungsumgebung verursacht werden, und daher kann eine Funktionsweise aller Knoten in der verteilten Datenverarbeitungsumgebung verbessert werden.
  • In einem Aspekt sind sowohl die erste Verwaltungsabfrage als auch die zweite Verwaltungsabfrage Abfragen mit hoher Priorität. Auf diese Weise können Datenübertragungsprobleme in der verteilten Datenverarbeitungsumgebung minimiert werden, indem der verteilten Überwachung von Knoten in der Umgebung Priorität eingeräumt wird.
  • In einem weiteren allgemeinen Aspekt umfasst ein Computerprogrammprodukt für ein Abschirmen von nicht reagierenden Anschlüssen in einer Netzwerkstruktur ein durch einen Computer lesbares Speichermedium mit darauf verkörperten Programmanweisungen, wobei das durch einen Computer lesbare Speichermedium kein flüchtiges Signal per se ist, und wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um den Prozessor zu veranlassen, ein Verfahren durchzuführen, das ein Bestimmen, ob ein Betriebssystem eines Knotens einer verteilten Datenverarbeitungsumgebung korrekt arbeitet, indem eine erste Verwaltungsabfrage durch Verwenden des Prozessors zu dem Knoten gesendet wird; in Reaktion auf das Bestimmen, dass das Betriebssystem des Knotens nicht korrekt arbeitet, ein Bestimmen, ob der Knoten eine aktive Datenübertragungsverbindung hat, indem durch Verwenden des Prozessors eine zweite Verwaltungsabfrage zu Anschlüssen gesendet wird, die dem Knoten zugehörig sind; und in Reaktion auf das Bestimmen, dass der Knoten eine aktive Datenübertragungsverbindung hat, ein Zurücksetzen der aktiven Datenübertragungsverbindung für den Knoten, indem durch Verwenden des Prozessors eine Zurücksetzanforderung zu den Anschlüssen gesendet wird, die dem Knoten zugehörig sind, umfasst.
  • In einem Aspekt darf ein Überwachungsknoten in der verteilten Datenverarbeitungsumgebung innerhalb eines vorbestimmten Zeitraums nur eine vorbestimmte Anzahl von Zurücksetzanforderungen zu einem anderen Knoten senden.
  • Auf diese Weise kann ein fehlerhafter Überwachungsknoten daran gehindert werden, einen anderen funktionierenden Knoten mit unbegründeten Zurücksetzanforderungen zu unterbrechen.
  • In einem weiteren allgemeinen Aspekt umfasst ein System einen Prozessor; und eine in den Prozessor integrierte Logik, die durch den Prozessor ausführbar ist oder in den Prozessor integriert und ausführbar ist, wobei die Logik konfiguriert ist, um zu bestimmen, ob ein Betriebssystem eines Knotens einer verteilten Datenübertragungsumgebung korrekt arbeitet, indem eine erste Verwaltungsabfrage zu dem Knoten gesendet wird; in Reaktion auf das Bestimmen, dass das Betriebssystem des Knotens nicht korrekt arbeitet, zu bestimmen, ob der Knoten eine aktive Datenübertragungsverbindung hat, indem eine zweite Verwaltungsabfrage zu Anschlüssen gesendet wird, die dem Knoten zugehörig sind; und in Reaktion auf das Bestimmen, dass der Knoten eine aktive Datenübertragungsverbindung hat, die aktive Datenübertragungsverbindung für den Knoten zurückzusetzen, indem eine Zurücksetzanforderung zu den Anschlüssen gesendet wird, die dem Knoten zugehörig sind.
  • In einem weiteren allgemeinen Aspekt umfasst ein durch einen Computer umgesetztes Verfahren ein Senden einer ersten Verwaltungsabfrage von einem ersten Knoten einer verteilten Datenverarbeitungsumgebung zu einem zweiten Knoten der verteilten Datenverarbeitungsumgebung, wobei die erste Verwaltungsabfrage einem Betriebssystem des zweiten Knotens zugehörig ist; in Reaktion auf ein Fehlschlagen, an dem ersten Knoten eine Reaktion auf die erste Verwaltungsabfrage von dem zweiten Knoten zu erhalten, Senden einer zweiten Verwaltungsabfrage von dem ersten Knoten zu einem oder mehreren Datenübertragungsanschlüssen, der bzw. die dem zweiten Knoten zugehörig sind; und in Reaktion auf ein Empfangen, an dem ersten Knoten, einer Reaktion auf die zweite Verwaltungsabfrage von dem einen oder den mehreren Datenübertragungsanschlüssen, der bzw. die dem zweiten Knoten zugehörig sind, der bzw. die angeben, dass der zweite Knoten eine aktive Datenübertragungsverbindung hat, Senden einer Verbindungs-Zurücksetzanforderung zum Zurücksetzen des einen oder der mehreren Datenübertragungsanschlüsse des zweiten Knotens mit der aktiven Datenübertragungsverbindung von dem ersten Knoten zu dem einen oder den mehreren Datenübertragungsanschlüssen, der bzw. die dem zweiten Knoten zugehörig sind.
  • Auf diese Weise kann der erste Knoten als ein verwaltender Knoten wirken und kann das Entfernen des zweiten Knotens aus der verteilten Datenverarbeitungsumgebung in Reaktion auf ein Bestimmen eines spezifischen Szenarios auslösen, in dem der zweite Knoten ein Problem mit dem Betriebssystem oder ein Problem mit dem Netzwerkadapter hat und auch eine aktive Datenübertragungsverbindung hat. Dies kann eine Netzwerk-Stauung in der verteilten Datenverarbeitungsumgebung beseitigen, die durch den zweiten Knoten verursacht wird, und kann dadurch eine Leistung des ersten Knotens und aller anderen Datenverarbeitungsknoten in der verteilten Datenverarbeitungsumgebung verbessern.
  • In einem weiteren allgemeinen Aspekt umfasst ein Computerprogrammprodukt zum Umsetzen eines Verwaltungsknotens in einer verteilten Datenverarbeitungsumgebung ein durch einen Computer lesbares Speichermedium mit darauf verkörperten Programmanweisungen, wobei das durch einen Computer lesbare Speichermedium kein flüchtiges Signal per se ist, und wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um den Prozessor zu veranlassen, ein Verfahren durchzuführen, das ein Senden einer ersten Verwaltungsabfrage von einem ersten Knoten einer verteilten Datenverarbeitungsumgebung zu einem zweiten Knoten der verteilten Datenverarbeitungsumgebung durch Verwenden des Prozessors aufweist, wobei die erste Verwaltungsabfrage einem Betriebssystem des zweiten Knotens zugehörig ist; in Reaktion auf ein Fehlschlagen, an dem ersten Knoten eine Reaktion auf die erste Verwaltungsabfrage von dem zweiten Knoten zu erhalten, Senden einer zweiten Verwaltungsabfrage durch Verwenden des Prozessors von dem ersten Knoten zu einem oder mehreren Datenübertragungsanschlüssen, der bzw. die dem zweiten Knoten zugehörig sind; und in Reaktion auf ein Empfangen, an dem ersten Knoten, einer Reaktion auf die zweite Verwaltungsabfrage von dem einen oder den mehreren Datenübertragungsanschlüssen, der bzw. die dem zweiten Knoten zugehörig sind, der bzw. die angeben, dass der zweite Knoten eine aktive Datenübertragungsverbindung hat, Senden einer Verbindungs-Zurücksetzanforderung zum Zurücksetzen des einen oder der mehreren Datenübertragungsanschlüsse des zweiten Knotens mit der aktiven Datenübertragungsverbindung durch den ersten Knoten zu dem einen oder den mehreren Datenübertragungsanschlüssen, der bzw. die dem zweiten Knoten zugehörig sind.
  • Obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud Computing enthält, sollte klar sein, dass die Umsetzung der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Stattdessen können Aspekte der vorliegenden Erfindung gemeinsam mit jedem beliebigen Typ von jetzt bekannter oder später entwickelter Datenverarbeitungsumgebung umgesetzt werden.
  • Cloud Computing ist ein Dienstbereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Arbeitsspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Nutzungsmodelle umfassen.
  • Die Eigenschaften sind wie folgt:
    • On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter des Dienstes erforderlich ist.
  • Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
  • Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
  • Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt, und sie können jederzeit in jeder beliebigen Menge gekauft werden.
  • Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Der Ressourcen-Verbrauch kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Die Dienstmodelle sind wie folgt:
    • Software as a Service (SaaS): Die für den Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur ausgeführten Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. eine auf dem Web beruhende eMail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
  • Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
  • Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, Verarbeitung, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Die Nutzungsmodelle sind wie folgt:
    • Private Cloud: Die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann von der Organisation oder einer Drittpartei verwaltet werden und kann innerhalb oder außerhalb von Geschäftsräumen vorhanden sein.
  • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine bestimmte Community, die gemeinsame Problemstellungen hat (z.B. Berücksichtigung von Zielsetzung, Sicherheitsanforderungen, Richtlinien und Konformität). Sie kann von den Organisationen oder einer Drittpartei verwaltet werden und kann innerhalb oder außerhalb der Geschäftsräume vorhanden sein.
  • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und gehört einer Organisation, die Cloud-Dienste verkauft.
  • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die eine Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert, wobei der Schwerpunkt auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität liegt. Im Mittelpunkt von Cloud Computing steht eine Infrastruktur, die ein Netzwerk von miteinander verbundenen Knoten enthält.
  • Unter folgender Bezugnahme auf 1 wird eine veranschaulichende Cloud-Computing-Umgebung 50 dargestellt. Wie gezeigt, enthält die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10, mit denen lokale Datenverarbeitungseinheiten, die von Nutzern der Cloud verwendet werden, wie beispielsweise Personal Digital Assistant (PDA) oder Mobiltelefon 54A, Desktop-Computer 54B, Laptop-Computer 54C und/oder Fahrzeug-Computersystem 54N Daten austauschen können. Die Knoten 10 können untereinander Daten austauschen. Sie können physisch oder virtuell in einem oder mehreren Netzwerken gruppiert sein (nicht gezeigt), wie beispielsweise Private, Community, Public oder Hybrid Cloud, wie hierin oben beschrieben, oder in einer Kombination davon. Damit hat die Cloud-Computing-Umgebung 50 die Möglichkeit, eine Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Nutzer keinerlei Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sollte klar sein, dass die in 1 gezeigten Typen von Datenverarbeitungseinheiten 54A bis N nur zur Veranschaulichung dienen sollen, und dass die Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 mit jedem Typ einer computerisierten Einheit über jeden Typ von Netzwerk und/oder eine über ein Netzwerk adressierbare Verbindung (z.B. unter Verwendung eines Web-Browsers) Daten austauschen können.
  • Unter folgender Bezugnahme auf 2 wird ein Satz von funktionalen Abstraktionsschichten gezeigt, die von der Cloud-Computing-Umgebung 50 (1) bereitgestellt werden. Dabei sollte von Anfang an klar sein, dass die in 2 gezeigten Komponenten, Schichten und Funktionen lediglich zur Veranschaulichung dienen sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
  • Eine Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten zählen: Mainframes 61; Server auf Grundlage einer RISC- (Reduced Instruction Set Computer) Architektur 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke und Vernetzungskomponenten 66. In einigen Aspekten enthalten Software-Komponenten Software für Netzwerkanwendungsserver 67 und Datenbank-Software 68.
  • Eine Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, von der aus die folgenden beispielhaften virtuellen Entitäten bereitgestellt werden können: virtuelle Server 71; virtueller Speicher 72; virtuelle Netzwerke 73, einschließlich virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
  • In einem Beispiel kann eine Verwaltungsschicht 80 die im Folgenden beschriebenen Funktionen bereitstellen. Eine Ressourcenbereitstellung 81 sorgt für eine dynamische Beschaffung von Datenverarbeitungsressourcen und weiteren Ressourcen, die zum Ausführen von Aufgaben innerhalb der Cloud-Computing-Umgebung eingesetzt werden. Messung und Preisbestimmung 82 ermöglichen beim Einsatz von Ressourcen innerhalb der Cloud-Computing-Umgebung eine Kostenverfolgung und eine Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungssoftware umfassen. Eine Sicherheitsfunktion stellt eine Identitätsprüfung für Cloud-Nutzer und -Aufgaben sowie einen Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt den Zugang zur Cloud-Computing-Umgebung für Nutzer und Systemadministratoren bereit. Eine Service-Level- (Dienstgüte) Verwaltung 84 sorgt für Zuweisung und Verwaltung von Cloud-Computing-Ressourcen, sodass erforderliche Service-Levels eingehalten werden. Planung und Vertragserfüllung des Service Level Agreement (SLA) (Dienstgütevereinbarung) 85 stellen eine Vorab-Vereinbarung für und Beschaffung von Cloud-Computing-Ressourcen bereit, für die gemäß eines SLA eine zukünftige Anforderung erwartet wird.
  • Eine Arbeitslastenschicht 90 stellt Beispiele für eine Funktionalität bereit, für welche die Cloud-Computing-Umgebung genutzt werden kann. Zu Beispielen von Arbeitslasten und Funktionen, die von dieser Schicht aus bereitgestellt werden können, zählen: Zuordnung und Navigation 91; Software-Entwicklung und Lifecycle-Management 92; Bereitstellung von virtuellen Schulungen 93; Datenanalyseverarbeitung 94; Transaktionsverarbeitung 95; und verteilte Datenverarbeitung 96.
  • Unter folgender Bezugnahme auf 3 wird eine schematische Darstellung eines Beispiels für einen Cloud-Computing-Knoten gezeigt. Ein Cloud-Computing-Knoten 10 ist nur ein Beispiel für einen geeigneten Cloud-Computing-Knoten und soll keinerlei Einschränkung in Bezug auf den Schutzumfang der Nutzung oder Funktionalität von Aspekten der hierin beschriebenen Erfindung andeuten. Ungeachtet dessen lässt sich der Cloud-Computing-Knoten 10 umsetzen und/oder kann jede der hierin vorher erläuterten Funktionalitäten ausführen.
  • Im Cloud-Computing-Knoten 10 ist ein Computersystem/Server 12 vorhanden, das bzw. der mit zahlreichen anderen Universal- oder Sonder-Datenverarbeitungssystemumgebungen oder Konfigurationen betriebsbereit ist. Zu Beispielen für bekannte Datenverarbeitungssysteme, Umgebungen und/oder Konfigurationen, die für eine Verwendung mit dem Computersystem/Server 12 geeignet sein können, zählen PC-Systeme, Servercomputersysteme, Thin Clients, Thick Clients, Handheld- oder Laptop-Einheiten, Multiprozessorsysteme, Systeme auf Grundlage von Mikroprozessoren, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme und verteilte Cloud-Computing-Umgebungen, die beliebige der oben genannten Systeme oder Einheiten und dergleichen umfassen, sie sind aber nicht darauf beschränkt.
  • Das Computersystem/der Server 12 kann in dem allgemeinen Kontext von Anweisungen beschrieben werden, die durch ein Computersystem ausführbar sind, wie beispielsweise Programmmodule, die von einem Computersystem ausgeführt werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw. enthalten, die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen umsetzen. Das Computersystem/der Server 12 kann in verteilten Cloud-Computing-Umgebungen betrieben werden, in denen Aufgaben von entfernt angeordneten Verarbeitungseinheiten ausgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können Programmmodule sich sowohl in lokalen als auch entfernt angeordneten Computersystem-Speichermedien befinden, die Arbeitsspeicher-Speichereinheiten enthalten.
  • Wie in 3 gezeigt, wird das Computersystem/der Server 12 im Cloud-Computing-Knoten 10 in der Form einer Universal-Datenverarbeitungseinheit gezeigt. Die Komponenten des Computersystems/Servers 12 können einen oder mehrere Prozessoren oder Verarbeitungseinheiten 16, einen Systemarbeitsspeicher 28 und einen Bus 18 enthalten, der verschiedene Systemkomponenten einschließlich des Systemarbeitsspeichers 28 mit dem Prozessor 16 verbindet, sie sind aber nicht darauf beschränkt.
  • Der Bus 18 stellt einen oder mehrere von mehreren beliebigen Typen von Busstrukturen dar, einschließlich eines Arbeitsspeicherbusses oder Arbeitsspeichercontrollers, eines Peripheriebusses, eines Accelerated Graphics Port (beschleunigter Grafikanschluss) und eines Prozessors oder lokalen Busses unter Verwendung von einer aus einer Vielfalt von Busarchitekturen. Als Beispiel und nicht einschränkend umfassen derartige Architekturen einen Industry Standard Architecture- (ISA) Bus, Micro Channel Architecture- (MCA) Bus, Enhanced ISA- (EISA) Bus, einen lokalen Video Electronics Standards Association- (VESA) Bus und Peripheral Component Interconnect- (PCI) Bus.
  • Das Computersystem/der Server 12 enthält typischerweise eine Vielfalt von durch ein Computersystem lesbaren Medien. Derartige Medien können alle verfügbaren Medien sein, auf die von dem Computersystem/Server 12 zugegriffen werden kann, und sie enthalten sowohl flüchtige als auch nicht flüchtige Medien, austauschbare und nicht austauschbare Medien.
  • Der Systemarbeitsspeicher 28 kann durch das Computersystem lesbare Medien in der Form von flüchtigem Arbeitsspeicher enthalten wie beispielsweise einen Direktzugriffspeicher (RAM) 30 und/oder einen Cachespeicher 32. Das Computersystem/der Server 12 kann ferner weitere austauschbare/nicht austauschbare, flüchtige/nicht flüchtige Computersystem-Speichermedien enthalten. Nur als Beispiel kann das Speichersystem 34 zum Lesen von und Schreiben auf einen nicht austauschbaren, nicht flüchtigen Magnetdatenträger bereitgestellt werden (nicht gezeigt und typischerweise als „Festplatte“ bezeichnet). Obwohl nicht gezeigt, kann ein Magnetplattenlaufwerk zum Auslesen und Beschreiben einer austauschbaren, nicht flüchtigen Magnetplatte (z.B. eine „Diskette“) und ein optisches Plattenlaufwerk zum Auslesen oder Beschreiben einer austauschbaren, nicht flüchtigen optischen Platte wie einem CD-ROM, DVD-ROM oder andere optische Datenträger bereitgestellt werden. In solchen Fällen können alle über eine oder mehrere Datenträgerschnittstellen mit dem Bus 18 verbunden werden. Wie ferner im Folgenden dargestellt und beschrieben wird, kann der Arbeitsspeicher 28 mindestens ein Programmprodukt mit einem Satz (z.B. mindestens einem) von Programmmodulen enthalten, die konfiguriert sind, um die Funktionen von Aspekten der Erfindung auszuführen.
  • Ein Programm/Dienstprogramm 40, das einen Satz (mindestens einen) von Programmmodulen 42 aufweist, kann beispielsweise und nicht einschränkend im Arbeitsspeicher 28 gespeichert werden, ebenso wie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten. Das Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten oder eine Kombination davon können eine Umsetzung einer Netzwerkumgebung umfassen. Die Programmmodule 42 führen im Allgemeinen die Funktionen und/oder Methodiken von Aspekten der Erfindung aus, wie hierin beschrieben wird.
  • Das Computersystem/der Server 12 kann auch mit einer oder mehreren externen Einheiten 14 Daten austauschen, wie zum Beispiel einer Tastatur, einer Zeigeeinheit, einer Anzeige 24 usw.; einer oder mehreren Einheiten, die es einem Benutzer ermöglichen, mit dem Computersystem/Server 12 zu interagieren; und/oder allen Einheiten (z.B. Netzwerkkarte, Modem usw.), die es dem Computersystem/Server 12 ermöglichen, mit einer oder mehreren anderen Datenverarbeitungseinheiten Daten auszutauschen. Ein derartiger Datenaustausch kann über eine Eingabe-/Ausgabe- (E/A) Schnittstellen 22 erfolgen. Weiterhin kann das Computersystem/der Server 12 mit einem oder mehreren Netzwerken, wie beispielsweise einem lokalen Netzwerk (LAN), einem allgemeinen Weitverkehrsnetzwerk (WAN) und/oder einem öffentlichen Netzwerk (z.B. dem Internet) über einen Netzwerkadapter 20 Daten austauschen Wie dargestellt, tauscht der Netzwerkadapter 20 mit den anderen Komponenten des Computersystems/Servers 12 über den Bus 18 Daten aus. Es sollte klar sein, obwohl nicht gezeigt, dass andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server 12 verwendet werden könnten. Zu Beispielen gehören Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerk-Arrays, RAID- (Redundant Array of Independent Disks) Systeme, Bandlaufwerke und Speichersysteme zur Datenarchivierung usw., sie sind aber nicht darauf beschränkt.
  • Unter folgender Bezugnahme auf 4 wird ein Speichersystem 400 gemäß einem Aspekt gezeigt. Zu beachten ist, dass einige der in 4 gezeigten Elemente gemäß verschiedenen Aspekten als Hardware und/oder Software umgesetzt werden können. Das Speichersystem 400 kann einen Speichersystem-Manager 412 für einen Datenaustausch mit einer Mehrzahl von Medien auf mindesten einer höheren Speicherebene 402 und mindestens einer niedrigeren Speicherebene 406 umfassen. Die höhere Speicherebene bzw. höheren Speicherebenen 402 kann bzw. können ein oder mehrere wahlfreie Zugriffs- und/oder Direktzugriffsmedien 404 umfassen, wie zum Beispiel Festplatten in Festplattenlaufwerken (HDDs), nicht flüchtiger Arbeitsspeicher (NVM), Solid-State-Arbeitsspeicher in Solid State-Drives (SSDs), Flash-Arbeitsspeicher, SSD-Arrays, Flash-Arbeitsspeicher-Arrays usw. und/oder andere hierin erwähnte oder im Stand der Technik bekannte. Die niedrigere Speicherebene bzw. niedrigeren Speicherebenen 406 kann bzw. können bevorzugt ein oder mehrere Speichermedien mit geringerer Leistung 408 umfassen, darunter Medien mit sequentiellem Zugriff wie Magnetband in Bandlaufwerken und/oder optische Medien, HDDs mit langsamerem Zugriff, SSDs mit langsamerem Zugriff usw. und/oder andere hierin erwähnte oder im Stand der Technik bekannte. Eine oder mehrere zusätzliche Speicherebenen 416 können je nach Wunsch eines Entwicklers des Systems 400 jede Kombination von Arbeitsspeichermedien umfassen. Ebenso kann jede der höheren Speicherebenen 402 und/oder der niedrigeren Speicherebenen 406 eine Kombination von Speichereinheiten und/oder Speichermedien umfassen.
  • Der Speichersystem-Manager 412 kann mit den Speichermedien 404, 408 auf der bzw. den höheren Speicherebenen 402 und der bzw. den niedrigeren Speicherebenen 406 über ein Netzwerk 410 Daten austauschen, wie zum Beispiel ein Speicherbereichsnetzwerk (SAN), wie in 4 gezeigt, oder einen anderen geeigneten Netzwerktyp. Der Speichersystem-Manager 412 kann auch mit einem oder mehreren Host-Systemen (nicht gezeigt) über eine Host-Schnittstelle 414 Daten austauschen, die Teil des Speichersystem-Managers 412 sein kann. Der Speichersystem-Manager 412 und/oder jede andere Komponente des Speichersystems 400 kann in Hardware und/oder Software umgesetzt werden und kann einen Prozessor (nicht gezeigt) zum Ausführen von Befehlen eines im Stand der Technik bekannten Typs nutzen, wie zum Beispiel eine Zentraleinheit (CPU), eine feldprogrammierbare Gatter-Anordnung (FPGA, field programmable gate array) oder eine anwendungsspezifische integrierte Schaltung (ASIC) usw. Selbstverständlich kann jede Anordnung eines Speichersystems verwendet werden, wie dem Fachmann beim Lesen der vorliegenden Beschreibung klar sein wird.
  • In weiteren Aspekten kann das Speichersystem 400jede Anzahl von Datenspeicherebenen umfassen und kann dieselben oder verschiedene Arbeitsspeicher-Speichermedien innerhalb jeder Speicherebene enthalten. Zum Beispiel kann jede Datenspeicherebene denselben Typ von Arbeitsspeicher-Speichermedien umfassen, wie beispielsweise HDDs, SSDs, Medien mit sequenziellem Zugriff (Band in Bandlaufwerken, optische Platte in optischen Plattenlaufwerken usw.), Medien mit Direktzugriff (CD-ROM, DVD-ROM usw.) oder jede Kombination von Medienspeichertypen. In einer derartigen Konfiguration kann eine höhere Speicherebene 402 eine Mehrheit von SSD-Speichermedien zum Speichern von Daten in einer Speicherumgebung mit höherer Leistung umfassen, und restliche Speicherebenen, darunter die niedrigere Speicherebene 406 und zusätzliche Speicherebenen 416 können jede Kombination von SSDs, HDDs, Bandlaufwerken usw. umfassen, um Daten in einer Speicherumgebung mit niedrigerer Leistung zu speichern. Auf diese Weise können Daten, auf die häufiger zugegriffen wird, Daten mit einer höheren Priorität, Daten, auf die schneller zugegriffen werden muss usw. auf der höheren Speicherebene 402 gespeichert werden, während Daten ohne eines dieser Attribute in den zusätzlichen Speicherebenen 416, einschließlich der niedrigeren Speicherebene 406 gespeichert werden können. Selbstverständlich kann der Fachmann nach dem Lesen der vorliegenden Beschreibung viele andere Kombinationen von Speichermedientypen für die Umsetzung in verschiedenen Speicherkonzepten gemäß den hierin vorgestellten Aspekten entwickeln.
  • Gemäß einigen Aspekten kann das Speichersystem (wie beispielsweise 400) Logik umfassen, die zum Empfangen einer Anforderung zum Öffnen eines Datensatzes konfiguriert ist, Logik, die konfiguriert ist, um zu bestimmen, ob der angeforderte Datensatz auf einer niedrigeren Speicherebene 406 eines Mehrebenen-Datenspeichersystems 400 in mehreren zugehörigen Abschnitten gespeichert ist, Logik, die konfiguriert ist, um jeden zugehörigen Abschnitt des angeforderten Datensatzes zu einer höheren Speicherebene 402 des Mehrebenen-Datenspeichersystems 400 zu verschieben, und Logik, die konfiguriert ist, um den angeforderten Datensatz auf der höheren Speicherebene 402 des Mehrebenen-Datenspeichersystems 400 aus den zugehörigen Abschnitten zusammenzusetzen.
  • Selbstverständlich kann diese Logik gemäß verschiedenen Aspekten als Verfahren auf jeder Einheit und/oder jedem System oder als ein Computerprogrammprodukt umgesetzt werden.
  • Unter folgender Bezugnahme auf 5 wird ein Verfahren 500 gemäß einem Aspekt gezeigt. Das Verfahren 500 kann gemäß der vorliegenden Erfindung in jeder der unter anderem in 1 bis 4 und 7 dargestellten Umgebungen in verschiedenen Aspekten ausgeführt werden. Natürlich können mehr oder weniger als die speziell in 5 beschriebenen Operationen im Verfahren 500 enthalten sein, wie einem Fachmann beim Durchlesen der vorliegenden Beschreibungen klar sein wird.
  • Jeder der Schritte des Verfahrens 500 kann von jeder geeigneten Komponente der Betriebsumgebung ausgeführt werden. In verschiedenen Aspekten kann das Verfahren 500 zum Beispiel teilweise oder ganz durch einen oder mehrere Server, Computer oder irgendeine andere Einheit mit einem oder mehreren darin integrierten Prozessoren ausgeführt werden. Der Prozessor, z.B. Verarbeitungsschaltung(en), Chip(s) und oder Modul(e), die in Hardware und/oder Software umgesetzt sind und bevorzugt mindestens eine Hardware-Komponente haben, können in jeder Einheit verwendet werden, um einen oder mehrere Schritte des Verfahrens 500 auszuführen. Veranschaulichende Prozessoren umfassen eine Zentraleinheit (CPU), eine anwendungsspezifische integrierte Schaltung (ASIC), ein feldprogrammierbares Gate-Array (FPGA) usw., Kombinationen davon oder irgendeine im Stand der Technik bekannte andere geeignete Datenverarbeitungseinheit.
  • Wie in 5 gezeigt, kann das Verfahren 500 mit einer Operation 502 beginnen, in der bestimmt wird, ob ein Betriebssystem eines Knotens einer verteilten Datenverarbeitungsumgebung korrekt arbeitet, indem eine erste Verwaltungsabfrage zu dem Knoten gesendet wird. In einem Aspekt kann die verteilte Datenverarbeitungsumgebung eine Mehrzahl von Knoten umfassen (z.B. Datenverarbeitungsknoten usw.), die zusammenarbeiten, um einen oder mehrere Datenverarbeitungsvorgänge durchzuführen (z.B. Ausführen von Anwendungen, Verarbeiten von Daten usw.). Zum Beispiel kann der Knoten eine Datenverarbeitungseinheit (z.B. einen Computer, einen Server usw.) mit konkreten Hardware-Speicher- und Datenverarbeitungsressourcen umfassen.
  • In einem Aspekt kann bestimmt werden, ob ein Netzwerkadapter des Knotens korrekt arbeitet. Zum Beispiel kann die erste Verwaltungsabfrage auch bestimmen, ob der Netzwerkadapter des Knotens zugänglich, verfügbar, betriebsfähig usw. ist. In einem weiteren Aspekt kann die erste Verwaltungsabfrage prüfen, ob das Betriebssystem des Knotens zugänglich ist (z.B. ob das Betriebssystem durch Verwenden seines Anschlusses arbeiten kann).
  • Außerdem kann die verteilte Datenverarbeitungsumgebung in einem Aspekt eine Vielfalt von Anwendungen umsetzen (z.B. Anwendungen für den Aktienmarkt, Speicherdienste, Datenbankdienste usw.). In einem weiteren Aspekt können sich alle Knoten in der verteilten Datenverarbeitungsumgebung in derselben physischen Speicherstelle befinden und können durch Verwenden von Punkt-zu-Punkt-Verbindungen verbunden werden.
  • Ferner können sich in einem Aspekt die Knoten in der verteilten Datenverarbeitungsumgebung in verschiedenen physischen Speicherstellen befinden und können durch Verwenden von schnellen Verbindungen (z.B. Fiber-Channel-Verbindungen usw.) verbunden werden. In einem weiteren Aspekt können alle Knoten in der verteilten Datenverarbeitungsumgebung mit einer niedrigen Latenz über eine oder mehrere Verbindungen mit hoher Datenrate (z.B. schnelle Ethernet-Verbindungen, InfiniBand- (IB) Verbindungen, Verbindungen auf Hardware-Ebene usw.) untereinander Daten austauschen. In noch einem weiteren Aspekt können Knoten in der verteilten Datenverarbeitungsumgebung Ressourcen (z.B. Verarbeitungskapazität, Arbeitsspeicher usw.) untereinander in der verteilten Datenverarbeitungsumgebung gemeinsam nutzen.
  • Noch weiter kann die verteilte Datenverarbeitungsumgebung in einem Aspekt eine Grid-Architektur, eine Netzwerkstruktur usw. umfassen. In einem weiteren Aspekt kann der erste Knoten der verteilten Datenverarbeitungsumgebung die erste Verwaltungsabfrage direkt zu dem zweiten Knoten senden (z.B. über eine Punkt-zu-Punkt-Verbindung zwischen den beiden Knoten). In noch einem weiteren Aspekt kann ein erster Knoten der verteilten Datenverarbeitungsumgebung die erste Verwaltungsabfrage indirekt zu dem zweiten Knoten senden (z.B. über einen Schalter, der sich zwischen den beiden Knoten befindet usw.).
  • In einem Aspekt können der erste Knoten und der zweite Knoten auch benachbarte Knoten in der verteilten Datenverarbeitungsumgebung sein. In einem weiteren Aspekt kann der erste Knoten die erste Verwaltungsabfrage in Reaktion auf ein Bestimmen, dass der zweite Knoten ein zu dem ersten Knoten benachbarter Knoten ist, zu dem zweiten Knoten senden. In noch einem weiteren Aspekt kann ein Daemon (z.B. eine Anwendung oder ein Code wie beispielweise ein Überwachungs-Agent usw.), der auf dem ersten Knoten ausgeführt wird, die erste Verwaltungsabfrage von dem ersten Knoten zu dem zweiten Knoten senden.
  • Außerdem kann in einem Aspekt die erste Verwaltungsabfrage eine Strukturverwaltungsabfrage umfassen, die in dem Betriebssystem des empfangenden Knotens endet. Zum Beispiel kann die erste Verwaltungsabfrage in einer InfiniBand-Struktur eine SMP-(Subnet Management Protocol - Teilnetzverwaltungsprotokoll) MAD-(Management Diagram - Verwaltungsdiagramm) Abfrage des Attributtyps SMINFO (Subnet Manager Information - Teilnetz-Managerinformationen) umfassen, die durch das Betriebssystem beendet wird. In einem weiteren Aspekt kann ein Betriebssystem des empfangenden Knotens in Reaktion auf ein Empfangen der ersten Verwaltungsabfrage eine Reaktion an die erste Verwaltungsabfrage senden. Zum Beispiel kann die Reaktion nur gesendet werden, wenn das Betriebssystem des empfangenden Knotens korrekt arbeitet. In einem weiteren Beispiel kann die Reaktion nicht gesendet werden, wenn das Betriebssystem des empfangenden Knotens nicht korrekt arbeitet, nicht funktionsfähig usw. ist.
  • Ferner kann das Verfahren 500 mit einer Operation 504 fortfahren, in der in Reaktion auf das Bestimmen, dass das Betriebssystem des Knotens nicht korrekt arbeitet, bestimmt wird, ob der Knoten eine aktive Datenübertragungsverbindung hat, indem eine zweite Verwaltungsabfrage zu Anschlüssen gesendet wird, die dem Knoten zugehörig sind. In einem Aspekt kann bestimmt werden, dass das Betriebssystem des Knotens nicht korrekt arbeitet in Reaktion auf ein Bestimmen, dass auf die erste Verwaltungsabfrage keine Reaktion von dem Knoten innerhalb eines vorbestimmten Zeitraums erhalten wurde.
  • Zum Beispiel kann die erste Verwaltungsabfrage einmal oder mehrmals erneut an den Knoten gesendet werden in Reaktion auf ein Bestimmen, dass die Reaktion auf die erste Verwaltungsabfrage von dem Knoten nicht innerhalb eines vorbestimmten Zeitraums empfangen wurde. In einem weiteren Beispiel kann bestimmt werden, dass der Knoten nicht korrekt arbeitet in Reaktion auf ein Bestimmen, dass von dem Knoten nach einem vorbestimmten mehrmaligen erneuten Senden der ersten Verwaltungsabfrage zu dem Knoten keine Reaktion empfangen wurde.
  • Des Weiteren kann in Reaktion auf ein Bestimmen, dass eine Reaktion auf die erste Verwaltungsabfrage von dem Knoten innerhalb eines vorbestimmten Zeitraums empfangen wurde, in einem Aspekt bestimmt werden, dass das Betriebssystem des zweiten Knotens korrekt arbeitet. Zum Beispiel kann in Reaktion auf ein Bestimmen, dass das Betriebssystem des Knotens korrekt arbeitet, die erste Verwaltungsabfrage zu einem späteren Zeitpunkt gemäß einem vorbestimmten Überwachungsplan nochmals an den Knoten gesendet werden.
  • In einem Aspekt kann die Reaktion auch an dem Knoten empfangen werden, der die erste Verwaltungsabfrage gesendet hat. Wenn zum Beispiel ein erster Knoten der verteilten Datenverarbeitungsumgebung die erste Verwaltungsabfrage zu dem zweiten Knoten gesendet hat, kann die Reaktion von dem zweiten Knoten an dem ersten Knoten empfangen werden. In einem weiteren Aspekt kann in Reaktion auf ein Bestimmen, dass eine Reaktion auf die erste Verwaltungsabfrage von dem Knoten nicht innerhalb eines vorbestimmten Zeitraums empfangen wurde, die zweite Verwaltungsabfrage zu Anschlüssen gesendet werden, die dem Knoten zugehörig sind. Außerdem kann die zweite Verwaltungsabfrage prüfen, ob der Knoten eine aktive Datenübertragungsverbindung hat, indem ein relevanter Netzwerkanschluss abgefragt wird, ob seine Verbindung aktiv ist. In einem Aspekt kann eine aktive Datenübertragungsverbindung eine aktive Verbindung zwischen einem Anschluss auf dem Knoten und einem weiteren Anschluss auf einem weiteren Knoten umfassen. In diesem Fall kann der erste Knoten der verteilten Datenübertragungsumgebung die zweite Verwaltungsabfrage direkt zu seinem lokalen Anschluss senden, der mit dem zweiten Knoten verbunden ist. In einem weiteren Aspekt kann eine aktive Datenübertragungsverbindung eine aktive Verbindung zwischen einem Anschluss auf dem Knoten und einem weiteren Anschluss auf dem Schalter umfassen. In diesem Fall kann der erste Knoten der verteilten Datenübertragungsumgebung die zweite Verwaltungsabfrage zu dem Schalter senden, die den Zustand des Anschlusses des zweiten Knotens abfragt. In noch einem weiteren Aspekt kann der erste Knoten der verteilten Datenverarbeitungsumgebung die zweite Verwaltungsabfrage indirekt oder direkt zu dem Anschluss in dem zweiten Knoten senden (z.B. über einen Schalter, der sich zwischen den beiden Knoten befindet, oder durch Verwenden einer direkten Verbindung). Zum Beispiel kann in Reaktion auf ein Bestimmen, dass das Betriebssystem (BS) des zweiten Knotens nicht korrekt arbeitet, ein erster Knoten alle Anschlüsse prüfen, die dem zweiten Knoten zugehörig sind, um zu bestimmen, ob irgendwelche Anschlüsse des zweiten Knotens vorhanden und aktiv sind.
  • Wenn ferner in einem Aspekt alle Anschlüsse, die dem zweiten Knoten zugehörig sind, vorhanden und aktiv sind, kann für den zweiten Knoten bestimmt werden, dass er eine aktive Datenübertragungsverbindung hat. In einem weiteren Aspekt können die abgefragten Netzwerkanschlüsse auf die zweite Verwaltungsabfrage reagieren, indem sie alle aktiven Verbindungen angeben, die von dem Knoten gehalten werden (z.B. über einen oder mehrere Anschlüsse des Knotens usw.). In noch einem weiteren Aspekt kann die Reaktion an dem Knoten empfangen werden, der die zweite Verwaltungsabfrage gesendet hat. Wenn zum Beispiel ein erster Knoten der verteilten Datenverarbeitungsumgebung die zweite Verwaltungsabfrage zu Anschlüssen gesendet hat, die dem zweiten Knoten zugehörig sind, kann die Reaktion von den abgefragten Netzwerkanschlüssen an dem ersten Knoten empfangen werden.
  • Des Weiteren kann das Verfahren 500 mit einer Operation 506 fortfahren, wobei in Reaktion auf ein Bestimmen, dass der Knoten eine aktive Datenübertragungsverbindung hat, die aktive Datenübertragungsverbindung des Knotens zurückgesetzt wird, indem eine Zurücksetzanforderung zu einem oder mehreren Netzwerkanschlüssen gesendet wird, der bzw. die dem Knoten zugehörig sind. In einem Aspekt umfassen die Anschlüsse, die dem Knoten zugehörig sind, einen oder mehrere Anschlüsse, der bzw. die mit dem Knoten verbunden sind. Zum Beispiel kann bestimmt werden, dass, in Reaktion auf ein Identifizieren eines aktiven Anschlusses in dem Knoten in Reaktion auf die zweite Verwaltungsabfrage, der Knoten eine aktive Datenübertragungsverbindung hat. In einem weiteren Aspekt kann in Reaktion auf ein Fehlschlagen, irgendwelche aktiven Anschlüsse in dem Knoten in Reaktion auf die zweite Verwaltungsabfrage zu identifizieren, bestimmt werden, dass der Knoten keine aktive Datenübertragungsverbindung hat. Zum Beispiel kann in Reaktion auf ein Bestimmen, dass der Knoten keine aktive Datenübertragungsverbindung hat, die erste Verwaltungsabfrage zu einem späteren Zeitpunkt gemäß einem vorbestimmten Überwachungsplan nochmals an den Knoten gesendet werden.
  • Außerdem kann in einem Aspekt in Reaktion auf ein Bestimmen, dass das Betriebssystem des Knotens nicht korrekt arbeitet, und der Knoten auch eine aktive Datenübertragungsverbindung hat, der Knoten sofort als problematisch gekennzeichnet werden. Zum Beispiel kann der Knoten als problematisch gekennzeichnet werden, indem Metadaten geändert werden, die den Knoten in einem anderen Knoten identifizieren, der die Überwachung durchführt (z.B. durch Senden der Verwaltungsabfragen usw.).
  • Außerdem kann in einem Aspekt in Reaktion auf ein Bestimmen, dass das Betriebssystem des Knotens nicht korrekt arbeitet, und der Knoten auch eine aktive Datenübertragungsverbindung hat, eine vorbestimmte Zählung erhöht werden, und eine Überwachung des Knotens kann verstärkt werden, bevor der Knoten als problematisch gekennzeichnet wird. Zum Beispiel kann die erste Verwaltungsabfrage wiederholt als Teil einer geplanten wiederkehrenden Überwachungsaktivität mit einer ersten vorbestimmten Häufigkeit zu dem Knoten gesendet werden.
  • Außerdem kann in einem Beispiel in Reaktion auf ein Bestimmen, dass die vorbestimmte Zählung erhöht wurde, die erste vorbestimmte Häufigkeit der geplanten wiederkehrenden Überwachungsaktivität in eine zweite vorbestimmte Häufigkeit geändert werden, die größer als die erste vorbestimmte Häufigkeit ist. In einem weiteren Beispiel kann anschließend die erste Verwaltungsabfrage entsprechend der zweiten vorbestimmten Häufigkeit erneut zu dem Knoten gesendet werden. Auf diese Weise können nach einem anfänglichen Erhöhen der vorbestimmten Zählung (wodurch angegeben wird, dass das Betriebssystem des Knotens nicht korrekt arbeitet und der Knoten auch eine aktive Datenübertragungsverbindung hat) nachfolgende Verwaltungsabfragen mit einer erhöhten Häufigkeit zu dem Knoten gesendet werden, um schnell zu bestätigen, dass der Knoten problematisch ist.
  • Ferner kann in einem Beispiel bei jedem Bestimmen, dass das Betriebssystem des Knotens nicht korrekt arbeitet, und der Knoten auch eine aktive Datenübertragungsverbindung hat, die vorbestimmte Zählung erhöht werden. Wenn in einem weiteren Beispiel die vorbestimmte Zählung einen Schwellenwert überschreitet, kann der Knoten anschließend als problematisch gekennzeichnet werden. In noch einem anderen Beispiel kann die vorbestimmte Zählung nach einem Bestimmen zurückgesetzt werden, dass der Knoten nicht problematisch ist (z.B. einem Bestimmen, dass das Betriebssystem des Knotens korrekt arbeitet, oder dass der Knoten keine aktiven Datenübertragungsverbindungen hat). Auf diese Weise können falsch positive Identifizierungen von problematischen Knoten minimiert werden.
  • Des Weiteren kann in einem Aspekt in Reaktion auf ein Kennzeichnen des Knotens als problematisch die Zurücksetzanforderung zu einem oder mehreren Netzwerkanschlüssen gesendet werden, der bzw. die dem Knoten zugehörig sind, um die aktiven Datenübertragungsverbindungen des Knotens zurückzusetzen. In einem weiteren Aspekt kann die Zurücksetzanforderung zu den Knotenanschlüssen gesendet werden, um alle aktiven Verbindungen in dem Knoten zurückzusetzen. In jedem Fall kann dies dazu führen, dass der Knoten keine aktiven Verbindungen hat, da ein Live-Betriebssystem und entsprechende Netzwerkanschlüsse erforderlich sind, um wieder zur Struktur zurückzukehren, und entweder das eine oder das andere nicht funktionieren.
  • In einem weiteren Beispiel kann die Zurücksetzanforderung im Fall eines falsch positiven Werts den Knoten für eine beträchtliche Zeit nicht aus der verteilten Datenverarbeitungsumgebung entfernen (z.B. kann die Verbindungszurücksetzung zu einem aktiven Knoten führen), da der Knoten wieder zum Netzwerk zurückkehrt, nachdem die Maßnahme zum Zurücksetzen der Verbindung abgeschlossen ist, da das Betriebssystem und die Netzwerkanschlüsse des Knotens funktionieren.
  • Außerdem kann in einem Aspekt die Entität, die die Zurücksetzanforderung sendet, eine Uhrzeit und ein Datum der Zurücksetzanforderung protokollieren (z.B. durch Verwenden eines Zeitstempels usw.).
  • Außerdem können in einem Aspekt ein oder mehrere Manager in der verteilten Datenverarbeitungsumgebung anschließend das Fehlen von aktiven Verbindungen in dem Knoten identifizieren und können den Knoten aus der verteilten Datenverarbeitungsumgebung entfernen. Zum Beispiel können der eine oder die mehreren Manager einen Grid-Manager, einen Strukturmanager usw. umfassen. In einem weiteren Beispiel kann der Knoten anschließend zurückgesetzt werden (z.B. durch den einen oder die mehreren Manager) und kann später zu der verteilten Datenverarbeitungsumgebung zurückkehren, wenn seine Netzwerkanschlüsse und das Betriebssystem funktionieren. Die Verwendung der Verbindungszurücksetzmaßnahme (im Gegensatz zu einem Abschalten der Verbindung, das zu einer vollständigen Isolation des Knotens von den dazugehörigen Netzwerkanschlüssen führt) ermöglicht das Minimieren sowohl der Auswirkung einer Erkennung von falsch positiven Werten als auch der Notwendigkeit eines manuellen Eingreifens, um E/A-Operationen wieder aufzunehmen, da den funktionsbereiten Knoten gestattet werden kann, automatisch zu der Struktur zurückzukehren.
  • Ferner kann in einem Aspekt jedem Knoten in der verteilten Datenverarbeitungsumgebung ein Überwachungsknoten zugewiesen werden. Zum Beispiel kann jeder Überwachungsknoten die erste Verwaltungsabfrage und (falls erforderlich) die zweite Verwaltungsabfrage durch Verwenden der hierin beschriebenen Verfahren zu allen benachbarten Knoten senden. Wenn in einem weiteren Beispiel irgendwelche benachbarten Knoten als problematisch identifiziert werden, kann der Überwachungsknoten alle aktiven Verbindungen in dem problematischen Knoten zurücksetzen. In noch einem weiteren Beispiel kann der problematische Knoten anschließend aus der verteilten Datenübertragungsumgebung durch einen oder mehrere Manager entfernt werden und kann zurückgesetzt werden.
  • Auf diese Weise kann eine Überwachung in der verteilten Datenverarbeitungsumgebung auf alle Knoten in der Umgebung verteilt werden. Dies kann eine Auswirkung von einem oder mehreren Knotenausfällen in der Umgebung reduzieren.
  • In einem Aspekt darf des Weiteren ein Überwachungsknoten in der verteilten Datenverarbeitungsumgebung innerhalb eines vorbestimmten Zeitraums nur eine vorbestimmte Anzahl von Zurücksetzanforderungen zu einem anderen Knoten senden. In einem weiteren Aspekt, wenn eine Anzahl von zurückgesetzten Anforderungen, die von dem Überwachungsknoten gesendet wurden, einen vorbestimmten Schwellenwert erfüllt, kann der Überwachungsknoten damit fortfahren, Überwachungsmaßnahmen durchzuführen, kann aber möglicherweise nicht fähig sein, weitere Zurücksetzanforderungen auszusenden (z.B. bis ein vorbestimmter Zeitraum verstrichen ist usw.). Auf diese Weise kann ein fehlerhafter Überwachungsknoten daran gehindert werden, einen anderen funktionierenden Knoten mit unbegründeten Zurücksetzanforderungen zu unterbrechen.
  • In einem Aspekt können die erste Verwaltungsabfrage und die zweite Verwaltungsabfrage auch beide bandinterne Verwaltungsabfragen mit hoher Priorität sein oder können hohe SL- (Dienstebene) oder hohe VL- (virtuelle Spur) Ebenen verwenden. Auf diese Weise können Datenübertragungsprobleme in der verteilten Datenverarbeitungsumgebung minimiert werden, indem der verteilten Überwachung von Knoten in der Umgebung Priorität eingeräumt wird.
  • In noch einem weiteren Beispiel können die erste und die zweite Verwaltungsabfrage ein direkt weitergeleitetes Paketformat verwenden (wobei die Weiterleitungssprünge zwischen den sendenden und empfangenden Anschlüssen in dem Paket aufgezeichnet werden). Auf diese Weise können Datenübertragungsprobleme in der verteilten Datenverarbeitungsumgebung minimiert werden, die sich auf deren Fähigkeit zum Weiterleiten von Datenverkehr auswirken.
  • Als Ergebnis der vorgenannten verteilten Überwachung können problematische Knoten mit einer fehlerhaften Betriebssystemfunktionalität oder fehlerhaften Netzwerkadaptern sowie aktive Verbindungen abgeschirmt werden (z.B. identifiziert und aus der verteilten Datenverarbeitungsumgebung entfernt werden). Dadurch können Datenübertragungsrückstände beseitigt werden, die durch diese problematischen Knoten in der verteilten Datenverarbeitungsumgebung verursacht werden, und daher kann eine Funktionsweise aller Knoten in der verteilten Datenverarbeitungsumgebung verbessert werden.
  • Unter folgender Bezugnahme auf 6 wird ein Ablaufplan eines Verfahrens 600 zum Umsetzen eines Verwaltungsknotens in einer verteilten Datenverarbeitungsumgebung gemäß einem Aspekt gezeigt. Das Verfahren 600 kann gemäß der vorliegenden Erfindung in jeder der unter anderem in 1 bis 4 und 7 dargestellten Umgebungen in verschiedenen Aspekten durchgeführt werden. Natürlich können mehr oder weniger als die speziell in 6 beschriebenen Operationen im Verfahren 600 enthalten sein, wie einem Fachmann beim Durchlesen der vorliegenden Beschreibungen klar sein wird.
  • Jeder der Schritte des Verfahrens 600 kann von jeder geeigneten Komponente der Betriebsumgebung ausgeführt werden. In verschiedenen Aspekten kann das Verfahren 600 zum Beispiel teilweise oder ganz durch einen oder mehrere Server, Computer oder irgendeine andere Einheit mit einem oder mehreren darin integrierten Prozessoren durchgeführt werden. Der Prozessor, z.B. Verarbeitungsschaltung(en), Chip(s) und oder Modul(e), die in Hardware und/oder Software umgesetzt sind und bevorzugt mindestens eine Hardware-Komponente haben, kann in jeder Einheit verwendet werden, um einen oder mehrere Schritte des Verfahrens 600 durchzuführen. Veranschaulichende Prozessoren umfassen eine Zentraleinheit (CPU), eine anwendungsspezifische integrierte Schaltung (ASIC), ein feldprogrammierbares Gate-Array (FPGA) usw., Kombinationen davon oder irgendeine im Stand der Technik bekannte andere geeignete Datenverarbeitungseinheit.
  • Wie in 6 gezeigt, kann das Verfahren 600 mit einer Operation 602 beginnen, in der eine erste Verwaltungsabfrage von einem ersten Knoten einer verteilten Datenverarbeitungsumgebung zu einem zweiten Knoten der verteilten Datenverarbeitungsumgebung gesendet wird, wobei die erste Verwaltungsabfrage einem Betriebssystem des zweiten Knotens zugehörig ist. Außerdem kann das Verfahren 600 mit einer Operation 604 fortfahren, in der in Reaktion auf ein Fehlschlagen, an dem ersten Knoten eine Reaktion auf die erste Verwaltungsabfrage von dem zweiten Knoten zu erhalten, eine zweite Verwaltungsabfrage von dem ersten Knoten zu einem oder mehreren Datenübertragungsanschlüssen gesendet wird, die dem zweiten Knoten zugehörig sind.
  • Ferner kann das Verfahren 600 mit einer Operation 606 fortfahren, in der in Reaktion auf ein Empfangen, an dem ersten Knoten, einer Reaktion auf die zweite Verwaltungsabfrage von dem einen oder den mehreren Datenübertragungsanschlüssen, der bzw. die dem zweiten Knoten zugehörig sind, der bzw. die angeben, dass der zweite Knoten eine aktive Datenübertragungsverbindung hat, der erste Knoten eine Verbindungs-Zurücksetzanforderung zum Zurücksetzen des einen oder der mehreren Datenübertragungsanschlüsse des zweiten Knotens mit der aktiven Datenübertragungsverbindung zu einem oder mehreren Datenübertragungsanschlüssen sendet, der bzw. die dem zweiten Knoten zugehörig sind.
  • Auf diese Weise kann der erste Knoten als ein verwaltender Knoten wirken und kann das Entfernen des zweiten Knotens aus der verteilten Datenverarbeitungsumgebung in Reaktion auf ein Bestimmen eines spezifischen Szenarios auslösen, in dem der zweite Knoten ein Problem mit dem Betriebssystem oder ein Problem mit dem Netzwerkadapter hat und auch eine aktive Datenübertragungsverbindung hat. Dies kann eine Netzwerk-Stauung in der verteilten Datenverarbeitungsumgebung beseitigen, die durch den zweiten Knoten verursacht wird, und kann dadurch eine Leistung des ersten Knotens und aller anderen Datenverarbeitungsknoten in der verteilten Datenverarbeitungsumgebung verbessern.
  • In einem Aspekt kann eine Mehrzahl von zusätzlichen Knoten in dem ersten Knoten und dem zweiten Knoten in der verteilten Datenverarbeitungsumgebung enthalten sein. In einem weiteren Aspekt kann jeder der Knoten in der verteilten Datenverarbeitungsumgebung benachbarte Knoten durch Verwenden der ersten Verwaltungsabfrage und der zweiten Verwaltungsabfrage überwachen.
  • 7 veranschaulicht ein beispielhaftes verteiltes Datenverarbeitungsnetzwerk 700, wie in einem beispielhaften Aspekt gezeigt. Wie gezeigt, umfasst das verteilte Datenverarbeitungsnetzwerk 700 eine Mehrzahl von Knoten 702A bis E. In einem Aspekt kann eine größere oder kleinere Anzahl von Knoten als die Mehrzahl von Knoten 702A bis E in dem Netzwerk 700 enthalten sein.
  • Außerdem ist in einem Aspekt die Mehrzahl von Knoten 702A bis E über Netzwerkverbindungen 704A bis G, 708A bis B miteinander verbunden. In einem Aspekt können die Netzwerkverbindungen 704A bis G, 708A bis B Datenverbindungen mit hoher Geschwindigkeit und niedriger Latenz umfassen (z.B. schnelle Ethernet-Verbindungen, InfiniBand-Verbindungen, Verbindungen auf Hardware-Ebene usw.).
  • Ferner ermöglicht eine Mehrzahl von Datenübertragungsschaltern 706A bis B Datenübertragungen zwischen einem ersten Abschnitt von Knoten 702A und 702B und einem zweiten Knoten 702C. Zum Beispiel können die Datenübertragungsschalter 706A bis B Daten zwischen dem ersten Abschnitt von Knoten 702A und 702B und dem zweiten Knoten 702C weiterleiten. Außerdem tauschen die Datenübertragungsschalter 706A bis B Daten über Kreuzschalter-Netzwerkverbindungen 708A bis B aus, um Datenübertragungen/Überwachung zwischen dem ersten Abschnitt von Knoten 702A und 702B und dem zweiten Knoten 702C zu erleichtern.
  • Noch weiter kann in einem Aspekt jeder der Mehrzahl von Knoten 702A bis E als Überwachungsknoten in dem verteilten Datenverarbeitungsnetzwerk 700 wirken und kann mit seinen benachbarten Knoten Daten austauschen, um einen Zustand von derartigen Knoten zu bestimmen. Zum Beispiel kann ein Überwachungsknoten 702C direkt mit seinem ersten benachbarten Knoten 702D Daten austauschen, um einen Zustand seines benachbarten Knotens 702D zu bestimmen. Außerdem kann der Überwachungsknoten 702C mit zusätzlichen benachbarten Knoten 702A und 702B über die Datenübertragungsschalter 706A bis B Daten austauschen, um deren Zustand zu bestimmen.
  • Zum Beispiel kann der Überwachungsknoten 702C eine erste Verwaltungsabfrage direkt zu seinem benachbarten Knoten 702D senden, wobei die erste Verwaltungsabfrage einem Betriebssystem des empfangenden Knotens zugehörig ist. Nachdem ein Empfangen einer Reaktion auf die erste Verwaltungsabfrage von seinem benachbarten Knoten 702D fehlgeschlagen ist, kann der Überwachungsknoten 702C eine zweite Verwaltungsabfrage zu den Anschlüssen senden, die dem benachbarten Knoten 702D zugehörig sind.
  • Ferner, in Reaktion auf ein Empfangen einer Reaktion an dem Überwachungsknoten 702C von den Anschlüssen, die dem benachbarten Knoten 702D zugehörig sind und angeben, dass der benachbarte Knoten 702D eine aktive Datenübertragungsverbindung hat, kann der Überwachungsknoten 702C eine Verbindungs-Zurücksetzanforderung zu dem Anschluss senden, der dem zweiten Knoten zugehörig ist, um einen Anschluss des benachbarten Knotens 702D mit der aktiven Datenübertragungsverbindung zurückzusetzen. In Reaktion auf ein Empfangen der Verbindungs-Zurücksetzanforderung von dem Überwachungsknoten 702C können die Anschlüsse, die dem benachbarten Knoten 702D zugehörig sind, alle aktiven Verbindungen in dem benachbarten Knoten 702D zurücksetzen. Ein Grid-Manager oder Strukturmanager des verteilten Datenverarbeitungsnetzwerks 700 kann den benachbarten Knoten 702D anschließend aus dem verteilten Datenverarbeitungsnetzwerk 700 entfernen.
  • Der Überwachungsknoten 702A kann auch die erste Verwaltungsabfrage indirekt zu seinen zusätzlichen benachbarten Knoten 702B und 702C über die Datenübertragungsschalter 706A bis B senden. In Reaktion auf ein Empfangen von Reaktionen auf die erste Verwaltungsabfrage von seinen zusätzlichen benachbarten Knoten 702B und 702C über einen der Datenübertragungsschalter 706A bis B, kann der Überwachungsknoten 702A keine weitere Maßnahme mehr vornehmen, bis sein Überwachungsplan angibt, dass wieder eine weitere erste Verwaltungsabfrage an seine zusätzlichen benachbarten Knoten 702B und 702C gesendet werden soll. Zum Beispiel kann der Überwachungsknoten 702A einen benachbarten Knoten 702B durch Verwenden einer ersten Verwaltungsabfrage über die Netzwerkverbindungen 704A bis B abfragen. Nach Empfangen einer Reaktion auf die erste Verwaltungsabfrage kann keine weitere Maßnahme mehr von dem Überwachungsknoten 702A vorgenommen werden, bis der Überwachungsplan die Überwachung für den Überwachungsknoten 702A wieder aufnimmt.
  • Nach einem Identifizieren eines Fehlschlags, eine Reaktion auf die erste Verwaltungsabfrage zu empfangen, kann die zweite Verwaltungsabfrage durch Verwenden der Netzwerkverbindung 704A gesendet werden, um zu bestimmen, ob die Netzwerkverbindung 704B aktiv ist. Ferner wird die erste Verwaltungsabfrage durch den Überwachungsknoten 702A durch Verwenden der Netzwerkverbindungen 704F bis G wiederholt, und wenn keine Reaktion empfangen wird, wird die zweite Verwaltungsabfrage über die Netzwerkverbindung 704F wiederholt, um zu bestimmen, ob die Verbindung 704G aktiv ist. Der Knoten 702B wird als problematisch gekennzeichnet, wenn beide Prüfungen, die die erste Verwaltungsabfrage (über die Netzwerkverbindungen 704A bis B und 704F bis G) verwenden, fehlgeschlagen sind und für mindestens eine der Netzwerkverbindungen (704B oder 704G) durch Verwenden der zweiten Verwaltungsabfrage festgestellt wurde, dass sie aktiv sind. Wenn der Knoten 702B als problematisch ermittelt wurde, können die Netzwerkverbindungen 704A und 704F verwendet werden, um Zurücksetzanforderungen zum Zurücksetzen der Netzwerkverbindungen 704B und 704G zu senden.
  • Auf diese Weise kann jeder von der Mehrzahl von Knoten 702A bis E als ein Überwachungsknoten in dem verteilten Datenverarbeitungsnetzwerk 700 wirken und kann das Entfernen von allen problematischen Knoten in dem verteilten Datenverarbeitungsnetzwerk 700 auslösen, wodurch die Leistung der verbleibenden Knoten in dem verteilten Datenverarbeitungsnetzwerk 700 verbessert wird.
  • Unter folgender Bezugnahme auf 8 wird ein Ablaufplan eines Verfahrens 800 zum Durchführen einer Knotenüberwachung in einer verteilten Datenverarbeitungsumgebung gemäß einem Aspekt gezeigt. Das Verfahren 800 kann in verschiedenen Aspekten gemäß der vorliegenden Erfindung in jeder der unter anderem in 1 bis 4 und 7 dargestellten Umgebungen ausgeführt werden. Natürlich können mehr oder weniger als die speziell in 8 beschriebenen Operationen im Verfahren 800 enthalten sein, wie einem Fachmann beim Durchlesen der vorliegenden Beschreibungen klar sein wird.
  • Jeder der Schritte des Verfahrens 800 kann von jeder geeigneten Komponente der Betriebsumgebung durchgeführt werden. In verschiedenen Aspekten kann das Verfahren 800 zum Beispiel teilweise oder ganz durch einen oder mehrere Server, Computer oder irgendeine andere Einheit mit einem oder mehreren darin integrierten Prozessoren durchgeführt werden. Der Prozessor, z.B. Verarbeitungsschaltung(en), Chip(s) und oder Modul(e), die in Hardware und/oder Software umgesetzt sind und bevorzugt mindestens eine Hardware-Komponente haben, kann in jeder Einheit verwendet werden, um einen oder mehrere Schritte des Verfahrens 800 durchzuführen. Veranschaulichende Prozessoren umfassen eine Zentraleinheit (CPU), eine anwendungsspezifische integrierte Schaltung (ASIC), ein feldprogrammierbares Gate-Array (FPGA) usw., Kombinationen davon oder irgendeine im Stand der Technik bekannte andere geeignete Datenverarbeitungseinheit.
  • Wie in 8 gezeigt, kann das Verfahren 800 mit einer Operation 802 beginnen, in der ein entfernt angeordneter Knoten über einen nächsten Pfad geprüft wird. In einem Aspekt kann der entfernt angeordnete Knoten einen benachbarten Knoten eines Überwachungsknotens umfassen. Außerdem kann das Verfahren 800 mit einer Entscheidung 804 fortfahren, in der ein Prüfungszustand geprüft wird. Wenn in der Entscheidung 804 bestimmt wird, dass eine Reaktion auf die Prüfung von dem Überwachungsmodul empfangen worden ist, kann das Verfahren 800 mit einer Operation 806 fortfahren, in der der nächste Zyklus vorbereitet wird. Zum Beispiel kann der nächste zu prüfende Pfad aktualisiert werden, ein Fehlerzähler kann auf Null eingestellt werden, ein Betriebssystem-(BS) Prüfungszustand kann für den aktuellen Nachbarn gespeichert werden, und eine reguläre Verzögerung kann für den nächsten Prüfungszyklus verwendet werden.
  • Wenn außerdem in der Entscheidung 804 bestimmt wird, dass innerhalb eines vorbestimmten Zeitraums keine Reaktion auf die Prüfung von dem Überwachungsmodul empfangen worden ist, kann das Verfahren 800 mit einer Entscheidung 808 fortfahren, in der ein Verbindungszustand für den benachbarten Knoten geprüft wird. Wenn in der Entscheidung 808 bestimmt wird, dass ein Prüfungsfehler vorhanden ist, kann das Verfahren 800 mit der Operation 806 fortfahren, in der der nächste Zyklus vorbereitet wird. Ein Fehlschlagen einer Prüfung des Zustands der zugehörigen entfernt angeordneten Anschlüsse (zum Beispiel Anschlüsse eines Schalters) kann angeben, dass ein weiteres flüchtiges (oder nicht flüchtiges) Problem für die Netzwerkstruktur vorhanden ist, das nicht von diesem Verfahren bearbeitet wird (dieses Verfahren bearbeitet Fehler von Endpunktknoten). Daher wird die Überwachung nach einer normalen Wartezeit wieder aufgenommen.
  • Wenn ferner in der Entscheidung 808 bestimmt wird, dass der Verbindungszustand aktiv oder inaktiv ist, kann das Verfahren 800 mit einer Entscheidung 810 fortfahren, in der bestimmt wird, ob zusätzliche Pfade vorhanden sind (z.B. zu dem benachbarten Knoten des Überwachungsknotens usw.). Wenn in der Entscheidung 810 bestimmt wird, dass zusätzliche Pfade vorhanden sind, kann das Verfahren 800 mit einer Operation 812 fortfahren, in der der nächste Pfad aktualisiert wird, und das Verfahren 800 kann anschließend mit der Operation 802 fortfahren, in der der entfernt angeordnete Knoten über den nächsten Pfad geprüft wird.
  • Wenn noch weiter in der Entscheidung 810 bestimmt wird, dass keine zusätzlichen Pfade vorhanden sind, kann das Verfahren 800 mit einer Entscheidung 814 fortfahren, in der bestimmt wird, ob eine aktive Verbindung in dem entfernt angeordneten Knoten zu sehen ist. Wenn in der Entscheidung 814 bestimmt wird, dass keine aktive Verbindung zu sehen ist, kann das Verfahren 800 mit der Operation 806 fortfahren, in der der nächste Zyklus vorbereitet wird. Wenn in der Entscheidung 814 bestimmt wird, dass eine aktive Verbindung zu sehen ist, kann das Verfahren 800 mit einer Operation 816 fortfahren, in der ein Fehlerzähler für den entfernt angeordneten Knoten erhöht wird.
  • Das Verfahren 800 kann mit einer Entscheidung 818 fortfahren, in der bestimmt wird, ob der Fehlerzähler für den entfernt angeordneten Knoten einen vorbestimmten Schwellenwert erreicht hat. Wenn in der Entscheidung 818 bestimmt wird, dass der Fehlerzähler den Schwellenwert erreicht hat, kann das Verfahren 800 mit einer Operation 820 fortfahren, in der die Verbindungen in dem entfernt angeordneten Knoten zurückgesetzt werden, und das Verfahren 800 kann dann mit der Operation 806 fortfahren, in der der nächste Zyklus vorbereitet wird. In einem Aspekt kann ein Überwachungsknoten, der Verbindungszurücksetzungen durchführt, eine begrenzte Anzahl von Verbindungszurücksetzungen durchführen, bevor die Fähigkeit, Verbindungszurücksetzungen durchzuführen für den Überwachungsknoten deaktiviert wird.
  • Wenn zusätzlich in der Entscheidung 818 bestimmt wird, dass der Fehlerzähler den Schwellenwert nicht erreicht hat, kann das Verfahren 800 mit einer Operation 822 fortfahren, in der Vorbereitungen für den nächsten Zyklus getroffen werden, und das Verfahren 800 kann anschließend mit der Operation 802 fortfahren, in der der entfernt angeordnete Knoten über den nächsten Pfad geprüft wird. Zum Beispiel kann ein Vorbereiten für den nächsten Zyklus ein Aktualisieren des nächsten Pfads, ein Speichern eines Betriebssystemprüfungszustands und ein Verwenden einer kürzeren Verzögerung für einen nächsten Zyklus umfassen.
  • Auf diese Weise können Knoten in einer Struktur benachbarte Knoten in der Struktur überwachen und können das Entfernen von problematischen Knoten in der Struktur auslösen, wodurch eine Leistung der verbleibenden Knoten in der Struktur verbessert wird.
  • Abschirmen von nicht reagierenden Anschlüssen in einer Interconnect-Struktur
  • In einem Aspekt werden Mechanismen zum Erkennen eines nicht richtig funktionierenden Knotens bereitgestellt, der auf einem Netzwerk als vorhanden zu sehen ist. Moderne Unternehmensanwendungen nutzen oft eine Grid-Architektur, wobei eine Mehrzahl von Grid-Knoten, die mit einer schnellen Interconnect-Struktur verbunden sind, Anwendungsdienste bereitstellen. Fast Ethernet, InfiniBand oder Fiber Channel sind beispielhafte Interconnect-Lösungen. Aufgrund komplexer Anforderungen von Unternehmensanwendungen werden verschiedene Protokolle auf der Interconnect-Struktur genutzt.
  • Klassische Protokolle wie Ethernet oder TCP/IP sind möglicherweise nicht ausreichend, um Anwendungsanforderungen in Bezug auf Garantien für Leistung, Belastungsausgleich und Datenbereitstellung zu erfüllen. Anwendungen schalten auf Interconnect-Protokolle um, die Verbindungen auf Hardware-Ebene und RDMA- (Remote Direct Memory Access) Übertragungen erlauben. Zuverlässige Peer-to-Peer-Verbindungen, die auf HCA- (Host Channel Adapter) Ebene umgesetzt werden und RDMA-Protokolle verwenden, sind in InfiniBand- und DCB-Ethernet- (Data Center Bridging) Strukturen möglich.
  • Verschiedene DCB-Technologien sind auch unter dem Begriff CEE (Converged Enhanced Ethernet) oder verlustfreies Ethernet bekannt. Grid-Architekturlösungen unterstützen sowohl Skalierbarkeit als auch eine hohe Verfügbarkeit. Grids können durch Hinzufügen von Knoten zu der Struktur wachsen, und wenn ein Knoten ausfällt, kann das gesamte Grid-Cluster die Last auf verbleibende Knoten in dem Grid umschichten. Wenn das Problem mit einem ausgefallenen Knoten gelöst ist, kann das Grid wieder wachsen, um den vorher ausgefallenen Knoten aufzunehmen.
  • Zum Verwalten der Arbeitsverteilung und zum Überwachen des Integritätszustands des Grids wird eine Verwaltungslösung genutzt. Verwaltungslösungen nutzen in der Regel ein TCP-Protokoll für einen Datenaustausch entweder über die Datenstruktur oder einen langsameren dedizierten Seiten-Netzwerkkanal. In der Regel tauschen alle Knoten mit einem Manager des Grids Daten aus und tauschen Keep-Alive- oder Integritätsmeldungen aus. Der Manager des Grids kann einen Knoten als ausgefallen erklären, wenn er einen Fehler meldet oder in dem Verwaltungsnetzwerk über einen definierten Zeitraum nicht gesehen wird. Der Manager kann auch mithilfe eines TCP-Protokolls durch Verwenden einer Mehrheit von Bewertungen gewählt werden, wenn alle Knoten in dem Grid untereinander Daten austauschen.
  • Um in der Struktur neue Knoten zu erkennen und zu konfigurieren sowie deren Verschwinden aus dem Netzwerk zeitnah zu bearbeiten, kann eine StrukturVerwaltungslösung (z.B. ein Teilnetz-Manager) auf den Grid-Clustern genutzt werden. Der Strukturmanager kann eine periodische Ermittlung der Struktur, der Knoten und Anschlüsse durchführen und kann das Hinzufügen von neuen Anschlüssen und das Verschwinden von vorhandenen Anschlüssen bearbeiten.
  • Moderne schnelle Interconnect-Lösungen unterstützen Geschwindigkeiten von 100 bis 200 Gbit pro Anschluss. Bei derartigen Geschwindigkeiten sieht ein Anschluss ein physisches Verbindungsproblem nicht und ist fähig, die korrekte Geschwindigkeit zu vermitteln, ohne auf Fehler zu stoßen, was schnell zu einer Stauung in der Netzwerkstruktur und den Anwendungsabläufen führt, wenn Daten nicht mit derselben Geschwindigkeit in Anspruch genommen werden können. Zum Beispiel kann der HCA ein Problem mit einer Datenübertragung zu dem Host-Arbeitsspeicher haben, weil er Hardware-Probleme bei PCI-Übertragungen hat, oder weil die DMA-Hardware eine Funktionsstörung aufweist.
  • Ähnliche Probleme können auftreten, wenn ein ganzer Knoten nicht richtig funktioniert, und die System-Firmware das Betriebssystem davon abhält, ausgeführt zu werden, während ein Hardware-Fehler bearbeitet wird. Wenn der Fault Handler (Fehlerverarbeitungsroutine) für die Ausführung erhebliche Zeit braucht, füllt sich die Netzwerkadapter-Warteschlange sehr schnell und ist nicht mehr in der Lage, neue Datenpakete zu empfangen. Wenn andererseits eine Funktionsstörung eines lokalen oder entfernt angeordneten HCA Anwendungen daran hindert, Daten mit erforderlicher Integrität und Geschwindigkeit zu senden und zu empfangen, können Anwendungen daran gehindert werden, Transaktionen abzuschließen.
  • Insbesondere besteht bei Speicher-Grid-Lösungen Bedarf, bestimmte Transaktion über das gesamte Grid-Cluster übergreifend zu synchronisieren (z.B. wenn sich eine Speicherverteilung aufgrund eines neu hinzugefügten Knotens, einer Löschung eines vorhandenen Knotens, einer Erstellung oder Löschung von Datenvolumen, einer Snapshot-Aufnahme usw. ändert). Wenn dies geschieht, können neue Speichertransaktionen von Clients erst fortgesetzt werden, wenn die Verteilung über sämtliche Knoten in dem Grid synchronisiert ist. Wenn ein Knoten während einer derartigen Transaktion hängen bleibt, muss der Manager einen hängengebliebenen Knoten schnell identifizieren und als ausgefallen markieren, um ein Fortsetzen von Client-E/As zu ermöglichen.
  • Eine Situation wird kritisch, wenn die gesamte Struktur auf Grund eines abgestürzten Knotens mit Verbindungen in einem aktiven Zustand nicht richtig funktioniert. Das Vorhandensein eines abgestürzten Knotens mit aktiven Verbindungen in der Interconnect-Struktur ist keine ausführlich getestete Situation. Bei vielen praktischen Fehlerszenarios können Interconnect-Verbindungen schnell ausfallen, wenn ein Betriebssystem nicht ausgeführt werden kann. Viele Interconnect-Strukturen sind zuverlässige Netzwerke, die Mechanismen zur Hardware-Punkteflusssteuerung verwenden und Zeitüberschreitungen für ein vorderes Ende von Warteschlangenpaketen und alle Pakete in der Übertragungswarteschlange haben. Die Transportstandards haben mit einer Komponente zu tun, die in dem Netzwerk vorhanden ist, aber keine Datenpakete senden oder empfangen kann.
  • Die Standards sind so definiert, dass ein Vorhandensein einer nicht richtig funktionierenden Komponente (z.B. eine, die keine Punkte freigibt, weil sie nicht in der Lage ist, Daten zu empfangen) nicht die gesamte Struktur über längere Zeit blockiert, was zu deren Zusammenbruch führt. In einem InfiniBand-Netzwerk darf zum Beispiel kein Datenpaket länger als 2 bis 2,5 Sekunden in der Übertragungswarteschlange des Schalteranschlusses hängen bleiben. Wenn daher alle Schalteranschlusspunkte von dem abgestürzten Endpunkt in Anspruch genommen werden, ist der Schalteranschluss fähig, innerhalb dieses Zeitraums wieder Sendepunkte bereitzustellen.
  • Wenn jedoch ein Software-Teil in einem kritischen Abschnitt liegt, in dem er immer wieder mit einem fehlerhaften Bestimmungsort Daten austauschen muss, bis er einen Fehler sieht oder erfolgreich ist, um den kritischen Abschnitt zu verlassen, kann er andere Software-Teile (wie eine Cluster-Grid-Logik) daran hindern, Daten austauschen, da alle Sendeanschlusspunkte von einer fehlerhaften Komponente wiederholt in Anspruch genommen werden. Somit ist die Software weder in der Lage, E/A-Dienste bereitzustellen (da sie sich in einem kritischen Abschnitt befindet), noch ist sie fähig, den kritischen Abschnitt abzubrechen, da die Datenübertragung, die dem kritischen Abschnitt zugehörig ist, anderen Verkehr blockiert, der den Fehler erkennen und den Fehler über das Grid übermitteln kann.
  • Außerdem zeigen reale Tests, dass vorhandene Schalter und Knoten nicht gut mit nicht richtig funktionierenden Anschlüssen in der Struktur zurechtkommen, die zwar vorhandene Verbindungen haben, aber trotz zuverlässiger Netzwerk-Garantien und Angaben von Transportstandards keine Datenpakete empfangen können. Somit kann ein sich falsch verhaltender Anschluss in der Struktur das gesamte Grid-Cluster abstürzen lassen. Daher ist ein Verfahren erforderlich, um einen nicht reagierenden Anschluss in der Struktur ausfallen zu lassen (zu erkennen und abzuschirmen), damit Anwendungen weiter fortgeführt werden können.
  • In einem Aspekt wird ein Verfahren bereitgestellt, um eine verteilte Strukturverwaltungslösung umzusetzen, die nicht reagierende Anschlüsse in einer Interconnect-Struktur abschirmen kann. Jeder Knoten in der Struktur hat die Aufgabe, einen oder mehrere benachbarte Anschlüsse auf eine Weise zu überwachen, dass eine Überwachungsredundanz erreicht wird. Die Überwachung erfolgt durch Verwenden einer Strukturverwaltungsabfrage mit einer hohen Lieferpriorität und wird in dem Betriebssystem beendet.
  • Ein Überwachen des Vorhandenseins einer Verbindung erfolgt ebenfalls durch Verwenden einer Strukturverwaltungsabfrage mit hoher Abfragepriorität an den Schalter (oder einen verbundenen Endpunkt bei fehlendem Schalter), die in Schalter- oder Adapter-Firmware beendet werden kann. Ein Problem in einem Knoten wird erkannt, wenn die Knotenschlüsse zwar aktive Verbindungen haben, aber keine der aktiven Verbindungen auf die Verwaltungsabfrage reagiert, die in dem Betriebssystem beendet wird.
  • Nach einer zuverlässigen Erkennung des Problems fordert der Überwachungs-Agent den Schalter auf, die Verbindungen zurückzusetzen (oder bittet um eine lokale Verbindungsrücksetzung in schalterlosen Punkt-zu-Punkt-Strukturen). Die Strukturverwaltungslösung ist so beschaffen, dass eine Aktivierung von Verbindungen im Datenmodus nur möglich ist, wenn der Knoten mit erkannten Verbindungen auf Ebene eines Betriebssystems reagiert. Somit bleiben problematische Verbindungen für eine Datenübertragung inaktiv, bis das Betriebssystem wiederhergestellt ist.
  • Eine verteilte Überwachungslösung wird bereitgestellt. Jeder Knoten überwacht mehr als einen benachbarten Knoten, und eine Überwachungsredundanz wird erreicht. Diese Lösung setzt ein SMINFO-Verwaltungs-Erkennungsattribut um, das durch das Betriebssystem beendet wird. Eine hohe Übertragungspriorität der Verwaltungsabfrage wird durch die Interconnect-Struktur garantiert. Jede Überwachungspartei nimmt periodische Ermittlungen ihrer Nachbarn vor wie folgt:
    1. 1. Benachbarte Knoten werden mit einem Verwaltungsattribut abgefragt, das in dem Betriebssystem beendet wird. Die Prüfung ist erfolgreich und abgeschlossen, sobald mindestens ein benachbarter Anschluss antwortet.
    2. 2. Wenn keiner der Anschlüsse antwortet, prüft der Überwachungsknoten alle Anschlüsse des Nachbarn auf das Vorhandensein einer physischen Verbindung. Ein Schalter wird für die Abfrage von geschalteten Netzwerken verwendet, und lokale Anschlussabfragen werden für Punkt-zu-Punkt-Verbindungen verwendet. Abfragen werden abgebrochen, sobald mindestens ein Anschluss mit einer Verbindung gefunden wird.
    3. 3. Der Knoten wird als problematisch gekennzeichnet, wenn a) keiner seiner Anschlüsse auf die SMINFO-Abfrage antwortet und mindestens ein Anschluss des Knotens eine physische Verbindung hat.
  • Unter normalen Betriebsbedingungen werden höhere Überwachungsintervalle verwendet. Sobald das Problem erkannt wird, wird das Überwachungsintervall verringert. Der Zeitstempel der Problemerkennung wird aufgezeichnet und mit dem Ereignis gemeldet. Die Wiederherstellungsmaßnahme findet statt, nachdem eine wiederholte Erkennung des Problems stattgefunden hat (eine konfigurierbare vorbestimmte Anzahl wird verwendet).
  • Die Wiederherstellungsmaßnahme setzt die Knotenverbindungen durch Verwenden von Befehlen an den Schalter auf geschaltete Strukturen und Befehle an lokale Anschlüsse in schalterlosen Punkt-zu-Punkt-Strukturen zurück. Der Zeitstempel der Wiederherstellungsmaßnahme wird aufgezeichnet und mit dem Ereignis gemeldet. Jeder erfolgreiche Überwachungsschritt setzt die Zähler für wiederholte Ausfallerkennung auf Null zurück. Der Zeitstempel des Schalters für den Wert von nicht Null bis Null wird ebenfalls aufgezeichnet und über Ereignisse gemeldet.
  • Die Überwachung kann auf Knoten-Grundlage aktiviert und deaktiviert werden und kann auch einen Aufzählungszeichen-Mechanismus aktivieren. Wenn dieser aktiviert ist, wird für jede Überwachung eine begrenzte Anzahl von Aufzählungszeichen für Wiederherstellungsmaßnahmen angegeben. Wenn Aufzählungszeichen für Maßnahmen in Anspruch genommen werden, werden sie erst nach einem definierten Zeitraum wieder aufgefüllt. Damit kann die Überwachung die Verbindungen eines überwachten Knotens um maximal eine definierte Anzahl während einer Zeitscheibe zurücksetzen. Wenn Aufzählungszeichen in Anspruch genommen werden, wird die Überwachung nicht ausgesetzt, und die Zeit für alle Übergangsereignisse wird aufgezeichnet und ohne die Verbindungs-Vergeltungsmaßnahme gemeldet.
  • Diese Lösung ist Knotenausfällen gegenüber tolerant (da sie verteilt ist), und ist auch gegenüber einem Datenübertragungs-Zusammenbruch tolerant (da ein Strukturverwaltungsdatenverkehr mit hoher Priorität verwendet wird). Die Lösung vermeidet auch eine falsch positive Erkennung von Datenübertragungsverlust (da sie mehrere Prüfungen verwendet), und vermeidet eine falsch negative Erkennung einer vorhandenen Datenübertragung (da sie sowohl eine Verbindungsprüfung als auch eine Betriebssystemprüfung verwendet).
  • Gleichzeitig ist die Lösung fähig, nicht reagierende Anschlüsse zu erkennen und eine Wiederherstellungsmaßnahme innerhalb einer kurzen Zeit vorzunehmen, die ausreicht, um sowohl Anwendungsausfälle als auch einen Strukturzusammenbruch zu vermeiden. Wenn eine falsch positive Erkennung auftritt, wird nicht davon ausgegangen, dass sie eine signifikante Auswirkung hat - sobald die Verbindungen neu festgelegt sind, schließt sich der Knoten mit zurückgesetzten Verbindungen der Struktur an (da er auf Strukturverwaltungsbefehle reagiert, oder kann ein Anschließen an die Struktur initiieren) und nimmt E/A-Operationen wieder auf.
  • InfiniBand-Anschlussabschirmung für abgestürzte Module
  • In einem Aspekt ist ein Modul in einer A9000-Grid-Speicherarchitektur ein Baustein des Speicher-Grids. Ein Modul ist ein Server, der eine CPU, einen Arbeitsspeicher, eine Peripherie-Einheit hat und XIV-Speicher-Software ausführt. XIV-Speicher-Software beruht auf einem Linux-Betriebssystem und XIV-Speicherdiensten und wird in einem Benutzer- und Kernel-Bereich ausgeführt.
  • In einem weiteren Aspekt umfasst ein abgestürzter Knoten ein Modul, das nicht fähig ist, das XIV-Betriebssystem und Speicherdienste aufgrund einer Hardware- oder Software-Fehlfunktion auszuführen. In einem weiteren Aspekt verwendet der A9000-Grid-Speicher InfiniBand Interconnect für einen Datenaustausch zwischen Modulen in einer geschalteten oder schalterlosen (Punkt-zu-Punkt) Topologie.
  • In noch einem weiteren Aspekt kann eine Anschlussabschirmung ein Abschalten von IB-Anschlüssen (z.B. auf einem abgestürzten Modul) auf eine Weise umfassen, dass eine Datenübertragung mit dem Rest des Speicher-Grids nicht möglich ist.
  • In noch einem weiteren Aspekt kann eine IB-Struktur ein Hochgeschwindigkeits-InfiniBand-Netzwerk von Schaltern, Endpunkten und Verbindungen umfassen, das Endpunkten (IB-Anschlüssen auf einem Modul) ermöglicht, Daten auszutauschen. Zum Beispiel verwendet ein A9000-System 56 Gbit-IB-Verbindungen zwischen Modulen und hat 2 IB-Anschlüsse pro Modul in Rack-Konfiguration und 4 IB-Anschlüsse pro Modul in POD-Konfiguration. In einem weiteren Beispiel haben A9000-Rack-Systeme zwei InfiniBand-Schalter, die Module und Backend-Speicher verbinden, während A9000-POD-Systeme Punkt-zu-Punkt-Verbindungen zwischen Modulen und Backend-Speicher verwenden.
  • Außerdem kann in einem Aspekt ein integrierter Management-Controller (IMM) eine dedizierte Platine (CPU + Arbeitsspeicher + E/A-Einheiten) in einem A9000-Modul umfassen, das selbst bei Standby-Leistung betriebsfähig bleibt. Der IMM kann sein eigenes Betriebssystem und einen Satz von Software-Diensten ausführen, die eine entfernt angeordnete Verwaltung und Hardware-Diagnose erlauben.
  • Ferner wird in einem Aspekt angenommen, dass ein UFI-BIOS in Datenübertragung mit einem IMM steht, wobei eine UFI-System-Firmware, die auf der Server-CPU ausgeführt wird, für ein Hochfahren des Servers verantwortlich ist. Die Firmware installiert einen Satz von Ausnahme-Handlern und Zeitsteuerungen, die eine Ausführung eines UFI-Codes auslösen, wenn Hardware-Ereignisse auftreten oder Zeitsteuerungen ausgelöst werden. Die UFI-Firmware nimmt eine Ausführung eines Betriebssystems vorweg, wenn ihre Handler ausgeführt werden. Sie kann dann mit dem IMM Daten austauschen und ihn auffordern, Fehlersammlungsaufgaben sowie Aufgaben zum Zurücksetzen, Herunterfahren oder Ein- und Ausschalten des Servers auszuführen. Wenn Hardware-Fehler (wie Arbeitsspeicherfehler oder PCIE-Fehler) auftreten, kann die UFI versuchen, Daten zu sammeln und Entscheidungen zu treffen, den Server abzuschalten oder ihn aus- und wieder einzuschalten. Abhängig von den Ausfallszenarios können diese Aufgaben beträchtliche Zeit in Anspruch nehmen, was zu nicht betriebsfähigen Modulen mit IB-Verbindungen im aktiven Zustand führt.
  • Noch weiter werden in einer InfiniBand-Umgebung Verwaltungsdatagramme (MADs) verwendet, um die Struktur zu erkennen und zu konfigurieren und entfernt angeordnete Hardware- oder Software-Befehle auszuführen. Jedes MAD weist einen nach Klasse, Verfahren, Attribut und Attributmodifikator definierten Rahmen auf. Eine Klasse definiert einen Bereich von Befehlen für eine spezifische Anwendungsverwendung - SM-(Subnet-Manager) und SA- (Subnet-Administration) Klassen für Subnet-Manager, eine Leistungsklasse für Überwachung, eine CM-Klasse für Verbindungsverwaltung usw. Ein Verfahren definiert einen Zugriffstyp (z.B. Get oder Set). Ein Attribut definiert einen Befehl in der Klasse, und der Modifikator definiert Befehlsparameter.
  • In einem Aspekt umfasst ein Subnet-Manager eine Software-Entität, die auf einem der Endpunkte in einer InfiniBand-Struktur ausgeführt wird. Der Subnet-Manager ist verantwortlich für ein Erkennen und Konfigurieren der InfiniBand-Struktur (z.B. durch ein Durchführen von Verbindungsverwaltung und Konfiguration, Schalter-Unicast- und Multicast-Routing-Tabellen usw.) und ein Bereitstellen von Subnet-Administration-Diensten (z.B. Multicast-Gruppenverwaltung und Strukturabfragen). Der Subnet-Manager verwendet SM-MAD-Datagramme, um Erkennung und Konfiguration umzusetzen, und SA-MAD-Datagramme, um SA-Dienste umzusetzen.
  • In einem weiteren Aspekt umfassen ACTIVE-IB-Anschlüsse InfiniBand-Anschlüsse, die eine vorhandene IB-Verbindung aufweisen und für Datentransfers unter Verwendung von zuverlässigen Hochgeschwindigkeitsprotokollen konfiguriert sind. Diese sind auch als Anschlüsse mit aktiven IB-Verbindungen bekannt,
  • Tabelle 1 umfasst eine beispielhafte API zur Absturzerkennung gemäß einem beispielhaften Aspekt.
    Figure DE112021001517T5_0001
    Figure DE112021001517T5_0002
  • Die Aufruf-API für end_point_crash_detect_loop() überwacht ein einzelnes Modul (Server), und das Kontextargument definiert Überwachungsparameter und Adressinformationen.
  • Die Bedeutung der Kontextfelder ist wie folgt:
    • • params - Überwachungsparameter. Die Struktur und die Überwachungs-API sind auf eine Weise definiert, die ein Ändern von Überwachungsparametern aus einem Thread-Kontext ermöglicht, der sich von dem Überwachungskontext unterscheidet. Die Bedeutung der Felder ist wie folgt:
      • • probe_interval_ms - Überwachungsintervall in Millisekunden - erstes oder erstes nach einem guten Ping
      • • failed_probe_interval_ms - Überwachungsintervall in Millisekunden nach einem erkannten fehlgeschlagenen Ping
      • • link_probe_to_ms - MAD Zeitüberschreitung für Verbindungs-Prüfungsbefehl
      • • os_probe_to_ms - MAD Zeitüberschreitung für Betriebssystem-Ping-Befehl
      • • link_reset_to_ms - MAD Zeitüberschreitung für Verbindungs-Zurücksetzungsbefehl
      • • allowed_fail_cnt - Anzahl aufeinander folgender fehlgeschlagener Betriebssystem-Ping-Befehle, bevor Modulverbindungen zurückgesetzt werden (nur als Treffer gezählt, wenn das Ping fehlschlägt, aber mindestens eine der Verbindungen als ACTIVE erkannt wird)
      • • allowed_bullets - Anzahl zulässiger Zurücksetzungen pro Periode von bullet_lease_sec
      • • bullet_lease_sec - die Zeitspanne, die die Anzahl von zulässigen Zurücksetzungen (allowed_bullets) während dieser Zeit definiert.
      • • port_path - die Pfadparameter zu einem überwachten Modul. Rack-Systeme haben zwei Pfade (beide Anschlüsse eines Zielorts können geprüft werden), und POD-Systeme haben einen einzelnen Pfad (ein einzelner Anschluss eines Zielorts kann überwacht werden). Die Bedeutung der Felder in jeder Pfad-Definition ist wie folgt:
      • • dr_path_port - direkter Pfad zum Zielanschluss. Dieser Pfad kann sicher von einem Thread-Kontext aus überwacht werden, der sich von der Überwachung unterscheidet, vorausgesetzt, dass native ausgerichtete Typen (1, 2, 4, 8 Byte) zum Einrichten und Lesen des Pfads verwendet werden. Der Grund dafür ist, dass der Überwachungscode zu Beginn jedes Überwachungszyklus den Pfad auf eine private Datenstruktur kopiert und eine konsistente Pfaddefinition verwendet - entweder eine vor der Änderung oder eine nach der Änderung.
      • • dr_hop_cnt - definiert die Anzahl von Sprüngen in dem direkten Pfad.
      • • rem_port - gibt den Anschluss an, der zum Abfragen der Verbindung verwendet wird. Dieser Anschluss gehört zu dem Zielort, der einen Sprung vor dem überwachten Modul liegt. Bei RACK-Systemen entspricht er dem letzten Sprung in der Adresse (Schalteranschluss). Bei POD-Systemen ist er nicht bekannt und muss definiert werden.
      • • mad_handle - gibt die lokale MAD-Einheit an, die zum Erreichen des angegebenen entfernt angeordneten Anschlusses verwendet werden muss
      • • actual_fail_cnt - die Anzahl von aufeinander folgenden fehlgeschlagenen Betriebssystem-PING-Prüfungen - schwankt zwischen 0 bis allowed_fail_cnt. Der Wert dieses Felds wird nach einem ersten erfolgreichen Betriebssystem-Ping auf 0 zurückgesetzt und beginnt sich nach einem ersten fehlgeschlagenen Betriebssystem-Ping zu erhöhen (der Wert wird nur erhöht, wenn das Betriebssystem-Ping fehlschlägt und mindestens eine der Verbindungen aktiv ist).
      • • used_bullets - die Anzahl von Verbindungsrücksetzungen (einschließlich der ersten Zurücksetzung) ab dem Augenblick, in dem eine erste zulässige Zurücksetzung erfolgt ist (seit bullet_fire_stamp). Wird nach bullet_lease_sec auf 0 zurückgesetzt.
      • • bullet_fire_stamp - der Zeitpunkt, an dem eine erste Verbindungszurücksetzung innerhalb eines zulässigen Zeitrahmen oder Null ausgegeben wurde.
      • • os_probe_state_change_cb - der Rückruf, der nach einem erfolgreichen oder fehlgeschlagenen ersten Ping getätigt wird. Der Parameter probe_ok gibt an, ob der Betriebssystemprüfungszustand in FAILED oder OK übergeht. NULL-Wert bedeutet, dass kein Rückruf getätigt wird.
      • • link_reset_cb - der Rückruf wird getätigt, wenn eine Entscheidung getroffen wird, die Verbindung zurückzusetzen. Der Parameter reset_called gibt an, ob eine Zurücksetzung vorgenommen wurde (gemäß aufgebrauchten Aufzählungszeichen). NULL-Wert bedeutet, dass kein Callback (Rückruf) getätigt wird.
      • • os_probe_ok - der Zustand der Betriebssystemprüfung während der letzten Wiederholung.
      • • single_port - definiert, ob das überwachte Modul einen Pfad hat (Punkt-zu-Punkt-Verbindungen wie bei POD) oder zwei Pfade hat (wie bei RACK). Der Überwachungscode berücksichtigt diesen Wert.
      • • next_first_path - definiert, welcher Pfadindex (0 oder 1) während der nächsten Wiederholung als Nächster geprüft werden soll. Dieses Feld wird durch den Überwachungscode aktualisiert.
  • Die Kontextstruktur ist so definiert, dass auf sie von einem anderen Kontext leicht zugegriffen werden kann, was ein „Trace“-Fenster in dem Überwachungskontext ermöglicht. Die Aufruf-API für end_point_crash_detect_loop() überwacht permanent ein einzelnes Zielmodul. Der Überwachungsfluss wird im Folgenden beschrieben. Vor dem Starten der Überwachung werden die Überwachungsparameter und Adressinformationen in dem Überwachungskontext eingerichtet. Der Wert von verwendeten Aufzählungszeichen und der erste Aufzählungszeichen-Stempel werden auf Null gesetzt, und der Wert für den nächsten zu prüfenden Pfadindex wird ebenfalls aus Null gesetzt. Der Wert für os_probe_ok wird auf „Wahr“ gesetzt.
  • 1. Wenn die Überwachungsschleife gestartet wird, kopiert sie zuerst die Adressinformationen in eine private Datenstruktur.
  • 2. Danach fährt die Überwachungsschleife mit einem Prüfen des Betriebssystemzustands des entfernt angeordneten Moduls und des Zustands der IB-Verbindung des entfernt angeordneten Moduls fort. Die Prüfung erfolgt durch Verwenden eines direkten Pfads und eines MAD-Handle, der durch den nächsten Pfadindex identifiziert wird (next_first_path). Die Betriebssystemprüfung erfolgt durch Verwenden der API für sm_info_ping() unter Verwendung eines Zeitüberschreitungswerts, der os_probe_to_ms entspricht. Wenn das Betriebssystem-Ping erfolgreich ist, wird daraus geschlossen, dass der entfernt angeordnete Anschluss eine Verbindung hat und das entfernt angeordnete Betriebssystem aktiv ist. Wenn für das Betriebssystem-Ping eine Zeitüberschreitung vorliegt, fährt der Code damit fort, den Zustand der Verbindung zu bestimmen. Die Verbindung wird durch Verwenden der API für query_port_info() für den Anschluss rem_port auf dem Zielort geprüft, der einen Sprung vor dem vorher verwendeten Pfad liegt. Die Verbindungsprüfung verwendet denselben MAD-Handle, und der Zeitüberschreitungswert ist gleich link_probe_to_ms.
  • 3. Der Überwachungscode prüft den Prüfungszustand des entfernt angeordneten Moduls. Wenn die Betriebssystemprüfung erfolgreich war, fährt der Code mit Schritt 4 fort. Wenn das Betriebssystem-Ping fehlschlägt, und die Prüfung der Verbindung einen Fehler zurückgibt, fährt der Code mit einem Schritt 5 fort. Die letzte Entscheidung ist ein Auslegungspunkt, der eine falsch positive Erkennung minimieren möchte und erfordert, dass die am nächsten gelegene Seite der Verbindung (Schalter bei RACK-Systemen oder Modul bei POD-Systemen) nicht die Quelle von MAD-Fehlern sein darf. Wenn das Betriebssystem-Ping fehlschlägt, und die Prüfung der Verbindung einen Erfolg meldet, fährt der Code mit einem Schritt 6 fort.
  • 4. Wenn der Zustand des Betriebssystem-Pings erfolgreich war, prüft der Code, ob ein Callback für os_probe_state_change_cb aufgerufen werden soll. Der Callback wird aufgerufen, wenn der Wert nicht NULL ist, und der Wert von os_probe_ok falsch ist. Danach fährt der Code mit dem nächsten Schritt 5 fort.
  • 5. In diesem Schritt bereitet sich der Code darauf vor, einen neuen Überwachungszyklus zu starten. Der Code invertiert den Wert des next_first_path, es sei denn, single_port ist angegeben (0 → 1 und 1 → 0). Danach setzt der Code den Wert für os_probe_ok auf „Wahr“, setzt das Feld für actual_fail_cnt auf Null und startet die Überwachungsschleife nach probe_interval_ms Millisekunden neu, wodurch die Rückkehr zu Schritt 1 erfolgt.
  • 6. Wenn die Verbindungsprüfung erfolgreich ist, untersucht der Code den Zustand der Verbindung. Wenn die Verbindung aktiv ist, fährt der Code mit Schritt 7 fort. Wenn die Verbindung nicht aktiv ist, fährt der Code mit Schritt 8 fort.
  • 7. In diesem Schritt hat der Code bestimmt, dass der Verbindungszustand aktiv ist und eine Möglichkeit eines vorhandenen abgestürzten Betriebssystems mit Verbindungen in aktivem Zustand besteht. Der Code prüft dann, ob es einen zusätzlichen Pfad zu dem überwachten Modul gibt, der geprüft werden soll. Ein zusätzlicher Pfad ist nicht verfügbar, wenn der Parameter single_port eingerichtet ist, oder wenn der andere Pfad bereits geprüft worden ist. Wenn kein zusätzlicher zu prüfender Pfad verfügbar ist, fährt der Code mit Schritt 9 fort. Wenn ein zusätzlicher Pfad verfügbar ist, fährt der Code mit Schritt 8 fort.
  • 8. Dieser Schritt wird nur auf RACK-Systemen erreicht, die zwei Pfade zum Überwachen des Moduls verwenden. In diesem Schritt hat der Code bestimmt, dass die Betriebssystemprüfung über den ersten Pfad fehlgeschlagen ist, und die Verbindung auf dem ersten Pfad entweder abgeschaltet oder im Zustand ACTIVE ist. Dies ist nicht ausreichend, um über die Wiederherstellungsmaßnahme zu entscheiden, da die Überwachungslogik eine positive Erkennung des Problems über beide Anschlüsse des überwachten Moduls erfordert. Daher setzt der Code den Wert für next_first_path zurück und fährt mit Schritt 2 fort.
  • 9. In diesem Schritt setzt der Code den Wert für os_probe_ok auf „Falsch“ und prüft, ob ein Callback für os_probe_state_change_cb aufgerufen werden soll. Der Callback wird aufgerufen, wenn der Wert nicht NULL ist, und der Wert von os_probe_ok „Wahr“ war. Danach fährt der Code mit dem nächsten Schritt 10 fort.
  • 10. In diesem Schritt trifft der Code eine Entscheidung, ob das überwachte Modul ein abgestürztes Modul mit IB-Verbindungen im aktiven Zustand ist. Das Modul ist ein abgestürztes Modul mit IB-Verbindungen im aktiven Zustand, wenn mindestens eine der Verbindungen, die mit dem überwachten Modul verbunden sind, sich im aktiven Zustand befindet. Wenn das Modul KEIN abgestürztes Modul mit IB-Verbindungen im aktiven Zustand ist, setzt der Code das Feld für actual_fail_cnt auf Null zurück und fährt mit Schritt 16 fort. Andernfalls fährt der Code mit Schritt 11 fort.
  • 11. In diesem Schritt hat der Code bestimmt, dass ein abgestürztes Modul mit IB-Verbindungen im aktiven Zustand erkannt worden ist. Der Code erhöht die Zählung von actual_fail_cnt. Wenn der erhöhte Wert unter dem Wert von allowed_fail_cnt liegt, fährt der Code mit Schritt 16 fort. Andernfalls fährt der Code mit Schritt 12 fort.
  • 12. An diesem Punkt hat der Code bestimmt, dass eine Wiederherstellungsmaßnahme (Verbindungsrücksetzung) erforderlich ist. Der Code setzt das Feld für actual_fail_cnt auf Null zurück und prüft, ob der Wert für used_bullets unter dem Wert für allowed_bullets liegt. Wenn der Wert used_bullets unter demjenigen von allowed_bullets liegt, fährt der Code mit Schritt 15 fort. Andernfalls fährt der Code mit Schritt 13 fort.
  • 13. In diesem Schritt prüft der Code, ob der aktuelle Zeitstempel über bullet_fire_stamp + bullet_lease_sec liegt. Wenn der Wert des aktuellen Zeitstempels größer ist, setzt der Code den Wert für used_bullets zurück und fährt mit Schritt 15 fort. Andernfalls fährt der Code mit Schritt 14 fort.
  • 14. In diesem Schritt führt der Code den Callback für link_reset_cb aus, wobei der Parameterwert für reset_called auf „Falsch“ gesetzt wird, sofern der Wert des Callbacks nicht NULL ist, und fährt mit Schritt 16 fort.
  • 15. In diesem Schritt führt der Code eine Wiederherstellungsmaßnahme aus, wobei IB-Verbindungen auf einem abgestürzten Modul zurückgesetzt werden. Alle IB-Verbindungen eines überwachten Moduls werden durch Verwenden von bereitgestellten Pfadinformationen zurückgesetzt. Derselbe Pfad und MAD-Handle werden wie beim Abfragen des Verbindungszustands verwendet. Der Code verwendet die API für reset_port() mit einem Zeitüberschreitungswert von link_reset_to_ms. Die API verwendet das Set-Verfahren von SM Portlnfo MAD zum Deaktivieren und anschließenden Aktivieren der physischen Eigenschaft der Verbindung, wodurch eine Zurücksetzung der Verbindung verursacht wird. Die Zurücksetzung der physischen Verbindung wird schnell über eine logische (Software) Schicht propagiert, wodurch die Anwendung Verbindungen zurücksetzen und ausstehende E/A-Transaktionen leeren kann. Ferner, da die SM-Komponente von A9000 die logische Eigenschaft der Verbindung auf nicht reagierenden Modulen nicht aktiviert, bleiben die logischen Verbindungen eines abgestürzten Moduls abgeschaltet. Ein Zurücksetzen eines Wiederherstellungsverfahrens im Gegensatz zu einem Deaktivieren einer Verbindung ist ein Auslegungspunkt zum Minimieren der Auswirkung einer falsch positiven Erkennung. Wenn der Code Verbindungen für ein belegtes, aber aktives Modul zurücksetzt, aktiviert die SM-Komponente die logische Eigenschaft von IB-Verbindungen wieder, sobald die physische Verbindung vermittelt worden ist und die Software auf dem überwachten Modul zu reagieren beginnt. Nach diesem Schritt fährt der Code mit Schritt 16 fort.
  • 16. In diesem Schritt startet der Code die Überwachung mit einer verringerten Überwachungs-Zeitüberschreitung neu. Der Code invertiert den Wert des next_first_path, es sei denn, single_port ist angegeben (0 → 1 und 1 → 0). Danach startet der Code die Überwachungsschleife nach failed_probe_interval_ms Millisekunden erneut, wodurch er zu Schritt 1 zurückkehrt.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf jeder möglichen technischen Detailintegrationsebene handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) enthalten, auf dem durch einen Computer lesbare Programmanweisungen gespeichert sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zum Ausführen von Anweisungen beibehalten und speichern kann. Das durch einen Computer lesbare Speichermedium kann zum Beispiel eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Zu einer nicht erschöpfenden Liste von spezifischeren Beispielen des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer CD-ROM, eine DVD, ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination des Vorgenannten. Ein durch einen Computer lesbares Speichermedium soll, wie hierin verwendet, nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder andere Übertragungsmedien ausbreiten (z.B. durch ein Lichtwellenleiterkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltungen oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch jeden Typ von Netzwerk verbunden werden, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Aspekten können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, feldprogrammierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die computerlesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der computerlesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Aspekten der Erfindung beschrieben. Es sollte klar sein, dass jeder Block der Ablaufplanveranschaulichungen und/oder der Blockschaubilder und Kombinationen von Blöcken in den Ablaufplanveranschaulichungen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen umgesetzt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können für einen Prozessor eines Computers oder eine andere programmierbare Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. eine andere programmierbare Datenverarbeitungsvorrichtung ausgeführten Anweisungen Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte erstellen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, die Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Arbeitsschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Aspekten der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder den Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zum Umsetzen der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt auftreten. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich als ein Schritt durchgeführt werden, der gleichzeitig, im Wesentlichen gleichzeitig, in einer teilweise oder vollständig zeitlich überlappenden Weise ausgeführt wird, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufplandarstellungen sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die angegebenen Funktionen oder Handlungen durchführen oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Des Weiteren kann ein System gemäß verschiedenen Aspekten einen Prozessor und Logik enthalten, die in den Prozessor integriert und/oder von diesem ausführbar ist, wobei die Logik so konfiguriert ist, dass sie einen oder mehrere der hierin genannten Prozessschritte ausführt. Mit „integriert“ ist gemeint, dass in den Prozessor Logik als Hardware-Logik eingebettet ist, wie beispielsweise eine anwendungsspezifische integrierte Schaltung (ASIC), ein FPGA usw. Mit „durch den Prozessor ausführbar“ ist gemeint, dass die Logik Hardware-Logik ist; Software-Logik wie zum Beispiel Firmware, Teil eines Betriebssystems, Teil eines Anwendungsprogramms usw. ist; oder eine Kombination aus Hardware- und Software-Logik ist, auf die durch den Prozessor zugegriffen werden kann und die konfiguriert ist, um den Prozessor zu veranlassen, eine Funktionalität bei Ausführung durch den Prozessor auszuführen. Software-Logik kann auf einem lokalen und/oder entfernt angeordneten Arbeitsspeicher jedes Arbeitsspeichertyps gespeichert werden, wie im Stand der Technik bekannt. Jeder im Stand der Technik bekannte Prozessor kann verwendet werden, wie zum Beispiel ein Software-Prozessormodul und/oder ein Hardware-Prozessor wie eine ASIC, ein FPGA, eine Zentraleinheit (CPU), eine integrierte Schaltung (IC), eine Grafikverarbeitungseinheit (GPU) usw.
  • Es sollte klar sein, dass die verschiedenen Merkmale der vorstehend aufgeführten Systeme und/oder Methodiken auf jede Weise kombiniert werden können, wodurch eine Mehrzahl von Kombinationen aus den oben angegebenen Beschreibungen geschaffen wird.
  • Es sollte ferner klar sein, dass Aspekte der vorliegenden Erfindung in der Form eines Service bereitgestellt werden können, der für einen Kunden zum Bereitstellen von bedarfsgesteuertem Service eingerichtet wird.
  • Die Beschreibungen der verschiedenen Aspekte der vorliegenden Erfindung wurden zum Zweck der Veranschaulichung erstellt, sie sollen aber keineswegs erschöpfend oder auf die offenbarten Aspekte eingeschränkt sein. Für Fachleute sind viele Modifizierungen und Variationen offenkundig, die nicht von dem Schutzumfang und Erfindungsgedanken der beschriebenen Aspekte abweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Aspekte, der praktischen Anwendung oder technischen Verbesserung gegenüber auf dem Markt gefundenen Technologien bestmöglich zu erklären oder anderen Fachleuten das Verständnis der hierin offenbarten Aspekte zu ermöglichen.

Claims (25)

  1. Durch einen Computer umgesetztes Verfahren, das aufweist: Bestimmen, ob ein Betriebssystem eines Knotens einer verteilten Datenverarbeitungsumgebung korrekt arbeitet, indem eine erste Verwaltungsabfrage zu dem Knoten gesendet wird; in Reaktion auf das Bestimmen, dass das Betriebssystem des Knotens nicht korrekt arbeitet, Bestimmen, ob der Knoten eine aktive Datenübertragungsverbindung hat, indem eine zweite Verwaltungsabfrage zu Anschlüssen gesendet wird, die dem Knoten zugehörig sind; und in Reaktion auf das Bestimmen, dass der Knoten eine aktive Datenübertragungsverbindung hat, Zurücksetzen der aktiven Datenübertragungsverbindung für den Knoten, indem eine Zurücksetzanforderung zu den Anschlüssen gesendet wird, die dem Knoten zugehörig sind.
  2. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei die erste Verwaltungsabfrage über eine Punkt-zu-Punkt-Verbindung zwischen dem ersten Knoten und dem zweiten Knoten direkt von einem ersten Knoten der verteilten Datenverarbeitungsumgebung zu einem zweiten Knoten gesendet wird.
  3. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei die erste Verwaltungsabfrage über einen Schalter, der sich zwischen dem ersten Knoten und dem zweiten Knoten befindet, indirekt von einem ersten Knoten der verteilten Datenverarbeitungsumgebung zu einem zweiten Knoten gesendet wird.
  4. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei die erste Verwaltungsabfrage in Reaktion auf ein Bestimmen, dass der zweite Knoten ein dem ersten Knoten benachbarter Knoten ist, von einem ersten Knoten zu einem zweiten Knoten gesendet wird.
  5. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei die erste Verwaltungsabfrage eine Strukturverwaltungsabfrage umfasst, die in dem Betriebssystem des Knotens endet.
  6. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei in Reaktion auf ein Bestimmen, dass auf die erste Verwaltungsabfrage keine Reaktion von dem Knoten innerhalb eines vorbestimmten Zeitraums erhalten wurde, bestimmt wird, dass das Betriebssystem des Knotens nicht korrekt arbeitet.
  7. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei die zweite Verwaltungsabfrage die dem Knoten zugehörigen Anschlüsse abfragt, ob der Knoten eine aktive Datenübertragungsverbindung hat.
  8. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei in Reaktion auf ein Identifizieren eines aktiven Anschlusses in dem Knoten in Reaktion auf die zweite Verwaltungsabfrage bestimmt wird, dass der Knoten eine aktive Datenübertragungsverbindung hat.
  9. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei in Reaktion auf ein Bestimmen, dass das Betriebssystem des Knotens nicht korrekt arbeitet, und der Knoten auch eine aktive Datenübertragungsverbindung hat, eine vorbestimmte Zählung erhöht wird, und eine Überwachung des Knotens mit größerer Häufigkeit durchgeführt wird.
  10. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei eine Zurücksetzanforderung die dem Knoten zugehörigen Anschlüsse veranlasst, alle aktiven Datenübertragungsverbindungen in dem Knoten zurückzusetzen.
  11. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei jedem Knoten in der verteilten Datenverarbeitungsumgebung ein Überwachungsknoten zugewiesen ist.
  12. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei ein Überwachungsknoten in der verteilten Datenverarbeitungsumgebung innerhalb eines vorbestimmten Zeitraums nur eine vorbestimmte Anzahl von Zurücksetzanforderungen zu einem anderen Knoten senden darf.
  13. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei sowohl die erste Verwaltungsabfrage als auch die zweite Verwaltungsabfrage Abfragen mit hoher Priorität sind.
  14. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei die erste Verwaltungsabfrage auch bestimmt, ob ein Netzwerkadapter des Knotens betriebsbereit ist.
  15. Computerprogrammprodukt zum Abschirmen (Fencing) von nicht reagierenden Anschlüssen in einer Netzwerkstruktur, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit darauf verkörperten Programmanweisungen aufweist, wobei das durch einen Computer lesbare Speichermedium kein flüchtiges Signal per se ist, wobei die durch einen Prozessor ausführbaren Programmanweisungen den Prozessor veranlassen, ein Verfahren durchzuführen, das aufweist: Bestimmen, ob ein Betriebssystem eines Knotens einer verteilten Datenverarbeitungsumgebung korrekt arbeitet, indem eine erste Verwaltungsabfrage durch Verwenden des Prozessors zu dem Knoten gesendet wird; in Reaktion auf das Bestimmen, dass das Betriebssystem des Knotens nicht korrekt arbeitet, Bestimmen, ob der Knoten eine aktive Datenübertragungsverbindung hat, indem durch Verwenden des Prozessors eine zweite Verwaltungsabfrage zu Anschlüssen gesendet wird, die dem Knoten zugehörig sind; und in Reaktion auf das Bestimmen, dass der Knoten eine aktive Datenübertragungsverbindung hat, Zurücksetzen der aktiven Datenübertragungsverbindung für den Knoten, indem durch Verwenden des Prozessors eine Zurücksetzanforderung zu den Anschlüssen gesendet wird, die dem Knoten zugehörig sind.
  16. Computerprogrammprodukt nach Anspruch 15, wobei die erste Verwaltungsabfrage über eine Punkt-zu-Punkt-Verbindung zwischen dem ersten Knoten und dem zweiten Knoten direkt von einem ersten Knoten einer verteilten Datenverarbeitungsumgebung zu einem zweiten Knoten gesendet wird.
  17. Computerprogrammprodukt nach Anspruch 15, wobei die erste Verwaltungsabfrage über einen Schalter, der sich zwischen dem ersten Knoten und dem zweiten Knoten befindet, indirekt von einem ersten Knoten einer verteilten Datenverarbeitungsumgebung zu einem zweiten Knoten gesendet wird.
  18. Computerprogrammprodukt nach Anspruch 15, wobei die erste Verwaltungsabfrage in Reaktion auf ein Bestimmen, dass der zweite Knoten ein dem ersten Knoten benachbarter Knoten ist, von einem ersten Knoten zu einem zweiten Knoten gesendet wird.
  19. Computerprogrammprodukt nach Anspruch 15, wobei die erste Verwaltungsabfrage eine Strukturverwaltungsabfrage umfasst, die in dem Betriebssystem des Knotens endet.
  20. Computerprogrammprodukt nach Anspruch 15, wobei in Reaktion auf ein Bestimmen, dass auf die erste Verwaltungsabfrage keine Reaktion von dem Knoten innerhalb eines vorbestimmten Zeitraums erhalten wurde, bestimmt wird, dass das Betriebssystem des Knotens nicht korrekt arbeitet.
  21. Computerprogrammprodukt nach Anspruch 15, wobei die zweite Verwaltungsabfrage die dem Knoten zugehörigen Anschlüsse abfragt, ob der Knoten eine aktive Datenübertragungsverbindung hat.
  22. System, das aufweist: einen Prozessor; und in den Prozessor integrierte Logik, die durch den Prozessor ausführbar ist oder in den Prozessor integriert und durch diesen ausführbar ist, wobei die Logik konfiguriert ist zum: Bestimmen, ob ein Betriebssystem eines Knotens einer verteilten Datenverarbeitungsumgebung korrekt arbeitet, indem eine erste Verwaltungsabfrage zu dem Knoten gesendet wird; in Reaktion auf das Bestimmen, dass das Betriebssystem des Knotens nicht korrekt arbeitet, Bestimmen, ob der Knoten eine aktive Datenübertragungsverbindung hat, indem eine zweite Verwaltungsabfrage zu Anschlüssen gesendet wird, die dem Knoten zugehörig sind; und in Reaktion auf das Bestimmen, dass der Knoten eine aktive Datenübertragungsverbindung hat, Zurücksetzen der aktiven Datenübertragungsverbindung für den Knoten, indem eine Zurücksetzanforderung zu den Anschlüssen gesendet wird, die dem Knoten zugehörig sind.
  23. Durch einen Computer umgesetztes Verfahren, das aufweist: Senden einer ersten Verwaltungsabfrage von einem ersten Knoten einer verteilten Datenverarbeitungsumgebung zu einem zweiten Knoten der verteilten Datenverarbeitungsumgebung, wobei die erste Verwaltungsabfrage einem Betriebssystem des zweiten Knotens zugehörig ist; in Reaktion auf ein Fehlschlagen an dem ersten Knoten eine Reaktion auf die erste Verwaltungsabfrage von dem zweiten Knoten zu erhalten, Senden einer zweiten Verwaltungsabfrage von dem ersten Knoten zu einem oder mehreren Datenübertragungsanschlüssen, die dem zweiten Knoten zugehörig sind; und in Reaktion auf ein Empfangen, an dem ersten Knoten, einer Reaktion auf die zweite Verwaltungsabfrage von dem einen oder den mehreren Datenübertragungsanschlüssen, der bzw. die dem zweiten Knoten zugehörig sind, der bzw. die angeben, dass der zweite Knoten eine aktive Datenübertragungsverbindung hat, Senden einer Verbindungs-Zurücksetzanforderung zum Zurücksetzen des einen oder der mehreren Datenübertragungsanschlüsse des zweiten Knotens mit der aktiven Datenübertragungsverbindung durch den ersten Knoten zu dem einen oder den mehreren Datenübertragungsanschlüssen, der bzw. die dem zweiten Knoten zugehörig sind.
  24. Durch einen Computer umgesetztes Verfahren nach Anspruch 23, wobei eine Mehrzahl von zusätzlichen Knoten mit dem ersten Knoten und dem zweiten Knoten in der verteilten Datenverarbeitungsumgebung enthalten ist, und jeder der Knoten in der verteilten Datenverarbeitungsumgebung benachbarte Knoten durch Verwenden der ersten Verwaltungsabfrage und der zweiten Verwaltungsabfrage überwacht.
  25. Computerprogrammprodukt zum Umsetzen eines Verwaltungsknotens innerhalb einer verteilten Datenverarbeitungsumgebung, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit darauf verkörperten Programmanweisungen aufweist, wobei das durch einen Computer lesbare Speichermedium kein flüchtiges Signal per se ist, wobei die durch einen Prozessor ausführbaren Programmanweisungen den Prozessor veranlassen, ein Verfahren durchzuführen, das aufweist: Senden einer ersten Verwaltungsabfrage von einem ersten Knoten einer verteilten Datenverarbeitungsumgebung zu einem zweiten Knoten der verteilten Datenverarbeitungsumgebung durch Verwenden des Prozessors, wobei die erste Verwaltungsabfrage einem Betriebssystem des zweiten Knotens zugehörig ist; in Reaktion auf ein Fehlschlagen, an dem ersten Knoten eine Reaktion auf die erste Verwaltungsabfrage von dem zweiten Knoten zu erhalten, Senden einer zweiten Verwaltungsabfrage durch Verwenden des Prozessors von dem ersten Knoten zu einem oder mehreren Datenübertragungsanschlüssen, die dem zweiten Knoten zugehörig sind; und in Reaktion auf ein Empfangen, an dem ersten Knoten, einer Reaktion auf die zweite Verwaltungsabfrage von dem einen oder den mehreren Datenübertragungsanschlüssen, der bzw. die dem zweiten Knoten zugehörig sind, der bzw. die angeben, dass der zweite Knoten eine aktive Datenübertragungsverbindung hat, Senden, durch Verwenden des Prozessors, einer Verbindungs-Zurücksetzanforderung zum Zurücksetzen des einen oder der mehreren Datenübertragungsanschlüsse des zweiten Knotens mit der aktiven Datenübertragungsverbindung von dem ersten Knoten zu dem einen oder den mehreren Datenübertragungsanschlüssen, der bzw. die dem zweiten Knoten zugehörig sind.
DE112021001517.6T 2020-05-08 2021-04-27 Abschirmen von nicht reagierenden anschlüssen in einer netzwerkstruktur Pending DE112021001517T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/870,598 US11226879B2 (en) 2020-05-08 2020-05-08 Fencing non-responding ports in a network fabric
US16/870,598 2020-05-08
PCT/IB2021/053435 WO2021224717A1 (en) 2020-05-08 2021-04-27 Fencing non-responding ports in a network fabric

Publications (1)

Publication Number Publication Date
DE112021001517T5 true DE112021001517T5 (de) 2023-01-12

Family

ID=78412663

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021001517.6T Pending DE112021001517T5 (de) 2020-05-08 2021-04-27 Abschirmen von nicht reagierenden anschlüssen in einer netzwerkstruktur

Country Status (10)

Country Link
US (1) US11226879B2 (de)
JP (1) JP2023526174A (de)
KR (1) KR20220160055A (de)
CN (1) CN115516423A (de)
AU (1) AU2021266891B2 (de)
CA (1) CA3167963A1 (de)
DE (1) DE112021001517T5 (de)
GB (1) GB2610528A (de)
IL (1) IL296678A (de)
WO (1) WO2021224717A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11809265B1 (en) * 2022-07-21 2023-11-07 Vmware, Inc. Methods and apparatus to manage resources when performing an account health check

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7023811B2 (en) 2001-01-17 2006-04-04 Intel Corporation Switched fabric network and method of mapping nodes using batch requests
US7093154B2 (en) * 2001-10-25 2006-08-15 International Business Machines Corporation Critical adapter local error handling
US7526549B2 (en) * 2003-07-24 2009-04-28 International Business Machines Corporation Cluster data port services for clustered computer system
US7872982B2 (en) 2006-10-02 2011-01-18 International Business Machines Corporation Implementing an error log analysis model to facilitate faster problem isolation and repair
US20080192654A1 (en) 2007-02-09 2008-08-14 Timothy Roy Block Method, Apparatus, and Computer Program Product for Implementing Infiniband Network Topology Simplification
EP2192721A1 (de) 2008-11-28 2010-06-02 Thomson Licensing Verfahren zum Betreiben eines Netzwerk-Subnetzverwalters
US20100284269A1 (en) * 2009-05-07 2010-11-11 Shan Zhu Multi-Node State Recovery for a Communication Network
EP2320608A1 (de) 2009-11-06 2011-05-11 Thomson Licensing Verfahren und System zur Umsetzung von Dienstgüteverwaltung in Infiniband-Netzen
US20120311182A1 (en) 2011-06-03 2012-12-06 Oracle International Corporation System and method for supporting controlled re-routing in an infiniband (ib) network
US9135097B2 (en) 2012-03-27 2015-09-15 Oracle International Corporation Node death detection by querying
CN104798349B (zh) 2013-01-30 2018-08-07 慧与发展有限责任合伙企业 响应于端口故障的故障转移
CN108028788B (zh) * 2015-09-25 2021-06-08 英特尔公司 在lan接口重置期间活动的链路
US10348645B2 (en) 2016-01-27 2019-07-09 Oracle International Corporation System and method for supporting flexible framework for extendable SMA attributes in a high performance computing environment
WO2018122577A1 (en) * 2016-12-29 2018-07-05 Ho Ming Chan Methods and systems for restarting one or more components of a network device based on conditions
US10868709B2 (en) 2018-09-10 2020-12-15 Oracle International Corporation Determining the health of other nodes in a same cluster based on physical link information
US10797989B2 (en) 2018-09-19 2020-10-06 Amazon Technologies, Inc. Scalable virtual traffic hub interconnecting isolated networks
CN109450666B (zh) 2018-10-12 2022-06-10 新华三技术有限公司成都分公司 分布式系统网络管理方法及装置

Also Published As

Publication number Publication date
CN115516423A (zh) 2022-12-23
KR20220160055A (ko) 2022-12-05
US20210349794A1 (en) 2021-11-11
JP2023526174A (ja) 2023-06-21
WO2021224717A1 (en) 2021-11-11
AU2021266891A1 (en) 2022-11-24
GB202218235D0 (en) 2023-01-18
GB2610528A (en) 2023-03-08
AU2021266891B2 (en) 2024-01-04
IL296678A (en) 2022-11-01
CA3167963A1 (en) 2021-11-11
US11226879B2 (en) 2022-01-18

Similar Documents

Publication Publication Date Title
DE102012210914B4 (de) Switch-Fabric-Management
DE112011103666B4 (de) Speicherverwaltung in Cluster-Datenverarbeitungssystemen
DE112013002014B4 (de) Bereitstellen von anwendungsgestützter Überwachung und Wiederherstellung für einen Hypervisor eines HA-Clusters
DE69907776T2 (de) Verfahren und Vorrichtung zur Identifizierung gefährdeter Bauteile in einem System mit redundanten Bauteilen
DE102004052270B4 (de) Verarbeitungsvorrichtungs-Managementsystem
DE112011100392B4 (de) Ressourcenaffinität durch dynamisches hinzufügen oder entfernen von warteschlangenpaaren für netzadapter mit software zur empfangsseitigen skalierung (rss)
DE69832096T2 (de) Netzwerkverwaltung
DE112020005786T5 (de) Systeme und verfahren zum ermöglichen eines hochverfügbaren verwalteten ausfallsicherungsdienstes
DE112014000358B4 (de) Regionales Firewall-Clustering in einer vernetzten Datenverarbeitungsumgebung
DE112010004238T5 (de) Intelligente rollierende Aufrüstung für Datenspeichersysteme
DE102021103080B4 (de) Data center troubleshooting-mechanismus
EP2880534B1 (de) Hochverfügbares rechnersystem, arbeitsverfahren und dessen verwendung
DE112013006063T5 (de) Funktionsübernahme für einen Datenübertragungskanal in einem Netzwerk mit Hochleistungsdatenverarbeitung
DE102014108249A1 (de) Realisieren erweiterter Fehlerbehandlung für einen gemeinsam genutzten Adapter in einem virtualisierten System
DE202016009110U1 (de) System, Adapter, Vorrichtung und Server zum Ausgleichen von Speicherdatenverkehr in konvergierten Netzwerken
DE102018202432A1 (de) Strukturunterstützung für die Dienstgüte
DE112022003720T5 (de) Verwenden eines fernen pods in kubernetes
DE102016203598A1 (de) Gemeinschaftliche sammlung von diagnosedaten von softwareprogrammen
DE112020004760T5 (de) Steuern von interaktionen mit einer skalierbaren anwendung
DE112007003722B4 (de) Modifizieren von Systemroutinginformationen in linkbasierenden Systemen
DE112021001517T5 (de) Abschirmen von nicht reagierenden anschlüssen in einer netzwerkstruktur
DE112021004854T5 (de) Dynamische ersetzung von verarbeitungselementen mit einem leistungsabfall in streaming-anwendungen
DE112021004473T5 (de) Lastausgleich auf speicherebene
DE112018002049T5 (de) Verfahren zum erkennen entfernt angeordneter knoten und zum überprüfen sowie verbinden von übertragungskanälen
DE102021107655A1 (de) Protokollverwaltung für ein mehrknotendatenverarbeitungssystem

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence