DE202015009295U1 - Effiziente Ressourcennutzung in Datenzentren - Google Patents

Effiziente Ressourcennutzung in Datenzentren Download PDF

Info

Publication number
DE202015009295U1
DE202015009295U1 DE202015009295.0U DE202015009295U DE202015009295U1 DE 202015009295 U1 DE202015009295 U1 DE 202015009295U1 DE 202015009295 U DE202015009295 U DE 202015009295U DE 202015009295 U1 DE202015009295 U1 DE 202015009295U1
Authority
DE
Germany
Prior art keywords
resources
available
jobs
data
quota
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.)
Active
Application number
DE202015009295.0U
Other languages
English (en)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of DE202015009295U1 publication Critical patent/DE202015009295U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • 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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/504Resource capping
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

System, das Folgendes umfasst: Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) eines verteilten Systems (100); und einen Computerprozessor (202) in Kommunikation mit den Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436), worin der Computerprozessor (202) Folgendes ausführt: das Identifizieren hochgradig verfügbarer Jobs (122, 122a) und geringfügig verfügbarer Jobs (122, 122b), welche die Nutzung der Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) erfordern; das Bestimmen einer ersten Quote (Q2) der Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436), die für geringfügig verfügbare Jobs (122, 122b) bereitstehen als eine Quantität der im Verlauf normaler Operationen zur Verfügung stehenden Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436); das Bestimmen einer zweiten Quote (Q2) der Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436), die für hochgradig verfügbare Jobs (122, 122a) als eine Quantität der Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) bereitstehen, die im Verlauf normaler Operationen zur Verfügung stehen, abzüglich einer Quantität der aufgrund eines tolerierten Ereignisses verlorenen Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436); das Ausführen der Jobs (122, 122a, 122b) mit den Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) des verteilten Systems (100); und das Einschränken einer Gesamtnutzung der Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) sowohl durch die hochgradig verfügbaren Jobs (122, 122a) als auch die geringfügig verfügbaren Jobs (122, 122b) auf die Quantität der im Verlauf normaler Operationen zur Verfügung stehenden Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436).

