           Ulopoi%ysy tou UFS Journaling se e%na Desktop Upologisty%

  Manw%ly*s Kiagia%*s

   <manolis@FreeBSD.org>

   Anathew%rysy: 8def749c53

   Pneumatika% Dikaiw%mata (c) 2008 Manw%ly*s Kiagia%*s

   To FreeBSD ei%nai e%na katoxurwme%no emporiko% su%mbolo tou FreeBSD
   Foundation.

   Polle%*s apo% ti*s le%cei*s y% fra%sei*s oi opoi%e*s xrysimopoiou%ntai
   apo% tou*s kataskeuaste%*s y% tou*s pwlyte%*s tou*s gia na diakri%noun ta
   projo%nta tou*s thewrou%ntai emporika% su%mbola. O%pou aute%*s
   emfani%zontai se auto% to kei%meno kai gia o%se*s apo% aute%*s gnwri%zei y
   Oma%da Ana%ptucy*s tou FreeBSD o%ti ei%nai pithano%n na ei%nai emporika%
   su%mbola, tha dei%te e%na apo% ta su%mbola: <<TM>> y% <<(R)>>.

   Teleutai%a tropopoi%ysy sti*s 2013-11-13 07:52:45 +0000 apo% Hiroki Sato.
   Peri%lyqy

   E%na su%styma arxei%wn pou diathe%tei dunato%tyta journaling,
   xrysimopoiei% e%na arxei%o katagrafy%*s (journal y% ymerolo%gio) sto
   opoi%o gi%nontai arxika% oi eggrafe%*s prin kataxwrythou%n sto kanoniko%
   su%styma arxei%wn. Me ton tro%po auto% mporei% na ecasfalistei% y
   akeraio%tyta tou susty%mato*s arxei%wn styn peri%ptwsy kata%rreusy*s y%
   apo%tomy*s diakopy%*s ty*s trofodosi%a*s tou. Y xry%sy tou journaling
   diasfali%zei tyn sunoliky% akeraio%tyta tou susty%mato*s arxei%wn, alla%
   den mporei% na diasfali%sei o%ti den tha e%xoume apw%leia dedome%nwn se
   memonwme%na arxei%a ta opoi%a y%tan endexome%nw*s se xry%sy tyn w%ra ty*s
   kata%rreusy*s. E%na pleone%ktyma tou journaling ei%nai y elaxistopoi%ysy
   tou xro%nou pou apaitei%tai gia ton e%legxo tou susty%mato*s arxei%wn se
   peri%ptwsy kakou% termatismou%. To su%styma arxei%wn UFS pou
   xrysimopoiei%tai apo% to FreeBSD den diathe%tei diko% tou enswmatwme%no
   journaling. Wsto%so, to plai%sio leitourgiw%n GEOM sto FreeBSD 7.X
   pare%xei e%na ne%o journal class to opoi%o di%nei auty% ty dunato%tyta,
   kai ma%lista aneca%rtyta apo% to su%styma arxei%wn pou xrysimopoiei%tai.
   Sto a%rthro auto% eceta%zoume pw*s mporou%me na xrysimopoiy%soume to
   journaling se e%na tupiko% desktop myxa%nyma gia ergasi%a grafei%ou.

   [ HTML se tmy%mata / HTML se e%na tmy%ma ]

     ----------------------------------------------------------------------

   Pi%naka*s Periexome%nwn

   1. Eisagwgy%

   2. Katano%ysy tou Journaling sto FreeBSD

   3. By%mata Kata% tyn Egkata%stasy tou FreeBSD

   4. Ru%thmisy tou Journaling

   5. Antimetw%pisy Problyma%twn

   6. Epiple%on Plyrofori%e*s

