Anwendungsprüfung

Checkpointing ist eine Technik, die liefert Fehlertoleranz zum Computer Systeme. Es besteht im Grunde genommen darin, einen Momentaufschuss der zu speichern AnwendungDer Zustand, so dass Anwendungen von diesem Zeitpunkt an neu starten können Versagen. Dies ist besonders wichtig für die langjährigen Anwendungen, die in den fehleranfälligen Computersystemen ausgeführt werden.

Checkpointing in verteilten Systemen

In dem verteiltes Computer Umwelt, Checkpointing ist eine Technik, die dazu beiträgt, Fehler zu tolerieren, die ansonsten die langjährige Anwendung zum Neustart von Anfang an zwingen würden. Die grundlegendste Möglichkeit, Checkpointing zu implementieren, besteht darin, die Anwendung zu stoppen und alle erforderlichen Daten aus dem Speicher in einen zuverlässigen Speicher zu kopieren (z. B.,,, Parallele Dateisystem) und dann mit der Ausführung fortfahren.[1] Bei Ausfall muss bei der Neustart der Anwendung nicht von vorne anfangen. Vielmehr wird der neueste Status ("The Checkpoint") aus dem stabilen Speicher gelesen und daraus ausgeführt. Während es laufende Debatten darüber gibt, ob Checkpointing die dominierende E/A -Arbeitsbelastung bei verteilten Computersystemen ist, besteht ein allgemeiner Konsens darüber, dass Checkpointing eine der wichtigsten I/A -Arbeitsbelastungen ist.[2][3]

In den verteilten Computersystemen gibt es zwei Hauptansätze zum Überprüfen: koordinierter Checkpointing und unkoordiniertes Checkpointing. Bei dem koordinierten Checkpointing -Ansatz müssen Prozesse sicherstellen, dass ihre Kontrollpunkte konsistent sind. Dies wird normalerweise durch eine Art von einer Art erreicht Zweiphasen-Commit-Protokoll Algorithmus. In der unkoordinierten Prüfung ist jeder Prozess unabhängig voneinander seinen eigenen Zustand. Es muss betont werden, dass es nicht ausreicht, dass Prozesse ihren Zustand in festen Zeitintervallen dazu zwingen, ihre globale Konsistenz zu gewährleisten. Die Notwendigkeit, einen konsistenten Zustand festzulegen (d. H. Keine fehlenden Nachrichten oder doppelten Nachrichten) bedeuten, dass der einzige konsistente Zustand der Anfangszustand ist (der sogenannte Domino-Effekt).[4][5]

Implementierungen für Anwendungen

Sicherer Staat

Eines der ursprünglichen und jetzt häufigsten Mittel zur Anwendungsprüfung war eine "Save -Status" -Funktion in interaktiv Es funktioniert und arbeitet entweder weiter oder beenden Sie die Anwendung und starten Sie zu einem späteren Zeitpunkt die Anwendung neu und stellen Sie den gespeicherten Zustand wieder her. Dies wurde über einen Befehl "Speichern" oder eine Menüoption in der Anwendung implementiert. In vielen Fällen wurde die Standardpraxis, den Benutzer zu fragen, ob er beim Verlassen der Bewerbung nicht gespeichert wurde, ob er seine Arbeit vor dem Ausführen speichern wollte.

Diese Art von Funktionalität wurde für die Benutzerfreundlichkeit in Anwendungen, bei denen die jeweilige Arbeit in einer Sitzung nicht abgeschlossen werden konnte ) oder wo die Arbeit über einen langen Zeitraum durchgeführt wurde, wie z. B. Dateneingabe in ein Dokument wie Zeilen in einer Tabelle.

Das Problem mit Save Status besteht darin, dass der Betreiber eines Programms das Speichern anfordert. Für nicht interaktive Programme, einschließlich automatisierter oder stapelverarbeiteter Workloads, mussten auch die Möglichkeit, solche Anwendungen zu überprüfen, automatisiert werden.

Checkpoint/Neustart

