Met de komst van FreeBSD 7.0 komt ook de langverwachte optie van UFS logboeken. De implementatie zelf is gedaan door middel van het GEOM subsysteem, welke makkelijk geconfigureerd kan worden met behulp van de gjournal(8) applicatie.
Wat is logboeken? Logboek mogelijkheden betekend het opslaan van bestandssysteem transacties, zoals wijzigingen die een complete schrijfactie zijn, voor er meta-data wordt toegevoegd en voor de wijzigingen op schijf worden gezet. Deze transactie log kan later opnieuw afgespeeld worden om te voorkomen dat er bestandssysteem inconsistenties voorkomen.
Deze methode is een extra manier om te beschermen tegen gegevensverlies en inconsistenties van het bestandssysteem. In tegenstelling tot Soft Updates, welke bijhoud welke meta-data wijzigingen er worden uitgevoerd en Snapshots, wat een beeld bestand is van het bestandssysteem, wordt er een complete log bewaard in de schijfruimte die speciaal voor deze taak is gereserveerd, en in sommige gevallen op een compleet andere schijf.
In tegenstelling tot andere logboek implementaties is de
gjournal
methode blok gebaseerd en niet
geïmplementeerd als onderdeel van het bestandssysteem maar
als uitbreiding op GEOM.
Om ondersteuning in te schakelen voor
gjournal
, moet de kernel over de volgende optie
beschikken, welke standaard is op FreeBSD 7.X-systemen:
options UFS_GJOURNAL
Indien gejournalde volumes tijdens het opstarten aangekoppeld
moeten worden, moet de kernelmodule
geom_journal.ko
ook geladen zijn, door de
volgende regel aan /boot/loader.conf
toe te
voegen:
geom_journal_load="YES"
Ook kan deze functie in een eigen kernel worden ingebouwd, door de volgende regel aan het kernelinstellingenbestand toe te voegen:
options GEOM_JOURNAL
Het creëren van een logboek op een vrij en beschikbaar
bestandssysteem kan nu gedaan worden met behulp van de volgende
stappen, ervan uitgaande dat da4
de
nieuwe beschikbare SCSI schijf is:
#
gjournal load
#
gjournal label /dev/da4
Op dit moment zou er een ad4
apparaatknooppunt en een ad4.journal
apparaatknooppunt moeten zijn. Nu kan er een bestandssysteem op
gezet worden:
#
newfs -O 2 -J /dev/da4.journal
Het hiervoor ingevoerde commando zal een UFS2 bestandssysteem met logboek ondersteuning aanmaken.
Koppel het apparaat op een gewenst koppelpunt met:
#
mount /dev/da4.journal /mnt
In het geval dat er meerdere slices zijn, zal er een logboek
voor elke slice gecreëerd worden. Bijvoorbeeld, als
ad4s1
en ad4s2
allebei slices zijn, dan zal gjournal
een
ad4s1.journal
en een
ad4s2.journal
creëeren.
Voor performance doeleinden is het gewenst om het logboek op een
andere schijf te bewaren. Voor deze gevallen moet de
logboekleverancier of het opslagapparaat gespecificeerd worden
achter het apparaat waarop de logboek functionaliteit aangebracht
moet worden. De logboekfunctionaliteit kan ook worden
ingeschakeld op een reeds bestaand systeem met behulp van
tunefs
. Maak echter altijd een back-up voor dat
dit soort dingen uitgeprobeerd worden. In de meeste gevallen zal
gjournal
falen als het geen actueel logboek
kan maken, maar het voorkomt geen dataverlies als gevolg van
verkeerd gebruik van tunefs
.
Het is ook mogelijk om een journal van de opstartschijf van een FreeBSD-systeem bij te houden. Voor gedetailleerde instructies over deze taak wordt naar het artikel Implementing UFS Journaling on a Desktop PC verwezen.