1. Eisagwgy%

   An kai oi perisso%teroi ecupyretyte%*s pou xrysimopoiou%ntai se
   periba%llonta paragwgy%*s ei%nai kala% prostateume%noi apo%
   my-anameno%menou*s termatismou%*s, den sumbai%nei to i%dio kai me to
   sunythisme%no desktop myxa%nyma to opoi%o bri%sketai sta xe%ria tou
   telikou% xry%sty. Auto% suny%thw*s den prostateu%etai apo% diakope%*s
   reu%mato*s, enw% den ei%nai kai oi li%ge*s oi periptw%sei*s pou o kako%*s
   termatismo%*s ofei%letai se lanthasme%no xeirismo% tou xry%sty (kata%
   la%tho*s pi%esy tou reset k.a.). Sti*s perisso%tere*s apo% aute%*s ti*s
   periptw%sei*s, ta Soft Updates pou xrysimopoiei% to su%styma arxei%wn UFS
   mporou%n na to prostateu%soun arketa% kala%, an kai meta% ton
   problymatiko% termatismo% apaitei%tai suny%thw*s e%legxo*s tou
   susty%mato*s arxei%wn, o opoi%o*s ako%ma kai o%tan gi%netai sto
   parasky%nio, diarkei% arketo% xro%no. Se spa%nie*s periptw%sei*s, to
   su%styma arxei%wn mporei% na upostei% zymia% y opoi%a na xreia%zetai
   xeiroki%nyty epe%mbasy gia na diorthwthei%, enw% ei%nai pithany% kai y
   apw%leia dedome%nwn.

   Y ne%a dunato%tyta gia journaling pou pare%xetai apo% to GEOM mporei% na
   boythy%sei idiai%tera sti*s parapa%nw periptw%sei*s, elaxistopoiw%nta*s to
   xro%no pou apaitei%tai gia ton e%legxo tou susty%mato*s arxei%wn kai
   ecasfali%zonta*s o%ti to su%styma tha epane%lthei polu% su%ntoma se
   stathery% kata%stasy.

   To a%rthro auto% perigra%fei mia diadikasi%a gia tyn ulopoi%ysy tou UFS
   journaling se e%na tupiko% desktop PC (sto opoi%o xrysimopoiei%tai e%na*s
   sklyro%*s di%sko*s to%so gia to su%styma o%so kai gia ta dedome%na). THa
   pre%pei na akolouthy%sete aute%*s ti*s odygi%e*s kata% ty dia%rkeia mia*s
   ne%a*s egkata%stasy*s tou FreeBSD. Ta by%mata ei%nai arketa% apla% kai den
   apaitou%n idiai%tera polu%ploke*s entole%*s.

   Afou% diaba%sete auto% to a%rthro, tha ce%rete:

     * Pw*s na desmeu%sete ka%poio xw%ro sto di%sko gia to journaling kata%
       ty dia%rkeia mia*s ne%a*s egkata%stasy*s tou FreeBSD.

     * Pw*s na fortw%sete kai na energopoiy%sete to a%rthrwma (module)
       geom_journal (y% pw*s na enswmatw%sete ty leitourgi%a tou ston
       prosarmosme%no pury%na sa*s).

     * Pw*s na metatre%qete ta upa%rxonta susty%mata arxei%wn sa*s w%ste na
       xrysimopoiou%n journaling, kai ti parame%trou*s tha pre%pei na dw%sete
       sto /etc/fstab w%ste na ta prosarty%sete.

     * Pw*s na energopoiy%sete to journaling se ne%e*s (a%deie*s)
       katatmy%sei*s.

     * Pw*s na antimetwpi%sete probly%mata pou sxeti%zontai me to journaling.

   Prin diaba%sete auto% to a%rthro, tha pre%pei:

     * Na katanoei%te basike%*s e%nnoie*s tou UNIX(R) kai tou FreeBSD.

     * Na ei%ste ecoikeiwme%no*s me ty diadikasi%a egkata%stasy*s tou FreeBSD
       kai to boythytiko% pro%gramma sysinstall.

  Proeidopoi%ysy:

   Y diadikasi%a pou perigra%fetai edw%, proori%zetai gia xry%sy se ne%e*s
   egkatasta%sei*s, o%pou den upa%rxoun ako%ma apothykeume%na dedome%na
   xry%sty. An kai ei%nai dunato%n na tropopoiy%sete kai na epektei%nete ty
   diadikasi%a auty% se myxany%mata pou bri%skontai y%dy se kanoniky% xry%sy,
   tha pre%pei opwsdy%pote na pa%rete anti%grafa asfalei%a*s o%lwn twn
   symantikw%n dedome%nwn prin epixeiry%sete opoiady%pote allagy%. O%tan
   ka%nete allage%*s sta susty%mata arxei%wn kai sti*s katatmy%sei*s twn
   di%skwn se te%toio epi%pedo, ei%nai pithano%n na ka%nete la%thy ta opoi%a
   tha apobou%n moirai%a gia ta dedome%na sa*s.