Description

  • TECHNISCHES GEBIET
  • Diese Offenlegung bezieht sich auf die effiziente Ressourcennutzung in Datenzentren bei einem Systemausfall. Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind dabei, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen.
  • HINTERGRUND
  • Ein verteiltes System besteht im Allgemeinen aus vielen lose gekoppelten Computer, die jeweils üblicherweise eine Rechenressource (z. B. einen oder mehrere Prozessoren) und/oder Speicherressourcen (z. B. Speicher, Flash-Speicher und/oder Datenträger) beinhalten. Ein verteiltes Speichersystem überlagert auf den Speicherressourcen des verteilten Systems eine Speicherabstraktion (z. B. einen Schlüssel/Wert-Speicher oder ein Dateisystem). In dem verteilten Speichersystem kann ein auf einem Computer laufender Serverprozess die Ressourcen dieses Computers zu Client-Prozessen exportieren, die auf anderen Computer laufen. RPCs (Remote Procedure Calls, entfernte Prozeduraufrufe) können Daten von Server-Prozessen an Client-Prozesse übertragen. Alternativ kann Remote Direct Memory Access (RDMA, Speicherfernzugriff) verwendet werden, um Daten von der Server-Hardware an Client-Prozesse zu übertragen.
  • ZUSAMMENFASSUNG
  • Ein Aspekt der Offenlegung sieht ein Verfahren für die effiziente Ressourcennutzung (z. B. Prozessoren und/oder Speichergeräte) in Datenzentren vor. Das Verfahren beinhaltet die Identifizierung hochgradig verfügbarer und geringfügig verfügbarer Jobs, die den Einsatz der Ressourcen eines verteilten Systems und die Bestimmung einer ersten Quote der für geringfügig verfügbare Jobs bereitstehenden Ressourcen als eine Quantität der Ressourcen erfordern, die im Verlauf normaler Operationen zur Verfügung stehen. Optional beinhaltet das Verfahren die Bestimmung einer zweiten Quote von Ressourcen, die für hochgradig verfügbare Jobs als eine Quantität der Ressourcen bereitstehen, die im Verlauf normaler Operationen zur Verfügung stehen, abzüglich einer Quantität der aufgrund eines tolerierten Ereignisses verlorenen Ressourcen. Das Verfahren kann die Ausführung der Jobs mit den Ressourcen des verteilten Systems und die Einschränkung einer Gesamtnutzung der Ressourcen durch sowohl die hochgradig verfügbaren als auch die geringfügig verfügbaren Jobs auf die im Verlauf der normalen Operationen bereitstehenden Ressourcen beinhalten.
  • Implementierungen der Offenlegung können eines oder mehrere der folgenden optionalen Merkmale beinhalten. Bei einigen Implementierungen beinhalten die Ressourcen Datenverarbeitungsgeräte, Netzwerksysteme, Energiesysteme oder Kühlsysteme. Für diese Art der Ressourcen kann das Verfahren die Migration von den aufgrund des tolerierten Ereignisses verlorenen Ressourcen zugeteilten Jobs zu verbleibenden Ressourcen oder deren erneute Ausführung beinhalten.
  • Bei einigen Implementierungen beinhalten die Ressourcen nicht-flüchtige Speichergeräte (auch als Speicherressourcen bezeichnet). Für diese Art der Ressource kann das Verfahren den Verzicht auf Jobs, die den verlorenen Ressourcen zugeteilt waren, ohne die erneute Zuteilung der Jobs an verbleibende Ressourcen und die Rekonstruktion jeglicher mit den verlorenen Ressourcen assoziierter, nicht verfügbarer Daten beinhalten. Speicherressourcen haben zwei Arten der Nutzung: Eine Byte-Nutzung/Speicherkapazität und eine Zugriffsbandbreite (wie etwa die Anzahl der für die Festplattenspeicherung gestatteten Eingabe-/Aufgabeoperationen pro Sekunde, oder der Umfang der/des für eine solche Speicherung zulässigen Spindelnutzung/Zugriffs. Die Zuteilung von Jobs an Speicherressourcen kann von deren Art der Nutzung abhängen. In einigen Beispielen können bis zu 100% der normalen Byte-Nutzung/Speicherkapazität an hochgradig verfügbare Jobs zugeteilt werden, während ein Bruchteil der normalen Bandbreite (Spindel-Nutzung) an hochgradig verfügbare Jobs zugeteilt werden.
  • Das Verfahren kann die Bestimmung der zweiten Quote der für hochgradig verfügbare Jobs bereitgestellten Ressource als die Quantität der im Verlauf normaler Operationen zur Verfügung stehenden Ressourcen beinhalten, abzüglich der Quantität der aufgrund eines tolerierten Ereignisses verlorenen Ressourcen abzüglich einer erhöhten Quantität der verbleibenden Ressourcen, die wegen des tolerierten Ereignisses benötigt werden. Zusätzlich oder alternativ kann das Verfahren die Begrenzung einer Summe der ersten Quote und der zweiten Quote auf eine maximale Quote beinhalten.
  • In einigen Implementierungen beinhaltet das Verfahren die Überwachung der Nutzung der Ressourcen durch die hochgradig verfügbaren Jobs. Wenn ein hochgradig verfügbarer Job eine Schwellennutzung überschreitet, beinhaltet das Verfahren die Rückstufung des hochgradig verfügbaren Jobs auf einen geringfügig verfügbaren Job. Das Verfahren kann die Rückstufung der ersten Quote der für geringfügig verfügbare Jobs bereitstehenden Ressourcen für einen Zeitraum vor dem tolerierten Ereignis und die Erhöhung der zweiten Quote der für die hochgradig verfügbaren Jobs bereitstehenden Ressourcen für den Zeitraum vor dem tolerierten Ereignis beinhalten. Zusätzlich oder alternativ kann das Verfahren die Suspendierung oder Beendung von wenigstens einigen der geringfügig verfügbaren Jobs für einen Zeitraum vor dem tolerierten Ereignis beinhalten.
  • In einigen Beispielen beinhaltet das Verfahren die Bestimmung der Quantität der aufgrund des tolerierten Ereignisses verlorenen Ressourcen auf der Grundlage der Zuteilung der Jobs an bestimmte Ressourcen und einer Systemhierarchie des verteilten Systems. Die Systemhierarchie beinhaltet Systemdomänen. Jede Systemdomäne hat einen aktiven oder inaktiven Zustand. Die Systemhierarchie kann Systemebenen beinhalten, wie etwa eine erste, zweite, dritte und vierte Ebene. Die erste Systemstufe entspricht dem Hostgerät der Datenverarbeitungsgeräte, nichtflüchtigen Speichergeräten oder Netzwerkschnittstellen. Jedes Hostgerät enthält eine Systemdomäne. Die zweite Systemstufe entspricht der Stromzufuhr, den Kommunikationseinheiten oder Kühleinheiten von Racks, in denen das Hostgerät aufbewahrt wird. Jede Stromzufuhr, Kommunikationseinheit oder Kühleinheit des Racks besitzt eine Systemdomäne. Die dritte Systemebene korrespondiert mit Energiezulieferern, Kommunikationszulieferern oder Kühlungszulieferern von Zellen, die eine Domäne haben. Jede Stromzufuhr, Kommunikationseinheit oder Kühleinheit der Zelle besitzt eine Systemdomäne. Die vierte Systemstufe entspricht einem Verteilungszentrums-Moduls der Zellen, wobei jedes Verteilungszentrums-Modul eine Systemdomäne besitzt.
  • Ein weiterer Aspekt der Offenlegung bietet ein System für die effiziente Nutzung der Ressourcen eines verteilten Systems. Das System beinhaltet Ressourcen eines verteilten Systems und einen Computerprozessor in Kommunikation mit den Ressourcen. Der Computerprozessor identifiziert hochgradig verfügbare Jobs und geringfügig verfügbare Jobs, welche die Nutzung der Ressourcen erfordern und bestimmt die erste Quote der Ressourcen, die für geringfügig verfügbare Jobs bereitstehen als eine Quantität von Ressourcen, die im Verlauf normaler Operationen zur Verfügung stehen. Der Computerprozessor kann optional eine zweite Quote der Ressourcen, die für hochgradig verfügbare Jobs bereitstehen, als eine Quote der im Verlauf normaler Operationen zur Verfügung stehenden Ressourcen bestimmen, abzüglich einer Quantität der Ressourcen, die aufgrund des tolerierten Ereignisse verloren wurden. Der Prozessor realisiert die Jobs im verteilten System und schränkt eine Gesamtnutzung der Ressourcen durch sowohl die hochgradig verfügbaren als auch die geringfügig verfügbaren Jobs auf die im Verlauf der normalen Operationen zur Verfügung stehenden Ressourcen ein.
  • Dieser Aspekt kann eines oder mehrere der folgenden optionalen Merkmale beinhalten. In einigen Implementierungen beinhalten die Systemressourcen Datenverarbeitungsgeräte, Netzwerksysteme, Energiesysteme oder Kühlsysteme. Für diese Arten der Ressourcen kann der Computerprozessor Jobs migrieren oder erneut ausführen, die Ressourcen zugeteilt sind, die aufgrund des tolerierten Ereignisses für die verbleibenden Ressourcen verloren sind.
  • In einigen Implementierungen beinhalten die Systemressourcen nicht-flüchtige Speichergeräte. Für diese Art der Ressource kann der Computerprozessor Jobs, die den verlorenen Ressourcen zugeteilt waren, aufgeben ohne die erneute Zuteilung der Jobs an verbleibende Ressourcen und die Rekonstruktion jeglicher mit den verlorenen Ressourcen assoziierter, nicht verfügbarer Daten.
  • Der Computerprozessor kann die zweite Quote der für hochgradig verfügbare Jobs bereitstehenden Ressourcen als die Quantität der Ressourcen bestimmen, die im Verlauf normaler Operationen zur Verfügung stehen, abzüglich der Quantität der aufgrund eines tolerierten Ereignisses verlorenen Ressourcen, abzüglich einer erhöhten Quantität der verbleibenden Ressourcen, die wegen des tolerierten Ereignisses benötigt werden. Zusätzlich oder alternativ kann der Computerprozessor eine Summe der ersten Quote und der zweiten Quote auf eine maximale Quote begrenzen.
  • In einigen Implementierungen überwacht der Computerprozessor die Nutzung der Ressourcen durch die hochgradig verfügbaren Jobs. Wenn ein hochgradig verfügbarer Job eine Schwellennutzung überschreitet, stuft der Computerprozessor den hochgradig verfügbaren Job auf einen geringfügig verfügbaren Job zurück. Der Computerprozessor kann weiterhin die erste Quote der für geringfügig verfügbaren Jobs bereitstehenden Ressourcen für einen Zeitraum vor dem tolerierten Ereignis senken und die zweite Quote der für die hochgradig verfügbaren Jobs bereitstehenden Ressourcen für den Zeitraum vor dem tolerierten Ereignis erhöhen. Zusätzlich oder alternativ kann der Computerprozessor die Suspendierung oder Beendung von wenigstens einigen der geringfügig verfügbaren Jobs für den Zeitraum vor dem tolerierten Ereignis beinhalten.
  • In einigen Beispielen bestimmt der Computerprozessor die Quantität der aufgrund des tolerierten Ereignisses verlorenen Ressourcen auf der Grundlage der Zuteilung der Jobs an bestimmte Ressourcen und ein System der Hierarchie des verteilten Systems. Die Systemhierarchie beinhaltet Systemdomänen. Jede Systemdomäne hat einen aktiven oder inaktiven Zustand. Die Systemhierarchie kann Systemebenen beinhalten, wie etwa eine erste, zweite, dritte und vierte Ebene. Die erste Systemstufe entspricht dem Hostgerät der Datenverarbeitungsgeräte, nichtflüchtigen Speichergeräten oder Netzwerkschnittstellen. Jedes Hostgerät enthält eine Systemdomäne. Die zweite Systemebene korrespondiert mit Energiezulieferern, Kommunikationszulieferern oder Kühlungszulieferern von Racks, die die Host-Maschinen beherbergen. Jede Stromzufuhr, Kommunikationseinheit oder Kühleinheit des Racks besitzt eine Systemdomäne. Die dritte Systemstufe entspricht der Stromzufuhr, Kommunikationseinheiten oder Kühleinheiten von Zellen mit ihnen zugewiesenen Racks. Jede Stromzufuhr, Kommunikationseinheit oder Kühleinheit der Zelle besitzt eine Systemdomäne. Die vierte Systemstufe entspricht einem Verteilungszentrums-Moduls der Zellen, wobei jedes Verteilungszentrums-Modul eine Systemdomäne besitzt.
  • Ein weiterer Aspekt der Offenlegung sieht ein Verfahren vor, welches die Identifizierung von hochgradig verfügbaren Jobs und geringfügig verfügbaren Jobs beinhaltet, welche die Nutzung von Ressourcen eines verteilten Systems erfordern, und welcher eine erste Quote der für geringfügig verfügbare Jobs bereitstehenden Ressourcen als eine Quantität der im Verlauf normaler Operationen zur Verfügung stehenden Ressourcen und eine zweite Quote der für hochgradig verfügbare Jobs bereitstehenden Ressourcen auf der Grundlage eines Ressourcentyps bestimmt. Für Speicherkapazitätsressourcen ist die zweite Quote der für hochgradig verfügbare Jobs bereitstehenden Ressourcen die Quantität der im Verlauf normaler Operationen zur Verfügung stehenden Ressourcen. Für Speicherbandbreitenressourcen ist die zweite Quote der für hochgradig verfügbare Jobs bereitstehenden Ressourcen die Quantität der im Verlauf normaler Operationen zur Verfügung stehender Ressourcen, abzüglich einer Quantität der aufgrund eines tolerierten Ereignisses verlorenen Ressourcen und abzüglich einer erhöhten Quantität der verbleibenden Ressourcen, die wegen des tolerierten Ereignisses benötigt werden. Für andere (d. h. nicht speicherbezogene) Ressourcen ist die zweite Quote der für hochgradig verfügbare Jobs bereitstehenden Ressourcen die Quantität der im Verlauf normaler Operationen zur Verfügung stehender Ressourcen, abzüglich der Quantität der aufgrund eines tolerierten Ereignisses verlorenen Ressourcen. Das Verfahren beinhaltet weiterhin die Ausführung der Jobs mit den Ressourcen des verteilten Systems und die Einschränkung einer Gesamtnutzung der Ressourcen durch sowohl die hochgradig verfügbaren als auch die geringfügig verfügbaren Jobs auf die im Verlauf der normalen Operationen bereitstehenden Ressourcen.
  • Die Einzelheiten einer oder mehrerer Implementierungen der Offenlegung sind in den begleitenden Zeichnungen und der nachstehenden Beschreibung dargelegt. Andere Merkmale, Objekte und Vorteile sind aus der Beschreibung und den Zeichnungen sowie aus den Patentansprüchen ersichtlich.
  • BESCHREIBUNG DER ZEICHNUNGEN
  • 1A ist die schematische Ansicht eines musterhaften verteilten Systems.
  • 1B ist die schematische Ansicht eines musterhaften verteilten Systems, das eine Zelle von Ressourcen-Hosts aufweist, die von einem Jobmanagementsystem gehandhabt werden.
  • 2 ist die schematische Ansicht eines musterhaften Kurators für ein verteiltes System.
  • 3A ist eine schematische Ansicht einer exemplarischen Datei, die in replizierte Streifen unterteilt ist.
  • 3B ist eine schematische Ansicht einer beispielhaften Datei, die in Datenblöcke und Nicht-Datenblöcke unterteilt ist.
  • 4A4B sind schematische Ansichten musterhafter Systemhierarchien.
  • 5 ist das Flussdiagramm einer musterhaften Anordnung von Operationen für die effiziente Nutzung von Speicherressourcen und Datenprozessoren, wenn ein Wartungsereignis vorfällt.
  • 6 ist die schematische Ansicht einer musterhaften Anordnung von Operationen für die effiziente Nutzung der Ressourcen eines Systems, wenn ein Wartungsereignis/Ausfallgeschehen erfolgt.
  • 7 ist die schematische Ansicht einer musterhaften Anordnung von Operationen für die effiziente Nutzung der Ressourcen eines Systems, wenn ein Wartungsereignis/Ausfallgeschehen erfolgt.
  • Ähnliche Referenzsymbole in den verschiedenen Zeichnungen verweisen auf ähnliche Elemente.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Unter Bezugnahme auf 1A1B – in einigen Implementierungen beinhaltet ein verteiltes System 100 locker gekoppelte Ressourcen-Hosts 110, 110a–n (z. B. Computer oder Server), von denen jeder eine Rechenressource 112 aufweist (z. B. einen oder mehrere Prozessoren oder zentrale Verarbeitungseinheiten (Central Processing Units, CPUs) in Kommunikation mit Speicherressourcen 114 (z. B. Speicher, Flash-Speicher, dynamischer Schreib-Lesespeicher mit wahlfreiem Zugriff [Dynamic Random Access Memory, DRAM]), phasenwechselnde Speicherung (Phase Change Memory, PCM), und/der Platten, die für Daten-Caching genutzt werden können. Eine Speicherabstraktion (z. B. Schlüssel/Wert-Speicher oder Dateisystem), die die Speicherressourcen 114 überlagert, gestattet die skalierbare Nutzung der Speicherressourcen 114 durch einen oder mehrere Clients 120, 120a–n. Die Clients 120 können mit den Ressourcenhosts 110 über ein Netzwerk 130 (z. B. über RPC) kommunizieren.
  • Das verteilte System 100 kann multiple Schichten der Redundanz enthalten, wo Daten 312 reproduziert und in multiplen Datenzentren gespeichert werden. Datenzentren (nicht gezeigt) beherbergen Computersysteme und ihre assoziierten Komponenten, wie etwa Telekommunikationssysteme und verteilte Systeme 100. Rechenzentren beinhalten normalerweise Backup-Stromversorgungen, redundante Kommunikationsanschlüsse, Umgebungskontrollen (um eine konstante Temperatur zu bewahren) sowie Sicherheitsgeräte. Datenzentren können große Operationen mit industriellen Ausmaßen sein, die große Quantitäten an Elektrizität verbrauchen (z. B. etwa so viel, wie eine kleine Stadt). Daten 312 können sich an verschiedenen geographischen Standorten befinden (z. B. verschiedene Städte, verschiedene Länder und verschiedene Kontinente). In einigen Beispielen erfordern die Datenzentren oder ein Teil derselben Wartung (z. B. aufgrund eines Stromausfalls oder der Abschaltung eines Teils des Systems für den Austausch von Teilen, eines Systemausfalls oder einer Kombination derselben). Die in diesen Datenzentren, und vor allem in dem verteilten System 100 gespeicherten Daten 312 könnten für Benutzer/Clienten 120 im Verlauf der Wartungsperiode nicht verfügbar sein, was eine Beeinträchtigung oder Einstellung der Operationen eines Benutzers zur Folge haben kann. Daher ist es wünschenswert, ein verteiltes System 100 zur Verfügung zu stellen, das in der Lage ist, die Ressourcen-Hosts 110, die Prozessoren 112, die Speicherressourcen 114 und die Netzwerkressourcen des Systems 100 im Verlauf einer Wartung/eines Ausfall des Systems 100 oder eines Teil derselben wirksam zu nutzen.
  • In einigen Implementierungen ist das verteilte System 100 „einseitig” und eliminiert die Notwendigkeit einer Reaktion jeglicher Serverjobs auf Fernverfahrensaufrufe (Remote Procedure Calls, RPC) von Clienten 120 für die Speicherung oder den Abruf von Daten 312 auf ihren korrespondierenden Ressourcen-Hosts 110 und können sich stattdessen auf spezialisierte Hardware für die Verarbeitung von Fernanforderungen 122 stützen. „Einseitig” bezieht sich auf das Verfahren, mit der die Mehrheit der Verarbeitungsanforderungen in den Ressourcen-Hosts 110 mit Hardware durchgeführt werden kann und nicht mit Software, die mit CPUs 112 der Ressourcen-Hosts 110 realisiert wird. Statt einen Prozessor 112 eines Ressourcenhosts 110 (z. B. eines Servers) einen Serverprozess 118 ausführen zu lassen, der den Zugriff auf die entsprechende Speicherressource 114 (z. B. nicht flüchtigen Speicher) an Client-Prozesse 128 exportiert, die auf den Clients 120 ausgeführt werden, können die Clients 120 direkt über eine Netzwerkschnittstelle (NIC) 116 des Ressourcenhosts 110 auf die Speicherressource 114 zugreifen. Mit anderen Worten, ein Client-Prozess 128, der auf einem Client 120 ausgeführt wird, kann direkt mit einer oder mehreren Speicherressourcen 114 zusammenarbeiten, ohne dass eine Routine eines Server-Prozesses 118 ausgeführt werden muss, die auf den Rechenressourcen 112 ausgeführt wird. Diese einseitige verteilte Architektur bietet einen relativ hohen Durchsatz und eine geringe Latenz, da Clienten 120 auf die Speicherressourcen 114 zugreifen können, ohne sich über eine Oberfläche mit den Computerressourcen 112 der Ressourcen-Hosts 110 in Verbindung zu setzen. Dies hat den Effekt einer Entkopplung der Speicheranforderungen 114 und CPU-Zyklen, die typischerweise bei zweiseitigen verteilten Systemen 100 vorhanden sind. Das einseitige verteilte System 100 kann entfernte Speicherressourcen 114 nutzen, ungeachtet dessen, ob es freie CPU-Zyklen auf diesem Ressourcen-Host 110 gibt; des Weiteren kann ein einseitiges System keine Ressourcen der Server-CPU 112 bedienen, ein einseitiges System kann Cache-Anforderungen 122 mit sehr gut vorhersehbarer, geringer Latenz bedienen, selbst wenn Ressourcen-Hosts 110 mit hoher CPU-Nutzung ausgeführt werden. Somit gestattet das einseitige verteilte System 100 eine höhere Nutzung sowohl von Cluster-Speicherung 114 und CPU-Ressourcen 112 als herkömmliche zweiseitige Systeme, während es eine vorhersehbare, geringe Latenz bietet.
  • In einigen Implementierungen beinhaltet das einseitige verteilte System 100 einen Speicherlogikanteil 102 einen Datenkontrollanteil 104 und einen Datenspeicherungsanteil 106. Der Speicherlogik-Abschnitt 102 kann eine Transaktions-API (Application Programming Interface) 350 beinhalten (z. B. eine einseitige transaktionale System-Client-Bibliothek), die verantwortlich ist für den Zugriff auf zugrundeliegende Daten, z. B. per RPC oder einseitigen Operationen. Der Datensteuerungs-Abschnitt 104 kann die Zuordnung und den Zugriff auf Speicherressourcen 114 verwalten, mit Aufgaben wie beispielsweise die Zuordnung von Speicherressourcen 114, die Registrierung von Speicherressourcen 114 bei dem entsprechenden Netzwerkschnittstellen-Controller 116, die Einrichtung von Verbindungen zwischen dem/den Client(s) 120 und den Ressourcenhosts 110, die Verarbeitung von Fehlern bei Maschinenausfällen usw. Der Datenspeicherungsanteil 106 kann die locker gekoppelten Ressourcen-Hosts 110, 110a–n beinhalten.
  • Das verteilte System 100 kann Daten 312 in DRAM (Dynamic Random Access Memory, dynamischer Schreib-Lesespeicher mit wahlfreiem Zugriff) 114 speichern und die Daten 312 von den entfernten Hosts 110 über Netzwerke liefern, die für direkten Speicherzugriff (Remote Direct Memory Access, RDMA) 116 befähigt sind. Eine Netzwerkschnittstelle 116 (auch bekannt als Netzwerkkarte, Netzwerkadapter oder LAN-Adapter) kann eine Hardwarekomponente eines Computers sein, die eine Berechnungsressource 112 mit dem Netzwerk 130 verbindet. Sowohl die Ressourcen-Hosts 110a–n als auch der Client 120 können jeweils über eine Netzwerk-Oberflächensteuerung 116 für die Netzwerkkommunikation verfügen. Ein Host-Prozess 118, der auf dem rechnenden Prozessor 112 des Ressourcenhosts 110 ausgeführt wird, registriert ein Set entfernter Speicherbereiche mit Direktzugriff 115a–n des Speichers 114 mit dem Netzwerkschnittstellen-Controller 116. Der Host-Prozess 118 kann die entfernten Speicherbereiche mit Direktzugriff 115a–n des Speichers 114 mit einer Berechtigung nur zum Lesen oder zum Lesen/Schreiben registrieren. Der Netzwerkschnittstellen-Controller 116 des Ressourcenhosts 110 erzeugt einen Client-Schlüssel 302 für jeden registrierten Speicherbereich 115a–n.
  • Die durch die Netzwerk-Oberflächensteuerungen 116 ausgeführten einseitigen Operationen können auf Operationen des einfachen Ablesens, Schreibens sowie Compare-and-Swap (Vergleichen und Tauschen) beschränkt sein, von denen keine raffiniert genug sein mag, um als Drop-in-Ersatz für durch einen herkömmlichen Cache-Server-Job implementierte Software-Logik bei der Ausführung von Cache-Anforderungen und der Umsetzung von Cache-Richtlinien zu fungieren. Das Transaktions-API 350 übersetzt Befehle, wie beispielsweise zum Suchen oder Einfügen von Daten, in Folgen grundlegender Operationen des Netzwerkschnittstellen-Controllers. Die Transaktions-API 350 teilt sich eine Oberfläche mit den Datenkontroll- und Datenspeicherungsanteilen 104, 106 des verteilten Systems 100.
  • Das verteilte System 100 kann einen Software-Prozess mit gleichem Standort enthalten, um die Speicherung 114 für entfernten Zugriff mit der Netzwerk-Oberflächensteuerung 116 zu registrieren und Verbindungen mit Clientprozessen 128 herzustellen. Sobald die Verbindungen eingerichtet wurden, können Client-Prozesse 128 auf den registrierten Speicher 114 per Hardware-Engines des Netzwerkschnittstellen-Controllers 116 zugreifen, ohne jegliche Beteiligung der Software auf den lokalen CPUs 112 des entsprechenden Ressourcenhosts 110.
  • Unter Bezugnahme auf 1B, in einigen Implementierungen beinhaltet das verteilte System 100 multiple Zellen 200, worin jede Zelle 200 Ressourcen-Hosts 110, einen mit den Ressourcen-Hosts 110 in Kommunikation befindlichen Kurator 210 und ein mit den Ressourcen-Hosts 110 in Kommunikation befindliches Jobmanagementsystem 220 beinhaltet. Der Verwalter 210 (z. B. ein Prozess) kann auf einem rechnenden Prozessor 202 ausgeführt werden (z. B. auf einem Server mit nichtflüchtigem Speicher 204), der an das Netzwerk 130 angeschlossen ist, und die Datenspeicherung (z. B. Verwaltung eines auf den Ressourcenhosts 110 gespeicherten Dateisystems) verwalten, die Datenplatzierungen kontrollieren und/oder eine Datenwiederherstellung veranlassen. Darüber hinaus kann der Verwalter 210 das Vorhandensein und den Speicherort von Daten 312 auf den Ressourcenhosts 110 nachverfolgen. Redundante Verwalter 210 sind möglich. In einigen Implementierungen verfolgen der/die Verwalter 210 das Striping von Daten 312 über mehrere Ressourcenhosts 110 und das Vorhandensein und/oder den Speicherort mehrerer Kopien eines bestimmten Streifens im Hinblick auf Redundanz und/oder Leistung. Im Computer-Datenspeicher ist das Daten-Striping die Technik, logisch sequentielle Daten 312, wie beispielsweise eine Datei 310 (2), so zu segmentieren, dass Zugriffe auf sequentielle Segmente auf unterschiedlichen physischen Speichergeräten 114 (z. B. Zellen 200 und/oder Ressourcenhosts 110) erfolgen. Striping ist sinnvoll, wenn ein Verarbeitungsgerät Zugriff auf Daten 312 schneller anfordert, als ein Speichergerät 114 den Zugriff bereitstellen kann. Durch die Durchführung von Segmentzugriffen auf mehreren Geräten kann der Zugriff auf mehrere Segmente nebenläufig stattfinden. Damit entsteht mehr Durchsatz beim Datenzugriff, womit vermieden wird, den Prozessor im Leerlauf auf Datenzugriffe warten zu lassen. Das Jobmanagementsystem 220 beraumt über die Ressourcenhosts 110 hinweg Jobs an (z. B. Verarbeitungsjobs oder Speicherjobs).
  • In einigen Implementierungen teilt sich die Transaktions-API 350 eine Oberfläche mit einem Clienten 120 (z. B. mit dem Clientenprozess 128) und dem Kurator 210. Bei einigen Beispielen kommuniziert der Client 120 über einen oder mehrere RPCs (Remote Procedure Calls) mit dem Verwalter 210. In Reaktion auf eine Client-Anforderung 122 kann die Transaktions-API 350 den Speicherort bestimmter Daten 312 auf einem/mehreren Ressourcenhost(s) 110 finden und einen Schlüssel 302 erhalten, der Zugriff auf die Daten 312 erlaubt. Die Transaktions-API 350 kommuniziert direkt mit den entsprechenden Ressourcenhosts 110 (über die Netzwerkschnittstellen-Controller 116), um die Daten 312 zu lesen oder zu schreiben (z. B. unter Verwendung von RDMA (Remote Direct Memory Access)). Falls ein Ressourcenhost 110 nicht in Betrieb ist, oder die Daten 312 auf einen anderen Ressourcenhost 110 verschoben wurden, schlägt die Client-Anforderung 122 fehl, sodass der Client 120 aufgefordert wird, den Verwalter 210 erneut abzufragen.
  • Unter Bezugnahme auf 2 speichert und verwaltet der Verwalter 210 in manchen Implementationen die Dateisystem-Metadaten 212. Die Metadaten 212 können eine Datei-Map 214 enthalten, die Dateien 310 1-n auf Dateideskriptoren 300 1-n zuweist. Der Kurator 210 kann die Repräsentation seiner persistenten Metadaten 212 prüfen und modifizieren. Der Kurator 210 kann drei verschiedene Zugriffsmuster für die Metadaten 212 einsetzen: schreibgeschützt, Dateitransaktionen und Streifentransaktionen.
  • Unter Bezugnahme auf 3A und 3B, Daten 312 können eine oder mehrere Dateien 310 sein, worin jede Datei 310 eine spezifizierte Reproduktionsebene 311 und/oder einen spezifischen Fehlerkorrekturcode 313 hat. Der Verwalter 210 kann jede Datei 310 in eine Sammlung von Streifen 320a–n unterteilen, wobei jeder Streifen 320a–n repliziert oder unabhängig von den restlichen Streifen 320a–n codiert wird. Für eine reproduzierte Datei 310 (3A) ist jeder Streifen 320a–n ein einzelner logischer Brocken, den der Kurator 210 als Streifenreproduktionen 330n reproduziert und auf multiplen Speicherressourcen 114 speichert. In diesem Szenarium wird eine Streifenreproduktionen 330n auch als Brocken 330n bezeichnet. Für eine verschlüsselte Datei 310 (3B) besteht jeder Streifen 320a–n aus multiplen Datenbrocken 330nD k und nicht-Datenbrocken 330nC (z. B. Code-Brocken), die der Kurator 210 auf multiplen Speicherressourcen 114 platziert, wo die Sammlung von Datenbrocken 330nD und nicht-Datenbrocken 330nC ein einziges Codeword bildet. Im Allgemeinen kann der Kurator 210 jeden Streifen 320a–n auf Speicherressourcen 114 platzieren, unabhängig davon, wie die anderen Streifen 320a–n in der Datei 310 auf den Speicherressourcen 114 platziert sind. Der Fehlerkorrekturcode 313 fügt der Datei 310 redundante Daten oder Paritätsdaten hinzu, sodass die Datei 310 später von einem Empfänger wiederhergestellt werden kann, auch wenn mehrere Fehler (abhängig von der Kapazität des verwendeten Codes) eingeführt wurden. Der Fehlerkorrekturcode 313 wird verwendet, um die Integrität der Daten 312 in Speichergeräten aufrechtzuerhalten, um Daten 312 für die Leistung (Latenz) zu rekonstruieren, oder um Maschinen schneller zu leeren.
  • Unter erneuter Bezugnahme auf 2, in einigen Implementierungen enthalten durch den Kurator 210 gespeicherte Dateideskriptoren 300 1-n Metadaten 212, wie etwa die Dateikarte 214, welche die Streifen 320a–n auf Streifenreproduktionen 330n oder auf Datenbrocken 330nD und Codebrocken 330nC wie jeweils angemessen abbildet, die auf den Ressourcen-Hosts 110 gespeichert sind. Um eine Datei 310 zu öffnen, sendet ein Client 120 eine Anfrage 122 an den Verwalter 210, der einen Dateideskriptor 300 zurückgibt. Der Client 120 verwendet den Dateideskriptor 300, um Dateisegment-Offsets in entfernte Speicherorte 115a–n zu übersetzen. Der Dateideskriptor 300 kann einen Clientenschlüssel 302 beinhalten (d. h. einen 32-Bit-Schlüssel), der für einen Brocken 330n auf einem Ressourcen-Host 110 einzigartig ist und für die RDMA-Lesung dieses Brockens 330n eingesetzt wird. Nachdem der Client 120 den Dateideskriptor 300 geladen hat, kann der Client 120 auf die Daten 312 einer Datei 310 über RDMA oder ein anderes Verfahren zum Abrufen von Daten zugreifen.
  • Der Kurator 210 kann Statusinformationen für alle Ressourcen-Hosts 110 aufrechterhalten, die Teil der Zelle 200 sind. Die Statusinformationen können Kapazität, freien Raum, Ladung des Ressourcen-Hosts 110, Latenz des Ressourcen-Host 110 vom Standpunkt eines Clienten und einen gegenwärtigen Status beinhalten. Der Kurator 210 kann diese Informationen durch Abfragen der Ressourcen-Hosts 110 in der Zelle 200 direkt und/oder durch die Abfrage eines Clienten 120 erlangen, um Latenzstatistiken von Standpunkt eines Clienten zu erhalten. In einigen Beispielen nutzt der Kurator 210 die Statusinformationen über den Ressourcen-Host, um Entscheidungen im Hinblick auf Neugewichtung, Entleerung, Wiederherstellung und Zuordnung zu treffen.
  • Der/die Kurator/en 210 kann/können Brocken 330 zuordnen, um Client-Anforderungen 122 für mehr Speicherraum in einer Datei 310 ebenso zu handhaben, wie für Neugewichtung und Wiederherstellung. In einigen Beispielen reproduziert der Prozessor 202 Brocken 330n unter den Speichergeräten 114 anders als die Verteilung der Datenbrocken 330nD und Codebrocken 330nC unter den Speichergeräten 114. Der Kurator 210 kann eine Belastungskarte 216 über die Belastung und Lebendigkeit des Ressourcen-Hosts führen. In einigen Implementierungen ordnet der Kurator 210 einen Brocken 330 durch die Generierung einer Liste von Ressourcen-Host-Kandidaten 110 zu und sendet eine Anforderung für die Zuordnung von Brocken an jeden der Ressourcen-Host-Kandidaten 110. Wenn der Ressourcen-Host 110 überladen ist oder keinen Raum verfügbar hat, kann der Ressourcen-Host 110 die Anforderung ablehnen. In diesem Fall wählt der Kurator 210 einen anderen Ressourcen-Host 110. Jeder Verwalter 210 kann seinen spezifischen Anteil des Dateinamensraums fortlaufend durchsuchen und alle Metadaten 212 etwa jede Minute überprüfen. Der Verwalter 210 kann das Datescanning nutzen, um die Integrität der Metadaten 212 zu prüfen, auszuführende Arbeiten zu ermitteln und/oder Statistiken zu generieren. Der Datei-Scan kann nebenläufig zu anderen Operationen des Verwalters 210 ausgeführt werden. Der eigentliche Scan kann die Metadaten 212 nicht verändern, aber plant Arbeit ein, die von anderen Komponenten des Systems zu erledigen ist, und berechnet Statistiken.
  • Unter Bezugnahme auf 4A4B, das Jobmanagementsystem 220 kann eine Systemhierarchie 400 des verteilten Systems 100 bestimmen oder empfangen, um die Ebenen zu identifizieren (z. B. Ebenen 1–4), auf denen eine Wartung oder ein Ausfall erfolgen kann, ohne den Zugriff eines Benutzers auf gespeicherte Daten 312 und/oder die Zugriffsgewährung der Prozessoren 112 auf die gespeicherten Daten 312 zu beeinträchtigen. Wartung oder Ausfälle (strikte Hierarchie 400a (4A), nicht strikte Hierarchie 400b (4B)) können die Wartung der Energiezufuhr/Ausfall, Wartung des Kühlsystems/Ausfall, Netzwerkwartung/Ausfall, Aktualisierung oder den Austausch von Teilen beinhalten oder andere Wartungsarbeiten oder Stromausfälle, die das verteilte System 100 betreffen. Wartungsarbeiten können geplant sein und in manchen Beispielen kann ein ungeplanter Systemfehler auftreten.
  • Die Systemhierarchie 400 beinhaltet Systemebenen (z. B. Ebenen 1–5) mit Wartungseinheiten/Systemdomänen 402, die sich über eine oder mehrere Systemebenen 1–5 erstrecken. Jede Systemdomäne 402 besitzt einen aktiven Status oder einen inaktiven Status. Ein Verteilungszentrums-Modul 410 enthält eine oder mehrere Zellen 420, 420a–n und jede Zelle 420 enthält ein oder mehrere Racks 430 mit Ressourcenhosts 110. Jede Ceil 420 beinhaltet auch Zellenkühlung 422, Ceil-Energiezufuhr 424 (z. B. Buskanäle) und Vernetzung auf Zellenebene 426 (z. B. Netzwerkschalter). Gleichermaßen enthält jedes Rack 430 eine Rack-Kühlungseinheit 432, eine Rack-Stromversorgung 434 (z. B. Bus-Leitungen) und eine rackbasierte Netzwerkverbindung 436 (z. B. Netzwerkswitch(e)).
  • Die Systemebenen können erste, zweite, dritte und vierte Systemebenen 1–4 beinhalten. Die erste Systemstufe 1 entspricht den Ressourcenhosts oder Hostgeräten 110, 110a–n aus Datenverarbeitungsmaschinen 112, nichtflüchtigem Speicher 114 und Netzwerkgeräten 116 (z. B. NICs). Jedes Hostgerät bzw. jeder Ressourcenhost 110 besitzt eine Systemdomäne 402. Die zweite Systemebene 2 korrespondiert mit Racks 430, 430a–n und Kühlzulieferern 432, Energiezulieferern 434 (z. B. Buskanäle) oder Kommunikationzuzulieferern 436 (z. B. Netzwerkschalter und Kabel) der Host-Maschinen 110 auf der Rack-Ebene. Jeder Kühlzulieferer 432, Energiezulieferer 434 oder Kommunikationzulieferer 436 für Racks 430 oder Rack-Ebenen hat eine Systemdomäne 402. Die dritte Systemstufe 3 entspricht allen Zellen 420, 420a–n des Verteilungszentrum-Moduls 410 und der Zellenkühlung 422, der Zellenstromversorgung 424 und der zellenbasierten Netzwerkverbindung 426, die den ihr zugewiesenen Racks 430 zur Verfügung gestellt wird. Jedes Ceil 420 oder jede Zellenkühlung 422, jeder Zellenantrieb 424 oder jedes Netzwerk auf Zellenebene 426 hat eine Systemdomäne 402. Die vierte Systemstufe 4 entspricht dem Verteilungszentrums-Modul 410. Jedes Verteilungszentrums-Modul 410 besitzt eine Systemdomäne 402.
  • 4A zeigt eine strikte Systemhierarchie 400a, wobei jede Hierarchiekomponente (z. B. ein Ressourcenhost 110, ein Rack 430, eine Zelle 420 oder ein Verteilungszentrums-Modul 410) der Systemhierarchie 400 von einer anderen Hierarchiekomponente 110, 410, 420, 430 abhängig ist. 4B zeigt eine nicht-strikte Systemhierarchie 400b, worin eine Hierarchiekomponente 110, 410, 420, 430 mehr als eine Eingabezufuhr hat. In einigen Beispielen speichert das Jobmanagementsystem 220 die Systemhierarchie 400 auf dem nicht-flüchtigen Speicher 204 seines Prozessors 202. Das Jobmanagementsystem 220 bildet zum Beispiel einen ersten Ressourcen-Host 110 (und seine korrespondierende Prozessor-Ressource 112a und Speicherressource 114a) auf einem ersten Rack 430a ab, den ersten Rack 430a auf einem ersten Buskanal 420a und den ersten Buskanal 420a auf ein erstes Verteilerzentrumsmodul 410a.
  • Das Jobmanagementsystem 220 bestimmt auf der Grundlage der Abbildungen der Hierarchiekomponenten 110, 410, 420, 430, welche Ressourcen-Hosts 110 inaktiv sind, wenn eine Hierarchiekomponente 110, 410, 420, 430 gewartet wird. Sobald das Jobmanagementsystem 220 die Systemdomänen 402 auf die Ressourcen-Hosts 110 abbildet (und damit auf ihre korrespondierenden Prozessor-Resourcen 112a und Speicherressourcen 114a), bestimmt das Jobmanagementsystem 220 eine höchste Ebene (z. B. Ebenen 1–4), auf der die Wartung erfolgen kann, während die Verfügbarkeit von Prozessor oder Daten aufrechterhalten wird.
  • Eine Systemdomäne 402 beinhaltet eine Hierarchiekomponente 110, 410, 420, 430, die gewartet wird, und eine jegliche davon abhängige Hierarchiekomponente 110, 410, 420, 430. Wenn daher eine Hierarchiekomponente 110, 410, 420, 430 gewartet wird, dann ist diese Hierarchiekomponente 110, 410, 420, 430 inaktiv, und eine jegliche andere Hierarchiekomponente 110, 410, 420, 430 in der Systemdomäne 402 der Hierarchiekomponente 110, 410, 420, 430 ist ebenfalls inaktiv. Wenn ein Ressourcenhost 110 z. B. einer Wartungsarbeit unterzogen wird, befindet sich eine Stufe-1-Systemdomäne 402a, die das Speichergerät 114, den Datenprozessor 112 und den NIC 116 enthält, im inaktiven Status. Wenn ein Rack 430 einer Wartungsarbeit unterzogen wird, befindet sich eine Stufe-2-Systemdomäne 402b, die das Rack 430 und alle Ressourcenhosts 110, die vom Rack 430 abhängen, enthält, im inaktiven Status. Wenn eine Zellkomponente 420 (zum Beispiel eine jegliche der Zellkühlungskomponente 422, des Buskanals 424 und/oder des Netzwerkschalters 426 der Ceil-Komponente 420a) gewartet wird, ist eine Systemdomäne 402c der Ebene 3, die die Zelle 420 und jegliche Hierarchiekomponenten 110, 410, 420, 430 auf Ebenen 3 und 4 beinhaltet, die von der Zellkomponente 420 abhängen, im inaktiven Zustand. Wenn letztlich ein Verteilerzentrumsmodul 410 gewartet wird, ist eine Systemdomäne 402, 402d, die das Verteilerzentrumsmodul 410a und jegliche Hierarchiekomponenten 110, 410, 420, 430 auf der Ebene 4 beinhaltet, die von dem Verteilerzentrumsmodul 410a abhängen, im inaktiven Zustand.
  • In einigen Beispielen, wie in 4B gezeigt, kann eine nicht-strikte Hierarchiekomponente 410, 420, 430, 114 eine doppelte Speisung haben, d. h., die Hierarchiekomponente 110, 410, 420, 430 hängt von zwei oder mehreren anderen Hierarchiekomponenten 110, 410, 420, 430 ab. Eine Zellkomponente 420 kann zum Beispiel von zwei Verteilerzentrumsmodulen 410 gespeist werden, und/oder Rack 430 kann eine doppelte Speisung von zwei Zellkomponenten 420 erhalten. Wie gezeigt, kann eine Systemdomäne 402b der Ebene 2 zwei Racks 430a, 430n beinhalten, worin das zweite Rack 430n zwei Speisungen von zwei Zellkomponenten 420a und 420n beinhaltet. Daher ist das zweite Rack 430n Teil von zwei Systemdomänen 402bb und 402cc. Daher werden die niedrigeren Stufen der Systemhierarchie 400 gewartet, ohne den Verlust der höheren Stufen der Systemhierarchie 400 zu verursachen. Das verursacht eine Redundanz in dem verteilten System 100, welche den Zugriff auf die Daten ermöglicht. Im Besonderen kann das Verteilerzentrumsmodul 410 gewartet werden, ohne dass jegliche der von ihm abhängigen Ceil-Komponenten 420 verloren werden. In manchen Beispielen beinhalten die Racks 430 ein dual versorgtes Rack, das die Wartung der Bus-Leitung 424 gestattet, ohne dass die Versorgung der dual versorgten Racks 430 verloren geht, die von ihr abhängig sind. In einigen Beispielen werden Systemdomänen 402, die gewartet werden können, ohne Ausfälle zu verursachen, bei der Verteilung von Brocken 330n ignoriert, um die Wartung zu gestatten; dennoch können die ignorierten Systemdomänen 402 bei der Verteilung von Brocken 330n mit einbezogen werden, da ein ungeplanter Ausfall immer noch den Verlust von Brocken 330n verursachen kann.
  • In einigen Beispielen werden ein Kühlgerät, wie etwa die Zellkühlung 422 und die Rack-Kühlung 432, für die Kühlung jeweils der Zellkomponenten 420 und Racks 430 eingesetzt. Die Zellkühlungskomponente 422 kann eine oder multiple Zellkomponenten 420 kühlen. Gleichermaßen kann eine Rack-Kühlungskomponente 432 ein oder mehrere Racks 430 kühlen. Der Verwalter 210 speichert die Zuweisung der Kühlgeräte (d. h. die Zellenkühlungskomponente 422 und die Rack-Kühlungskomponente 432) an die Ressourcenhosts 110. In einigen Implementierungen zieht das Jobmanagementsystem 220 alle denkbaren Kombinationen der Wartung in Betracht, die innerhalb des Systems 100 erfolgen können, um die Systemhierarchie 400 oder eine Kombination von Wartungshierarchien 400 zu bestimmen, bevor die Assoziation der Ressourcen-Hosts 110 mit den Kühlgeräten 422, 432 gespeichert wird. Eine Systemhierarchie 400 zum Beispiel, bei der ein oder mehrere Kühlgeräte 422, 432 ausfallen, oder eine Systemhierarchie 400, in der die Netzwerkgeräte 116, 426, 436 ausfallen, oder eine Systemhierarchie 400, in der die Energieverteilung 424, 434 ausfällt.
  • Wenn daher eine Hierarchiekomponente 110, 410, 420, 430 in dem System 100 gewartet wird oder ausfällt, sind diese Hierarchiekomponente 110, 410, 420, 430 und jegliche Hierarchiekomponenten 110, 410, 420, 430, die auf dieser Hierarchiekomponente 110, 410, 420, 430 abgebildet sind oder von ihr abhängen, in einem inaktiven Zustand. Eine Hierarchiekomponente 110, 410, 420, 430 in einem inaktiven Zustand ist für einen Benutzer 120 nicht zugänglich, während eine Hierarchiekomponente 110, 410, 420, 430 in einem aktiven Zustand für einen Benutzer 120 zugänglich ist und es dem Benutzer 120 gestattet, in dieser Hierarchiekomponente 110, 410, 420, 430 gespeicherte/unterstützte/aufrechterhaltene Daten 312 zu verarbeiten/auf sie zuzugreifen. Wie zuvor erwähnt ist im Verlauf eines inaktiven Zustands ein Benutzer 120 nicht in der Lage, auf den Ressourcen-Host 110 zuzugreifen, der mit den Systemdomänen 402, die der Wartung unterzogen werden, assoziiert ist, und daher ist der Benutzer 120 nicht fähig, auf die Dateien 310 zuzugreifen (d. h. Brocken 330, die Streifenreproduktionen 330n, Datenbrocken 330nD und nicht-Datenbrocken 330nC beinhalten).
  • In einigen Implementierungen schränkt der Kurator 210 die Anzahl der Brocken 330 ein, die auf Speichergeräte 114 einer jeglichen Systemdomäne 402 verteilt werden, dies z. B. auf der Grundlage der Abbildung der Hierarchiekomponenten 110, 410, 420, 430. Wenn also eine Stufe-1-Systemdomäne 402 inaktiv ist, behält der Verwalter 210 den Zugriff auf die Datei 310 (oder den Streifen 320), obwohl einige Blöcke 330 möglicherweise nicht zur Verfügung stehen. In manchen Beispielen ermittelt der Verwalter 210 für jede Datei 310 (oder Streifen 320) eine maximale Anzahl an Blöcken 330, die in irgendeinem Speichergerät 114 innerhalb einer einzelnen Systemdomäne 402 platziert werden können, sodass der Verwalter auch dann auf die Datei 310 zugreifen kann, wenn eine dem Speichergerät 114, das Blöcke 330 einer Datei 310 speichert, zugewiesene Systemdomäne 402 einer Wartung unterzogen wird. Die maximale Anzahl an Blöcken 330 stellt sicher, dass der Verwalter 210 in der Lage ist, die Datei 310 zu rekonstruieren, obwohl einige Blöcke 330 möglicherweise nicht zur Verfügung stehen. In manchen Beispielen wird die maximale Anzahl an Blöcken 330 auf einen kleineren Grenzwert gesetzt, um Systemfehler zu kompensieren, während es weiterhin möglich ist, die Datei 310 aus den Blöcken 330 zu rekonstruieren. Wenn der Verwalter 210 Blöcke 330 auf den Speichergeräten 114 ablegt, stellt der Verwalter 210 sicher, dass innerhalb eines Streifens 320 nicht mehr als die maximale Anzahl an Blöcken 330 inaktiv ist, wenn eine einzelne Systemdomäne 402 einer Wartung unterzogen wird. Darüber hinaus kann der Kurator 210 auch die Anzahl der Verarbeitungsjobs auf einem Datenprozessor 112 eines Ressourcen-Hosts 110 innerhalb einer Systemdomäne 402 einschränken, dies z. B. auf der Grundlage der Abbildung der Hierarchiekomponenten 110, 410, 420, 430. Falls also eine Stufe-1-Systemdomäne 402 inaktiv ist, behält der Verwalter 210 den Zugriff auf alle Vorgänge, obwohl manche der Prozessoren 112 des Ressourcenhosts 110 inaktiv sind.
  • Unter Bezugnahme auf 5, In einigen Implementierungen folgt das System 100 den Operationen 500, die für den effizienten Einsatz von Speicherressourcen 114 und Datenprozessoren 112 gezeigt werden, wenn ein Wartungsereignis erfolgt. Das System 100 identifiziert bei Schritt 502 einen Ressourcentyp: 1) nicht speicherbezogene Ressourcen (z. B. Rechnernutzung eines Datenprozessors 112, Netzwerkfunktionen, Energiezufuhr, Kühlung usw.), 2) Speicherkapazitätsressourcen (z. B. eine Byte-Nutzung/Speicherkapazität eines Speichergerätes 114); oder 3) Speicherbandbreitenressourcen (z. B. eine Anzahl von Eingabe-/Ausgabeoperationen pro Sekunde, die für die Festplattenspeicherung zugelassen werden oder der Umfang der Spindelnutzung/des Spindelzugriffs, der für eine solche Speicherung gestattet wird).
  • Das System 100 identifiziert zudem zwei Klassen von Jobs/Anforderungen 122. Eine erste Klasse von Jobs 122 beinhaltet hochgradig verfügbare Jobs 122a und eine zweite Klasse beinhaltet standardmäßige oder geringfügig verfügbare Jobs 122b (1B). Das System 100 führt die Verarbeitungsjobs 122 auf dem Prozessor 112 des Ressourcen-Hosts 110 und Speicherjobs 122 für den Zugriff auf/für die Speicherung von Daten 312 auf den Speichergeäten 114 des Ressourcen-Hosts 110 aus. Die hochgradig verfügbaren Jobs 122a sind Jobs 122, die eine höhere Priorität haben als die geringfügig verfügbaren Jobs 122b, wenn beide Arten von Jobs 122a, 122b sich innerhalb einer Quote befinden (wie nachstehend besprochen).
  • Wenn das System 100 bestimmt, welche Arten von Ressourcenverlusten toleriert werden können, legt das System 100 in einigen Implementierungen eine Strategie fest, einen Schritt 504, für das Tolerieren dieses Verlustes auf der Grundlage dessen, ob der Verlust einen Verlust von Datenprozessoren 112 oder Speichergeräten 114 oder beides beinhaltet. Für den Einsatz von nicht speicherbezogenen Ressourcen setzt das Jobmanagementsystem 220 eine erste Strategie 506a für die Migration und/oder den Neustart von Jobs 122 aus ausgefallenen, nicht speicherbezogenen Ressourcen (z. B. Datenprozessor 112) zu/in anderen verfügbaren, nicht speicherbezogenen Ressourcen ein. Für die Nutzung von Speicherressourcen setzt das Jobmanagementsystem 220 eine zweite Strategie 506b ein und belässt Jobs 122, die auf ausgefallene Speicherkapazitäten 114 zugreifen, an Ort und Stelle (zumindest für einen bestimmten Zeitraum) und/oder es kann Datenrekonstruktion einsetzen, um nicht verfügbare Daten 312 abzurufen. In einigen Beispielen handhabt die erste Strategie Ressourcen 110 im Zusammenhang mit Rechnerressourcen 112 (z. B. Rechnung und Vernetzung), und die zweite Strategie handhabt Speicherressourcen 114 (z. B. Speichergeräte, wie etwa Festplatten und Flash-Speicher). Wenn ein Ausfall/Verlust erfolgt, kann das Jobmanagementsystem 220 bestimmen, ob es sich bei dem Verlust um den Verlust von Datenprozessoren 112 oder Speichergeräten 114 handelt. Wenn es sich bei dem Verlust um den Verlust von Speichergeräten 114 handelt, setzt das Jobmanagementsystem 220 Strategie 2 bei Schritt 506b ein; andernfalls setzt das Jobmanagementsystem 220 Strategie 1 bei Schritt 506a ein.
  • Wenn das Jobmanagementsystem 220 die erste Strategie einsetzt (bei Schritt 506a), die sich auf Datenprozessoren 112 bezieht (d. h. Rechnung und Vernetzung), migriert das Jobmanagementsystem 220 hochgradig verfügbare Rechnerjobs 122, die Datenprozessoren 112 zugeteilt sind, und/oder die aufgrund von tolerierten Ereignissen verloren sind, zu den verbleibenden verfügbaren Datenprozessoren 112 oder führt sie dort erneut aus. Wenn ein bestimmtes Wartungsereignis für Energiezufuhr oder Netzwerk 10% der Datenprozessoren 112 nicht verfügbar macht, verschiebt das Jobmanagementsystem 220 die Jobs 122 zur Durchführung auf die verbleibenden 90% der Datenprozessoren 112.
  • Wenn das Jobmanagementsystem 220 die zweite Strategie einsetzt (bei Schritt 506b), die für Speicherressourcen 114 angewandt wird, lässt das Jobmanagementsystem 220 die Daten 312 im Verlauf des Wartungsvorgangs oder der Ausfälle auf den Speichergeräten 114 gespeichert, die sich im inaktiven Zustand befinden und gestattet dem System 100 die Nutzung der Reproduktion und/oder Kodierung (im Hinblick auf 3A und 3B besprochen) zur Rekonstruktion der nicht verfügbaren Daten 312. In einigen Beispielen setzt das System 100 die erste und zweite Strategie simultan ein.
  • Sobald das System 100 bestimmt, welche Strategie einzusetzen ist, kalkuliert das System 100 die Quantität (d. h. eine Quote Q) jeder Ressource 110, d. h. Speicherressource 114 und Datenverarbeitungsressource 112), die für die Jobs 122 im Verlauf der normalen Nutzung bei Schritt 508 verfügbar ist (d. h. wenn das System 100 nicht gewartet wird).
  • Das Jobmanagementsystem 220 bestimmt eine erste Quote Q1 und eine zweite Quote Q2 der verfügbaren Ressourcen 110. Die erste Quote Q1 der verfügbaren Ressourcen 110 beinhaltet für geringfügig verfügbare Jobs 122b zur Verfügung stehende Ressourcen 110 und stellt eine Quantität der im Verlauf normaler Operationen zur Verfügung stehenden Ressourcen 110 dar (d. h. wenn das System 100 nicht gewartet wird oder ausfällt). Die zweite Quote Q2 der verfügbaren Ressourcen 110 beinhaltet die für hochgradig verfügbare Jobs 122b zur Verfügung stehenden Ressourcen 110 und stellt eine Quantität der im Verlauf normaler Operationen bereitstehender Ressourcen 110 dar. Wenn sporadische Wartungs- oder Ausfallereignisse stattfinden, treffen die geringfügig verfügbaren Jobs 122b auf unzureichende Ressourcen 110, was eine verschlechterte oder gar keine Leistung zur Folge hat. Die gesamte bereitstehende Quote oder Jobkapazität Q kann unter Einsatz der folgenden Gleichung kalkuliert werden: Q = Q1 + Q2 (1) wo Q die insgesamt bereitstehende Quote der Ressourcen 110 ist, die von den Jobs 122 verlangt wird (hochgradig verfügbar und geringfügig verfügbar), ist Q1 die erste Quote und Q2 die zweite Quote. Da die gesamte geforderte verfügbare Quote/Kapazität Q die Quantität der im Verlauf normaler Operationen RN verfügbaren Ressourcen 110 übersteigen kann, schränkt das Jobmanagementsystem 220 eine gesamte Nutzung der Ressourcen 110 sowohl für die hochgradig verfügbaren Jobs 122a als auch für die geringfügig verfügbaren Jobs 122b auf die Quantität der Ressourcen 110 ein, die im Verlauf normaler Operationen RN zur Verfügung stehen (d. h. wenn das System 100 nicht gewartet wird oder ausfällt), um zu gewährleisten, dass die Anzahl der den Ressourcen 110 zugeteilten Jobs 122 die tatsächlich verfügbare Kapazität der Ressourcen 110 (z. B. RN) nicht übersteigt. Das System 100 kann die Gleichung 1 zur Bestimmung der verfügbaren Quote Q für Speicherressourcen 114 und Verarbeitungsressourcen 112 nutzen. Die verfügbare Quote Q kann die Kapazität, ein Prozentsatz der Kapazität, eine Bandbreite oder ein Größenmaßstab der Ressourcen sein.
  • In einigen Beispielen senkt das System 100 die erste Quote Q1 der für geringfügig verfügbare Jobs 122b bereitstehenden Ressourcen 110 für einen Zeitraum vor dem tolerierten Ereignis (d. h. Wartungs- oder Ausfallereignis) und erhöht die zweite Quote Q2 der für hochgradig verfügbare Jobs 122a bereitstehenden Ressourcen 110 für den Zeitraum vor dem tolerierten Ereignis. Zusätzlich oder alternativ kann das System 100 mindestens einige der geringfügig verfügbaren Jobs 122b für den Zeitraum vor dem tolerierten Ereignis suspendieren oder beenden. Dies erlaubt dem System 100, die hochgradig verfügbaren Jobs 122a zu den verfügbaren Ressourcen 110 zu schieben.
  • In einigen Implementierungen kann das System 100 die Quantität der Ressourcen 110, die aufgrund eines tolerierten Ereignisses verloren wurden, auf der Grundlage einer Zuordnung der Jobs 122 zu bestimmten Ressourcen 110 bestimmen, die mit der Systemhierarchie 400 des verteilten Speichersystems 100 assoziiert sind (4A und 4B). In einigen Implementierungen kennzeichnet das Jobmanagementsystem 220 bestimmte Arten des Verlustes von Host-Ressourcen 110 als „toleriert”, wenn eine geplante Wartung oder ein geplanter Ausfall erfolgt. Die für diese Jobs 122 verfügbare Quote Q wird um den maximalen Umfang des Verlustes reduziert, der toleriert wird, während Datenerreichbarkeit und Datenverarbeitungserreichbarkeit gewahrt bleiben. Die Systemhierarchie 400a, 400b, das Verteilerzentrumsmodul 410, die Zellenkomponente 420, das Rack 430 oder der Ressourcen-Host 110 können als toleriert gekennzeichnet werden.
  • Im Verlauf normaler Operationen des Systems 100 stehen in einigen Beispielen 100% der Ressourcen 110 für die Speicherung der Daten 312 auf den Speichergeräten 114 oder zur Verarbeitung der Daten 312 auf den Datenprozessoren 112 der Ressourcen-Hosts 110 zur Verfügung. Ein „größtes” toleriertes Ereignis (d. h. Wartungs- oder Ausfallereignis) kann den Verlust von 20% der verfügbaren Ressourcen 110 auf der Grundlage der Systemhierarchie 400 und der Zuordnung der Ressourcen 110 zu den Systemdomänen 402 zur Folge haben. Das belässt 80% der Ressourcen 110 stets verfügbar, trotz eines maximalen Verlustes von 20% der Ressourcen 110. Daher ordnet das Jobmanagementsystem 220 ein Maximum von 80% der Ressourcen 110 hochgradig verfügbaren Jobs 122a zu und gestattet es dem System 100, ausreichende Ressourcen 110 zu haben, wenn eine anberaumte Wartung oder ein Systemausfall erfolgen. Wenn das Jobmanagementsystem 220 Jobs 122 in Verbindung mit dem Datenprozessor 212 80% der verfügbaren Prozessoren 212 neu zuordnet, wird das System 100 genügend Prozessoren 212 haben, um die hochgradig verfügbaren Jobs 122a auszuführen. Zudem hat das System 100 ausreichend Speichergeräte 114, die genügend Brocken 330 (z. B. Datenbrocken 330nD und nicht-Datenbrocken 330nC) und Reproduktionen 330n zur Rekonstruktion der verlorenen Daten 312, wenn das System 100 Daten 312 rekonstruieren muss, die aufgrund des inaktiven Zustandes der Systemdomäne 402, welche das die Daten 312 speichernde Speichergerät 114 beinhaltet, nicht verfügbar sind.
  • Bei der Bestimmung der zweiten Quote Q2 von Ressourcen 110 in Schritt 508a, die für hochgradig verfügbare Jobs 122a für die nicht speichermäßige Nutzung von Ressourcen (d. h. unter Strategie 1) bereitstehen, ist die zweite Quote Q2 der verfügbaren Ressourcen 110 eine Quantität der im Verlauf normaler Operationen verfügbaren Ressourcen 110, abzüglich einer Quantität der Ressourcen 110, die aufgrund eines tolerierten Ereignisses verloren wurden. Daher kann die zweite Quote Q2 auf der Grundlage der folgenden Gleichung berechnet werden, wenn die Ressource 110 ihre Datenprozessoren 112 verloren hat: Q2 = RN – RL (2) wo RN die im Verlauf normaler Operationen bereitstehende Quote der Ressourcen ist, ist RL die maximale Quantität der aufgrund eines tolerierten Ereignisses verlorenen Ressourcen.
  • In einigen Implementierungen bestimmt das System 100 die zweite Quote Q2, wenn die verlorene Ressource 110 ein Speichergerät 114 ist. Bei der Bestimmung der zweiten Quote Q2 der für hochgradig verfügbare Jobs 122a zwecks Nutzung von Speicherkapazität (d. h. unter Strategie 2) bereitstehenden Ressourcen 110 bei Schritt 508b kann die zweite Quote Q2 der für hochgradig verfügbare Jobs 122a bereitstehenden Speichergeräte 114 dem vollen Umfang der Ressource 110 entsprechen, die normalweise zur Verfügung steht (obwohl die Nutzung dieser Ressource 110 die Redundanz von reproduzierten Brocken 330n oder der kodierten Brocken 330nC, 330nD erfordern könnte), wie zum Beispiel unter Einsatz von Gleichung 3 kalkuliert. Q2 = RN (3)
  • Das kann für die Byte-Nutzung/die Kapazität des Speichergerätes 114 gelten. Bis zu 100% der Byte-Nutzung/Kapazität des Speichergerätes 114 kann hochgradig verfügbaren Jobs 122a zugeteilt werden.
  • Bei der Bestimmung der zweiten Quote Q2 der für hochgradig verfügbare Jobs 122a zwecks Nutzung von Speicherbandbreite (d. h. unter Strategie 2) bereitstehenden Ressourcen 110 bei Schritt 508c kann die zweite Quote Q2 (d. h. Bandbreite oder Nutzung) dieser Speicherressource 114 (wie etwa die pro Sekunde für Festplattenspeicherung zugelassene Anzahl der Eingabe-/Ausgabeoperationen oder der zugelassene Umfang der Nutzung der/des Zugriffs auf die Spindel für solche Speicherung) als der Umfang der normalerweise zur Verfügung stehenden Ressource 110 RN kalkuliert werden, abzüglich des größten Verlustes RL dieser Ressource 110 aufgrund eines tolerierten Ereignisse, abzüglich der erhöhten Quantität RI dieser Ressource, die aufgrund des größten Verlustes wegen eines tolerierten Ereignisses genutzt wurde, wie in der folgenden Gleichung gezeigt: Q2 = RN – RL – RI (4)
  • In einigen Beispielen kann das System 100 die zweite Quote Q2 bei der Kalkulation der verlorenen Ressourcen 110, wenn diese Speichergeräte 114 wie etwa Festplatten sind, unter Einsatz der folgenden Gleichung bestimmen:
    Figure DE202015009295U1_0002
    wo x ein Ressourcenmultiplikator ist, der mit dem tolerierten Ereignis korrespondiert.
  • Wenn zum Beispiel bis zu 10% der Festplattenspindeln in einem tolerierten Ereignis verloren werden können, und wenn jeder Zugriff auf die Daten 312, die verloren sind, im Durchschnitt 4 Mal so viel Spindelnutzung erfordert (aufgrund der Notwendigkeit, die Daten 312 unter Einsatz eines Code zu rekonstruieren), kommt Gleichung 5A zur Anwendung: Q2 = (100% – 10%) / (100% + 3·10%) = 69% (5B)
  • Daher können 69% der Spindelressource für hochgradig verfügbare Jobs bereitgestellt werden (diese Kalkulation gründet sich auf die Tatsache, dass nur 90% der Spindeln zur Verfügung stehen und dabei 130% der normalen Belastung aus hochgradig verfügbaren Jobs unterstützen).
  • Sobald das System 100 die zweite Quote Q2 der Ressource 110 kalkuliert, gestattet das System 100 sowohl hochgradig als auch geringfügig verfügbaren Jobs, im Datenzentrum zu laufen, vorbehaltlich zweier Einschränkungen bei Schritt 510. Die erste Einschränkung besteht darin, dass der gesamte Umfang jeder durch die hochgradig und geringfügig verfügbaren Jobs 122a, 122b genutzten Ressource 110 (Q1 + Q2) den Umfang der Quantität der Ressource nicht überschreiten kann, die normalerweise zur Verfügung steht RN, wie in der nachstehenden Gleichung gezeigt: Q1 + Q2 ≤ RN (6)
  • Die zweite Einschränkung ist, dass der Umfang jeder durch den hochgradig verfügbaren Job 122a genutzten Ressource QU die zweite Quote Q2, nicht überschreiten kann, wie in der folgenden Gleichung gezeigt: QU ≤ Q2 (7)
  • In einigen Implementierungen überwacht das Jobmanagementsystem 220 eine Nutzung der Ressourcen 110 durch die hochgradig verfügbaren Jobs 122a, um zu gewährleisten, dass sie nicht zu viele Ressourcen 110 verbrauchen. Wenn ein hochgradig verfügbarer Job 122a eine Schwellennutzung überschreitet, stuft das Jobmanagementsystem 220 den hochgradig verfügbaren Job 122a auf einen geringfügig verfügbaren Job 122b zurück. Wenn ein hochgradig verfügbarer Job 122a zurückgestuft wird, kann das Jobmanagementsystem 220 den zurückgestuften Job 122b beenden, was die verfügbare Kapazität steigert (zweite Quote), die für die hochgradig verfügbaren Jobs 122a zur Verfügung steht.
  • Nachdem das Jobmanagementsystem 220 die Quoten Q2 bestimmt, die genutzt werden können, implementiert das Jobmanagementsystem 220 die Prozesse für die Einbeziehung der Wartungs- und Ausfallereignisse. Wenn ein Wartungs- oder Ausfallereignis den Umfang einer verfügbaren Ressource 110 reduziert, kann das Jobmanagementsystem 220 eine ausreichende Anzahl von geringfügig verfügbarem Jobs 122b suspendieren, beenden, entfernen oder anderweitig deren Nutzung der Ressource 110 verhindern, so dass die Ressource 110 für den hochgradig verfügbaren Job 122a bereitsteht. Wenn diese Jobs 122 Live-Verkehr bedienen, kann darüber hinaus der Umfang des an sie überwiesenen Verkehrs reduziert oder auf andere Bereiche umgelenkt werden.
  • Für die Benutzerfreundlichkeit geplanter Wartung kann das Jobmanagementsystem 220 darüber hinaus einige oder alle der geringfügig verfügbaren Jobs 122b suspendieren, beenden, entfernen oder anderweitig deren Nutzung bestimmter Ressourcen 110 für eine gewisse Zeit vor der Wartung verhindern, um den hochgradig verfügbaren Jobs 122a. zu gestatten, sich zu diesen Ressourcen 110 zu bewegen.
  • Während sich die obige Beschreibung auf Ressourcen 110 in einem Datenzentrum konzentrierte, können dieselben Prinzipien auf der Ebene eines Ressourcen-Hosts 110 (Maschine), eines Racks 430, einer Zelle 420, eines Netzwerks, Clusters, Gebäudes, Standortes, einer Region oder einer ganzen globalen Sammlung von Datenzentren angewandt werden.
  • 6 sieht eine musterhafte Anordung von Operationen für ein Verfahren 600 für die effiziente Nutzung von Ressourcen 110 in Datenzentren vor (z. B. Prozessoren 112 und/oder Ressourcen-Hosts 114). Das Verfahren 600 beinhaltet die Identifizierung 602 von hochgradig verfügbaren Jobs 122a und geringfügig verfügbaren Jobs 122b, welche die Nutzung von Ressourcen 110 eines verteilten Systems 100 erfordern und die Bestimmung 604 einer ersten Quote Q1 der für geringfügig verfügbare Jobs 122b bereitstehenden Ressourcen 110 als eine Quantität der im Verlauf normaler Operationen zur Verfügung stehender Ressourcen 110 RN. Das Verfahren 600 beinhaltet zudem die Bestimmung 606 einer zweiten Quote Q2 der für hochgradig verfügbare Jobs 122a bereitstehenden Ressourcen 110 als eine Quantität der im Verlauf normaler Operationen zur Verfügung stehender Ressourcen 110, abzüglich einer Quantität der aufgrund eines tolerierten Ereignisse verlorenen Ressourcen 110 RL. Das Verfahren 600 beinhaltet die Durchführung 608 der Jobs 122, 122a, 122b im verteilten System 100 und die Einschränkung einer Gesamtnutzung der Ressourcen 110 durch sowohl die hochgradig verfügbaren Jobs 122a als auch durch die geringfügig verfügbaren Jobs 122a. auf die Quantität der Ressourcen 110, die im Verlauf normaler Operationen zur Verfügung stehen RN.
  • In einigen Implementierungen beinhalten die Ressourcen 110, 112, 116, 422, 424, 426, 432, 434, 436 datenverarbeitende Geräte 112, Netzwerksysteme 116, 426, 436, Energiesysteme 424, 434 oder Kühlsysteme 422, 432. Für diese Art der Ressourcen 110, 112, 116, 422, 424, 426, 432, 434, 436 kann das Verfahren 600 die Migration oder erneute Ausführung von Jobs 122 beinhalten, die aufgrund des tolerierten Ereignisse verlorenen Ressourcen 110 zugeteilt wurden, zu verbleibenden Ressourcen 110, um den Zugriff auf die Daten 312 oder den Zugriff auf die Datenprozessoren 212 aufrechtzuerhalten.
  • In einigen Implementierungen beinhalten die Ressourcen 110 nicht-flüchtige Speichergeräte 114. Für diese Art der Ressourcen 114 kann das Verfahren 600 das Belassen von den verlorenen Ressourcen 110 zugeteilten Jobs, ohne die Jobs den verbleibenden Ressourcen 110 erneut zuzuordnen, ebenso beinhalten, wie die Rekonstruktion jeglicher nicht verfügbarer, mit den verlorenen Ressourcen 110 assoziierter Daten.
  • Das Verfahren 600 kann die Bestimmung der zweiten Quote Q2 der für hochgradig verfügbare Jobs 122a bereitstehenden Ressource 110 als die im Verlauf normaler Operationen RN zur Verfügung stehende Quantität der Ressourcen 110 beinhalten, abzüglich der Quantität der Ressourcen 110, die aufgrund eines tolerierten Ereignisses RL verloren wurden, abzüglich einer erhöhten Quantität der verbleibenden Ressourcen 110, die aufgrund des tolerierten Ereignisses benötigt werden RI. Zusätzlich oder alternativ kann das Verfahren 600 die Begrenzung einer Summe der ersten Quote Q1 und der zweiten Quote Q2 auf eine maximale Quote beinhalten.
  • In einigen Implementierungen beinhaltet das Verfahren 600 die Überwachung einer Nutzung der Ressourcen 110 durch die hochgradig verfügbaren Jobs 12a. Wenn ein hochgradig verfügbarer Job 122a die Schwellennutzung überschreitet, beinhaltet das Verfahren 600 die Rückstufung des hochgradig verfügbaren Jobs 122a auf einen geringfügig verfügbaren Job 122b.
  • Das Verfahren 600 kann weiterhin die Reduzierung der ersten Quote Q1 der für geringfügig verfügbare Jobs 122b zur Verfügung stehenden Ressourcen 110 für einen Zeitraum vor dem tolerierten Ereignis und die Erhöhung der zweiten Quote Q2 der für hochgradig verfügbare Jobs 122a bereitstehenden Ressourcen 110 für den Zeitraum vor dem tolerierten Ereignis beinhalten. Zusätzlich oder alternativ kann das Verfahren 600 die Suspendierung oder Beendung von mindestens einigen der geringfügig verfügbaren Jobs 122b für den Zeitraum vor dem tolerierten Ereignis beinhalten.
  • In einigen Beispielen beinhaltet das Verfahren 600 die Bestimmung der Quantität der aufgrund eines tolerierten Ereignisses RL verlorenen Ressourcen 110 auf der Grundlage einer Zuordnung der Jobs 122 zu bestimmten Ressourcen 110 und einer Systemhierarchie 400 des verteilten Systems 100. Die Systemhierarchie 400 beinhaltet Domänen oder Einheiten 402. Jede Systemdomäne 402 besitzt einen aktiven Status oder einen inaktiven Status. Die Systemhierarchie 400 kann Systemebenen wie etwa Ebenen 1–4 beinhalten. Die erste Systemebene (z. B. Ebene 1) korrespondiert mit Ressourcen-Hosts 110 und hat Datenverarbeitungsgeräte 112, nicht-flüchtige Speichergeräte 114 oder Netzwerkoberflächensteuerungen 116. Jedes Datenverarbeitungsgerät 112 oder Speichergerät 114 hat ein oder mehrere Systemdomänen 402. Die zweite Systemebene (z. B. Ebene 2) korrespondiert mit Host-Maschinen 430 (z. B. Racks) der Speichergeräte 114 oder der Datenverarbeitungsgeräte 112, worin jede Host-Maschine eine oder mehrere Systemdomänen 402 aufweist. Eine dritte Systemebene (z. B. Ebene 3) korrespondiert mit Energiezulieferern 424 (z. B. Buskanälen), Kommunikationszulieferern 426 oder Kühlungszulieferern 422 für die Host-Maschinen 110. Jeder Energiezulieferer 424, Kommunikationszulieferer 426 oder Kühlungszulieferer 422 hat eine Systemdomäne 402. Die vierte Systemebene (z. B. Ebene 4) korrespondiert mit einem Verteilungszentrumsmodul 410 des Energiezulieferers 424, Kommunikationszulieferers 426 oder Kühlungszulieferers 422. Jedes Verteilungszentrumsmodul 410 hat eine Systemdomäne 402.
  • 7 bietet eine musterhafte Anordnung von Operationen für ein Verfahren 700 der effizienten Nutzung von Ressourcen 110. Das Verfahren 700 beinhaltet die Identifizierung 702 von hochgradig verfügbaren Jobs 122a und geringfügig verfügbaren Jobs 122b, welche die Nutzung von Ressourcen 112, 114 eines verteilten Systems 100 erfordern, und die Bestimmung 702 einer ersten Quote Q1 der für geringfügig verfügbare Jobs 122b bereitstehenden Ressourcen 112, 114 als eine Quantität der im Verlauf normaler Operationen zur Verfügung stehenden Ressourcen 112, 114 und die Bestimmung 706 einer zweiten Quote Q2 der für hochgradig verfügbare Jobs 122a bereitstehenden Ressourcen 112, 114 auf der Grundlage der Ressourcennutzung der Jobs 122. Für die Nutzung von Speicherkapazität ist die zweite Quote Q2 der für hochgradig verfügbare Jobs 122a. bereitstehenden Ressourcen 114 die Quantität RN der im Verlauf normaler Operationen zur Verfügung stehender Ressourcen 114. Für die Nutzung der Speicherbandbreite ist die zweite Quote Q2 der für hochgradig verfügbare Jobs 122a bereitstehenden Ressourcen 114 die Quantität RN der im Verlauf normaler Operationen zur Verfügung stehenden Ressourcen 114, abzüglich einer Quantität RL der Ressourcen 114, die aufgrund des tolerierten Ereignisses verlorengingen, und abzüglich einer erhöhten Quantität RI der verbleibenden Ressourcen 114, die wegen des tolerierten Ereignisses benötigt werden. Für andere Nutzungen der Ressourcen ist die zweite Quote Q2 der für hochgradig verfügbare Jobs 122a bereitstehenden Ressourcen 112 die Quantität RN der im Verlauf normaler Operationen zur Verfügung stehenden Ressourcen 112, abzüglich der Quantität RL der aufgrund eines tolerierten Ereignisses verlorenen Ressourcen. Das Verfahren beinhaltet weiterhin die Durchführung 708 der Jobs 122 mit den Ressourcen 112, 114 des verteilten Systems 100 und die Einschränkung 710 einer Gesamtnutzung der Ressourcen 112, 114 sowohl durch die hochgradig verfügbaren Jobs 122a als auch die geringfügig verfügbaren Jobs 122b auf die Quantität RN der im Verlauf normaler Operationen zur Verfügung stehenden Ressourcen.
  • Verschiedene Implementierungen der hier beschriebenen Systeme und Techniken können in digitalen elektronischen Schaltkreisen, integrierten Schaltkreisen, speziell konzipierten ASICs (Application-Specific Integrated Circuit, anwendungsorientierte integrierte Schaltkreise), Computerhardware, Firmware, Software und/oder Kombinationen davon realisiert sein. Diese verschiedenen Implementierungen können eine Implementierung in einem oder mehreren Computerprogrammen beinhalten, die auf einem programmierbaren System ausführbar und/oder interpretierbar sind, das mindestens einen programmierbaren Prozessor beinhaltet, der ein spezieller Prozessor oder ein Prozessor für allgemeine Zwecke sein kann, und der zum Empfangen von Daten und Anweisungen von und zum Übertragen von Daten und Anweisungen an ein Speichersystem, mindestens eine Eingabevorrichtung und mindestens eine Ausgabevorrichtung gekoppelt ist.
  • Diese Computerprogramme (auch bekannt als Programme, Software, Softwareanwendungen oder Code) beinhalten Maschinenanweisungen für einen programmierbaren Prozessor und können in einer höheren prozeduralen und/oder objektorientierten Programmiersprache und/oder in Assembler-/Maschinensprache implementiert werden. Wie hier verwendet, beziehen sich die Begriffe „maschinenlesbares Medium” und „computerlesbares Medium” auf ein beliebiges Computerprogrammprodukt, einen beliebigen Apparat und/oder ein beliebiges Gerät (z. B. Magnetplatten, optische Platten, Speicher, programmierbare Logikbausteine [Programmable Logic Devices, PLDs]), die verwendet werden, um einem programmierbaren Prozessor Maschinenanweisungen und/oder Daten bereitzustellen, einschließlich eines maschinenlesbaren Mediums, das Maschinenanweisungen als ein maschinenlesbares Signal empfängt. Der Begriff „maschinenlesbares Signal” bezeichnet ein beliebiges Signal, das verwendet wird, um einem programmierbaren Prozessor Maschinenanweisungen und/oder Daten bereitzustellen.
  • Implementierungen des Gegenstands und die in dieser Spezifikation beschriebenen funktionalen Operationen können in digitalen elektronischen Schaltungen oder in Computer-Software, Firmware oder Hardware implementiert werden, einschließlich der in dieser Spezifikation offengelegten Strukturen und ihrer strukturellen Entsprechungen oder in Kombinationen von einer oder mehreren von ihnen. Darüber hinaus kann der in dieser Spezifikation beschriebene Gegenstand als ein oder mehrere Computerprogrammprodukte implementiert werden, d. h. als ein oder mehrere Module von Computerprogrammanweisungen, die auf einem computerlesbaren Medium zur Ausführung kodiert sind, durch oder zur Kontrolle von datenverarbeitenden Apparaten. Das computerlesbare Speichermedium kann eine maschinenlesbare Speichervorrichtung, ein maschinenlesbares Speichersubstrat, ein Speichergerät, eine Stoffzusammensetzung, die ein maschinenlesbares verbreitetes Signal bewirkt, oder eine Kombination aus einem oder mehreren davon sein. Die Begriffe „datenverarbeitender Apparat”, „Computergerät” und „Computerprozessor” beinhalten jegliche Apparate, Geräte und Maschinen zur Verarbeitung von Daten, einschließlich beispielsweise eines programmierbaren Prozessors, eines Computers oder mehrerer Prozessoren oder Computer. Der Apparat kann neben der Hardware auch einen Code einschließen, der eine Ausführungsumgebung für das betreffende Computerprogramm erstellt, z. B. einen Code, der Prozessor-Firmware, einen Protokollstapel, ein Datenbank-Managementsystem, ein Betriebssystem oder eine Kombination einer oder mehrerer der genannten darstellt. Ein propagiertes Signal ist ein künstlich erzeugtes Signal, z. B. ein maschinell erzeugtes elektrisches, optisches oder elektromagnetisches Signal, das für das Verschlüsseln von Information für die Übertragung auf einen geeigneten Empfängerapparat erzeugt wird.
  • Ein Computerprogramm (auch bezeichnet als Anwendung, Programm, Software, Softwareanwendung, Script oder Code) kann in einer beliebigen Form von Programmiersprache geschrieben sein, einschließlich kompilierter oder interpretierter Sprachen, und kann in jeder beliebigen Form eingesetzt werden, darunter auch als unabhängiges Programm oder als ein Modul, eine Komponente, eine Subroutine oder eine andere Einheit, die für die Nutzung in einer Rechnerumgebung geeignet ist. Ein Computerprogramm entspricht nicht unbedingt einer Datei in einem Dateisystem. Ein Programm kann in einem Teil einer Datei gespeichert sein, die andere Programme oder Daten enthält (z. B. ein oder mehrere Scripts, die in einem Dokument in Markup-Sprache gespeichert sind), in einer einzelnen Datei speziell für das betreffende Programm oder in mehreren koordinierten Dateien (z. B. Dateien, die ein oder mehrere Module, Unterprogramme oder Teile von Code speichern). Ein Computerprogramm kann auf einem Computer oder mehreren Computer eingerichtet sein oder ausgeführt werden, die an einem Standort angeordnet sind oder über mehrere Standorte verteilt sind und über ein Kommunikationsnetz verbunden sind.
  • Die in dieser Beschreibung dargestellten Prozesse und logischen Abläufe können durch einen oder mehrere programmierbare Prozessoren vorgenommen werden, die ein oder mehrere Computerprogramme ausführen, um Funktionen durch das Arbeiten mit Eingabedaten und die Generierung von Ausgaben auszuführen. Die Prozesse und die logischen Abläufe können auch durch logische Sonderzweckschaltungen durchgeführt werden, und der Apparat kann als Sonderzweckschaltungen implementiert werden, z. B. ein FPGA (Field Programmable Gate Array) oder eine ASIC (anwendungsspezifische integrierte Schaltung).
  • Prozessoren, die für die Realisierung eines Computerprogramms geeignet sind, schließen beispielsweise sowohl allgemeine und als auch Spezial-Mikroprozessoren sowie jegliche Arten eines oder mehrerer Prozessoren einer beliebigen Art von Digitalrechner ein. Ganz allgemein nimmt ein Prozessor Anweisungen und Daten von einem Festwertspeicher oder einem Speicher mit wahlfreiem Zugriff oder von beiden entgegen. Die wesentlichen Elemente eines Computers sind ein Prozessor für das Ausführen von Befehlen und ein oder mehrere Speichergeräte für das Speichern von Befehlen und Daten. Ganz allgemein gehören zu einem Computer auch ein oder mehrere Massenspeichergeräte für das Speichern von Daten, z. B. Magnet-, magnetooptische oder optische Disketten, um Daten entgegenzunehmen und/oder zu übertragen, bzw. ist ein Computer operativ an ein solches Speichergerät gekoppelt. Jedoch muss ein Computer solche Geräte nicht haben. Außerdem kann ein Computer in ein anderes Gerät eingebettet sein, z. B. in ein Mobiltelefon, einen Organizer (PDA), einen mobilen Audioplayer, einen GPS-Empfänger (Global Positioning System), um nur einige zu nennen. Computerlesbare Medien, die für das Speichern von Computerprogrammbefehlen und -daten geeignet sind, schließen alle Formen von Permanentspeichern, Medien- und Speichergeräten ein, einschließlich beispielsweise Halbleiter-Speichergeräte, z. B. EPROM, EEPROM und Flash-Speicher; Magnetdisketten, z. B. interne Festplatten oder Wechselplatten; magnetooptische Disketten; und CD-ROMs und DVD-ROMs. Der Prozessor und der Speicher können durch logische Sonderzweckschaltungen ergänzt werden oder darin eingebaut sein.
  • Um die Interaktion mit einem Benutzer zu ermöglichen, können ein oder mehrere Aspekte der Offenlegung auf einem Computer implementiert werden, der ein Anzeigegerät, z. B. einen CRT-Monitor (Cathode Ray Tube, Kathodenstrahlröhre), einen LCD-Monitor (Liquid Crystal Display, Flüssigkristallanzeige) oder einen Touchscreen aufweist, um Informationen für den Benutzer anzuzeigen, und optional eine Tastatur und ein Zeigegerät, z. B. Maus oder Trackball, mit denen der Benutzer Eingaben in den Computer vornehmen kann. Es können auch andere Arten von Geräte verwendet werden, um für eine Interaktion mit einem Benutzer zu sorgen; beispielsweise kann eine dem Benutzer gelieferte Rückkopplung beliebiger Form von sensorischer Rückkopplung vorliegen, z. B. eine visuelle Rückkopplung, auditive Rückkopplung oder taktile Rückkopplung; und die Eingabe vom Benutzer kann in beliebiger Form empfangen werden, einschließlich akustischer, Sprach- oder taktiler Eingabe. Darüber hinaus kann ein Computer über das Senden von Dokumenten an und das Empfangen von Dokumenten von einer Einrichtung, die vom Benutzer verwendet wird, mit einem Benutzer interagieren; beispielsweise über das Senden von Webpages an einen Webbrowser auf dem Clientgerät des Benutzers als Antwort auf die vom Webbrowser empfangenen Aufforderungen.
  • Ein oder mehrere Aspekte der Offenlegung können in einem Computersystem implementiert werden, das eine Backend-Komponente, z. B. in der Form eines Datenservers, oder eine Middleware-Komponente, z. B. einen Anwendungsserver, oder eine Frontend-Komponente, z. B. einen Client-Computer mit graphischer Benutzeroberfläche oder Webbrowser beinhaltet, worüber der Benutzer mit einer Implementierung des in dieser Spezifizierung beschriebenen Gegenstands interagieren kann, oder eine beliebige Kombination aus einem oder mehreren dieser Backend-, Middleware- oder Frontend-Komponenten. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium digitaler Datenkommunikation miteinander verbunden sein, z. B. ein Kommunikationsnetz. Zu Beispielen für Kommunikationsnetze zählen ein lokales Netzwerk („LAN”), ein Fernnetzwerk („WAN”), eine netzübergreifende Verbindung (z. B. das Internet) und Peer-to-Peer Netzwerke (z. B. Ad-Hoc Peer-to-Peer Netzwerke).
  • Das Computersystem kann Clienten und Server beinhalten. Ein Client und Server befinden sich im Allgemeinen ortsfern voneinander und interagieren typischerweise über ein Kommunikationsnetz. Die Beziehung zwischen Client und Server entsteht aufgrund von Computerprogrammen, die auf den jeweiligen Computern laufen und die eine Client-Server-Beziehung zueinander haben. Bei einigen Implementierungen überträgt ein Server Daten (z. B. eine HTML-Seite) auf ein Client-Gerät (z. B. zum Anzeigen von Daten für einen Benutzer, der mit dem Client-Gerät interagiert, sowie zum Empfangen von Benutzereingaben von diesem Benutzer). Am Client-Gerät erzeugte Daten (z. B. infolge der Benutzerinteraktion) können vom Client-Gerät am Server empfangen werden.
  • Während diese Spezifikation viele Einzelheiten enthält, sollen diese nicht als Beschränkungen des Umfangs der Offenbarung oder dessen, was beansprucht wird, verstanden werden, sondern vielmehr als Beschreibungen von Merkmalen, die bestimmten Implementierungen der Offenlegung zu eigen sind. Bestimmte Eigenschaften, die in dieser Spezifikation im Kontext gesonderter Implementierungen beschrieben sind, können auch in Kombination in einer einzelnen Implementierung implementiert werden. Umgekehrt können verschiedene, im Kontext einer einzelnen Implementierung beschriebene Merkmale auch in mehreren Implementierungen separat oder in einer beliebigen geeigneten Unterkombination implementiert werden. Darüber hinaus können ein oder mehrere Merkmale einer beanspruchten Kombination in einigen Fällen aus der Kombination herausgelöst werden, auch wenn sie vorstehend als in gewissen Kombinationen funktionierend beschrieben oder gar zunächst solcherart beansprucht werden, und die beanspruchte Kombination kann an eine Unterkombination oder die Variation einer Unterkombination verwiesen werden.
  • Auf ähnliche Weise werden Operationen in den Zeichnungen zwar in einer bestimmten Reihenfolge dargestellt, doch sollte dies nicht als Erfordernis verstanden werden, dass solche Operationen in der bestimmten gezeigten Reihenfolge oder in sequentieller Reihenfolge durchgeführt werden müssen, oder dass alle illustrierten Operationen durchgeführt werden müssen, um erwünschte Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und Parallelbearbeitung vorteilhaft sein. Darüber hinaus sollte die Trennung verschiedener Systemkomponenten in den oben beschriebenen Ausführungsformen nicht so verstanden werden, dass eine solche Trennung in allen Ausführungsformen erforderlich ist, und es sollte verstanden werden, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen zusammen in ein einziges Softwareprodukt integriert oder in multiple Softwareprodukte verpackt werden können.
  • Eine Anzahl an Implementierungen wurde beschrieben. Trotzdem versteht sich, dass verschiedene Modifikationen durchgeführt werden können, ohne vom Geist und Umfang der Offenbarung abzuweichen. Dementsprechend liegen andere Implementierungen im Geltungsbereich der folgenden Ansprüche. Die in den Ansprüchen ausgeführten Vorgänge können beispielsweise in einer anderen Reihenfolge ausgeführt werden und erzielen dennoch gewünschte Ergebnisse.

