Journalointi

Journalointi on tiedostojärjestelmän mekanismi, jossa tiedostojärjestelmä ylläpitää erikoistunutta tiedostoa (loki, journali), jolla voidaan korjata epäjohdonmukaisuudet tiedostojärjestelmässä.[1] Tarve korjauksille johtuu yleensä tietokoneen epänormaalista sammuttamisesta virransyötön häiriön tai ohjelmistovian seurauksena.[1]

Tiedostojärjestelmät vaativat useita vaiheita yksinkertaiseen kirjoitusoperaatioon:[2]

  • lohkojen varaaminen tiedolle
  • lohko-osoittimien päivittäminen
  • tiedoston koon päivittäminen
  • itse tiedon kirjoittaminen

Järjestelmän keskeyttäminen ennen operaatioiden valmistumista johtaa levyjärjestelmän korruptoitumiseen (ei-eheään tilaan).[2]

Journaloinnin tavoite on tehdä tiedostojärjestelmästä vikasietoisempi ja välttää korruptoitumista.[3] Menetelmä toimii pitämällä journalissa tiedossa muutoksia, jotka ovat tulossa tiedostojärjestelmään, jolloin journalin tietoihin palaamalla vältetään järjestelmän korruptoituminen.[3] Ennen muutoksia levyllä oleviin tietoihin journaliin kirjoitetaan tehtävät muutokset.[1][4] Kun journaliin on tallennettu täydet tiedot (merkitään ”commit record” tiedolla) voi käyttöjärjestelmä tehdä päivitykset levylle omaan tahtiin.[4] Koska kiintolevyillä on suuret välimuistit ja ne voivat järjestää operaatiota uudelleen on journalin päivityksestä oltava erityisen huolellinen.[4]

Journalointia kutsutaan myös etukäteen kirjoitettavaksi logiksi (engl. write-ahead logging).[5] Journalointi voidaan toteuttaa fyysisenä tai loogisena: fyysisessä kaikki kirjoitetaan kahdesti, joka voi olla hidasta, kun taas loogisessa journaloinnissa vain metadata kirjoitetaan journaliin.[5]

Journalointia voidaan käyttää eri toimintatiloissa:[3]

  • writeback mode -tilassa vain metatieto journaloidaan ja varsinaiset datalohkot kirjoitetaan suoraan paikalleen levylle
  • ordered mode -tilassa vain metatieto journaloidaan mutta datalohkot kirjoitetaan ennen metatiedon journalointia
  • data mode -tilassa sekä metatieto että varsinainen data journaloidaan, jolloin kaikki tieto kirjoitetaan kahdesti

Ilman journalointia tiedostojärjestelmän eheyttäminen erilaisilla työkaluilla, kuten fsck Unixin kaltaisissa järjestelmissä, on hitaampaa eikä välttämättä yhtä tuloksellista.[5]

  1. a b c Viittausvirhe: Virheellinen <ref>-elementti; viitettä linfo ei löytynyt
  2. a b Viittausvirhe: Virheellinen <ref>-elementti; viitettä lj ei löytynyt
  3. a b c Viittausvirhe: Virheellinen <ref>-elementti; viitettä idw ei löytynyt
  4. a b c Viittausvirhe: Virheellinen <ref>-elementti; viitettä lwn ei löytynyt
  5. a b c Viittausvirhe: Virheellinen <ref>-elementti; viitettä ostep ei löytynyt

Journalointi

Dodaje.pl - Ogłoszenia lokalne