2. Katano%ysy tou Journaling sto FreeBSD

   To journaling pou pare%xetai apo% to GEOM sto FreeBSD 7.X den ei%nai
   prosanatolisme%no se ka%poio sugkekrime%no su%styma arxei%wn (o%pw*s gia
   para%deigma sumbai%nei me to su%styma arxei%wn ext3 sto Linux(R)) alla%
   leitourgei% se epi%pedo block. An kai auto% symai%nei o%ti mporei% na
   xrysimopoiythei% se diaforetika% susty%mata arxei%wn, gia to
   FreeBSD 7.0-RELEASE, ei%nai dunaty% y xry%sy tou mo%no sto UFS2.

   Oi leitourgi%e*s journaling pare%xontai fortw%nonta*s to a%rthrwma
   geom_journal.ko ston pury%na (y% enswmatw%nonta*s ty leitourgi%a tou se
   e%na prosarmosme%no pury%na) kai xrysimopoiw%nta*s tyn entoly% gjournal
   gia ty ru%thmisy twn sustyma%twn arxei%wn. Y xry%sy tou journaling ei%nai
   genika% themity% se mega%la susty%mata arxei%wn, o%pw*s ei%nai to /usr.
   THa xreiastei% wsto%so na e%xete desmeu%sei apo% prin ka%poio eleu%thero
   xw%ro sto di%sko.

   O%tan gi%netai xry%sy tou journaling se e%na su%styma arxei%wn,
   apaitei%tai ka%poio*s eleu%thero*s xw%ro*s gia na apothykeu%ontai ta
   dedome%na tou ymerologi%ou katagrafy%*s (journal). O xw%ro*s tou di%skou
   pou apothykeu%ontai ta pragmatika% dedome%na anafe%retai w*s paroxe%a*s
   dedome%nwn (data provider), enw% o xw%ro*s ston opoi%o apothykeu%etai to
   ymerolo%gio onoma%zetai paroxe%a*s ymerologi%ou (journal provider). Se
   peri%ptwsy pou to journaling gi%netai se su%styma arxei%wn to opoi%o e%xei
   y%dy dedome%na, oi du%o paroxei%*s pre%pei na bri%skontai se
   diaforetike%*s katatmy%sei*s. Se peri%ptwsy xry%sy*s journaling se ne%a
   kata%tmysy, e%xete tyn epilogy% na xrysimopoiy%sete ton i%dio paroxe%a kai
   gia ta dedome%na kai gia to ymerolo%gio. Se ka%the peri%ptwsy, me ty
   xry%sy ty*s entoly%*s gjournal, oi du%o paroxei%*s sundua%zontai gia na
   dymiourgy%soun to teliko% su%styma arxei%wn pou upostyri%zei journaling.
   Gia para%deigma:

     * THe%lete na xrysimopoiy%sete journaling sto su%styma arxei%wn /usr, to
       opoi%o bri%sketai sto /dev/ad0s1f (to su%styma arxei%wn perie%xei y%dy
       dedome%na).

     * E%xete kraty%sei ka%poio keno% xw%ro sto di%sko, se mia kata%tmysy sto
       /dev/ad0s1g.

     * Me tyn xry%sy ty*s entoly%*s gjournal, tha dymiourgythei% mia ne%a
       suskeuy%, y /dev/ad0s1f.journal, o%pou to /dev/ad0s1f tha ei%nai o
       paroxe%a*s dedome%nwn kai to /dev/ad0s1g tha ei%nai o paroxe%a*s
       ymerologi%ou. Y ne%a auty% suskeuy% tha xrysimopoiei%tai ple%on gia
       o%le*s ti*s ergasi%e*s pou tha ektelou%ntai sto su%styma arxei%wn.

   O xw%ro*s sto di%sko pou apaitei%tai gia to ymerolo%gio ecarta%tai apo% ty
   xry%sy tou susty%mato*s arxei%wn, kai o%xi apo% to me%getho*s tou paroxe%a
   dedome%nwn. Gia para%deigma, se e%na tupiko% myxa%nyma grafei%ou, tha
   ei%nai arketo% na xrysimopoiy%sete 1 GB gia ton paroxe%a ymerologi%ou tou
   susty%mato*s arxei%wn /usr, enw% se e%na myxa%nyma to opoi%o
   xrysimopoiei%tai se ergasi%e*s o%pou oi eggrafe%*s sto di%sko ei%nai polu%
   suxne%*s kai mega%le*s se me%getho*s (p.x. epecergasi%a video) tha
   xreiastei%te perisso%tero xw%ro. Se peri%ptwsy pou o xw%ro*s pou e%xei
   desmeuthei% gia to ymerolo%gio ecantlythei% prin gi%nei dunaty% y eggrafy%
   dedome%nwn sto kanoniko% su%styma arxei%wn, to su%styma tha katarreu%sei
   me kernel panic.

  Symei%wsy:

   Ta mege%thy pou protei%nontai edw% gia ton paroxe%a ymerologi%ou, ei%nai
   api%thano na prokale%soun pro%blyma se tupiky% xry%sy grafei%ou
   (periy%gysy sto diadi%ktuo, epecergasi%a keime%nou, anaparagwgy%
   polume%swn). An wsto%so to ei%do*s ty*s ergasi%a*s sa*s perilamba%nei
   e%ntony xry%sy tou sklyrou% di%skou, mporei%te na xrysimopoiy%sete ton
   ako%loutho kano%na gia ty megalu%tery dunaty% aciopisti%a: o%ly y mny%my
   RAM tou susty%mato*s sa*s pre%pei na xwra%ei sto 30% tou xw%rou tou
   ymerologi%ou. Gia para%deigma, an to su%styma sa*s e%xei 1 GB RAM, tha
   pre%pei na dymiourgy%sete ymerolo%gio mege%thou*s peri%pou 3.3 GB.
   (Pollaplasia%ste to me%getho*s ty*s RAM me to 3.3 gia na brei%te to
   me%getho*s tou ymerologi%ou.)

   Gia perisso%tere*s plyrofori%e*s sxetika% me to journaling, parakalou%me
   diaba%ste ty seli%da manual tou gjournal(8).