Claims (13)

  1. System, das Folgendes umfasst: Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) eines verteilten Systems (100); und einen Computerprozessor (202) in Kommunikation mit den Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436), worin der Computerprozessor (202) Folgendes ausführt: das Identifizieren hochgradig verfügbarer Jobs (122, 122a) und geringfügig verfügbarer Jobs (122, 122b), welche die Nutzung der Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) erfordern; das Bestimmen einer ersten Quote (Q2) der Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436), die für geringfügig verfügbare Jobs (122, 122b) bereitstehen als eine Quantität der im Verlauf normaler Operationen zur Verfügung stehenden Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436); das Bestimmen einer zweiten Quote (Q2) der Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436), die für hochgradig verfügbare Jobs (122, 122a) als eine Quantität der Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) bereitstehen, die im Verlauf normaler Operationen zur Verfügung stehen, abzüglich einer Quantität der aufgrund eines tolerierten Ereignisses verlorenen Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436); das Ausführen der Jobs (122, 122a, 122b) mit den Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) des verteilten Systems (100); und das Einschränken einer Gesamtnutzung der Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) sowohl durch die hochgradig verfügbaren Jobs (122, 122a) als auch die geringfügig verfügbaren Jobs (122, 122b) auf die Quantität der im Verlauf normaler Operationen zur Verfügung stehenden Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436).
  2. System nach Anspruch 1, worin die Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) Datenverarbeitungsgeräte (112), Netzwerksysteme (116, 426, 436), Energiesysteme (424, 434) oder Kühlsysteme (422, 432) umfassen.
  3. System nach Anspruch 2, worin der Computerprozessor (202) aufgrund des tolerierten Ereignisses verlorenen Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) zugeteilte Jobs (122, 122a, 122b) zu verbleibenden Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) migriert oder mit diesen erneut ausführt.
  4. System nach Anspruch 1, worin die Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) nicht-flüchtige Speichergeräte (114) umfassen.
  5. System nach Anspruch 4, worin der Computerprozessor (202): den verlorenen Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) zugeteilte Jobs (122, 122a, 122b) belässt, ohne die Jobs (122, 122a, 122b) erneut verbleibenden Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) zuzuteilen; und jegliche nicht verfügbare, mit den verlorenen Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) assoziierte Daten (312) rekonstruiert.
  6. System nach Anspruch 1, worin der Computerprozessor (202) die zweite Quote (Q2) der für hochgradig verfügbare Jobs (122, 122a) bereitstehenden Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) wie folgt bestimmt: Q2 = RN – RL – RI worin Q2 die zweite Quote (Q2) ist, RN die Quantität der im Verlauf normaler Operationen zur Verfügung stehenden Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) ist, RL die Quantität der aufgrund eines tolerierten Ereignisses verlorenen Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) ist, und RI eine erhöhte Quantität der verbleibenden, aufgrund des tolerierten Ereignisses benötigten Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) darstellt.
  7. System nach Anspruch 1, worin der Computerprozessor (202) die zweite Quote (Q2) der für hochgradig verfügbare Jobs (122, 122a) bereitstehenden Ressource (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) wie folgt bestimmt:
    Figure DE202015009295U1_0003
    worin Q2 die zweite Quote (Q2) ist, RN die Quantität der im Verlauf normaler Operationen zur Verfügung stehenden Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) ist, RL die Quantität der aufgrund eines tolerierten Ereignisses verlorenen Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) ist, und x einen Ressourcen-Multiplikator darstellt, der dem tolerierten Ereignis entspricht.
  8. System nach Anspruch 7, worin die Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) ein nicht-flüchtiges Speichergerät (114) beinhalten.
  9. System nach Anspruch 1, worin der Computerprozessor (202) eine Summe der ersten Quote (Q2) und der zweiten Quote (Q2) auf eine maximale Quote (Q2) beschränkt.
  10. System nach Anspruch 1, worin der Computerprozessor (202): ein Nutzen der Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) durch die hochgradig verfügbaren Jobs (122, 122a) überwacht; und wenn ein hochgradig verfügbarer Job (122, 122a) eine Schwellennutzung überschreitet, den hochgradig verfügbaren Job (122, 122a) auf einen geringfügig verfügbaren Job (122, 122b) zurückstuft.
  11. System nach Anspruch 1, worin der Computerprozessor (202) mindestens einige der geringfügig verfügbaren Jobs (122, 122b) für den Zeitraum vor dem tolerierten Ereignis suspendiert oder beendet.
  12. System nach Anspruch 1, worin der Computerprozessor (202) die Quantität der aufgrund eines tolerierten Ereignisses verlorenen Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) auf der Grundlage einer Zuteilung der Jobs (122, 122a, 122b) zu spezifischen Ressourcen (110, 112, 114, 116, 422, 424, 426, 432, 434, 436) und einer Systemhierarchie (400, 400a, 400b) des verteilten Systems (100) bestimmt, worin die Systemhierarchie (400, 400a, 400b) Systemdomänen (402, 402a, 402b, 402c, 402d) umfasst, von denen jede eine aktiven oder inaktiven Zustand hat.
  13. System nach Anspruch 12, worin die Systemhierarchie (400, 400a, 400b) Systemebenen umfasst, Folgendes umfassend: eine erste Systemebene (Ebene 1), die mit den Host-Maschinen (110) von Datenverarbeitungsgeräten (112), nicht-flüchtigen Speichergeräten (114) oder Netzwerkoberflächensteuerungen (116) korrespondiert, worin jede Host-Maschine (110) eine Systemdomäne (402, 402a, 402b, 402c, 402d) aufweist; eine zweite Systemebene (Ebene 2), die mit Energiezulieferern (434), Kommunikationszulieferern (436) oder Kühlungszulieferern (432) von Racks (430, 430a, 430n) korrespondiert, die die die Host-Maschinen (110, 430) beherbergen, worin jeder Energiezulieferer (434), Kommunikationszulieferer (436) oder Kühlungszulieferer (432) des Racks eine Systemdomäne (402, 402a, 402b, 402c, 402d) aufweist; und eine dritte Systemebene (Ebene 3), die mit Energiezulieferern (424), Kommunikationszulieferern (426) oder Kühlungszulieferern (422) von Zellen (200) mit assoziierten Racks (430, 430a, 430n) korrespondiert, worin jeder Energiezulieferer (424), Kommunikationszulieferer (426) oder Kühlungszulieferer (422) der Zelle (200) eine Systemdomäne (402, 402a, 402b, 402c, 402d) aufweist; und eine vierte Systemebene (Ebene 4), die mit einem Verteilerzentrumsmodul (410) der Zellen (200) korrespondiert, worin jedes Verteilerzentrumsmodul (410) eine Systemdomäne (402, 402a, 402b, 402c, 402d) aufweist.
