Journalointi
From Wikipedia, the free encyclopedia
Remove ads
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]
Remove ads
Historia
IBM esitteli JFS:n (nykyisin nimellä JFS1) vuonna 1990 AIX-käyttöjärjestelmään ja myöhemmin sen toinen versio JFS2 julkaistiin AIXille, OS/2:lle ja Linuxille.[2][3] Silicon Graphics esitteli XFS:n vuonna 1994 IRIX:lle ja myöhemmin myös Linuxille.[3][6] Amigalle julkaistiin Smart File System vuonna 1998, mutta julkaistiin myöhemmin myös Linuxille.[3] Ext3 kehitettiin ext2:n laajennuksena ja on ollut tuettuna Linuxissa vuodesta 2001 lähtien.[3][7] Ext4 on kehitetty taaksepäin- ja eteenpäinyhteensopivana.[3]
BeOSille kehitettiin BFS vuonna 1997 ja julkaistiin myöhemmin Haiku-käyttöjärjestelmälle.[8]
Journalointia pidetään neljännen sukupolven tiedostojärjestelmän ominaisuutena.[9]
Remove ads
Tiedostojärjestelmät
Journalointia tukevia tiedostojärjestelmiä on kehitetty lukuisia, eräitä esimerkkejä:
Vaihtoehtoiset ratkaisut
Menetelmälle on kehitetty myös vaihtoehtoja kuten ”pehmeät päivitykset” (Soft Updates).[10]
Useat eri tahot ovat esitelleet konsepteja transaktiopohjaisista tiedostojärjestelmistä.[11][12]
Haihtumattomaan muistiin tallennuksen yhteydessä tarve journaliin kirjoitukselle on vähäisempi ja on kehitetty useita vaihtoehtoja kirjoitusoperaatioiden vähentämiseen.[13]
Katso myös
Lähteet
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads