Post on 14-Jun-2020
Grundlagen Überlegungen Techniken Zusammenfassung
BS-Unterstützung für NVRAM
Timo Cramer
17. Oktober 2015
Timo CramerBS-Unterstützung für NVRAM 1 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
FRAM
Ferroelectric RAMFerro- als Analogie zumFerro-Magnetismuskein Eisen, kein Magnetismus
Schreiben intuitivLesen durch
1 Schreibversuch2 Bemerken von Änderung3 Zustandswiederherstellung
P
E
[6, 7]Timo CramerBS-Unterstützung für NVRAM 2 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
FRAM
Ferroelectric RAMFerro- als Analogie zumFerro-Magnetismuskein Eisen, kein Magnetismus
Schreiben intuitivLesen durch
1 Schreibversuch2 Bemerken von Änderung3 Zustandswiederherstellung
+ nicht flüchtig+ hohe
Geschwindigkeit+ niedriger
Energieverbrauch− teuer− geringe Dichte
Timo CramerBS-Unterstützung für NVRAM 2 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
Überlegungen
Was könnte sich ändern, wenn wir Systeme mit NVRAMhaben?
schnelle Wiederherstellung des Systemzustandsnach Ausfallnach Reboot
Ersetzen von langsameren, nicht-flüchtigenSpeichermedienweniger „Sicherheitskopien“, die auf Massenspeichergeschrieben werden
Timo CramerBS-Unterstützung für NVRAM 3 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
nur-NVRAM-Systeme
Systeme, die in Zukunft nur mit NVRAM ausgestattet sind,sind denkbar.
Verschmelzung zwischen Arbeits- und Massenspeicherin-place Bearbeitung von Datenim Extrem: Wegfall von Paging und getrenntenAdressräumen[1]
Problem: Medien sind dann nicht mehr einfach wechselbar
Timo CramerBS-Unterstützung für NVRAM 4 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
Arten der Wiederherstellung
Systemwiederherstellung kann in verschiedenen Ausformungenpassieren
kompletter Rebootwie Suspend & Resumeauf Gerätetreiber-Ebeneauf Applikations-Ebene
Eine komplette Wiederherstellung ist immer noch nicht(einfach) möglich
flüchtige Register, Caches, etc.neu gestartete Peripherie nach Reboot/Ausfall
Timo CramerBS-Unterstützung für NVRAM 5 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
Probleme
Speicherschutz wird wichtigerFortpflanzung und Persistenz von FehlernNeustart löst nicht mehr so viele Probleme ;)
SecurityKryptographie-Schlüssel im SpeicherStichwort „Cold-Boot-Attacke“
Timo CramerBS-Unterstützung für NVRAM 6 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
ACID
Häufigstes Ziel von Datenbanken und verteilten SystemenAtomicy Jede Aktion wird ganz oder gar nicht ausgeführt
Consistency Jede Aktion bringt das System von einemkonsistenten Zustand in den nächsten
Isolation Keine laufende Aktion beeinflusst eine anderelaufende Aktion
Durability Das Ergebnis jeder erfolgreichen Aktion bleibtdauerhaft erhalten
Timo CramerBS-Unterstützung für NVRAM 7 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
Journaling
Einsatz in Dateisystemen und DatenbankenÄnderungen in Form von TransaktionenSpeichern von Änderungsabsichtenbei Systemausfall: schnelle Wiederherstellung eineskonsistenten Zustandsmögliche Operationen:
Undo – rückgängigRedo – wiederholen
Timo CramerBS-Unterstützung für NVRAM 8 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
Journaling: Variationen[3]Writeback Mode
Nur Metadaten werden ins Journal geschriebenDaten werden einfach auf die Platte geschrieben
+ Dateisystem-Struktur bleibt konsistent− Möglichkeit für inkonsistente Daten
Ordered Modewie Writeback ModeMetadaten werden nach den Daten ins Journalgeschrieben
+ keine Möglichkeit mehr für inkonsistente DatenData Mode
Metadaten und Daten werden gejournaled+ noch mehr Schutz− geringe Performance
Timo CramerBS-Unterstützung für NVRAM 9 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
Datenbanken: Shadow Pages[5]
Konsistenzwahrung durch RedundanzÄnderungen passieren in einer temporären PageBei Erfolg: Ersetzen der alten PageBei Fehler: Entfernen der temporären Page
Beispiel: Änderungen an Page B
Page A Page B Page C
Timo CramerBS-Unterstützung für NVRAM 10 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
Datenbanken: Shadow Pages[5]
Konsistenzwahrung durch RedundanzÄnderungen passieren in einer temporären PageBei Erfolg: Ersetzen der alten PageBei Fehler: Entfernen der temporären Page
Beispiel: Änderungen an Page B
Page A Page B
Page B*
Page C
Timo CramerBS-Unterstützung für NVRAM 10 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
Datenbanken: Shadow Pages[5]
Konsistenzwahrung durch RedundanzÄnderungen passieren in einer temporären PageBei Erfolg: Ersetzen der alten PageBei Fehler: Entfernen der temporären Page
Beispiel: Änderungen an Page B
Page A Page B
Page B*
Page C
Timo CramerBS-Unterstützung für NVRAM 10 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
Datenbanken: Shadow Pages[5]
Konsistenzwahrung durch RedundanzÄnderungen passieren in einer temporären PageBei Erfolg: Ersetzen der alten PageBei Fehler: Entfernen der temporären Page
Beispiel: Änderungen an Page B
Page A
Page B*
Page C
Timo CramerBS-Unterstützung für NVRAM 10 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
Datenbanken: Shadow Pages[5]
Konsistenzwahrung durch RedundanzÄnderungen passieren in einer temporären PageBei Erfolg: Ersetzen der alten PageBei Fehler: Entfernen der temporären Page
+ schnelle Wiederherstellung− schlechte Performance
Timo CramerBS-Unterstützung für NVRAM 10 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
Datenbanken: Checkpointing[5]
hC lC �
Logging (Journaling) von allen Aktionenkein Durchgehen der kompletten HistorieWiederherstellung ab dem letzten CheckpointCheckpoint-Arten
heavyweight Checkpointslightweight Checkpoints („fuzzy Checkpoints“)
Timo CramerBS-Unterstützung für NVRAM 11 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
Datenbanken: Checkpointing[5]
hC lC �
Logging (Journaling) von allen Aktionenkein Durchgehen der kompletten HistorieWiederherstellung ab dem letzten CheckpointCheckpoint-Arten
heavyweight Checkpointslightweight Checkpoints („fuzzy Checkpoints“)
Timo CramerBS-Unterstützung für NVRAM 11 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
Datenbanken: Checkpointing[5]
hC lC �
Logging (Journaling) von allen Aktionenkein Durchgehen der kompletten HistorieWiederherstellung ab dem letzten CheckpointCheckpoint-Arten
heavyweight Checkpointslightweight Checkpoints („fuzzy Checkpoints“)
Timo CramerBS-Unterstützung für NVRAM 11 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
Fine-Grained Fault Tolerance[2]
. . . bietet feinere Wiederherstellung von Linux-GerätetreibernNeustart dauert zu langTechniken:
IsolationCheckpoints
Anforderungen:SchnelligkeitAllgemeinheitEinsetzbarkeit bei Multithreading
Timo CramerBS-Unterstützung für NVRAM 12 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
Fine-Grained Fault Tolerance[2]
IsolationTransactional ExecutionMemory safety and fault detectionSynchronization
. . . durch Code-Analyse und -Generierung zur Übersetzungszeit
minimale Kopie der benutzten DatenErstellung der Kopien an entry pointsZurückschreiben bei Erfolg
Timo CramerBS-Unterstützung für NVRAM 13 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
Fine-Grained Fault Tolerance[2]
CheckpointsSpeicher-basierter Ansatz nicht sinnvoll
Doppelbelegung von AdressenSeiteneffekte
Wiederverwendung von Power ManagementSuspend & Resumez. B. Speichern von PCI-Zustand
Kein komplettes Zustandsabbild des Geräteskein einfacher Memory-DumpSpeichern von Konfiguration und Registerinhaltengeteilte Buffer werden bei Wiederherstellung z. B. neuinitialisiert
Timo CramerBS-Unterstützung für NVRAM 14 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
Whole System Persistence[4]
. . . ist ein Ansatz z. B. für Hauptspeicherdatenbankenmehrere 100GB Hauptspeicherlangwierige Wiederherstellung aus dem MassenspeicherHauptspeicher ist komplett nicht-flüchtig
Idee:Betriebssystem speichert bei Stromausfall den gesamtenZustandSpeichern dauert etwa 5ms, Stromversorgung liefert noch10–300ms Strom
Timo CramerBS-Unterstützung für NVRAM 15 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
Whole System Persistence[4]Überwachung der Stromversorgung durch einen ArduinoInterrupt-Signal über serielle Schnittstelle
Timo CramerBS-Unterstützung für NVRAM 16 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
Zusammenfassung
NVRAM hilft uns, persistente Systeme zu erstellenkomplette Wiederherstellung ist immer noch nicht einfachmöglichzustandsbasierte vs. speicherbasierte Sichtweise
Timo CramerBS-Unterstützung für NVRAM 17 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
Empfehlungen
Whole System Persistencebeeinflusst den Rest der Programmierung nichtHardware/Energiemodell muss vorhanden sein
„Sicherheitskopien“ mit Shadow Objectswir haben ein System mit flüchtigem undnicht-flüchtigem RAMArbeitskopie im SRAM, dauerhafte Kopie im FRAM
Timo CramerBS-Unterstützung für NVRAM 18 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
Quellen I
Katelin Bailey, Luis Ceze, Steven D. Gribble, andHenry M. Levy.Operating System Implications of Fast, Cheap,Non-Volatile Memory.2011.Asim Kadav, Matthew J. Renzelmann, and Michael M.Swift.Fine-Grained Fault Tolerance using Device Checkpoints.2013.
Timo CramerBS-Unterstützung für NVRAM 19 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
Quellen II
M. Tim Jones.Anatomy of Linux journaling file systems.http://www.ibm.com/developerworks/library/l-journaling-filesystems/, 2008-06-04.
Dushyanth Narayanan and Orion Hodson.Whole-System Persistence.2012.Jens Teubner.Vorlesungsfolien zu AIDB, WS 14/15.
Timo CramerBS-Unterstützung für NVRAM 20 / 21
Grundlagen Überlegungen Techniken Zusammenfassung
Quellen III
Wikipedia User Bigly.Ferroelectric polarisation.svg.https://de.wikipedia.org/wiki/Datei:Ferroelectric_polarisation.svg, 2007-12-03.
Wikipedia User Cyferz.1T FeRAM cell structure.svg.https://en.wikipedia.org/wiki/File:1T_FeRAM_cell_structure.svg, 2007-07-09.
Timo CramerBS-Unterstützung für NVRAM 21 / 21