DE202015009295.0U 2014-01-31 2015-01-23 Effiziente Ressourcennutzung in Datenzentren Active DE202015009295U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/169,357 2014-01-31
US14/169,357 US9213576B2 (en) 2014-01-31 2014-01-31 Efficient resource utilization in data centers

Publications (1)

Publication Number Publication Date
DE202015009295U1 true DE202015009295U1 (de) 2017-01-26

Family

ID=53754896

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202015009295.0U Active DE202015009295U1 (de) 2014-01-31 2015-01-23 Effiziente Ressourcennutzung in Datenzentren

Country Status (8)

Country Link
US (2) US9213576B2 (de)
EP (1) EP3100172B1 (de)
KR (1) KR101719116B1 (de)
CN (1) CN105849715B (de)
AU (1) AU2015211224B2 (de)
DE (1) DE202015009295U1 (de)
GB (2) GB2538198B (de)
WO (1) WO2015116490A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10191771B2 (en) * 2015-09-18 2019-01-29 Huawei Technologies Co., Ltd. System and method for resource management
US10313429B2 (en) * 2016-04-11 2019-06-04 Huawei Technologies Co., Ltd. Distributed resource management method and system
US10782757B2 (en) * 2017-08-09 2020-09-22 Equinix, Inc. Rack level power control
CN109729113B (zh) * 2017-10-27 2021-03-23 伊姆西Ip控股有限责任公司 管理专用处理资源的方法、服务器系统和计算机程序产品
KR102268529B1 (ko) * 2017-12-20 2021-06-23 구글 엘엘씨 공동 전송 커밋 시뮬레이션
CN111858030B (zh) * 2020-06-17 2024-03-22 北京百度网讯科技有限公司 作业的资源处理方法、装置、电子设备及可读存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040100982A1 (en) * 1999-09-30 2004-05-27 Sivaram Balasubramanian Distributed real-time operating system
US7225223B1 (en) * 2000-09-20 2007-05-29 Hewlett-Packard Development Company, L.P. Method and system for scaling of resource allocation subject to maximum limits
US20030212898A1 (en) 2002-05-09 2003-11-13 Doug Steele System and method for remotely monitoring and deploying virtual support services across multiple virtual lans (VLANS) within a data center
US20040153748A1 (en) 2002-12-19 2004-08-05 Alfio Fabrizi Method for configuring a data processing system for fault tolerance
US7234072B2 (en) 2003-04-17 2007-06-19 Computer Associates Think, Inc. Method and system for making an application highly available
WO2005060594A2 (en) 2003-12-11 2005-07-07 International Business Machines Corporation Data transfer error checking
US7933987B2 (en) 2005-09-30 2011-04-26 Lockheed Martin Corporation Application of virtual servers to high availability and disaster recovery solutions
JP4935595B2 (ja) * 2007-09-21 2012-05-23 富士通株式会社 ジョブ管理方法、ジョブ管理装置およびジョブ管理プログラム
US7801994B2 (en) 2007-11-29 2010-09-21 Hitachi, Ltd. Method and apparatus for locating candidate data centers for application migration
JP2009217587A (ja) * 2008-03-11 2009-09-24 Hitachi Ltd バッチ処理装置及び方法
US9063738B2 (en) 2010-11-22 2015-06-23 Microsoft Technology Licensing, Llc Dynamically placing computing jobs
US8713183B2 (en) 2011-03-27 2014-04-29 Hewlett-Packard Development Company, L.P. Resource compatability for data centers
US8554918B1 (en) * 2011-06-08 2013-10-08 Emc Corporation Data migration with load balancing and optimization
US8549519B2 (en) 2011-08-19 2013-10-01 Hitachi, Ltd. Method and apparatus to improve efficiency in the use of resources in data center
US10180807B2 (en) 2011-10-12 2019-01-15 Tata Consultancy Services Limited Method and system for consolidating a plurality of heterogeneous storage systems in a data center
US10048990B2 (en) 2011-11-19 2018-08-14 International Business Machines Corporation Parallel access of partially locked content of input file
US9170859B2 (en) * 2012-06-07 2015-10-27 Apple Inc. Targeted memory pressure event notifications
US9304803B2 (en) * 2012-11-12 2016-04-05 Vmware, Inc. Cooperative application workload scheduling for a consolidated virtual environment

