<?xml version="1.0" encoding="ISO-8859-7" standalone="no"?> <!-- Ôï Åã÷åéñßäéï ôïõ FreeBSD: GEOM: Äéá÷åßñéóç Óõóôïé÷éþí Äßóêùí The FreeBSD Greek Documentation Project $FreeBSD$ %SOURCE% en_US.ISO8859-1/books/handbook/geom/chapter.sgml %SRCID% 38826 --> <chapter id="GEOM"> <chapterinfo> <authorgroup> <author> <firstname>Tom</firstname> <surname>Rhodes</surname> <contrib>ÃñÜöôçêå áðü ôïí </contrib> </author> </authorgroup> </chapterinfo> <title>GEOM: Äéá÷åßñéóç Óõóôïé÷éþí Äßóêùí</title> <sect1 id="GEOM-synopsis"> <title>Óýíïøç</title> <indexterm> <primary>GEOM</primary> </indexterm> <indexterm> <primary>GEOM Disk Framework</primary> <see>GEOM</see> </indexterm> <para>Ôï êåöÜëáéï áõôü êáëýðôåé ôç ÷ñÞóç ôùí äßóêùí êÜôù áðü ôï ðëáßóéï ëåéôïõñãéþí GEOM óôï &os;. ÐåñéëáìâÜíåé ôá êõñéüôåñá ðñïãñÜììáôá åëÝã÷ïõ <acronym role="Redundant Array of Inexpensive Disks">RAID</acronym> ôùí ïðïßùí ïé ñõèìßóåéò âáóßæïíôáé óôï ðëáßóéï GEOM. Ôï êåöÜëáéï áõôü äåí áíáëýåé óå âÜèïò ôïí ôñüðï ìå ôïí ïðïßï ôï GEOM ÷åéñßæåôáé Þ åëÝã÷åé ëåéôïõñãßåò Åéóüäïõ / Åîüäïõ (IO), ôï õðïóýóôçìá ðïõ âñßóêåôáé êÜôù áðü áõôü, Þ ôïí êþäéêá ôïõ. Ïé ðëçñïöïñßåò áõôÝò ðáñÝ÷ïíôáé áðü ôç óåëßäá manual ôïõ &man.geom.4; êáèþò êáé áðü ôéò áíáöïñÝò ðïõ ðåñéÝ÷åé óå Üëëåò ó÷åôéêÝò óåëßäåò. Åðßóçò ôï êåöÜëáéï áõôü äåí áðïôåëåß êáèïñéóôéêü ïäçãü ãéá üëåò ôéò ñõèìßóåéò ôïõ <acronym>RAID</acronym>. Èá óõæçôçèïýí ìüíï ïé êáôáóôÜóåéò ëåéôïõñãßáò ôïõ <acronym>RAID</acronym> ðïõ õðïóôçñßæïíôáé áðü ôï GEOM.</para> <para>Áöïý äéáâÜóåôå áõôü ôï êåöÜëáéï, èá îÝñåôå:</para> <itemizedlist> <listitem> <para>Ôï åßäïò ôçò õðïóôÞñéîçò <acronym>RAID</acronym> ðïõ åßíáé äéáèÝóéìï ìÝóù ôïõ GEOM.</para> </listitem> <listitem> <para>Ðùò íá ÷ñçóéìïðïéÞóåôå ôá âáóéêÜ âïçèçôéêÜ ðñïãñÜììáôá ãéá ôçí ñýèìéóç, óõíôÞñçóç êáé äéá÷åßñéóç ôùí äéáöüñùí åðéðÝäùí <acronym> RAID</acronym>.</para> </listitem> <listitem> <para>Ðùò íá äçìéïõñãÞóåôå mirror Þ stripe, íá êñõðôïãñáöÞóåôå, êáé íá óõíäÝóåôå äßóêïõò ìå ôï GEOM, ìÝóù ìéáò áðïìáêñõóìÝíçò óýíäåóçò.</para> </listitem> <listitem> <para>Ðùò íá áíôéìåôùðßóåôå ðñïâëÞìáôá äßóêùí ðïõ ÷ñçóéìïðïéïýí ôï ðëáßóéï ëåéôïõñãéþí GEOM.</para> </listitem> </itemizedlist> <para>Ðñéí äéáâÜóåôå áõôü ôï êåöÜëáéï, èá ðñÝðåé:</para> <itemizedlist> <listitem> <para>Íá êáôáíïåßôå ðùò ìåôá÷åéñßæåôáé ôï &os; ôéò óõóêåõÝò äßóêùí (<xref linkend="disks"/>).</para> </listitem> <listitem> <para>Íá ãíùñßæåôå ðùò èá ñõèìßóåôå êáé èá åãêáôáóôÞóåôå Ýíá íÝï ðõñÞíá óôï &os; (<xref linkend="kernelconfig"/>).</para> </listitem> </itemizedlist> </sect1> <sect1 id="GEOM-intro"> <title>ÅéóáãùãÞ óôï GEOM</title> <para>Ôï GEOM åðéôñÝðåé ôçí ðñüóâáóç êáé ôïí Ýëåã÷ï óå êëÜóåéò — üðùò ôçí ÊåíôñéêÞ ÅããñáöÞ Åêêßíçóçò (Master Boot Record), ôá <acronym>BSD</acronym> labels, ê.á. — ìÝóù ôçò ÷ñÞóçò ðáñï÷Ýùí, Þ ìÝóù åéäéêþí áñ÷åßùí óôïí êáôÜëïãï <filename class="directory">/dev</filename>. Ôï GEOM õðïóôçñßæåé äéÜöïñåò äéáôÜîåéò <acronym>RAID</acronym> êáé ðáñÝ÷åé äéÜöáíç ðñüóâáóç óôï ëåéôïõñãéêü óýóôçìá êáé ôá âïçèçôéêÜ ôïõ ðñïãñÜììáôá.</para> </sect1> <sect1 id="GEOM-striping"> <sect1info> <authorgroup> <author> <firstname>Tom</firstname> <surname>Rhodes</surname> <contrib>ÃñÜöçêå áðü ôïõò </contrib> </author> <author> <firstname>Murray</firstname> <surname>Stokely</surname> </author> </authorgroup> </sect1info> <title>RAID0 - Striping</title> <indexterm> <primary>GEOM</primary> </indexterm> <indexterm> <primary>Striping</primary> </indexterm> <para>Ôï striping åßíáé ìéá ìÝèïäïò ðïõ óõíäõÜæåé äéáöïñåôéêïýò öõóéêïýò äßóêïõò óå Ýíá ìïíáäéêü ëïãéêü ôüìï. Óå ðïëëÝò ðåñéðôþóåéò, áõôü ãßíåôáé ìå ôçí âïÞèåéá åîåéäéêåõìÝíïõ õëéêïý (åëåãêôþí). Ôï õðïóýóôçìá äßóêùí GEOM ðáñÝ÷åé õðïóôÞñéîç ìÝóù ëïãéóìéêïý ãéá ôç äéÜôáîç <acronym>RAID</acronym>0, ç ïðïßá åßíáé ãíùóôÞ êáé ùò striping.</para> <para>Óå Ýíá óýóôçìá <acronym>RAID</acronym>0, ôá äåäïìÝíá ÷ùñßæïíôáé óå blocks ôá ïðïßá ãñÜöïíôáé ôìçìáôéêÜ óå üëïõò ôïõò äßóêïõò ðïõ áðïôåëïýí ôç óõóôïé÷ßá. Áíôß íá ÷ñåéÜæåôáé íá ðåñéìÝíåôå ôï óýóôçìá íá ãñÜøåé 256k äåäïìÝíùí óå Ýíá äßóêï, Ýíá óýóôçìá <acronym>RAID</acronym>0 ìðïñåß íá ãñÜøåé ôáõôü÷ñïíá 64k óå êáèÝíá áðü ôïõò ôÝóóåñéò äßóêïõò ìéáò óõóôïé÷ßáò, ðñïóöÝñïíôáò Ýôóé åîáéñåôéêÞ áðüäïóç åéóüäïõ/åîüäïõ (I/O). Ç áðüäïóç áõôÞ ìðïñåß íá áõîçèåß ðåñéóóüôåñï, ìå ôç ÷ñÞóç ðïëëáðëþí åëåãêôþí äßóêùí.</para> <para>ÊÜèå äßóêïò óå Ýíá stripe <acronym>RAID</acronym>0 ðñÝðåé íá åßíáé ôïõ ßäéïõ ìåãÝèïõò, êáèþò ïé áéôÞóåéò I/O ìïéñÜæïíôáé üóï áöïñÜ ôçí áíÜãíùóç êáé åããñáöÞ, óå ðïëëïýò ðáñÜëëçëïõò äßóêïõò.</para> <mediaobject> <imageobject> <imagedata fileref="geom/striping" align="center"/> </imageobject> <textobject> <phrase>ÄéÜãñáììá Disk Striping</phrase> </textobject> </mediaobject> <procedure> <title>Äçìéïõñãßá Stripe áðü ìç-ÄéáìïñöùìÝíïõò ATA Äßóêïõò</title> <step> <para>Öïñôþóôå ôï Üñèñùìá <filename>geom_stripe.ko</filename>:</para> <screen>&prompt.root; <userinput>kldload geom_stripe</userinput></screen> </step> <step> <para>Åîáóöáëßóôå üôé õðÜñ÷åé êáôÜëëçëï óçìåßï ðñïóÜñôçóçò. Áí ï ôüìïò ðñüêåéôáé íá ãßíåé êáôÜôìçóç root, ðñïóáñôÞóôå ôïí ðñïóùñéíÜ óå êÜðïéï Üëëï óçìåßï ðñïóÜñôçóçò, üðùò ôï <filename class="directory">/mnt</filename>:</para> <screen>&prompt.root; <userinput>mkdir /mnt</userinput></screen> </step> <step> <para>Êáèïñßóôå ôá ïíüìáôá ôùí óõóêåõþí ãéá ôïõò äßóêïõò ðïõ ðñüêåéôáé íá ãßíïõí stripe, êáé äçìéïõñãÞóôå ôç íÝá óõóêåõÞ stripe. Ãéá ðáñÜäåéãìá, ãéá íá äçìéïõñãÞóåôå Ýíá stripe áðü äýï á÷ñçóéìïðïßçôïõò êáé ÷ùñßò êáôáôìÞóåéò äßóêïõò <acronym>ATA</acronym>, üðùò ð.÷. ôïõò <filename>/dev/ad2</filename> êáé <filename>/dev/ad3</filename>:</para> <screen>&prompt.root; <userinput>gstripe label -v st0 /dev/ad2 /dev/ad3</userinput> Metadata value stored on /dev/ad2. Metadata value stored on /dev/ad3. Done.</screen> </step> <step> <para>ÃñÜøôå Ýíá ôõðïðïéçìÝíï label (ðßíáêá êáôáôìÞóåùí) óôï íÝï ôüìï, êáé åãêáôáóôÞóôå ôïí ðñïåðéëåãìÝíï êþäéêá åêêßíçóçò (bootstrap):</para> <screen>&prompt.root; <userinput>bsdlabel -wB /dev/stripe/st0</userinput></screen> </step> <step> <para>Ç äéáäéêáóßá áõôÞ èá äçìéïõñãÞóåé ôç óõóêåõÞ <devicename>st0</devicename>, êáèþò êáé äýï áêüìá óõóêåõÝò óôïí êáôÜëïãï <filename class="directory">/dev/stripe</filename>. Ïé óõóêåõÝò áõôÝò èá ïíïìÜæïíôáé <devicename>st0a</devicename> êáé <devicename>st0c</devicename>. Óôï óçìåßï áõôü, ìðïñåßôå ðëÝïí íá äçìéïõñãÞóåôå óýóôçìá áñ÷åßùí óôç óõóêåõÞ <devicename>st0a</devicename> ÷ñçóéìïðïéþíôáò ôï âïçèçôéêü ðñüãñáììá <command>newfs</command>:</para> <screen>&prompt.root; <userinput>newfs -U /dev/stripe/st0a</userinput></screen> <para>Èá äåßôå ìéá ìåãÜëç óåéñÜ áñéèìþí íá ðåñíÜ ãñÞãïñá áðü ôçí ïèüíç óáò, êáé ìåôÜ áðü ëßãá äåõôåñüëåðôá ç äéáäéêáóßá èá Ý÷åé ïëïêëçñùèåß. Ï ôüìïò èá Ý÷åé äçìéïõñãçèåß êáé èá åßíáé Ýôïéìïò ãéá ðñïóÜñôçóç.</para> </step> </procedure> <para>Ãéá íá ðñïóáñôÞóåôå ÷åéñïêßíçôá ôï stripe ðïõ äçìéïõñãÞóáôå:</para> <screen>&prompt.root; <userinput>mount /dev/stripe/st0a /mnt</userinput></screen> <para>Ãéá íá ãßíåôáé áõôüìáôá ç ðñïóÜñôçóç áõôïý ôïõ óõóôÞìáôïò áñ÷åßùí êáôÜ ôçí äéáäéêáóßá åêêßíçóçò, ôïðïèåôÞóôå ôéò ðëçñïöïñßåò ôïõ ôüìïõ óôï áñ÷åßï <filename>/etc/fstab</filename>. Ãéá ôï óêïðü áõôü, äçìéïõñãïýìå Ýíá ìüíéìï óçìåßï ðñïóÜñôçóçò, ôï <filename class="directory">stripe</filename>:</para> <screen>&prompt.root; <userinput>mkdir /stripe</userinput> &prompt.root; <userinput>echo "/dev/stripe/st0a /stripe ufs rw 2 2" \</userinput> <userinput>>> /etc/fstab</userinput></screen> <para>Ôï Üñèñùìá <filename>geom_stripe.ko</filename> èá ðñÝðåé íá öïñôþíåôáé áõôüìáôá êáôÜ ôçí åêêßíçóç ôïõ óõóôÞìáôïò. ÅêôåëÝóôå ôçí ðáñáêÜôù åíôïëÞ, ãéá íá ðñïóèÝóåôå ôçí êáôÜëëçëç ñýèìéóç óôï <filename>/boot/loader.conf</filename>:</para> <screen>&prompt.root; <userinput>echo 'geom_stripe_load="YES"' >> /boot/loader.conf</userinput></screen> </sect1> <sect1 id="GEOM-mirror"> <title>RAID1 - Mirroring</title> <indexterm> <primary>GEOM</primary> </indexterm> <indexterm> <primary>Disk Mirroring</primary> </indexterm> <para>Ôï mirroring (êáèñåöôéóìüò) åßíáé ìéá ôå÷íïëïãßá ðïõ ÷ñçóéìïðïéåßôáé áðü ðïëëÝò åôáéñßåò êáé ïéêéáêïýò ÷ñÞóôåò ãéá íá áóöáëßóïõí ôá äåäïìÝíá ôïõò ÷ùñßò äéáêïðÝò. Óå ìéá äéÜôáîç mirror, ï äßóêïò  åßíáé áðëþò Ýíá ðëÞñåò áíôßãñáöï ôïõ äßóêïõ Á. ¹ ìðïñåß ïé äßóêïé Ã+Ä íá åßíáé áíôßãñáöá ôùí äßóêùí A+B. ¶ó÷åôá ìå ôçí áêñéâÞ äéÜôáîç ôùí äßóêùí, ôï óçìáíôéêü åßíáé üôé ïé ðëçñïöïñßåò åíüò äßóêïõ Þ ìéáò êáôÜôìçóçò áíôéãñÜöïíôáé óå Üëëïõò. Ïé ðëçñïöïñßåò áõôÝò ìðïñåß áñãüôåñá íá áðïêáôáóôáèïýí ìå åýêïëï ôñüðï, Þ íá áíôéãñáöïýí ÷ùñßò íá ðñïêëçèåß äéáêïðÞ óôéò õðçñåóßåò ôïõ ìç÷áíÞìáôïò Þ óôçí ðñüóâáóç ôùí äåäïìÝíùí. Ìðïñïýí áêüìá êáé íá ìåôáöåñèïýí êáé íá öõëá÷èïýí óå Üëëï, áóöáëÝò ìÝñïò.</para> <para>Ãéá íá îåêéíÞóåôå, âåâáéùèåßôå üôé ôï óýóôçìá óáò Ý÷åé äýï óêëçñïýò äßóêïõò ßäéïõ ìåãÝèïõò. Óôá ðáñáäåßãìáôá ìáò èåùñïýìå üôé ïé äßóêïé åßíáé ôýðïõ <acronym>SCSI</acronym> (áðåõèåßáò ðñüóâáóçò, &man.da.4;).</para> <sect2> <title>Mirroring óôïõò Âáóéêïýò Äßóêïõò</title> <para>ÕðïèÝôïíôáò üôé ôï &os; Ý÷åé åãêáôáóôáèåß óôïí ðñþôï äßóêï <devicename>da0</devicename>, èá ðñÝðåé íá ñõèìßóåôå ôï &man.gmirror.8; íá áðïèçêåýóåé åêåß ôá âáóéêÜ äåäïìÝíá ôïõ.</para> <para>Ðñéí äçìéïõñãÞóåôå ôï mirror, åíåñãïðïéÞóôå ôçí äõíáôüôçôá åìöÜíéóçò ðåñéóóüôåñùí ëåðôïìåñåéþí (ðïõ ìðïñåß íá óáò âïçèÞóïõí óå ðåñßðôùóç ðñïâëÞìáôïò) êáé åðéôñÝøôå ôçí áðåõèåßáò ðñüóâáóç óôç óõóêåõÞ äßóêïõ. Ãéá ôï óêïðü áõôü èÝóôå ôç ìåôáâëçôÞ <varname>kern.geom.debugflags</varname> ôïõ &man.sysctl.8; óôçí ðáñáêÜôù ôéìÞ:</para> <screen>&prompt.root; <userinput>sysctl kern.geom.debugflags=17</userinput></screen> <para>Ìðïñåßôå ôþñá íá äçìéïõñãÞóåôå ôï mirror. ÎåêéíÞóôå ôç äéáäéêáóßá áðïèçêåýïíôáò ôá ìåôá-äåäïìÝíá (meta-data) óôïí âáóéêü äßóêï, äçìéïõñãþíôáò ïõóéáóôéêÜ ôç óõóêåõÞ <filename class="devicefile">/dev/mirror/gm</filename>. ×ñçóéìïðïéÞóôå ôçí ðáñáêÜôù åíôïëÞ:</para> <warning> <para>Ç äçìéïõñãßá mirror óôï äßóêï åêêßíçóçò ìðïñåß íá Ý÷åé ùò áðïôÝëåóìá ôçí áðþëåéá äåäïìÝíùí, áí ï ôåëåõôáßïò ôïìÝáò ôïõ äßóêïõ Ý÷åé Þäç ÷ñçóéìïðïéçèåß. Ç ðéèáíüôçôá áõôÞ åßíáé ðïëý ìéêñüôåñç áí ôï mirror äçìéïõñãçèåß áìÝóùò ìåôÜ áðü ìéá íÝá åãêáôÜóôáóç ôïõ &os;. Ç ðáñáêÜôù äéáäéêáóßá åßíáé åðßóçò áóýìâáôç ìå ôéò ðñïåðéëåãìÝíåò ñõèìßóåéò åãêáôÜóôáóçò ôïõ &os; 9.<replaceable>X</replaceable> óôéò ïðïßåò ÷ñçóéìïðïéåßôáé ôï óýóôçìá êáôáôìÞóåùí <acronym>GPT</acronym>. To GEOM êáôáóôñÝöåé ôá ìåôáäåäïìÝíá ôïõ <acronym>GPT</acronym>, êáé èá ðñïêáëÝóåé áðþëåéá äåäïìÝíùí êáé ðéèáíÞ áäõíáìßá åêêßíçóçò ôïõ óõóôÞìáôïò.</para> </warning> <screen>&prompt.root; <userinput>gmirror label -vb round-robin gm0 /dev/da0</userinput></screen> <para>Ôï óýóôçìá èá áíôáðïêñéèåß ìå ôï ðáñáêÜôù ìÞíõìá:</para> <screen>Metadata value stored on /dev/da0. Done.</screen> <para>Áñ÷éêïðïéÞóôå ôï GEOM. Ç ðáñáêÜôù åíôïëÞ èá öïñôþóåé ôï Üñèñùìá <filename>/boot/kernel/geom_mirror.ko</filename> óôïí ðõñÞíá:</para> <screen>&prompt.root; <userinput>gmirror load</userinput></screen> <note> <para>Ìå ôçí åðéôõ÷Þ åêôÝëåóç áõôÞò ôçò åíôïëÞò, äçìéïõñãåßôáé ç óõóêåõÞ <devicename>gm0</devicename> ìÝóá óôïí êáôÜëïãï <filename class="directory">/dev/mirror</filename>.</para> </note> <para>ÅíåñãïðïéÞóôå ôï öüñôùìá ôïõ áñèñþìáôïò <filename>geom_mirror.ko</filename> êáôÜ ôçí åêêßíçóç ôïõ óõóôÞìáôïò:</para> <screen>&prompt.root; <userinput>echo 'geom_mirror_load="YES"' >> /boot/loader.conf</userinput></screen> <para>Åðåîåñãáóôåßôå ôï áñ÷åßï <filename>/etc/fstab</filename>, áíôéêáèéóôþíôáò ôéò áíáöïñÝò óôéò ðáëéÝò óõóêåõÝò <devicename>da0</devicename> ìå ôéò áíôßóôïé÷åò êáéíïýñéåò <devicename>gm0</devicename> ðïõ áíôéðñïóùðåýïõí ôï mirror.</para> <note> <para>Áí ÷ñçóéìïðïéåßôå ôï &man.vi.1;, ìðïñåßôå íá áêïëïõèÞóåôå ôá ðáñáêÜôù âÞìáôá ãéá íá ïëïêëçñþóåôå åýêïëá áõôÞ ôç äéáäéêáóßá:</para> <screen>&prompt.root; <userinput>vi /etc/fstab</userinput></screen> <para>Óôï &man.vi.1;, êñáôÞóôå áíôßãñáöï áóöáëåßáò ôïõ ôñÝ÷ïíôïò áñ÷åßïõ <filename>fstab</filename> ðëçêôñïëïãþíôáò <userinput>:w /etc/fstab.bak</userinput>. ¸ðåéôá áíôéêáôáóôÞóôå üëåò ôéò áíáöïñÝò óôéò ðáëéÝò óõóêåõÝò <devicename>da0</devicename> ìå ôéò íÝåò <devicename>gm0</devicename> ãñÜöïíôáò <userinput>:%s/da/mirror\/gm/g</userinput>.</para> </note> <para>Ôï <filename>fstab</filename> ðïõ èá ðñïêýøåé, èá ìïéÜæåé ìå ôï ðáñáêÜôù. Äåí Ý÷åé óçìáóßá áí ïé äßóêïé Þôáí áñ÷éêÜ <acronym>SCSI</acronym> Þ <acronym>ATA</acronym>, ç óõóêåõÞ <acronym>RAID</acronym> èá Ý÷åé ðÜíôá ôï üíïìá <devicename>gm</devicename>.</para> <programlisting># Device Mountpoint FStype Options Dump Pass# /dev/mirror/gm0s1b none swap sw 0 0 /dev/mirror/gm0s1a / ufs rw 1 1 /dev/mirror/gm0s1d /usr ufs rw 0 0 /dev/mirror/gm0s1f /home ufs rw 2 2 #/dev/mirror/gm0s2d /store ufs rw 2 2 /dev/mirror/gm0s1e /var ufs rw 2 2 /dev/acd0 /cdrom cd9660 ro,noauto 0 0</programlisting> <para>ÅðáíåêêéíÞóôå ôï óýóôçìá:</para> <screen>&prompt.root; <userinput>shutdown -r now</userinput></screen> <para>ÊáôÜ ôçí åêêßíçóç ôïõ óõóôÞìáôïò, èá ðñÝðåé ðëÝïí íá ÷ñçóéìïðïéåßôáé ç óõóêåõÞ <devicename>gm0</devicename> áíôß ãéá ôçí <devicename>da0</devicename>. ÌåôÜ ôï ôÝëïò ôçò åêêßíçóçò, ìðïñåßôå íá åëÝãîåôå üôé üëá ëåéôïõñãïýí óùóôÜ, åîåôÜæïíôáò ôçí Ýîïäï ôçò åíôïëÞò <command>mount</command>:</para> <screen>&prompt.root; <userinput>mount</userinput> Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/mirror/gm0s1a 1012974 224604 707334 24% / devfs 1 1 0 100% /dev /dev/mirror/gm0s1f 45970182 28596 42263972 0% /home /dev/mirror/gm0s1d 6090094 1348356 4254532 24% /usr /dev/mirror/gm0s1e 3045006 2241420 559986 80% /var devfs 1 1 0 100% /var/named/dev</screen> <para>Ç Ýîïäïò öáßíåôáé óùóôÞ, üðùò áíáìåíüôáí. ÔåëéêÜ, ãéá íá îåêéíÞóåé ï óõã÷ñïíéóìüò, åéóÜãåôå êáé ôçí óõóêåõÞ <devicename>da1</devicename> óôï mirror, ÷ñçóéìïðïéþíôáò ôçí áêüëïõèç åíôïëÞ:</para> <screen>&prompt.root; <userinput>gmirror insert gm0 /dev/da1</userinput></screen> <para>ÊáôÜ ôç äéÜñêåéá ôïõ óõã÷ñïíéóìïý ôïõ mirror, ìðïñåßôå íá äåßôå ôçí ðñüïäï ôçò äéáäéêáóßáò ìå ôçí ðáñáêÜôù åíôïëÞ:</para> <screen>&prompt.root; <userinput>gmirror status</userinput></screen> <para>ÌåôÜ ôï ôÝëïò ôçò äüìçóçò ôïõ mirror, êáé áöïý Ý÷ïõí óõã÷ñïíéóôåß üëá ôá äåäïìÝíá, ç Ýîïäïò ôçò ðáñáðÜíù åíôïëÞò èá ìïéÜæåé ìå ôçí áêüëïõèç:</para> <screen> Name Status Components mirror/gm0 COMPLETE da0 da1</screen> <para>Áí õðÜñ÷ïõí ðñïâëÞìáôá, Þ áí ôï mirror âñßóêåôáé áêüìá óôç äéáäéêáóßá óõã÷ñïíéóìïý, ôï ðáñÜäåéãìá èá äåß÷íåé <literal>DEGRADED</literal> áíôß ãéá <literal>COMPLETE</literal>.</para> </sect2> <sect2> <title>Áíôéìåôþðéóç ÐñïâëçìÜôùí</title> <sect3> <title>Ôï óýóôçìá áñíåßôáé íá îåêéíÞóåé</title> <para>Áí ôï óýóôçìá óáò óôáìáôÜåé óå ìéá ðñïôñïðÞ ðïõ ìïéÜæåé ìå ôçí ðáñáêÜôù:</para> <programlisting>ffs_mountroot: can't find rootvp Root mount failed: 6 mountroot></programlisting> <para>ÅðáíåêêéíÞóôå ôï óýóôçìá óáò ìÝóù ôïõ äéáêüðôç ôñïöïäïóßáò Þ ôïõ ðëÞêôñïõ reset. Óôï ìåíïý åêêßíçóçò, åðéëÝîôå ôï (6). Ìå ôïí ôñüðï áõôü èá âñåèåßôå óôçí ðñïôñïðÞ ôïõ &man.loader.8;. Öïñôþóôå ÷åéñïêßíçôá ôï Üñèñùìá óôïí ðõñÞíá:</para> <screen>OK? <userinput>load geom_mirror</userinput> OK? <userinput>boot</userinput></screen> <para>Áí ôï ðáñáðÜíù ëåéôïõñãÞóåé, ôüôå ãéá êÜðïéï ëüãï ôï Üñèñùìá äåí öïñôþèçêå óùóôÜ. ÅëÝãîôå áí åßíáé óùóôÞ ç ó÷åôéêÞ êáôá÷þñéóç óôï áñ÷åßï <filename>/boot/loader.conf</filename>. Áí ôï ðñüâëçìá ðáñáìÝíåé, ðñïóèÝóôå ôç ãñáììÞ:</para> <programlisting>options GEOM_MIRROR</programlisting> <para>óôï áñ÷åßï ñõèìßóåùí ôïõ ðõñÞíá óáò, áíáäçìéïõñãÞóôå êáé åðáíåãêáôáóôÞóôå ôïí ðõñÞíá óáò. Ôï ðñüâëçìá óáò èá ðñÝðåé íá äéïñèùèåß.</para> </sect3> </sect2> <sect2> <title>ÅðáíáöïñÜ ÌåôÜ áðü Áðïôõ÷ßá Äßóêïõ</title> <para>Ôï åêðëçêôéêü ìå ôï mirroring åßíáé üôé üôáí Ýíáò óêëçñüò äßóêïò ÷áëÜóåé, ìðïñåßôå íá ôïí áíôéêáôáóôÞóåôå ÷ùñßò íá ÷Üóåôå êáèüëïõ äåäïìÝíá.</para> <para>ÕðïèÝôïíôáò üôé ÷ñçóéìïðïéïýìå ôéò ñõèìßóåéò <acronym>RAID</acronym>1 ðïõ äåßîáìå ðñïçãïõìÝíùò, áò èåùñÞóïõìå üôé ÷Üëáóå ï äßóêïò <devicename>da1</devicename> êáé ðñÝðåé íá áíôéêáôáóôáèåß. Ãéá íá ôïí áíôéêáôáóôÞóåôå, âñåßôå ðïéïò äßóêïò åßíáé êáé áðåíåñãïðïéÞóôå ôï óýóôçìá. Óôï óçìåßï áõôü, ìðïñåßôå ðëÝïí íá áíôáëëÜîåôå ôï äßóêï ìå Ýíá íÝï êáé íá åíåñãïðïéÞóåôå îáíÜ ôï óýóôçìá. ÌåôÜ ôçí åðáíåíåñãïðïßçóç ôïõ óõóôÞìáôïò, ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå ôéò ðáñáêÜôù åíôïëÝò ãéá íá èÝóåôå óå ëåéôïõñãßá ôï íÝï äßóêï:</para> <screen>&prompt.root; <userinput>gmirror forget gm0</userinput></screen> <screen>&prompt.root; <userinput>gmirror insert gm0 /dev/da1</userinput></screen> <para>×ñçóéìïðïéÞóôå ôçí åíôïëÞ <command>gmirror</command> <option>status</option> ãéá íá ðáñáêïëïõèåßôå ôç äéáäéêáóßá ôïõ óõã÷ñïíéóìïý. Åßíáé óôá áëÞèåéá ôüóï áðëü.</para> </sect2> </sect1> <sect1 id="GEOM-raid3"> <sect1info> <authorgroup> <author> <firstname>Mark</firstname> <surname>Gladman</surname> <contrib>ÃñÜöçêå áðü </contrib> </author> <author> <firstname>Daniel</firstname> <surname>Gerzo</surname> </author> </authorgroup> <authorgroup> <author> <firstname>Tom</firstname> <surname>Rhodes</surname> <contrib>ÂáóéóìÝíï óôçí ôåêìçñßùóç ôùí </contrib> </author> <author> <firstname>Murray</firstname> <surname>Stokely</surname> </author> </authorgroup> </sect1info> <title><acronym>RAID</acronym>3 - Striping óå Åðßðåäï Byte ìå ÁöïóéùìÝíï Parity</title> <indexterm> <primary>GEOM</primary> </indexterm> <indexterm> <primary>RAID3</primary> </indexterm> <para>Ôï <acronym>RAID</acronym>3 åßíáé ìéá ìÝèïäïò ðïõ óõíäõÜæåé áñêåôïýò äéáöïñåôéêïýò óêëçñïýò äßóêïõò óå Ýíá ôüìï ìå Ýíá äßóêï áöïóéùìÝíï óôçí éóïôéìßá (parity). Óå Ýíá óýóôçìá <acronym>RAID</acronym>3, ôá äåäïìÝíá ÷ùñßæïíôáé óå Ýíá áñéèìü áðü bytes ðïõ åããñÜöïíôáé óå üëïõò ôïõò äßóêïõò ôçò óõóôïé÷ßáò åêôüò áðü Ýíá ðïõ ÷ñçóéìïðïéåßôáé áðïêëåéóôéêÜ ùò äßóêïò éóïôéìßáò. Áõôü óçìáßíåé üôé ãéá íá äéáâÜóïõìå 1024KB áðü ìéá õëïðïßçóç ôïõ <acronym>RAID</acronym>3 èá ðñÝðåé íá ðñïóðåëÜóïõìå üëïõò ôïõò äßóêïõò ôçò óõóôïé÷ßáò. Ç áðüäïóç áõîÜíåôáé ìå ôç ÷ñÞóç ÷ùñéóôþí åëåãêôþí óêëçñþí äßóêùí. Ç óõóôïé÷ßá <acronym>RAID</acronym>3 ðñïóöÝñåé áíï÷Þ óå âëÜâç åíüò äßóêïõ åíüò ðáñÝ÷åé ÷ùñçôéêüôçôá 1 - 1/n öïñÝò ôç ÷ùñçôéêüôçôá üëùí ôùí äßóêùí ôçò óõóôïé÷ßáò, üðïõ n åßíáé ôï ðëÞèïò ôùí äßóêùí ðïõ ôçí áðáñôßæïõí. Áõôïý ôïõ åßäïõò ïé óõóôïé÷ßåò åßíáé êáôÜëëçëåò ãéá áðïèÞêåõóç ìåãÜëùí áñ÷åßùí, ãéá ðáñÜäåéãìá áñ÷åßùí ðïëõìÝóùí.</para> <para>×ñåéÜæïíôáé ôïõëÜ÷éóôïí 3 öõóéêïß óêëçñïß äßóêïé ãéá ôç äçìéïõñãßá ìéá óõóôïé÷ßáò <acronym>RAID</acronym>3. ÊÜèå äßóêïò èá ðñÝðåé íá åßíáé ôï ßäéï ìÝãåèïò êáèþò ïé áéôÞóåéò É/Ï (åéóüäïõ/åîüäïõ) åíáëëÜóóïíôáé þóôå íá ãßíåôáé åããñáöÞ êáé áíÜãíùóç óå ðïëëáðëïýò äßóêïõò ðáñÜëëçëá. Åðßóçò, åîáéôßáò ôçò öýóçò ôïõ <acronym>RAID</acronym>3, ï áñéèìüò ôùí äßóêùí ðñÝðåé íá åßíáé 3, 5, 9, 17 êëð. (2^n+1).</para> <sect2> <title>Äçìéïõñãßá Óõóôïé÷ßáò <acronym>RAID</acronym>3</title> <para>Óôï &os;, ç õðïóôÞñéîç ãéá <acronym>RAID</acronym>3 õëïðïéåßôáé ìÝóù ôçò êëÜóçò &man.graid3.8; ôïõ <acronym>GEOM</acronym>. Ç äçìéïõñãßá ìéáò óõóôïé÷ßáò <acronym>RAID</acronym>3 óôï &os; áðáéôåß ôá ðáñáêÜôù âÞìáôá.</para> <note> <para>Áí êáé åßíáé èåùñçôéêÜ äõíáôü íá öôéÜîåôå ìéá åêêéíÞóéìç óõóôïé÷ßá <acronym>RAID</acronym>3 óôï &os;, äåí óõíßóôáôáé êáèþò ðñüêåéôáé ãéá áóõíÞèéóôç ëåéôïõñãßá.</para> </note> <procedure> <step> <para>Áñ÷éêÜ, öïñôþóôå ôï <filename>geom_rai3.ko</filename> Üñèñùìá ôïõ ðõñÞíá ìÝóù ôçò áêüëïõèçò åíôïëÞò:</para> <screen>&prompt.root; <userinput>graid3 load</userinput></screen> <para>ÅíáëëáêôéêÜ, åßíáé äõíáôüí íá öïñôþóåôå ôï Üñèñùìá ÷åéñïêßíçôá:</para> <screen>&prompt.root; <userinput>kldload geom_raid3.ko</userinput></screen> </step> <step> <para>Åîáóöáëßóôå üôé õðÜñ÷åé êáôÜëëçëï óçìåßï ðñïóÜñôçóçò, Þ äçìéïõñãÞóôå Ýíá êáéíïýñéï:</para> <screen>&prompt.root; <userinput>mkdir <replaceable>/multimedia</replaceable></userinput></screen> </step> <step> <para>Ðñïóäéïñßóôå ôá ïíüìáôá óõóêåõþí ôùí äßóêùí ðïõ èá ðñïóôåèïýí óôç óõóôïé÷ßá êáé äçìéïõñãÞóôå ôç íÝá óõóêåõÞ <acronym>RAID</acronym>3. Óôï ðáñÜäåéãìá ìáò ÷ñçóéìïðïéïýìå ôñåéò ïäçãïýò <acronym>ATA</acronym> ïé ïðïßïé äåí ðåñéÝ÷ïõí êáôáôìÞóåéò: <devicename><replaceable>ada1</replaceable></devicename> êáé <devicename><replaceable>ada2</replaceable></devicename> ãéá ôá äåäïìÝíá êáé <devicename><replaceable>ada3</replaceable></devicename> ãéá ôï parity.</para> <screen>&prompt.root; <userinput>graid3 label -v gr0 /dev/ada1 /dev/ada2 /dev/ada3</userinput> Metadata value stored on /dev/ada1 Metadata value stored on /dev/ada2 Metadata value stored on /dev/ada3 Done.</screen> </step> <step> <para>ÄçìéïõñãÞóôå êáôáôìÞóåéò óôç íÝá óõóêåõÞ <devicename>gr0</devicename> êáé äéáìïñöþóôå ôçí ìå óýóôçìá áñ÷åßùí UFS:</para> <screen>&prompt.root; <userinput>gpart create -s GPT /dev/raid3/gr0</userinput> &prompt.root;<userinput> gpart add -t freebsd-ufs /dev/raid3/gr0</userinput> &prompt.root;<userinput> newfs -j /dev/raid3/gr0p1</userinput></screen> <para>Èá äåßôå ìåãÜëï ðëÞèïò áñéèìþí íá ðåñíÜåé áðü ôçí ïèüíç óáò êáé ìåôÜ áðü ëßãï ç äéáäéêáóßá èá ïëïêëçñùèåß. Ï ôüìïò Ý÷åé ðëÝïí äçìéïõñãçèåß êáé åßíáé Ýôïéìïò íá ðñïóáñôçèåß.</para> </step> <step> <para>Ôï ôåëåõôáßï âÞìá åßíáé ç ðñïóÜñôçóç ôïõ óõóôÞìáôïò áñ÷åßùí:</para> <screen>&prompt.root; <userinput>mount /dev/raid3/gr0p1 /multimedia</userinput></screen> <para>Ç óõóôïé÷ßá <acronym>RAID</acronym>3 åßíáé ôþñá Ýôïéìç ðñïò ÷ñÞóç.</para> </step> </procedure> <para>Èá ÷ñåéáóôåß íá êÜíåôå åðéðëÝïí ñõèìßóåéò þóôå ç óõóôïé÷ßá íá åßíáé Üìåóá äéáèÝóéìç ìåôÜ áðü êÜèå åêêßíçóç ôïõ õðïëïãéóôÞ óáò.</para> <procedure> <step> <para>Ôï Üñèñùìá <filename>geom_raid3.ko</filename> èá ðñÝðåé íá öïñôþíåôáé ðñéí ôçí ðñïóÜñôçóç ôçò óõóôïé÷ßáò. Ãéá íá öïñôþíåôáé áõôüìáôá êáôÜ ôçí åêêßíçóç ôïõ óõóôÞìáôïò, ðñïóèÝóôå ôçí ðáñáêÜôù ãñáììÞ óôï <filename>/boot/loader.conf</filename>:</para> <programlisting>geom_raid3_load="YES"</programlisting> </step> <step> <para>Èá ðñÝðåé íá ðñïóèÝóåôå ôéò ðáñáêÜôù ðëçñïöïñßåò ó÷åôéêÜ ìå ôïí ôüìï óôï áñ÷åßï <filename>/etc/fstab</filename> þóôå ç ðñïóÜñôçóç ôïõ óõóôÞìáôïò áñ÷åßùí ôçò óõóôïé÷ßáò íá ãßíåôáé áõôüìáôá êáôÜ ôç äéáäéêáóßá åêêßíçóçò ôïõ óõóôÞìáôïò:</para> <programlisting>/dev/raid3/gr0p1 /multimedia ufs rw 2 2</programlisting> </step> </procedure> </sect2> </sect1> <sect1 id="geom-ggate"> <title>ÄéêôõáêÝò ÓõóêåõÝò ìÝóù GEOM Gate</title> <para>Ôï GEOM õðïóôçñßæåé áðïìáêñõóìÝíç ÷ñÞóç óõóêåõþí, üðùò ïé óêëçñïß äßóêïé, ôá CD-ROM, ôá áñ÷åßá ê.ë.ð. ÷ñçóéìïðïéþíôáò ôá âïçèçôéêÜ ðñïãñÜììáôá ðýëçò (gate). Ç ëåéôïõñãßá åßíáé ðáñüìïéá ìå ôï <acronym>NFS</acronym>.</para> <para>Ãéá íá îåêéíÞóåôå, ðñÝðåé íá äçìéïõñãÞóåôå Ýíá áñ÷åßï exports. Ôï áñ÷åßï áõôü êáèïñßæåé ðïéïò åðéôñÝðåôáé íá áðïêôÞóåé ðñüóâáóç óôïõò êïéíü÷ñçóôïõò ðüñïõò êáé ôé åðéðÝäïõ èá åßíáé áõôÞ ç ðñüóâáóç. Ãéá ðáñÜäåéãìá, ãéá íá äéáìïéñÜóåôå ôçí ôÝôáñôç êáôÜôìçóç (slice) ôïõ ðñþôïõ äßóêïõ <acronym>SCSI</acronym>, åßíáé áñêåôü íá äçìéïõñãÞóåôå ôï ðáñáêÜôù áñ÷åßï <filename>/etc/gg.exports</filename>:</para> <programlisting>192.168.1.0/24 RW /dev/da0s4d</programlisting> <para>Ôï ðáñáðÜíù èá åðéôñÝøåé óå üëïõò ôïõò õðïëïãéóôÝò ôïõ éäéùôéêïý óáò äéêôýïõ, íá Ý÷ïõí ðñüóâáóç ìÝóù äéêôýïõ óôï óýóôçìá áñ÷åßùí ôçò êáôÜôìçóçò <devicename>da0s4d</devicename>.</para> <para>Ãéá íá äéáìïéñÜóåôå áõôÞ ôç óõóêåõÞ, âåâáéùèåßôå üôé äåí åßíáé ðñïóáñôçìÝíç ôç äåäïìÝíç óôéãìÞ, êáé îåêéíÞóôå ôï äáßìïíá åîõðçñåôçôÞ &man.ggated.8;:</para> <screen>&prompt.root; <userinput>ggated</userinput></screen> <para>Ãéá íá ðñïóáñôÞóåôå ôçí óõóêåõÞ óôï ìç÷Üíçìá ðåëÜôç, ÷ñçóéìïðïéÞóôå ôéò áêüëïõèåò åíôïëÝò:</para> <screen>&prompt.root; <userinput>ggatec create -o rw 192.168.1.1 /dev/da0s4d</userinput> ggate0 &prompt.root; <userinput>mount /dev/ggate0 /mnt</userinput></screen> <para>Áðü åäþ êáé óôï åîÞò, ìðïñåßôå íá Ý÷åôå ðñüóâáóç óôç óõóêåõÞ ìÝóù ôïõ óçìåßïõ ðñïóÜñôçóçò <filename class="directory">/mnt</filename>.</para> <note> <para>ÐñÝðåé íá ôïíéóôåß üôé ç äéáäéêáóßá èá áðïôý÷åé áí ç óõóêåõÞ åßíáé ôç äåäïìÝíç óôéãìÞ ðñïóáñôçìÝíç, åßôå óôïí åîõðçñåôçôÞ, åßôå óå ïðïéïäÞðïôå Üëëï õðïëïãéóôÞ óôï äßêôõï.</para> </note> <para>¼ôáí äåí ÷ñåéÜæåóôå ðëÝïí ôç óõóêåõÞ, ìðïñåßôå íá ôçí áðïðñïóáñôÞóåôå ìå áóöÜëåéá, ÷ñçóéìïðïéþíôáò ôçí åíôïëÞ &man.umount.8;, üðùò ãßíåôáé êáé ìå ïðïéáäÞðïôå Üëëç óõóêåõÞ äßóêïõ.</para> </sect1> <sect1 id="geom-glabel"> <title>Äçìéïõñãþíôáò ÅôéêÝôåò (Labels) óôéò ÓõóêåõÝò Äßóêùí</title> <indexterm> <primary>GEOM</primary> </indexterm> <indexterm> <primary>Disk Labels</primary> </indexterm> <para>ÊáôÜ ôç äéÜñêåéá ôçò áñ÷éêïðïßçóçò, óôçí åêêßíçóç ôïõ óõóôÞìáôïò, ï ðõñÞíáò ôïõ &os; èá äçìéïõñãÞóåé ôá áðáñáßôçôá áñ÷åßá ãéá êÜèå óõóêåõÞ ðïõ áíé÷íåýåé. ÁõôÞ ç ìÝèïäïò áíß÷íåõóçò óõóêåõþí, ìðïñåß íá äçìéïõñãÞóåé ðñïâëÞìáôá. Ãéá ðáñÜäåéãìá, ôé èá ãßíåé áí ðñïóèÝóïõìå Ýíá íÝï äßóêï <acronym>USB</acronym>; Åßíáé áñêåôÜ ðéèáíü ìéá óõóêåõÞ ìíÞìçò flash íá ðÜñåé ôï üíïìá <devicename>da0</devicename> êáé ç áñ÷éêÞ <devicename>da0</devicename> íá ìåôáêéíçèåß óôï <devicename>da1</devicename>. Áõôü èá ðñïêáëÝóåé ðñïâëÞìáôá óôçí ðñïóÜñôçóç ôùí óõóôçìÜôùí áñ÷åßùí, áí õðÜñ÷ïõí ïé áíôßóôïé÷åò êáôá÷ùñßóåéò ôïõò óôï <filename>/etc/fstab</filename>, êáé ìðïñåß áêüìá êáé íá ðáñåìðïäßóåé ôçí êáíïíéêÞ åêêßíçóç ôïõ óõóôÞìáôïò.</para> <para>Ìéá ëýóç åßíáé íá ñõèìßóåôå ôéò óõóêåõÝò <acronym>SCSI</acronym> ìå ôÝôïéï ôñüðï, þóôå ç áñßèìçóç ôïõò íá åßíáé óõíå÷üìåíç. ¸ôóé, êÜèå öïñÜ ðïõ ðñïóèÝôåôå ìéá íÝá óõóêåõÞ óôïí åëåãêôÞ <acronym>SCSI</acronym> èá åßóôå óßãïõñïò üôé èá ëÜâåé áñéèìü ðïõ äåí Ý÷åé ÷ñçóéìïðïéçèåß. ÁëëÜ ôé ãßíåôáé ìå ôéò óõóêåõÝò <acronym>USB</acronym> ðïõ ìðïñåß íá áíôéêáôáóôÞóïõí ôïí êýñéï <acronym>SCSI</acronym> äßóêï; Áõôü ìðïñåß ðñÜãìáôé íá óõìâåß, êáèþò ïé óõóêåõÝò <acronym>USB</acronym> áíé÷íåýïíôáé êáôÜ âÜóç ðñéí áðü ôïí åëåãêôÞ <acronym>SCSI</acronym>. Ìéá ëýóç åßíáé íá âÜæåôå ôéò óõóêåõÝò áõôÝò ìüíï ìåôÜ ôçí åêêßíçóç ôïõ óõóôÞìáôïò. Ìéá Üëëç ìÝèïäïò åßíáé íá ÷ñçóéìïðïéåßôå ìüíï ìéá óõóêåõÞ ôýðïõ <acronym>ATA</acronym> êáé íá ìçí êáôá÷ùñåßôå ðïôÝ ôïõò äßóêïõò <acronym>SCSI</acronym> óôï <filename>/etc/fstab</filename>.</para> <para>ÕðÜñ÷åé ùóôüóï êáëýôåñç ëýóç. ×ñçóéìïðïéþíôáò ôï âïçèçôéêü ðñüãñáììá <command>glabel</command>, Ýíáò äéá÷åéñéóôÞò Þ ÷ñÞóôçò, ìðïñåß íá áðïäþóåé åôéêÝôåò óôéò óõóêåõÝò äßóêùí êáé íá ôéò ÷ñçóéìïðïéÞóåé óôï <filename>/etc/fstab</filename>, áíôß ãéá ôá óõìâáôéêÜ ïíüìáôá óõóêåõþí. ÅðåéäÞ ç <command>glabel</command> áðïèçêåýåé ôçí åôéêÝôá óôïí ôåëåõôáßï ôïìÝá ôïõ êÜèå ðáñï÷Ýá (óõóêåõÞò äßóêïõ), ç åôéêÝôá äéáôçñåßôáé êáé ìåôÜ áðü ôçí åðáíåêêßíçóç ôïõ óõóôÞìáôïò. ×ñçóéìïðïéþíôáò áõôÞ ôçí åôéêÝôá ùò üíïìá óõóêåõÞò, èá ìðïñåßôå íá ðñïóáñôÞóåôå ðÜíôá ôï óýóôçìá áñ÷åßùí, Üó÷åôá ìå ôï ðñáãìáôéêü üíïìá óõóêåõÞò ðïõ Ý÷åé áðïäïèåß óôï äßóêï.</para> <note> <para>Äåí ÷ñåéÜæåôáé öõóéêÜ íá ôïíßóïõìå üôé áõôÞ ç åôéêÝôá èá ðñÝðåé íá åßíáé ìüíéìç. Ôï âïçèçôéêü ðñüãñáììá <command>glabel</command> ìðïñåß íá äçìéïõñãÞóåé ôüóï ìüíéìåò üóï êáé ðñïóùñéíÝò åôéêÝôåò. Ìüíï ïé ìüíéìåò åôéêÝôåò äéáôçñïýíôáé áíÝðáöåò ìåôÜ áðü ìéá åðáíåêêßíçóç. Äåßôå ôç óåëßäá manual ôçò &man.glabel.8; ãéá ðåñéóóüôåñåò ðëçñïöïñßåò ó÷åôéêÜ ìå ôá åßäç ôùí åôéêåôþí.</para> </note> <sect2> <title>Åßäç Åôéêåôþí êáé Ðáñáäåßãìáôá</title> <para>ÕðÜñ÷ïõí äýï ôýðïé åôéêåôþí, ç ãåíéêÞ åôéêÝôá êáé ç åôéêÝôá óõóôÞìáôïò áñ÷åßùí. Ïé åôéêÝôåò ìðïñåß íá åßíáé ðñïóùñéíÝò Þ ìüíéìåò. Ïé ìüíéìåò åôéêÝôåò ìðïñïýí íá äçìéïõñãçèïýí ìå ôéò åíôïëÝò &man.tunefs.8; Þ &man.newfs.8;. Óôçí ðåñßðôùóç áõôÞ, èá äçìéïõñãçèïýí óå Ýíá õðïêáôÜëïãï ôïõ <filename class="directory">/dev</filename>. Ãéá ðáñÜäåéãìá, ïé åôéêÝôåò óõóêåõþí ìå óýóôçìá áñ÷åßùí <acronym>UFS</acronym>2, èá äçìéïõñãçèïýí óôïí êáôÜëïãï <filename class="directory">/dev/ufs</filename>. Ìüíéìåò åôéêÝôåò ìðïñïýí åðßóçò íá äçìéïõñãçèïýí ìå ÷ñÞóç ôçò åíôïëÞò <command>glabel label</command>. Ïé åôéêÝôåò áõôÝò äåí åîáñôþíôáé áðü ôï óýóôçìá áñ÷åßùí, êáé äçìéïõñãïýíôáé óôïí êáôÜëïãï <filename class="directory">/dev/label</filename>.</para> <para>Ïé åôéêÝôåò ðñïóùñéíïý ôýðïõ, ÷Üíïíôáé óå êÜèå åðáíåêêßíçóç ôïõ óõóôÞìáôïò. Ïé åôéêÝôåò áõôÝò äçìéïõñãïýíôáé óôïí êáôÜëïãï <filename class="directory">/dev/label</filename> êáé åßíáé ôÝëåéåò ãéá ðåéñáìáôéóìïýò. Ìðïñåßôå íá äçìéïõñãÞóåôå ðñïóùñéíÝò åôéêÝôåò ìå ôçí åíôïëÞ <command>glabel create</command>. Ãéá ðåñéóóüôåñåò ðëçñïöïñßåò, äéáâÜóôå ôç óåëßäá manual ôçò &man.glabel.8;.</para> <!-- XXXTR: How do you create a file system label without running newfs or when there is no newfs (e.g.: cd9660)? --> <para>Ãéá íá äçìéïõñãÞóåôå ìéá ìüíéìç åôéêÝôá ãéá Ýíá óýóôçìá áñ÷åßùí <acronym>UFS</acronym>2, ÷ùñßò íá êáôáóôñÝøåôå ôá äåäïìÝíá ðïõ ðåñéÝ÷åé, ÷ñçóéìïðïéÞóôå ôçí áêüëïõèç åíôïëÞ:</para> <screen>&prompt.root; <userinput>tunefs -L <replaceable>home</replaceable> <replaceable>/dev/da3</replaceable></userinput></screen> <warning> <para>Áí ôï óýóôçìá áñ÷åßùí åßíáé ãåìÜôï, ç ðáñáðÜíù åíôïëÞ ìðïñåß íá ðñïêáëÝóåé êáôáóôñïöÞ äåäïìÝíùí. Ùóôüóï, áí ôï óýóôçìá áñ÷åßùí åßíáé ãåìÜôï, óôü÷ïò óáò èá ðñÝðåé íá åßíáé íá äéáãñÜøåôå ôá áñ÷åßá ðïõ äåí ÷ñçóéìïðïéïýíôáé, êáé ü÷é íá ðñïóèÝôåôå åôéêÝôåò.</para> </warning> <para>Èá ðñÝðåé ôþñá íá õðÜñ÷åé ìéá åôéêÝôá óôïí êáôÜëïãï <filename class="directory">/dev/ufs</filename> ç ïðïßá ìðïñåß íá ðñïóôåèåß óôï <filename>/etc/fstab</filename>:</para> <programlisting>/dev/ufs/home /home ufs rw 2 2</programlisting> <note> <para>Ôï óýóôçìá áñ÷åßùí äåí ðñÝðåé íá åßíáé ðñïóáñôçìÝíï êáèþò åêôåëåßôå ôçí åíôïëÞ <command>tunefs</command>.</para> </note> <para>Ìðïñåßôå ôþñá íá ðñïóáñôÞóåôå ôï óýóôçìá áñ÷åßùí ìå ôï óõíÞèç ôñüðï:</para> <screen>&prompt.root; <userinput>mount /home</userinput></screen> <para>Áðü åäþ êáé ðÝñá, êáé üóï ôï Üñèñùìá <filename>geom_label.ko</filename> öïñôþíåôáé óôïí ðõñÞíá ìÝóù ôïõ <filename>/boot/loader.conf</filename> Þ åöüóïí Ý÷åôå âÜëåé ôçí åðéëïãÞ <literal>GEOM_LABEL</literal> óôïí ðõñÞíá óáò, áêüìá êáé áí ôï üíïìá ôçò óõóêåõÞò áëëÜîåé, äåí èá Ý÷åé êáìéÜ äõóìåíÞ åðßäñáóç óôï óýóôçìá óáò.</para> <para>Ìðïñåßôå åðßóçò íá äçìéïõñãÞóåôå óõóôÞìáôá áñ÷åßùí ìå ðñïåðéëåãìÝíç åôéêÝôá, ÷ñçóéìïðïéþíôáò ôçí åðéëïãÞ <option>-L</option> óôçí åíôïëÞ <command>newfs</command>. Äåßôå ôçí óåëßäá manual ôïõ &man.newfs.8; ãéá ðåñéóóüôåñåò ðëçñïöïñßåò.</para> <para>Ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå ôçí ðáñáêÜôù åíôïëÞ ãéá íá êáôáóôñÝøåôå ìéá åôéêÝôá:</para> <screen>&prompt.root; <userinput>glabel destroy home</userinput></screen> <para>Ôï åðüìåíï ðáñÜäåéãìá äåß÷íåé ðùò ìðïñïýí íá äïèïýí åôéêÝôåò óôéò êáôáôìÞóåéò ôïõ äßóêïõ åêêßíçóçò.</para> <example> <title>Äçìéïõñãßá Åôéêåôþí óôéò ÊáôáôìÞóåéò ôïõ Äßóêïõ Åêêßíçóçò</title> <para>Äçìéïõñãþíôáò ìüíéìåò åôéêÝôåò óôéò êáôáôìÞóåéò ôïõ äßóêïõ åêêßíçóçò, ôï óýóôçìá óáò èá óõíå÷ßóåé íá åêêéíåß êáíïíéêÜ áêüìá êáé áí ìåôáöÝñåôå ôï äßóêï óå Üëëï åëåãêôÞ Þ áêüìá êáé óå äéáöïñåôéêü óýóôçìá. Óôï ðáñÜäåéãìá ìáò, èåùñïýìå üôé ÷ñçóéìïðïéåßôáé Ýíáò äßóêïò <acronym>ATA</acronym>, ï ïðïßïò áíáãíùñßæåôáé áðü ôï óýóôçìá ùò <devicename>ad0</devicename>. Èåùñïýìå åðßóçò üôé ÷ñçóéìïðïéåßôáé ç óõíçèéóìÝíç äéÜôáîç êáôáôìÞóåùí ôïõ &os;, ðïõ ðåñéëáìâÜíåé ôéò êáôáôìÞóåéò <filename class="directory">/</filename>, <filename class="directory">/var</filename>, <filename class="directory">/usr</filename> êáé <filename class="directory">/tmp</filename> üðùò åðßóçò êáé ìéá êáôÜôìçóç swap.</para> <para>ÅðáíåêêéíÞóôå ôï óýóôçìá, êáé üôáí åìöáíéóôåß ç ðñïôñïðÞ ôïõ &man.loader.8;, ðéÝóôå ôï <keycap>4</keycap> ãéá íá ðñáãìáôïðïéçèåß åêêßíçóç óå êáôÜóôáóç åíüò ÷ñÞóôç. ¸ðåéôá, äþóôå ôéò áêüëïõèåò åíôïëÝò:</para> <screen>&prompt.root; <userinput>glabel label rootfs /dev/ad0s1a</userinput> GEOM_LABEL: Label for provider /dev/ad0s1a is label/rootfs &prompt.root; <userinput>glabel label var /dev/ad0s1d</userinput> GEOM_LABEL: Label for provider /dev/ad0s1d is label/var &prompt.root; <userinput>glabel label usr /dev/ad0s1f</userinput> GEOM_LABEL: Label for provider /dev/ad0s1f is label/usr &prompt.root; <userinput>glabel label tmp /dev/ad0s1e</userinput> GEOM_LABEL: Label for provider /dev/ad0s1e is label/tmp &prompt.root; <userinput>glabel label swap /dev/ad0s1b</userinput> GEOM_LABEL: Label for provider /dev/ad0s1b is label/swap &prompt.root; <userinput>exit</userinput></screen> <para>Ç åêêßíçóç èá óõíå÷éóôåß êáíïíéêÜ êáé ôï óýóôçìá èá Ýëèåé óå êáôÜóôáóç ðïëëáðëþí ÷ñçóôþí (multi-user). ÌåôÜ ôï ôÝëïò ôçò åêêßíçóçò, åðåîåñãáóôåßôå ôï áñ÷åßï <filename>/etc/fstab</filename> êáé áëëÜîôå ôá óõìâáôéêÜ ïíüìáôá óõóêåõþí ìå ôéò áíôßóôïé÷åò åôéêÝôåò. Ôï ôåëéêü áñ÷åßï <filename>/etc/fstab</filename> èá ìïéÜæåé ìå ôï ðáñáêÜôù:</para> <programlisting># Device Mountpoint FStype Options Dump Pass# /dev/label/swap none swap sw 0 0 /dev/label/rootfs / ufs rw 1 1 /dev/label/tmp /tmp ufs rw 2 2 /dev/label/usr /usr ufs rw 2 2 /dev/label/var /var ufs rw 2 2</programlisting> <para>Ìðïñåßôå ôþñá íá åðáíåêêéíÞóåôå ôï óýóôçìá. Áí üëá ðÞãáí êáëÜ, ç åêêßíçóç èá åßíáé êáíïíéêÞ, êáé ç åíôïëÞ <command>mount</command> èá äåßîåé:</para> <screen>&prompt.root; <userinput>mount</userinput> /dev/label/rootfs on / (ufs, local) devfs on /dev (devfs, local) /dev/label/tmp on /tmp (ufs, local, soft-updates) /dev/label/usr on /usr (ufs, local, soft-updates) /dev/label/var on /var (ufs, local, soft-updates)</screen> </example> <para>Îåêéíþíôáò áðü ôï &os; 7.2, ôï &man.glabel.8; õðïóôçñßæåé Ýíá íÝï åßäïò åôéêÝôáò ãéá óõóôÞìáôá áñ÷åßùí <acronym>UFS</acronym>, ðïõ âáóßæåôáé óå Ýíá ìïíáäéáßï áíáãíùñéóôéêü ôïõò, ôï <literal>ufsid</literal>. Ïé åôéêÝôåò áõôÝò âñßóêïíôáé óôïí êáôÜëïãï <filename class="directory">/dev/ufsid</filename>, äçìéïõñãïýíôáé áõôüìáôá êáôÜ ôçí åêêßíçóç ôïõ óõóôÞìáôïò êáé åßíáé äõíáôüí íá ÷ñçóéìïðïéçèïýí ãéá ôçí ðñïóÜñôçóç êáôáôìÞóåùí ìÝóù ôïõ <filename>/etc/fstab</filename>. Ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå ôçí åíôïëÞ <command>glabel status</command> ãéá íá ëÜâåôå ìéá ëßóôá ôùí óõóôçìÜôùí áñ÷åßùí ìå ôéò áíôßóôïé÷åò <literal>ufsid</literal> åôéêÝôåò ôïõò:</para> <screen>&prompt.user; <userinput>glabel status</userinput> Name Status Components ufsid/486b6fc38d330916 N/A ad4s1d ufsid/486b6fc16926168e N/A ad4s1f</screen> <para>Óôï ðáñáðÜíù ðáñÜäåéãìá, ôï <devicename>ad4s1d</devicename> áíôéðñïóùðåýåé ôï óýóôçìá áñ÷åßùí <filename class="directory">/var</filename>, åíþ ôï <devicename>ad4s1f</devicename> áíôéðñïóùðåýåé ôï óýóôçìá áñ÷åßùí <filename class="directory">/usr</filename>. ×ñçóéìïðïéþíôáò ôéò ôéìÝò <literal>ufsid</literal> ðïõ öáßíïíôáé, ç ðñïóÜñôçóç áõôþí ôùí êáôáôìÞóåùí ìðïñåß íá ãßíåé ìå ôéò ðáñáêÜôù êáôá÷ùñßóåéò óôï <filename>/etc/fstab</filename>:</para> <programlisting>/dev/ufsid/486b6fc38d330916 /var ufs rw 2 2 /dev/ufsid/486b6fc16926168e /usr ufs rw 2 2</programlisting> <para>ÏðïéáäÞðïôå êáôÜôìçóç äéáèÝôåé áíáãíùñéóôéêü <literal>ufsid</literal> ìðïñåß íá ðñïóáñôçèåß ìå ôïí ßäéï ôñüðï, ÷ùñßò íá õðÜñ÷åé ðëÝïí áíÜãêç íá äçìéïõñãçèåß ìüíéìç åôéêÝôá ÷åéñïêßíçôá. Ç ðñïóÜñôçóç ìÝóù åôéêÝôáò <literal>ufsid</literal>, ðáñÝ÷åé ôï ðëåïíÝêôçìá ôçò áíåîáñôçóßáò áðü ôï üíïìá óõóêåõÞò, ôï ïðïßï ðáñÝ÷ïõí êáé ïé ìüíéìåò åôéêÝôåò.</para> </sect2> </sect1> <sect1 id="geom-gjournal"> <title>UFS Journaling ÌÝóù GEOM</title> <indexterm> <primary>GEOM</primary> </indexterm> <indexterm> <primary>Journaling</primary> </indexterm> <para>Óôçí Ýêäïóç 7.0 ôïõ &os; õëïðïéåßôáé ãéá ðñþôç öïñÜ ç íÝá (êáé áðü ðïëëïýò áíáìåíüìåíç) äõíáôüôçôá ãéá ÷ñÞóç çìåñïëïãßïõ (journal) óôï óýóôçìá áñ÷åßùí. Ç õëïðïßçóç ðáñÝ÷åôáé ìÝóù ôïõ õðïóõóôÞìáôïò <acronym>GEOM</acronym> êáé ìðïñåß íá ñõèìéóôåß åýêïëá ìÝóù ôïõ âïçèçôéêïý ðñïãñÜììáôïò &man.gjournal.8;.</para> <para>Ôé åßíáé ôï journaling; Ôï journaling áðïèçêåýåé óå Ýíá áñ÷åßï êáôáãñáöÞò (log, çìåñïëüãéï, Þ áðëþò journal) ôéò óõíáëëáãÝò ôïõ óõóôÞìáôïò áñ÷åßùí. ÐáñÜäåéãìá óõíáëëáãÞò åßíáé ïé áëëáãÝò ðïõ áðáéôïýíôáé ãéá ìéá ðëÞñç äéáäéêáóßá åããñáöÞò óôï äßóêï. ¸ôóé, óôï log áðïèçêåýïíôáé ïé áëëáãÝò óôá ìåôá-äåäïìÝíá (meta-data) êáé óôá ßäéá ôá áñ÷åßá, ðñéí ãßíåé ç ôåëéêÞ (êáíïíéêÞ) áðïèÞêåõóç ôïõò óôï äßóêï. Ôï áñ÷åßï êáôáãñáöÞò ìðïñåß áñãüôåñá íá îáíá÷ñçóéìïðïéçèåß þóôå ç óõíáëëáãÞ íá ãßíåé áðü ôçí áñ÷Þ, åîáóöáëßæïíôáò ìå áõôü ôïí ôñüðï üôé ôï óýóôçìá áñ÷åßùí èá ðáñáìåßíåé óå óôáèåñÞ êáôÜóôáóç.</para> <para>Ðñüêåéôáé ïõóéáóôéêÜ ãéá ìéá áêüìá ìÝèïäï ðñïöýëáîçò áðü áðþëåéá äåäïìÝíùí êáé áóõíÝðåéåò óôï óýóôçìá áñ÷åßùí. Óå áíôßèåóç ìå ôá Soft Updates ôá ïðïßá åíôïðßæïõí êáé õðï÷ñåþíïõí ôçí Üìåóç åããñáöÞ ôùí ìåôá-äåäïìÝíùí, êáé ôùí óôéãìéïôýðùí (Snapshots) ôá ïðïßá åßíáé åéêüíåò ôïõ óõóôÞìáôïò áñ÷åßùí óå ìéá äåäïìÝíç óôéãìÞ, ôï log áðïèçêåýåôáé óå ÷þñï ðïõ Ý÷åé åê÷ùñçèåß åéäéêÜ ãéá áõôü ôï óêïðü, êáé óå ìåñéêÝò ðåñéðôþóåéò ìðïñåß íá áðïèçêåýåôáé óå åíôåëþò äéáöïñåôéêü äßóêï.</para> <para>Óå áíôßèåóç ìå õëïðïéÞóåéò journaling óå Üëëá óõóôÞìáôá áñ÷åßùí, ç ìÝèïäïò <command>gjournal</command> âáóßæåôáé óå blocks, êáé äåí õëïðïéåßôáé ùò ìÝñïò ôïõ óõóôÞìáôïò áñ÷åßùí, áëëÜ ìüíï ùò åðÝêôáóç ôïõ <acronym>GEOM</acronym>.</para> <para>Ãéá åíåñãïðïßçóç ôçò õðïóôÞñéîçò <command>gjournal</command>, èá ðñÝðåé íá õðÜñ÷åé ç ðáñáêÜôù åðéëïãÞ óôïí ðõñÞíá ôïõ &os;. Ç åðéëïãÞ áõôÞ õðÜñ÷åé áðü ðñïåðéëïãÞ óôçí Ýêäïóç 7.0 êáé üëåò ôéò íåüôåñåò åêäüóåéò ôïõ &os;.</para> <programlisting>options UFS_GJOURNAL</programlisting> <para>Áí ÷ñåéÜæåôáé íá ðñïóáñôþíôáé ôüìïé ìå journaling êáôÜ ôçí åêêßíçóç, èá ðñÝðåé åðßóçò íá öïñôþíåôáé áõôüìáôá êáé ôï Üñèñùìá ðõñÞíá <filename>geom_journal.ko</filename>. Ãéá ôï óêïðü áõôü, ðñïóèÝóôå ôçí ðáñáêÜôù ãñáììÞ óôï áñ÷åßï <filename>/boot/loader.conf</filename>:</para> <programlisting>geom_journal_load="YES"</programlisting> <para>ÅíáëëáêôéêÜ, ç ëåéôïõñãßá áõôÞ ìðïñåß íá åíóùìáôùèåß óå Ýíá ðñïóáñìïóìÝíï ðõñÞíá, ìå ôçí ðñïóèÞêç ôçò ðáñáêÜôù ãñáììÞò óôï áíôßóôïé÷ï áñ÷åßï ñõèìßóåùí:</para> <programlisting>options GEOM_JOURNAL</programlisting> <para>Ç äçìéïõñãßá journal óå Ýíá åëåýèåñï óýóôçìá áñ÷åßùí, ìðïñåß ôþñá íá ãßíåé ìå ôá áêüëïõèá âÞìáôá, èåùñþíôáò üôé ç óõóêåõÞ <devicename>da4</devicename> åßíáé Ýíáò íÝïò äßóêïò <acronym>SCSI</acronym>:</para> <screen>&prompt.root; <userinput>gjournal load</userinput> &prompt.root; <userinput>gjournal label /dev/da4</userinput></screen> <para>Óôï óçìåßï áõôü èá õðÜñ÷åé ìéá óõóêåõÞ <devicename>/dev/da4</devicename> êáèþò êáé ìéá óõóêåõÞ <devicename>/dev/da4.journal</devicename>. Óôç óõóêåõÞ áõôÞ ìðïñåßôå ôþñá íá äçìéïõñãÞóåôå óýóôçìá áñ÷åßùí:</para> <screen>&prompt.root; <userinput>newfs -O 2 -J /dev/da4.journal</userinput></screen> <para>Ç ðáñáðÜíù åíôïëÞ èá äçìéïõñãÞóåé Ýíá óýóôçìá áñ÷åßùí <acronym>UFS</acronym>2 óôç óõóêåõÞ <devicename>/dev/da4.journal</devicename>, ç ïðïßá Ý÷åé Þäç õðïóôÞñéîç ãéá journaling.</para> <para>Ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå ôçí åíôïëÞ <command>mount</command> ãéá íá ðñïóáñôÞóåôå ôçí óõóêåõÞ óôï åðéèõìçôü óçìåßï ðñïóÜñôçóçò, üðùò öáßíåôáé ðáñáêÜôù:</para> <screen>&prompt.root; <userinput>mount /dev/da4.journal <replaceable>/mnt</replaceable></userinput></screen> <note> <para>Óôçí ðåñßðôùóç áñêåôþí slice, èá äçìéïõñãçèåß Ýíá journal ãéá êÜèå åðéìÝñïõò slice. Ãéá ðáñÜäåéãìá, áí õðÜñ÷ïõí ôá slices <devicename>ad4s1</devicename> êáé <devicename>ad4s2</devicename> ôüôå ôï <command>gjournal</command> èá äçìéïõñãÞóåé ôéò óõóêåõÝò <devicename>ad4s1.journal</devicename> êáé <devicename>ad4s2.journal</devicename>.</para> </note> <para>Ãéá êáëýôåñç áðüäïóç, ßóùò åßíáé åðéèõìçôÞ ç ôÞñçóç ôïõ journal óå äéáöïñåôéêü äßóêï. Ãéá ôéò ðåñéðôþóåéò áõôÝò, ï ðáñï÷Ýáò çìåñïëïãßïõ (ç óõóêåõÞ äßóêïõ ðïõ èá ðåñéÝ÷åé ôï journal) ðñÝðåé íá äßíåôáé ùò ðáñÜìåôñïò óôçí åíôïëÞ, áìÝóùò ìåôÜ ôç óõóêåõÞ äßóêïõ óôçí ïðïßá èá åíåñãïðïéçèåß ôï journaling. Ìðïñåßôå åðßóçò íá åíåñãïðïéÞóåôå ôï journaling óå õðÜñ÷ïíôá óõóôÞìáôá áñ÷åßùí ÷ñçóéìïðïéþíôáò ôçí åíôïëÞ <command>tunefs</command>. Ùóôüóï, èá ðñÝðåé íá êñáôÞóåôå áíôßãñáöï áóöáëåßáò ôùí áñ÷åßùí óáò, ðñéí åðé÷åéñÞóåôå íá êÜíåôå áëëáãÝò óå Ýíá õðÜñ÷ïí óýóôçìá áñ÷åßùí. Óôéò ðåñéóóüôåñåò ðåñéðôþóåéò, ç <command>tunefs</command> èá áðïôý÷åé áí äåí ìðïñÝóåé íá äçìéïõñãÞóåé ôï journal, áëëÜ áõôü äåí óáò ðñïóôáôåýåé áðü áðþëåéá äåäïìÝíùí ðïõ ìðïñåß íá ðñïÝëèåé áðü êáêÞ ÷ñÞóç ôçò <command>tunefs</command>.</para> <para>Åßíáé åðßóçò äõíáôüí íá ÷ñçóéìïðïéçèåß journaling óôïí äßóêï åêêßíçóçò åíüò óõóôÞìáôïò &os;. ÄéáâÜóôå ôï Üñèñï <ulink url="&url.articles.gjournal-desktop;">Õëïðïßçóç ôïõ UFS Journaling óå Ýíá Desktop ÕðïëïãéóôÞ</ulink> ãéá ëåðôïìåñåßò ïäçãßåò.</para> </sect1> </chapter>