Als Batch -Anwendungen zehn bis Hunderttausende von Transaktionen abwickeln, wobei jede Transaktion einen Datensatz aus einer Datei gegen mehrere verschiedene Dateien verarbeitet, muss die Anwendung irgendwann neu gestartbar sein, ohne den gesamten Job von Grund auf neu auszusetzen wurde imperativ. Somit wurde die Fähigkeit "Checkpoint/Neustart" geboren, bei der nach einer Reihe von Transaktionen ein "Snapshot" oder "Checkpoint" des Zustands des Antrags eingenommen werden konnte. Wenn die Anwendung vor dem nächsten Checkpoint fehlgeschlagen ist, kann sie neu gestartet werden, indem sie die Checkpoint -Informationen und den letzten Platz in der Transaktionsdatei gegeben hat, in der eine Transaktion erfolgreich abgeschlossen war. Die Anwendung könnte dann an diesem Punkt neu starten.

Checkpointing ist in der Regel teuer, so dass es im Allgemeinen nicht mit jedem Datensatz durchgeführt wurde, aber bei einem angemessenen Kompromiss zwischen den Kosten eines Kontrollpunkts im Vergleich zum Wert der Computerzeit, die zur Wiederaufbereitung einer Stapel von Datensätzen erforderlich ist. Daher kann die Anzahl der für jeden Kontrollpunkt verarbeiteten Datensätze je nach Kostenfaktoren, der relativen Komplexität der Anwendung und den Ressourcen, die für den erfolgreichen Neustart der Anwendung erforderlich sind, liegen.

Fehlertoleranzschnittstelle (FTI)

FTI ist eine Bibliothek, in der Computerwissenschaftler eine einfache Möglichkeit bieten sollen, Checkpoint/Neustart auf skalierbare Weise durchzuführen.[6] FTI nutzt den lokalen Speicher sowie mehrere Replikationen und Löschetechniken, um verschiedene Zuverlässigkeits- und Leistungstufe bereitzustellen. FTI bietet Checkpointing für Anwendungsebene, mit denen Benutzer ausgewählt werden können, welche Daten geschützt werden müssen, um die Effizienz zu verbessern und Platz, Zeit und Energieabfälle zu vermeiden. Es bietet eine direkte Datenoberfläche, damit Benutzer keine Dateien und/oder Verzeichnisnamen befassen müssen. Alle Metadaten werden von FTI für den Benutzer transparent verwaltet. Wenn dies gewünscht wird, können Benutzer einen Prozess pro Knoten zur Überlappung der Arbeitsbelastung und der wissenschaftlichen Berechnung widmen, sodass nach der Überprüfung von Aufgaben asynchron ausgeführt werden.

Berkeley Labor -Checkpoint/Neustart (BLCR)

Die Future Technologies Group der Lawrence National Laboratories entwickelt eine hybride Kernel/Benutzer -Implementierung von Checkpoint/Neustart als BLCR. Ihr Ziel ist es, eine robuste Implementierung der Produktionsqualität bereitzustellen, die eine breite Palette von Anwendungen bewegt, ohne dass Änderungen an dem Anwendungscode vorgenommen werden müssen.[7] BLCR konzentriert sich auf checkpoining parallele Anwendungen, die über MPI kommunizieren, und auf die Kompatibilität mit der Software -Suite, die von der Scidac Scalable Systems Software ISIC erstellt wurde. Seine Arbeiten sind in 4 Hauptbereiche unterteilt: Checkpoint/Neustart für Linux (CR), Checkpointable MPI -Bibliotheken, Ressourcenverwaltungsschnittstelle zum Checkpoint/Neustart und Entwicklung von Schnittstellen des Prozessmanagements.

DMTCP