Also Published As

Publication number Publication date
GB202107020D0 (en) 2021-06-30
CN105849715B (zh) 2019-05-28
AU2015211224B2 (en) 2016-12-22
US20160077883A1 (en) 2016-03-17
AU2015211224A1 (en) 2016-06-09
KR20160097372A (ko) 2016-08-17
WO2015116490A1 (en) 2015-08-06
EP3100172B1 (de) 2023-03-29
US20150220363A1 (en) 2015-08-06
GB2592165A (en) 2021-08-18
GB201614046D0 (en) 2016-09-28
GB2592165B (en) 2021-11-03
CN105849715A (zh) 2016-08-10
KR101719116B1 (ko) 2017-03-22
US9213576B2 (en) 2015-12-15
GB2538198B (en) 2021-07-07
US9823948B2 (en) 2017-11-21
EP3100172A1 (de) 2016-12-07
EP3100172A4 (de) 2017-11-22
GB2538198A (en) 2016-11-09

Similar Documents

Publication Publication Date Title
DE202014010909U1 (de) Verteilung von Daten in verteilten Speichersystemen
US10795905B2 (en) Data stream ingestion and persistence techniques
DE202015009267U1 (de) Priorisierung von Datenrekonstruktion in verteilten Speichersystemen
DE202015009295U1 (de) Effiziente Ressourcennutzung in Datenzentren
DE112011101633B4 (de) Virtualisierung und dynamische Ressourcenzuweisung berücksichtigendes Neuordnen von Speicherebenen
DE112011101109B4 (de) Übertragung von Map/Reduce-Daten auf der Grundlage eines Speichernetzwerkes oder eines Speichernetzwerk-Dateisystems
DE102019133923A1 (de) Anwendungsverwendung in einem behältermanagementsystem
DE202015009260U1 (de) Effiziente Datenlesungen von verteilten Speichersystemen
DE102012218269B4 (de) Schnittstelle zur Verwaltung von Datenverschiebung in einem Speichersystem mit thin provisioning
DE112013006643B4 (de) Speichersystem und steuerungsverfahren für speichersystem
DE102013204186B4 (de) Ermitteln von Prioritäten für zwischengespeicherte Objekte zum Ordnen des Übertragens von Änderungen an zwischengespeicherten Objekten beruhend auf gemessener Netzwerkbandbreite
DE102021113808A1 (de) Handhabung von Replikationen zwischen verschiedenen Netzwerken
DE112019002948T5 (de) Feststellen einer optimalen speicherumgebung für datensätze und für das migrieren von datensätzen
DE112012005275T5 (de) Datenauswahl zur Sicherung von Datenspeichern
DE102012215918A1 (de) Spiegeln virtueller Maschinen von einem primären auf einen sekundären Host
DE112011103666T5 (de) Speicherverwaltung in Cluster-Datenverarbeitungssystemen
DE112011104419T5 (de) Bereichsmigration für gepaarte Speicherung
DE102008013081A1 (de) Verfahren und Anordnung zur Ressourcen-Zuweisung an Sicherungs-Tasks in einem Datensicherungssystem
DE102020116316A1 (de) Prioritätsbasierte batterie-zuordnung für ressourcen während leistungsausfall
DE102014114108A1 (de) Prozessleitsysteme und -verfahren
DE112014002754T5 (de) Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus
DE602004007925T2 (de) Verwalten einer beziehung zwischen einem zielvolumen und einem quellenvolumen
DE102013205571B4 (de) Verfahren, Computerprogrammprodukt und Vorrichtung zum Migrieren von Datenträgern mit schlanker Speicherzuweisung in mehrschichtigen Speicherarchitekturen
DE112010004530T5 (de) Transaktionsaktualisierung bei Dynamischen Verteilten Arbeitslasten
DE112018002955T5 (de) Kognitive datei- und objektverwaltung für verteilte speicherumgebungen

Legal Events

Date Code Title Description
R207 Utility model specification
R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R150 Utility model maintained after payment of first maintenance fee after three years
R151 Utility model maintained after payment of second maintenance fee after six years
R152 Utility model maintained after payment of third maintenance fee after eight years