3. By%mata Kata% tyn Egkata%stasy tou FreeBSD

  3.1. De%smeusy Xw%rou sto Di%sko gia to Journaling

   E%na tupiko% desktop myxa%nyma, e%xei suny%thw*s e%na sklyro% di%sko ston
   opoi%o apothykeu%ontai to%so to leitourgiko% o%so kai ta dedome%na tou
   xry%sty. Suny%thw*s, oi proepilegme%ne*s katatmy%sei*s pou dymiourgou%ntai
   apo% to sysinstall ei%nai peri%pou swste%*s: E%na desktop myxa%nyma den
   xreia%zetai mega%ly kata%tmysy /var, enw% to megalu%tero me%ro*s tou
   eleu%therou xw%rou apodi%detai sto /usr, afou% stou*s upokatalo%gou*s tou
   apothykeu%ontai ta dedome%na tou xry%sty kai gi%nontai kai oi
   egkatasta%sei*s tou logismikou%.

   Xrysimopoiw%nta*s ti*s proepilegme%ne*s katatmy%sei*s (aute%*s pou
   dymiourgei% o epecergasty%*s Disklabel o%tan pie%sete to A), den me%nei
   katho%lou eleu%thero*s xw%ro*s. Wsto%so ka%the kata%tmysy styn opoi%a
   the%lete na xrysimopoiy%sete journaling, xreia%zetai ako%ma mi%a gia tyn
   apothy%keusy tou ymerologi%ou. Kathw%*s y kata%tmysy /usr ei%nai y
   megalu%tery, to ple%on logiko% ei%nai na tyn mikru%noume elafra% w%ste na
   ecasfali%soume to xw%ro pou apaitei%tai gia to journaling.

   Sto para%deigma ma*s, xrysimopoiei%tai e%na*s di%sko*s mege%thou*s 80 GB.
   Styn ako%louthy eiko%na fai%nontai oi proepilegme%ne*s katatmy%sei*s
   o%pw*s dymiourgou%ntai apo% ton epecergasty% Disklabel kata% tyn
   egkata%stasy:

   An ta parapa%nw mege%thy ei%nai peri%pou ta epithumyta% gia tyn
   egkata%stasy sa*s, ei%nai arketa% eu%kolo na ruthmistou%n w%ste na gi%nei
   dunaty% y xry%sy tou journaling. Aplw%*s xrysimopoiy%ste ta ply%ktra me ta
   bela%kia gia na metakiny%sete tyn mpa%ra epilogy%*s styn kata%tmysy /usr
   kai pie%ste to D gia na tyn diagra%qete.

   Tw%ra, metakiny%ste tyn mpa%ra epilogy%*s sto o%noma tou sklyrou% di%skou
   sto a%nw me%ro*s ty*s otho%ny*s, kai pie%ste C gia na dymiourgy%sete mia
   ne%a kata%tmysy gia to /usr. Y ne%a auty% kata%tmysy tha pre%pei na ei%nai
   mikro%tery kata% 1 GB (an e%xete skopo% na xrysimopoiy%sete journaling
   mo%no sto /usr), y% kata% 2 GB (an e%xete skopo% na xrysimopoiy%sete
   journaling to%so sto /usr o%so kai sto /var). Sto dia%logo pou tha
   emfanistei%, epile%cte na dymiourgy%sete su%styma arxei%wn (file system)
   kai gra%qte /usr w*s to symei%o prosa%rtysy*s (mount point).

  Symei%wsy:

   Ei%nai anagkai%a y xry%sy journaling styn kata%tmysy /var partition;
   Fusiologika%, to journaling e%xei no%yma mo%no se arketa% mega%le*s
   katatmy%sei*s. Den pro%keitai wsto%so na dymiourgythei% ka%poio pro%blyma
   an xrysimopoiy%sete journaling sto /var. An y xry%sy tou sugkekrime%nou
   susty%mato*s arxei%wn ei%nai mikry% (to opoi%o ei%nai kai to pithano%tero
   se e%na dekstop myxa%nyma) i%sw*s ei%nai kaly% ide%a na xrysimopoiy%sete
   ligo%tero xw%ro sto di%sko gia to ymerolo%gio tou.

   Sto para%deigma ma*s, tha energopoiy%soume to journaling to%so sto /usr
   o%so kai sto /var. Mporei%te fusika% na prosarmo%sete auty% ty diadikasi%a
   su%mfwna me ti*s ana%gke*s sa*s.

   Gia na aplopoiy%soume, o%so ei%nai dunato%n, ty diadikasi%a, tha
   xrysimopoiy%soume to sysinstall gia na dymiourgy%soume ti*s katatmy%sei*s
   pou apaitou%ntai gia to journaling. Wsto%so, kata% ty dia%rkeia ty*s
   egkata%stasy*s, to sysinstall epime%nei na rwta%ei gia symei%a
   prosa%rtysy*s se ka%the kata%tmysy pou dymiourgei%tai. Sto symei%o auto%,
   den upa%rxoun symei%a prosa%rtysy*s gia ti*s katatmy%sei*s ma*s, kai styn
   pragmatiko%tyta den ta xreiazo%maste kan. Oi katatmy%sei*s pou
   xrysimopoiou%ntai gia ta ymerolo%gia, den prosartw%ntai ka%pou.

   Gia na apofu%goume auta% ta probly%mata me to sysinstall, tha
   dymiourgy%soume aute%*s ti*s katatmy%sei*s w*s xw%ro swap. Sto swap den
   gi%netai pote% prosa%rtysy, enw% kai to sysinstall den e%xei kane%na
   pro%blyma na dymiourgy%sei o%se*s te%toie*s katatmy%sei*s xreiazo%maste.
   Meta% tyn prw%ty ekki%nysy, tha pre%pei wsto%so na epecergastou%me to
   arxei%o /etc/fstab kai na afaire%soume ti*s e%ctra kataxwry%sei*s swap pou
   dymiourgy%thykan kata% tyn egkata%stasy.

   Gia na dymiourgy%sete tou*s xw%rou*s swap, xrysimopoiy%ste pa%li ta
   ply%ktra me ta bela%kia gia na metakiny%sete tyn mpa%ra epilogy%*s sto
   a%nw me%ro*s ty*s otho%ny*s tou epecergasty% Disklabel, e%tsi w%ste na
   ei%nai epilegme%no to o%noma tou sklyrou% di%skou. Kato%pin, pie%ste N,
   dw%ste to epithumyto% me%getho*s (1024M), kai epile%cte <<swap space>>
   apo% to menou% pou emfani%zetai. Epanala%bete gia ka%the ymerolo%gio pou
   epithumei%te na dymiourgy%sete. Sto para%deigma ma*s, dymiourgou%me du%o
   katatmy%sei*s sti*s opoi%e*s tha apothykeu%ontai ta ymerolo%gia twn /usr
   kai /var. To teliko% apote%lesma fai%netai styn paraka%tw eiko%na:

   Mo%li*s oloklyrw%sete ty dymiourgi%a twn katatmy%sewn, sa*s sunistou%me na
   symeiw%sete ta ono%mata tou*s kai ta symei%a prosa%rtysy*s gia na ta
   e%xete pro%xeira kata% ty fa%sy twn ruthmi%sewn. Me ton tro%po auto% tha
   apofu%gete tuxo%n la%thy pou mporei% na katastre%qoun tyn egkata%stasy
   sa*s. O paraka%tw pi%naka*s dei%xnei ti*s symeiw%sei*s ma*s gia to
   para%deigma ma*s:

   Pi%naka*s 1. Katatmy%sei*s kai Ymerolo%gia

   +------------------------------------------------------------------------+
   |     Kata%tmysy     |    Symei%o Prosa%rtysy*s     |    Ymerolo%gio     |
   |--------------------+------------------------------+--------------------|
   | ad0s1d             | /var                         | ad0s1h             |
   |--------------------+------------------------------+--------------------|
   | ad0s1f             | /usr                         | ad0s1g             |
   +------------------------------------------------------------------------+

   Sunexi%ste tyn egkata%stasy o%pw*s suny%thw*s. Sa*s sunistou%me wsto%so na
   myn egkatasty%sete efarmoge%*s (pake%ta) me%xri na oloklyrw%sete ty
   diadikasi%a tou journaling.

  3.2. Prw%ty Ekki%nysy

   To su%styma sa*s tha cekiny%sei fusiologika%, alla% tha xreiastei% na
   epecergastei%te to /etc/fstab kai na diagra%qete ti*s kataxwry%sei*s gia
   ti*s katatmy%sei*s swap pou tha xrysimopoiythou%n sta ymerolo%gia.
   Fusiologika%, y kata%tmysy pou xrysimopoiei%tai w*s kanoniko% swap
   teleiw%nei me to gra%mma <<b>> (p.x. ad0s1b sto para%deigma ma*s).
   Diagra%qte o%le*s ti*s a%lle*s kataxwry%sei*s gia to swap kai
   epanekkiny%ste to su%styma sa*s, w%ste na stamaty%sei to FreeBSD na ti*s
   xrysimopoiei%.

   Mo%li*s to su%styma ekkiny%sei cana%, tha ei%maste e%toimoi na
   ruthmi%soume to journaling.