DMTCP (Distributed Multithread -Checkpointing) ist ein Tool zum transparenten Überprüfungen des Zustands einer willkürlichen Gruppe von Programmen, die über viele Maschinen verbreitet und von Sockets verbunden sind.[8] Es ändert weder das Benutzerprogramm noch das Betriebssystem. Zu den von DMTCP unterstützten Anwendungen gehören Offene MPI, Python, Perl, und viele Programmiersprachen und Shell -Skriptsprachen. Mit der Verwendung von dightvnc kann es auch X -Fensteranwendungen überprüfen und neu starten, solange sie keine Erweiterungen verwenden (z. B. kein OpenGL oder Video). Zu den von DMTCP unterstützten Linux -Funktionen gehören offen Dateideskriptoren, Pipes, Sockets, Signalhandler, Prozess -ID und Thread -ID -Virtualisierung (sicherstellen MMAP/Mprotect (einschließlich MMAP-basierter gemeinsamer Speicher). DMTCP unterstützt die OFED -API für Infiniband auf experimenteller Basis.[9]

Kollaborative Checkpointing

Einige neuere Protokolle führen eine kollaborative Prüfung durch, indem sie Fragmente des Checkpoint in nahe gelegenen Knoten speichern.[10] Dies ist hilfreich, da es die Kosten für das Speichern für ein paralleles Dateisystem (das häufig zu einem Engpass für großflächige Systeme wird) vermieden und ein Speicher verwendet, der näher ist. Dies hat sich insbesondere in großen Supercomputing-Clustern verwendet. Die Herausforderung besteht darin, sicherzustellen, dass bei der Wiederherstellung des Checkpoint bei der Wiederherstellung eines Fehlers die nahe gelegenen Knoten mit Fragmenten der Kontrollpunkte verfügbar sind.

Docker

Docker und die zugrunde liegende Technologie enthält einen Checkpoint- und Wiederherstellungsmechanismus.[11]

Criu

Criu ist eine Benutzerraum -Checkpoint -Bibliothek.

Implementierung für eingebettete und ASIC -Geräte

Erinnerungsstück

Mementos ist ein Softwaresystem, das allgemeine Aufgaben in interruptible Programme für Plattformen mit häufigen Unterbrechungen wie Stromausfällen verwandelt. Es wurde für batteriebetlose eingebettete Geräte wie z. RFID -Tags und Smartcards, auf die sich verlassen Energie ernten aus Umgebungs Hintergrundquellen. MementoS erfasst häufig die verfügbare Energie im System und entscheidet, ob das Programm aufgrund des bevorstehenden Stromverlusts im Vergleich zu fortlaufenden Berechnung prüft. Wenn Sie checkPointing sind, werden Daten in a gespeichert Nichtflüchtiger Gedächtnis. Wenn die Energie für ausreicht für NeustartDie Daten werden aus dem nichtflüchtigen Speicher abgerufen, und das Programm wird vom gespeicherten Zustand fortgesetzt. Mementos wurde auf der implementiert MSP430 Familie von Mikrocontroller. Mementos ist nach benannt nach Christopher nolan's Erinnerung.[12]

Idetisch

Idetisch ist eine Reihe automatischer Tools, die hilft Anwendungsspezifische integrierte Schaltung (ASIC) Entwickler, um Kontrollpunkte automatisch in ihre Entwürfe einzubetten. Es zielt auf sich ab hochrangige Synthese Tools und fügt die Kontrollpunkte an der hinzu Registerübertragungsstufe (Verilog Code). Es verwendet a Dynamische Programmierung Annäherung, um niedrige Überkopfpunkte in der zu lokalisieren Zustandsmaschine des Designs. Da das Checkpoining in Hardware -Ebene das Senden der Daten von abhängig beinhaltet Register In einem nichtflüchtigen Speicher müssen die optimalen Punkte eine minimale Anzahl von Registern haben, um zu speichern. Idetisch wird eingesetzt und bei der Energieernte bewertet RFID -Tag Gerät.[13]

Siehe auch

Verweise

  1. ^ Plank, J. S., Beck, M., Kingsley, G. & Li, K. (1994). Libckpt: transparente Prüfung unter Unix. Informatikabteilung.
  2. ^ Wang, Teng; Snyder, Shane; Lockwood, Glenn; Carns, Philip; Wright, Nicholas; Byna, Suren (September 2018). "Ioniner: großräumiges Analyse-Framework zum Erwerb von Wissen aus E/A-Protokollen". 2018 IEEE International Conference on Cluster Computing (Cluster). IEEE. S. 466–476. doi:10.1109/cluster.2018.00062. ISBN 978-1-5386-8319-4. S2CID 53235850.
  3. ^ "Vergleichende I/O -Arbeitsbelastungscharakterisierung von zwei Leitungsclustern der Führungsklasse" (PDF). ACM. November 2015.
  4. ^ B. Bouteiller, P. Lemarinier, K. Kraawezik & F. Capello (2003, Dezember). Koordinierter Checkpoint gegen Nachrichtenprotokoll für fehlertolerante MPI. In Cluster Computing, 2003. Proceedings. 2003 IEEE International Conference on (S. 242-250). IEEE.
  5. ^ E. N. Elnozahy, L. Alvisi, Y. M. Wang & D. B. Johnson (2002). Eine Übersicht über Rollback-Recovery-Protokolle in Nachrichten-Passing-Systemen. ACM Computing Surveys, 34 (3), 375-408.
  6. ^ Bautista-Gomez, L., Tsuboi, S., Komatitsch, D., Cappello, F., Maruyama, N. & Matsuoka, S. (2011, November). FTI: Hochleistungsfehlertoleranz -Grenzfläche für Hybridsysteme. In Proceedings of 2011 International Conference for High Performance Computing, Networking, Speicher und Analyse (S. 32). ACM.
  7. ^ Hargrove, P. H. & Duell, J. C. (2006, September). Berkeley Lab Checkpoint/Neustart (BLCR) für Linux -Cluster. In Journal of Physics: Conference Series (Band 46, Nr. 1, S. 494). IOP Publishing.
  8. ^ Ansel, J., Arya, K. & Cooperman, G. (2009, Mai). DMTCP: Transparent CheckPointing für Cluster -Berechnungen und den Desktop. Parallel und verteilte Verarbeitung, 2009. IPDPS 2009. IEEE International Symposium on (S. 1-12). IEEE.
  9. ^ "GitHub - DMTCP/DMTCP: DMTCP: Distributed Multithread -Checkpointing". 2019-07-11.
  10. ^ Walters, J. P.; Chaudhary, V. (2009-07-01). "Replikationsbasierte Fehlertoleranz für MPI-Anwendungen". IEEE -Transaktionen auf parallelen und verteilten Systemen. 20 (7): 997–1010. Citeseerx 10.1.1.921.6773. doi:10.1109/tpds.2008.172. ISSN 1045-9219. S2CID 2086958.
  11. ^ "Docker - Criu".
  12. ^ Benjamin Ransford, Jacob Sorber und Kevin Fu. 2011. Mementos: Systemunterstützung für langjährige Berechnung auf RFID-Skala-Geräten. ACM Sigplan Mitteilungen 47, 4 (März 2011), 159-170. Doi = 10.1145/2248487.1950386 http://doi.acm.org/10.1145/2248487.1950386
  13. ^ Mirhoseeini, a.; Songhori, E.M.; Koushanfar, F., "Idetic: Ein Syntheseansatz auf hoher Ebene, um lange Berechnungen zu transient betriebenen ASICs zu ermöglichen", Pervasive Computing and Communications (Percom), 2013 IEEE International Conference On, Vol., Nr., S. 216,224, 18 –22 März 2013 URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6526735&isnumber=6526701

Weitere Lektüre

  • Yibei Ling, Jie MI, Xiaola Lin: Ein Variationsrechnung -Ansatz zur optimalen Platzierung der Checkpoint. IEEE trans. Computer 50 (7): 699-708 (2001)
  • BETREFFEND. Ahmed, R.C. Frazier und P.N. Marinos, "Cache-Aided Rollback Fehlerwiederherstellung (Carer) Algorithmen für gemeinsame Memory-Multiprozessorsysteme", IEEE 20. Internationales Symposium für Fehlertolerant Computing (FTCS-20), Newcastle on Tyne, Großbritannien, 26. bis 28. Juni 1990, S. . 82–88.

Externe Links