4. Ru%thmisy tou Journaling

  4.1. Ekte%lesy ty*s Entoly%*s gjournal

   E%xonta*s proetoima%sei o%le*s ti*s aparai%tyte*s katatmy%sei*s, ei%nai
   sxetika% aplo% na ruthmi%soume to journaling. THa pre%pei na metabou%me se
   kata%stasy eno%*s xry%sty, gia to lo%go auto% eise%lthete sto su%styma w*s
   root kai gra%qte:

 # shutdown now

   Pie%ste Enter gia na bgei%te sto proepilegme%no ke%lufo*s. THa pre%pei na
   apoprosarty%soume ti*s katatmy%sei*s sti*s opoi%e*s tha gi%nei to
   journaling, sto para%deigma ma*s ti*s /usr kai /var:

 # umount /usr /var

   Fortw%ste to a%rthrwma tou pury%na pou apaitei%tai gia to journaling:

 # gjournal load

   Xrysimopoiy%ste tw%ra ti*s symeiw%sei*s sa*s gia na kathori%sete poia
   kata%tmysy xrysimopoiei%tai gia ka%the ymerolo%gio. Sto para%deigma ma*s,
   to /usr bri%sketai sto ad0s1f kai to ymerolo%gio tou tha ei%nai sto
   ad0s1g, enw% to /var ei%nai sto ad0s1d kai to ymerolo%gio tou tha ei%nai
   sto ad0s1h. THa xreiastei%te ti*s paraka%tw entole%*s:

 # gjournal label ad0s1f ad0s1g

 GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data.
 GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal.

 # gjournal label ad0s1d ad0s1h

 GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data.
 GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal.

  Symei%wsy:

   An o teleutai%o*s tome%a*s ka%poia*s apo% ti*s katatmy%sei*s ei%nai se
   xry%sy, y entoly% gjournal tha sa*s epistre%qei e%na my%numa la%thou*s.
   THa pre%pei na ektele%sete tyn entoly% xrysimopoiw%nta*s tyn para%metro -f
   me tyn opoi%a tha upoxrew%sete tyn epaneggrafy% tou tome%a, p.x.:

 # gjournal label -f ad0s1d ad0s1h

   Mia pou pro%keitai gia ne%a egkata%stasy, ei%nai ma%llon api%thano na
   prokale%sete ka%poio pro%blyma.

   Sto symei%o auto% dymiourgou%ntai du%o ne%e*s suskeue%*s, oi
   ad0s1d.journal kai ad0s1f.journal. Aute%*s antiproswpeu%oun ti*s
   katatmy%sei*s /var kai /usr pou tha pre%pei na prosarty%soume. Prin ti*s
   prosarty%soume wsto%so, tha pre%pei na the%soume tyn epilogy% journal kai
   na anaire%soume tyn epilogy% Soft Updates:

 # tunefs -J enable -n disable ad0s1d.journal

 tunefs: gjournal set
 tunefs: soft updates cleared

 # tunefs -J enable -n disable ad0s1f.journal

 tunefs: gjournal set
 tunefs: soft updates cleared

   Prosarty%ste tw%ra xeiroki%nyta ti*s ne%e*s suskeue%*s sta anti%stoixa
   symei%a prosa%rtysy*s (symeiw%ste o%ti mporou%me ple%on na
   xrysimopoiy%soume tyn epilogy% async kata% tyn prosa%rtysy):

 # mount -o async /dev/ad0s1d.journal /var
 # mount -o async /dev/ad0s1f.journal /usr

   Epecergastei%te to arxei%o /etc/fstab kai ananew%ste ti*s kataxwry%sei*s
   gia ti*s katatmy%sei*s /usr kai /var:

 /dev/ad0s1f.journal     /usr            ufs     rw,async      2       2
 /dev/ad0s1d.journal     /var            ufs     rw,async      2       2

  Proeidopoi%ysy:

   Bebaiwthei%te o%ti oi parapa%nw kataxwry%sei*s ei%nai swste%*s,
   diaforetika% tha e%xete pro%blyma na ekkiny%sete kanonika% styn epo%meny
   epanekki%nysy tou susty%mato*s sa*s.

   Te%lo*s, epecergastei%te to arxei%o /boot/loader.conf kai prosthe%ste tyn
   ako%louthy grammy% w%ste na fortw%netai to a%rthrwma gjournal(8) se ka%the
   ekki%nysy:

 geom_journal_load="YES"

   Sugxaryty%ria! To su%styma sa*s ei%nai tw%ra e%toimo gia journaling.
   Mporei%te na gra%qete exit gia na epistre%qete styn kanoniky% leitourgi%a
   (pollaplw%n xrystw%n) y% na epanekkiny%sete to su%styma sa*s (suni%statai)
   gia na ele%gcete ti*s ruthmi%sei*s sa*s. Kata% tyn ekki%nysy, tha dei%te
   mynu%mata o%pw*s to paraka%tw:

 ad0: 76293MB XEC XE800JD-00HBC0 08.02D08 at ata0-master SATA150
 GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal.
 GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal.
 GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data.
 GEOM_JOURNAL: Journal ad0s1d clean.
 GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data.
 GEOM_JOURNAL: Journal ad0s1f clean.

   Meta% apo% e%na problymatiko% termatismo% tha dei%te mynu%mata o%pw*s to
   paraka%tw:

 GEOM_JOURNAL: Journal ad0s1d consistent.

   Auto% suny%thw*s symai%nei o%ti to gjournal(8) xrysimopoi%yse ti*s
   plyrofori%e*s tou ymerologi%ou gia na epistre%qei to su%styma arxei%wn se
   stathery% kata%stasy.

  4.2. Xry%sy tou Journaling se Ne%e*s Katatmy%sei*s

   An kai y parapa%nw diadikasi%a ei%nai aparai%tyty gia na xrysimopoiy%sete
   journaling se katatmy%sei*s pou e%xoun y%dy dedome%na, y anti%stoixy
   diadikasi%a gia ne%e*s katatmy%sei*s ei%nai pio aply%. Styn peri%ptwsy
   auty%, mporei% na xrysimopoiythei% o i%dio*s paroxe%a*s to%so gia ta
   dedome%na o%so kai gia to ymerolo%gio. Gia para%deigma, upothe%ste o%ti
   e%xete prosthe%sei e%na ne%o di%sko kai e%xete dymiourgy%sei tyn
   kata%tmysy /dev/ad1s1d. Y dymiourgi%a tou ymerologi%ou ei%nai arketa%
   aply% kai fai%netai paraka%tw:

 # gjournal label ad1s1d

   To proepilegme%no me%getho*s tou ymerologi%ou ei%nai 1 GB. Mporei%te
   wsto%so na to ruthmi%sete xrysimopoiw%nta*s tyn epilogy% -s. Mporei%te na
   dw%sete time%*s se bytes, y% na ba%lete meta% tyn timy% e%na apo% ta
   gra%mmata K, M y% G gia na dylw%sete Kilobytes, Megabytes y% Gigabytes
   anti%stoixa. Symeiw%ste o%ti y entoly% gjournal, den tha sa*s epitre%qei
   na dymiourgy%sete ymerolo%gio pou na ei%nai akata%llylo lo%gw mikrou%
   mege%thou*s.

   Gia para%deigma, gia na dymiourgy%sete e%na ymerolo%gio mege%thou*s 2 GB,
   mporei%te na xrysimopoiy%sete tyn ako%louthy entoly%:

 # gjournal label -s 2G ad1s1d

   Mporei%te e%peita na dymiourgy%sete e%na su%styma arxei%wn sty ne%a sa*s
   kata%tmysy, kai tauto%xrona na energopoiy%sete to journaling,
   xrysimopoiw%nta*s tyn epilogy% -J:

 # newfs -J /dev/ad1s1d.journal

  4.3. Enswma%twsy tou Journaling se Prosarmosme%no Pury%na

   An den the%lete na fortw%sete to geom_journal w*s a%rthrwma, mporei%te na
   enswmatw%sete ti*s leitourgi%e*s tou ston prosarmosme%no pury%na sa*s.
   Epecergastei%te to arxei%o ruthmi%sewn tou pury%na, kai bebaiwthei%te o%ti
   perilamba%nei ti*s ako%louthe*s du%o gramme%*s:

 options UFS_GJOURNAL # Symei%wsy: y epilogy% auty% upa%rxei sto GENERIC

 options GEOM_JOURNAL # THa pre%pei na prosthe%sete auty% ty grammy%

   Metaglwtti%ste kai epanegkatasty%ste ton pury%na sa*s xrysimopoiw%nta*s
   ti*s sxetike%*s odygi%e*s sto Egxeiri%dio tou FreeBSD.

   Myn cexa%sete na afaire%sete tyn anti%stoixy kataxw%rysy <<load>> apo% to
   arxei%o /boot/loader.conf an tyn ei%xate xrysimopoiy%sei proygoume%nw*s.

5. Antimetw%pisy Problyma%twn

   To ako%loutho tmy%ma kalu%ptei suxne%*s erwty%sei*s sxetika% me
   probly%mata pou mporei%te na sunanty%sete styn ulopoi%ysy tou jounaling.

   5.1. Kata% ty dia%rkeia e%ntony*s xry%sy*s tou di%skou, to su%styma mou
   stamata%ei me kernel panic. Upa%rxei peri%ptwsy auto% na sxeti%zetai me to
   journaling;

   5.2. E%kana ka%poio la%tho*s sti*s ruthmi%sei*s, kai den mporw% ple%on na
   cekiny%sw kanonika% to su%styma mou. Upa%rxei tro%po*s na to diorthw%sw;

   5.3. Mporw% na katargy%sw to journaling kai na epistre%qw sto kanoniko%
   su%styma arxei%wn me ta Soft Updates;

   5.1. Kata% ty dia%rkeia e%ntony*s xry%sy*s tou di%skou, to su%styma mou    
        stamata%ei me kernel panic. Upa%rxei peri%ptwsy auto% na sxeti%zetai  
        me to journaling;                                                     
        Ei%nai pithano% to ymerolo%gio na gemi%zei prin prola%boun ta         
        proygou%mena dedome%na tou na metaferthou%n sto su%styma arxei%wn.    
        THa pre%pei na thuma%ste o%ti to me%getho*s tou ymerologi%ou den      
        ecarta%tai apo% to me%getho*s tou paroxe%a dedome%nwn, alla% apo% to  
        fo%rto ergasi%a*s tou. An y drastyrio%tyta tou di%skou sa*s ei%nai    
        uqyly%, tha xreiastei%te megalu%tero me%getho*s gia tyn kata%tmysy    
        tou ymerologi%ou. Dei%te ty sxetiky% symei%wsy styn eno%tyta          
        Katano%ysy tou Journaling.                                            
   5.2. E%kana ka%poio la%tho*s sti*s ruthmi%sei*s, kai den mporw% ple%on na  
        cekiny%sw kanonika% to su%styma mou. Upa%rxei tro%po*s na to          
        diorthw%sw;                                                           
        Pithano%n cexa%sate na prosthe%sete (y% e%xete ka%nei la%tho*s) tyn   
        kataxw%rysy sto /boot/loader.conf, y% i%sw*s upa%rxei la%tho*s sto    
        arxei%o /etc/fstab. Ta la%thy auta% suny%thw*s diorthw%nontai         
        eu%kola. Pie%ste Enter gia na cekiny%sete to proepilegme%no ke%lufo*s 
        leitourgi%a*s eno%*s xry%sty. Meta% entopi%ste tyn pygy% tou          
        probly%mato*s:                                                        
                                                                              
        # cat /boot/loader.conf                                               
                                                                              
        An lei%pei y% upa%rxei la%tho*s styn kataxw%rysy geom_journal_load,   
        oi anti%stoixe*s suskeue%*s den dymiourgou%ntai kan. Mporei%te na     
        fortw%sete to a%rthrwma xeiroki%nyta, na prosarty%sete o%le*s ti*s    
        katatmy%sei*s, kai na sunexi%sete me tyn kanoniky% ekki%nysy:         
                                                                              
        # gjournal load                                                       
                                                                              
        GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal.            
        GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal.            
        GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data.               
        GEOM_JOURNAL: Journal ad0s1d clean.                                   
        GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data.               
        GEOM_JOURNAL: Journal ad0s1f clean.                                   
                                                                              
        # mount -a                                                            
        # exit                                                                
        (y ekki%nysy sunexi%zetai)                                            
                                                                              
        An wsto%so y kataxw%rysy auty% ei%nai swsty%, ri%cte mia matia% sto   
        arxei%o /etc/fstab. To pio pithano% ei%nai na brei%te o%ti ka%poia    
        kataxw%rysy lei%pei, y% ei%nai la%tho*s. Styn peri%ptwsy auty%,       
        prosarty%ste xeiroki%nyta o%le*s ti*s katatmy%sei*s kai sunexi%ste    
        tyn ekki%nysy kanonika%.                                              
   5.3. Mporw% na katargy%sw to journaling kai na epistre%qw sto kanoniko%    
        su%styma arxei%wn me ta Soft Updates;                                 
        Be%baia. Xrysimopoiy%ste tyn ako%louthy diadikasi%a y opoi%a anairei% 
        ti*s allage%*s. Mporei%te e%peita na xrysimopoiy%sete ti*s            
        katatmy%sei*s twn ymerologi%wn gia a%llo skopo%, efo%son to           
        epithumei%te.                                                         
                                                                              
        Eise%lthete w*s root kai metabei%te se kata%stasy eno%*s xry%sty:     
                                                                              
        # shutdown now                                                        
                                                                              
        Apoprosarty%ste ti*s katatmy%sei*s pou xrysimopoiou%n journaling:     
                                                                              
        # umount /usr /var                                                    
                                                                              
        Sugxroni%ste ta ymerolo%gia:                                          
                                                                              
        # gjournal sync                                                       
                                                                              
        Stamaty%ste tou*s paroxei%*s ymerologi%ou:                            
                                                                              
        # gjournal stop ad0s1d.journal                                        
        # gjournal stop ad0s1f.journal                                        
                                                                              
        Diagra%qte ta metadata tou journaling apo% o%le*s ti*s suskeue%*s pou 
        xrysimopoiy%sate:                                                     
                                                                              
        # gjournal clear ad0s1d                                               
        # gjournal clear ad0s1f                                               
        # gjournal clear ad0s1g                                               
        # gjournal clear ad0s1h                                               
                                                                              
        Anaire%ste tyn epilogy% tou journaling, kai the%ste cana% tyn         
        epilogy% gia Soft Updates:                                            
                                                                              
        # tunefs -J disable -n enable ad0s1d                                  
                                                                              
        tunefs: gjournal cleared                                              
        tunefs: soft updates set                                              
                                                                              
        # tunefs-J disable -n enable ad0s1f                                   
                                                                              
        tunefs: gjournal cleared                                              
        tunefs: soft updates set                                              
                                                                              
        Prosarty%ste xeiroki%nyta ti*s kanonike%*s katatmy%sei*s:             
                                                                              
        # mount -o rw /dev/ad0s1d  /var                                       
        # mount -o rw /dev/ad0s1f  /usr                                       
                                                                              
        Epecergastei%te to /etc/fstab kai epanafe%rate ti*s proygou%mene*s    
        ruthmi%sei*s:                                                         
                                                                              
        /dev/ad0s1f     /usr            ufs     rw      2       2             
        /dev/ad0s1d     /var            ufs     rw      2       2             
                                                                              
        Te%lo*s, epecergastei%te to arxei%o /boot/loader.conf, afaire%ste tyn 
        kataxw%rysy pou fortw%nei to a%rthrwma geom_journal kai               
        epanekkiny%ste to su%styma sa*s.                                      

6. Epiple%on Plyrofori%e*s

   To journaling ei%nai mia sxetika% ne%a dunato%tyta tou FreeBSD, kai e%tsi
   den ei%nai ako%ma kala% tekmyriwme%ny. I%sw*s o%mw*s na brei%te xry%sime*s
   plyrofori%e*s sti*s paraka%tw anafore%*s:

     * Upa%rxei e%na ne%o tmy%ma gia to journaling sto Egxeiri%dio tou
       FreeBSD.

     * Auty% y dymosi%eusy sty li%sta freebsd-current apo% ton dymiourgo% tou
       gjournal(8), Pawel Jakub Dawidek.

     * Auty% y dymosi%eusy sty li%sta freebsd-questions apo% ton Ivan Voras.

     * Oi seli%de*s manual tou gjournal(8) kai geom(8).
