<?xml version="1.0" encoding="ISO-8859-7" standalone="no"?> <!-- Ôï Åã÷åéñßäéï ôïõ FreeBSD: Ï Äéá÷åéñéóôÞò Ôüìùí Vinum ÃñÜöôçêå áðü ôïí: Greg Lehey (grog at lemis dot com) Åíóùìáôþèçêå óôï Åã÷åéñßäéï ôïõ FreeBSD áðü ôïõò: Hiten Pandya <hmp@FreeBSD.org> Tom Rhodes <trhodes@FreeBSD.org> $FreeBSD$ %SOURCE% en_US.ISO8859-1/books/handbook/vinum/chapter.sgml %SRCID% 38826 --> <chapter id="vinum-vinum"> <chapterinfo> <authorgroup> <author> <firstname>Greg</firstname> <surname>Lehey</surname> <contrib>Áñ÷éêÞ óõíåéóöïñÜ ôïõ </contrib> </author> </authorgroup> </chapterinfo> <title>Ï Äéá÷åéñéóôÞò Ôüìùí Vinum</title> <sect1 id="vinum-synopsis"> <title>Óýíïøç</title> <para>ÏôéäÞðïôå äßóêïõò êáé áí Ý÷åôå, ðÜíôá õðÜñ÷ïõí ðéèáíÜ ðñïâëÞìáôá:</para> <itemizedlist> <listitem> <para>Ìðïñåß íá åßíáé ðïëý ìéêñïß.</para> </listitem> <listitem> <para>Ìðïñåß íá åßíáé ðïëý áñãïß.</para> </listitem> <listitem> <para>Ìðïñåß íá ìçí åßíáé áñêåôÜ áîéüðéóôïé.</para> </listitem> </itemizedlist> <para>Ãéá ôá ðñïâëÞìáôá áõôÜ, Ý÷ïõí ðñïôáèåß êáé õëïðïéçèåß äéÜöïñåò ëýóåéò. ¸íáò óõ÷íÜ ÷ñçóéìïðïéïýìåíïò ôñüðïò ðñïóôáóßáò, åßíáé ìå ôçí ÷ñÞóç ðïëëáðëþí êáé ïñéóìÝíåò öïñÝò ðåñéôôþí (redundant) äßóêùí. Åêôüò áðü ôçí õðïóôÞñéîç ðïõ ðáñÝ÷åôáé ãéá óõóêåõÝò (êÜñôåò êáé åëåãêôÝò) hardware RAID, ôï âáóéêü óýóôçìá ôïõ &os; ðåñéëáìâÜíåé ôï äéá÷åéñéóôÞ ôüìùí (volume manager) Vinum, Ýíá ðñüãñáììá ïäÞãçóçò ôýðïõ ìðëïê ôï ïðïßï õëïðïéåß åéêïíéêïýò äßóêïõò. Ôï <emphasis>Vinum</emphasis> áðïêáëåßôáé êáé <emphasis>Äéá÷åéñéóôÞò Ôüìùí</emphasis>, êáé åßíáé Ýíáò ïäçãüò åéêïíéêþí äßóêùí ðïõ áíôéìåôùðßæåé ôá ðáñáðÜíù ôñßá ðñïâëÞìáôá. Ôï Vinum ðáñÝ÷åé êáëýôåñç åõåëéîßá, áðüäïóç êáé áîéïðéóôßá óå ó÷Ýóç ìå ôá ðáñáäïóéáêÜ óõóôÞìáôá áðïèÞêåõóçò, êáé õëïðïéåß ôá ìïíôÝëá RAID-0, RAID-1 êáé RAID-5, ôüóï ìåìïíùìÝíá, üóï êáé óå óõíäõáóìü ìåôáîý ôïõò.</para> <para>Ôï êåöÜëáéï áõôü ðáñÝ÷åé ìéá åðéóêüðçóç ôùí ðéèáíþí ðñïâëçìÜôùí ôùí ðáñáäïóéáêþí óõóôçìÜôùí áðïèÞêåõóçò, êáé ìéá åéóáãùãÞ óôï Äéá÷åéñéóôÞ Ôüìùí Vinum.</para> <note> <para>Îåêéíþíôáò áðü ôï &os; 5 êáé ìåôÜ, ôï Vinum îáíáãñÜöôçêå þóôå íá åíóùìáôùèåß óôçí áñ÷éôåêôïíéêÞ GEOM (<xref linkend="GEOM"/>), äéáôçñþíôáò ùóôüóï ôéò áñ÷éêÝò éäÝåò, ïñïëïãßá, êáé ôç ìïñöÞ ôùí ìåôá-äåäïìÝíùí (metadata) ðïõ áðïèçêåýïíôáé óôïí äßóêï. Ç íÝá áõôÞ åêäï÷Þ ïíïìÜæåôáé <emphasis>gvinum</emphasis> (áðü ôï <emphasis>GEOM vinum</emphasis>). Ôï áêüëïõèï êåßìåíï áíáöÝñåôáé óõíÞèùò óôï <emphasis>Vinum</emphasis> ùò áöçñçìÝíç Ýííïéá, Üó÷åôá ìå ôéò ëåðôïìÝñåéåò ôçò õëïðïßçóçò. ¼ëåò ïé åíôïëÝò èá ðñÝðåé ôþñá íá êáëïýíôáé ìå ôç ÷ñÞóç ôçò <command>gvinum</command>, ôï Üñèñùìá ðõñÞíá (kernel module) Ý÷åé ìåôïíïìáóôåß óå <filename>geom_vinum.ko</filename> áðü <filename>vinum.ko</filename>, êáé üëá ôá áñ÷åßá óõóêåõþí âñßóêïíôáé óôïí êáôÜëïãï <filename class="directory">/dev/gvinum</filename> áíôß ãéá <filename class="directory">/dev/vinum</filename>. Áðü ôï &os; 6 êáé ìåôÜ, ç ðáëéÜ õëïðïßçóç ôïõ Vinum äåí ðåñéëáìâÜíåôáé ðëÝïí óôï âáóéêü óýóôçìá.</para> </note> </sect1> <sect1 id="vinum-intro"> <title>Ïé Äßóêïé Åßíáé Ðïëý Ìéêñïß</title> <indexterm><primary>Vinum</primary></indexterm> <indexterm><primary>RAID</primary> <secondary>software</secondary></indexterm> <para>Ïé äßóêïé ãßíïíôáé ïëïÝíá êáé ìåãáëýôåñïé, áëëÜ ìå ôïí ßäéï ñõèìü áõîÜíïíôáé åðßóçò êáé ïé áðáéôÞóåéò ìáò óå áðïèçêåõôéêü ÷þñï. ÐïëëÝò öïñÝò èá âñåèåßôå óå èÝóç íá ÷ñåéÜæåóôå Ýíá óýóôçìá áñ÷åßùí ìåãáëýôåñï áðü ôïõò äßóêïõò ðïõ Ý÷åôå äéáèÝóéìïõò. Óßãïõñá ôï ðñüâëçìá áõôü äåí åßíáé ôüóï Ýíôïíï üóï ðñéí äÝêá ÷ñüíéá, áëëÜ åîáêïëïõèåß íá õðÜñ÷åé. ÌåñéêÜ óõóôÞìáôá åðéëýïõí áõôü ôï ðñüâëçìá, äçìéïõñãþíôáò ìéá åéêïíéêÞ óõóêåõÞ ðïõ áðïèçêåýåé ôá äåäïìÝíá óå Ýíá áñéèìü äéáêñéôþí äßóêùí.</para> </sect1> <sect1 id="vinum-access-bottlenecks"> <title>ÊáèõóôåñÞóåéò Ðñüóâáóçò</title> <para>Óôá ìïíôÝñíá óõóôÞìáôá, õðÜñ÷åé óõ÷íÜ áíÜãêç ðñüóâáóçò äåäïìÝíùí áðü ðïëëÝò äéåñãáóßåò ôáõôü÷ñïíá. Ãéá ðáñÜäåéãìá, ìåãÜëïé åîõðçñåôçôÝò FTP Þ HTTP ìðïñåß íá Ý÷ïõí áíÜ ðÜóá óôéãìÞ ÷éëéÜäåò ôáõôü÷ñïíåò åîùôåñéêÝò óõíäÝóåéò êáé íá äéáèÝôïõí ðïëëáðëÝò äéåðáöÝò 100 Mbit/s ïé ïðïßåò îåðåñíÜíå êáôÜ ðïëý ôéò äõíáôüôçôåò ìåôáöïñÜò äåäïìÝíùí ôùí ðåñéóóüôåñùí óêëçñþí äßóêùí.</para> <para>Ôá ôñÝ÷ïíôá ìïíôÝëá óêëçñþí äßóêùí ìðïñïýí íá ìåôáöÝñïõí äåäïìÝíá óåéñéáêÜ ìå ôá÷ýôçôá ìÝ÷ñé êáé 70 MB/s, áëëÜ ç ôéìÞ áõôÞ Ý÷åé ìéêñÞ óçìáóßá óå Ýíá ðåñéâÜëëïí üðïõ ðïëëÝò áíåîÜñôçôåò äéåñãáóßåò ÷ñåéÜæïíôáé ðñüóâáóç óôïí ßäéï äßóêï. Óå ôÝôïéåò ðåñéðôþóåéò, êÜèå äéåñãáóßá ìðïñåß íá åðéôý÷åé ìüíï Ýíá ìéêñü ðïóïóôü ôçò ìÝãéóôçò áõôÞò áðüäïóçò. Åßíáé ðéï åíäéáöÝñïí íá äïýìå ôï ðñüâëçìá áðü ôçí ðëåõñÜ ôïõ õðïóõóôÞìáôïò äßóêùí: ï óçìáíôéêüò ðáñÜãïíôáò åßíáé ï öüñôïò óôïí ïðïßï õðïâÜëëåôáé ôï õðïóýóôçìá êáôÜ ôç äéÜñêåéá ìéáò ìåôáöïñÜò. Ìå Üëëá ëüãéá, ï ÷ñüíïò ðïõ ðáñáìÝíïõí áðáó÷ïëçìÝíïé ïé äßóêïé åîáéôßáò ôçò ìåôáöïñÜò.</para> <para>Óå êÜèå ìåôáöïñÜ äåäïìÝíùí, ï äßóêïò èá ðñÝðåé ðñþôá íá ôïðïèåôÞóåé ôéò êåöáëÝò óôï óùóôü óçìåßï, íá ðåñéìÝíåé íá ðåñÜóåé ï ðñþôïò ôïìÝáò êÜôù áðü ôçí êåöáëÞ áíÜãíùóçò, êáé Ýðåéôá íá åêôåëÝóåé ôç ìåôáöïñÜ. Ïé åíÝñãåéåò áõôÝò ìðïñïýí íá èåùñçèïýí áôïìéêÝò: äåí Ý÷åé íüçìá íá ðñïóðáèÞóïõìå íá ôéò äéáêüøïõìå.</para> <para><anchor id="vinum-latency"/> Áò èåùñÞóïõìå ìéá ôõðéêÞ ìåôáöïñÜ ðåñßðïõ 10 kB. Ç ôñÝ÷ïõóá ãåíéÜ äßóêùí õøçëÞò áðüäïóçò ìðïñåß íá ôïðïèåôÞóåé ôéò êåöáëÝò óôç óùóôÞ èÝóç óå ðåñßðïõ 3.5 ms. Ïé ðéï ãñÞãïñïé äßóêïé Ý÷ïõí ôá÷ýôçôá ðåñéóôñïöÞò 15.000 óôñïöÝò ôï ëåðôü, Ýôóé ï ìÝóïò ÷ñüíïò êáèõóôÝñçóçò ðåñéóôñïöÞò (ìéóÞ ðåñéóôñïöÞ) åßíáé 2 ms. Ìå 70 MB/s, ç ìåôáöïñÜ áõôÞ êáè' áõôÞ èá ÷ñåéáóôåß ðåñßðïõ 150 μs, ó÷åäüí ôßðïôá óå ó÷Ýóç ìå ôï ÷ñüíï ðïõ ÷ñåéÜæåôáé ãéá ôçí ôïðïèÝôçóç ôçò êåöáëÞò óôï óùóôü óçìåßï. Óôçí ðåñßðôùóç áõôÞ, ï ðñáãìáôéêüò ñõèìüò ìåôáöïñÜò ðÝöôåé óå ëßãï ðåñéóóüôåñï áðü Ýíá 1 ÌÂ/s êáé åßíáé åìöáíÝò üôé åîáñôÜôáé óå ìåãÜëï âáèìü áðü ôï ìÝãåèïò ôùí äåäïìÝíùí ðïõ ìåôáöÝñïíôáé.</para> <para>Ç ðáñáäïóéáêÞ êáé ðñïöáíÞò ëýóç óå áõôü ôï ðñüâëçìá, åßíáé íá ðñïóèÝóïõìå <quote>ðåñéóóüôåñïõò äßóêïõò</quote>: áíôß íá ÷ñçóéìïðïéÞóïõìå Ýíá ìåãÜëï äßóêï, íá âÜëïõìå ðïëëïýò ìéêñüôåñïõò ìå ôïí ßäéï ôåëéêü áðïèçêåõôéêü ÷þñï. ÊÜèå äßóêïò Ý÷åé äõíáôüôçôá íá ìåôáêéíåß ôéò êåöáëÝò êáé íá ìåôáöÝñåé äåäïìÝíá áíåîÜñôçôá áðü ôïõò Üëëïõò, Ýôóé ç ðñáãìáôéêÞ äéáìåôáãùãÞ áõîÜíåé áíáëïãéêÜ ìå ôï ðëÞèïò ôùí äßóêùí ðïõ ÷ñçóéìïðïéïýíôáé.</para> <para>Ç ðñáãìáôéêÞ áýîçóç ôçò äéáìåôáãùãÞò åßíáé öõóéêÜ ìéêñüôåñç áðü ôï ðëÞèïò ôùí äßóêùí ðïõ ÷ñçóéìïðïéïýíôáé: áí êáé êÜèå äßóêïò åßíáé éêáíüò íá ìåôáöÝñåé äåäïìÝíá ðáñÜëëçëá ìå ôïõò Üëëïõò, äåí õðÜñ÷åé ôñüðïò íá åîáóöáëßóïõìå üôé ïé áéôÞóåéò ìåôáöïñÜò êáôáíÝìïíôáé ïìïéüìïñöá óå üëïõò ôïõò äßóêïõò. Åßíáé áíáðüöåõêôï üôé ôï öïñôßï óå Ýíá äßóêï èá åßíáé ìåãáëýôåñï áðü ôï öïñôßï óå êÜðïéï Üëëï.</para> <indexterm> <primary>disk concatenation</primary> </indexterm> <indexterm> <primary>Vinum</primary> <secondary>concatenation</secondary> </indexterm> <para>Ç ïìïéïìïñößá êáôáíïìÞò ôïõ öïñôßïõ óôïõò äßóêïõò, åîáñôÜôáé óå ìåãÜëï âáèìü áðü ôïí ôñüðï ðïõ Ý÷ïõí ìïéñáóôåß ôá äåäïìÝíá óå áõôïýò. Óôçí ðáñáêÜôù óõæÞôçóç, åßíáé âïëéêü íá óêåöôüìáóôå ôïí áðïèçêåõôéêü ÷þñï åíüò äßóêïõ ùò Ýíá ìåãÜëï áñéèìü áðü ôïìåßò óôïõò ïðïßïõò Ý÷ïõìå ðñüóâáóç ìå âÜóç Ýíá áñéèìü, áêñéâþò üðùò ïé óåëßäåò óå Ýíá âéâëßï. Ç ðéï ðñïöáíÞò ìÝèïäïò åßíáé íá ÷ùñßóïõìå ôïí åéêïíéêü äßóêï óå ïìÜäåò áðü óõíå÷üìåíïõò ôïìåßò, üðïõ êáèåìßá Ý÷åé ôï ìÝãåèïò ôïõ ðñáãìáôéêïý áíåîÜñôçôïõ öõóéêïý äßóêïõ, êáé íá ôéò áðïèçêåýóïõìå ìå áõôü ôïí ôñüðï, ðåñßðïõ óáí íá ðáßñíáìå Ýíá ìåãÜëï âéâëßï êáé íá ôï ÷ùñßæáìå óå ìéêñüôåñïõò ôüìïõò. Ç ìÝèïäïò áõôÞ ïíïìÜæåôáé <emphasis>óõíÝíùóç (concatenation)</emphasis> êáé Ý÷åé ôï ðëåïíÝêôçìá üôé äåí áðáéôåß ôá ìåãÝèç ôùí äßóêùí íá Ý÷ïõí êÜðïéá ó÷Ýóç ìåôáîý ôïõò. Ëåéôïõñãåß ðïëý êáëÜ üôáí ç ðñüóâáóç óôïí åéêïíéêü äßóêï åßíáé ïìïéüìïñöá êáôáíåìçìÝíç óå üëç ôçí ðåñéï÷Þ äéåõèýíóåùí ôïõ. ¼ôáí ç ðñüóâáóç óõãêåíôñþíåôáé óå ìéá ìéêñüôåñç ðåñéï÷Þ, ç âåëôßùóç åßíáé ìéêñüôåñç. Ôï <xref linkend="vinum-concat"/> äåß÷íåé ôçí áêïëïõèßá ìå ôçí ïðïßá ãßíåôáé ç êáôáíïìÞ ôùí èÝóåùí áðïèÞêåõóçò üôáí ÷ñçóéìïðïéåßôáé ç óõíÝíùóç.</para> <para> <figure id="vinum-concat"> <title>ÏñãÜíùóç ÓõíÝíùóçò</title> <graphic fileref="vinum/vinum-concat"/> </figure> </para> <indexterm> <primary>disk striping</primary> </indexterm> <indexterm> <primary>Vinum</primary> <secondary>striping</secondary> </indexterm> <indexterm> <primary>RAID</primary> </indexterm> <para>¸íáò åíáëëáêôéêüò ôñüðïò áðïèÞêåõóçò, åßíáé íá ÷ùñéóôåß ç ðåñéï÷Þ äéåõèýíóåùí óå ìéêñüôåñá ôìÞìáôá ßóïõ ìåãÝèïõò ôá ïðïßá íá áðïèçêåýïíôáé óåéñéáêÜ óå äéáöïñåôéêÝò óõóêåõÝò. Ãéá ðáñÜäåéãìá, ïé ðñþôïé 256 ôïìåßò ìðïñåß íá åßíáé áðïèçêåõìÝíïé óôïí ðñþôï äßóêï, ïé åðüìåíïé 256 óôïí åðüìåíï äßóêï, ê.ï.ê. ÌåôÜ ôçí ÷ñÞóç êáé ôïõ ôåëåõôáßïõ äßóêïõ, ç äéáäéêáóßá åðáíáëáìâÜíåôáé ìÝ÷ñé íá ãåìßóïõí üëïé ïé äßóêïé. ÁõôÞ ç ìÝèïäïò ïíïìÜæåôáé <emphasis>striping</emphasis> Þ <acronym>RAID-0</acronym>. <footnote> <para>Ôï <acronym>RAID</acronym> óçìáßíåé <emphasis>Redundant Array of Inexpensive Disks</emphasis> êáé ðáñÝ÷åé äéÜöïñåò ìïñöÝò áíï÷Þò óå óöÜëìáôá, áí êáé óôçí ðáñáðÜíù ÷ñÞóç ï üñïò åßíáé êÜðùò ðáñáðëáíçôéêüò: ôï <acronym>RAID-0</acronym> äåí ðáñÝ÷åé êáìéÜ ôÝôïéá ðñïóôáóßá äåäïìÝíùí.</para> </footnote> Ôï striping áðáéôåß êÜðùò ðåñéóóüôåñç ðñïóðÜèåéá ãéá ôïí åíôïðéóìü ôùí äåäïìÝíùí êáé ìðïñåß íá ðñïêáëÝóåé ìåãáëýôåñï öïñôßï I/O üôáí ìéá ìåôáöïñÜ êáôáíÝìåôáé óå ðïëëáðëïýò äßóêïõò, áëëÜ áðü ôçí Üëëç åðéôõã÷Üíåé ìåãáëýôåñï óôáèåñü öïñôßï óå êÜèå äßóêï. Ôï <xref linkend="vinum-striped"/> äåß÷íåé ôç óåéñÜ ìå ôçí ïðïßá ÷ñçóéìïðïéïýíôáé ïé ìïíÜäåò áðïèÞêåõóçò óå ìéá ïñãÜíùóç ôýðïõ stripe.</para> <para> <figure id="vinum-striped"> <title>Striped Organization</title> <graphic fileref="vinum/vinum-striped"/> </figure> </para> </sect1> <sect1 id="vinum-data-integrity"> <title>Áêåñáéüôçôá ÄåäïìÝíùí</title> <para>Ôï ôåëåõôáßï ðñüâëçìá ìå ôçí ôñÝ÷ïõóá ôå÷íïëïãßá äßóêùí, åßíáé ç áíáîéïðéóôßá ôïõò. Áí êáé ôá ôåëåõôáßá ÷ñüíéá ç áîéïðéóôßá ôùí äßóêùí Ý÷åé áõîçèåß óçìáíôéêÜ, åîáêïëïõèïýí íá åßíáé ôï åîÜñôçìá ìå ôï ìåãáëýôåñï ñõèìü áðïôõ÷ßáò óôïõò åîõðçñåôçôÝò. ¼ôáí áðïôý÷åé Ýíáò äßóêïò, ôá áðïôåëÝóìáôá ìðïñåß íá åßíáé êáôáóôñïöéêÜ: ç áíôéêáôÜóôáóç åíüò ÷áëáóìÝíïõ äßóêïõ êáé ç áíôéãñáöÞ ôùí äåäïìÝíùí óôï íÝï ìðïñåß íá äéáñêÝóåé ìÝñåò.</para> <indexterm> <primary>disk mirroring</primary> </indexterm> <indexterm> <primary>Vinum</primary> <secondary>mirroring</secondary> </indexterm> <indexterm> <primary>RAID-1</primary> </indexterm> <para>Ï ðáñáäïóéáêüò ôñüðïò áíôéìåôþðéóçò áõôïý ôïõ ðñïâëÞìáôïò åßíáé ôï <emphasis>mirroring</emphasis> (êáèñåðôéóìüò), ç äéáôÞñçóç äçëáäÞ äýï áíôéãñÜöùí ôùí äåäïìÝíùí óå äéáöïñåôéêïýò äßóêïõò. Ìå ôçí åöåýñåóç ôùí äéÜöïñùí åðéðÝäùí <acronym>RAID</acronym>, ç ôå÷íéêÞ áõôÞ Ýãéíå åðßóçò ãíùóôÞ ìå ôçí ïíïìáóßá <acronym>RAID åðéðÝäïõ 1</acronym> Þ áðëþò <acronym>RAID-1</acronym>. ÊÜèå åããñáöÞ óôïí ôüìï ãßíåôáé êáé óôïõò äýï äßóêïõò. Ç áíÜãíùóç ìðïñåß íá ãßíåé áðü ïðïéïäÞðïôå äßóêï, Ýôóé áí Ýíáò áðü ôïõò äýï áðïôý÷åé, ôá äåäïìÝíá åîáêïëïõèïýí íá åßíáé äéáèÝóéìá óôïí Üëëï.</para> <para>Ôï mirroring Ý÷åé äýï ðñïâëÞìáôá:</para> <itemizedlist> <listitem> <para>Ôï êüóôïò. Áðáéôåß äéðëÜóéï êüóôïò áðü ïðïéáäÞðïôå ëýóç äåí ðñïóöÝñåé áõôÞ ôç ëåéôïõñãßá.</para> </listitem> <listitem> <para>Ôç ìåßùóç ôçò áðüäïóçò. Ïé åããñáöÝò ðñÝðåé íá ãßíïíôáé êáé óôïõò äýï äßóêïõò, êáôáíáëþíïíôáò Ýôóé ôï äéðëÜóéï åýñïò æþíçò óå ó÷Ýóç ìå Ýíá ôüìï ðïõ äåí ÷ñçóéìïðïéåß mirror. Ç áíÜãíùóç äåí õðïöÝñåé áðü ôï ßäéï ðñüâëçìá. ÌÜëéóôá öáßíåôáé íá åßíáé êáé ãñçãïñüôåñç.</para> </listitem> </itemizedlist> <para><indexterm><primary>RAID-5</primary></indexterm>Ìéá åíáëëáêôéêÞ ëýóç åßíáé ôï <emphasis>parity</emphasis> (éóïôéìßá), ôï ïðïßï õëïðïéåßôáé óôá åðßðåäá 2, 3, 4 êáé 5 ôïõ <acronym>RAID</acronym>. Áðü ôá åðßðåäá áõôÜ, ôï <acronym>RAID-5</acronym> åßíáé ôï ðéï åíäéáöÝñïí. Ï ôñüðïò ðïõ õëïðïéåßôáé óôï Vinum, åßíáé ìéá ðáñáëëáãÞ ôçò ïñãÜíùóçò äåäïìÝíùí ðïõ ÷ñçóéìïðïéåßôáé óôï stripe, ìå ôç äéáöïñÜ üôé Ýíá ìðëïê áðü êÜèå stripe ÷ñçóéìïðïéåßôáé ãéá íá áðïèçêåýåé ôçí éóïôéìßá åíüò Üëëïõ ìðëïê. Óôï Vinum, ìéá óõóôïé÷ßá <acronym>RAID-5</acronym>, åßíáé ðáñüìïéá ìå ìéá óõóôïé÷ßá stripe, åêôüò áðü ôï ãåãïíüò üôé õëïðïéåß <acronym>RAID-5</acronym> êáèþò êÜèå stripe ðåñéÝ÷åé êáé ìðëïê éóïôéìßáò. Ç ôïðïèåóßá ôïõ ìðëïê éóïôéìßáò, áëëÜæåé áðü ôï Ýíá stripe óôï åðüìåíï, êÜôé ðïõ áðáéôåßôáé áðü ôï <acronym>RAID-5</acronym>. Ïé áñéèìïß óôá ìðëïê äåäïìÝíùí áíáöÝñïíôáé óôç ó÷åôéêÞ áñßèìçóç ôïõò.</para> <para> <figure id="vinum-raid5-org"> <title>RAID-5 Organization</title> <graphic fileref="vinum/vinum-raid5-org"/> </figure> </para> <para>Óå óýãêñéóç ìå ôï mirror, ôï <acronym>RAID-5</acronym> Ý÷åé ôï ðëåïíÝêôçìá íá áðáéôåß óçìáíôéêÜ ëéãüôåñï ÷þñï áðïèÞêåõóçò. Ç ôá÷ýôçôá áíÜãíùóçò åßíáé ßäéá ìå ôï stripe, áëëÜ ç åããñáöÞ åßíáé óçìáíôéêÜ ðéï áñãÞ, ðåñßðïõ ôï 25% ôçò áðüäïóçò êáôÜ ôçí áíÜãíùóç. Áí Ýíáò äßóêïò ÷áëÜóåé, ç óõóôïé÷ßá åîáêïëïõèåß íá ëåéôïõñãåß óå åëáôôùìÝíç (degraded) êáôÜóôáóç: ç áíÜãíùóç áðü ôïõò äßóêïõò ðïõ ëåéôïõñãïýí êáíïíéêÜ óõíå÷ßæåôáé áðñïâëçìÜôéóôá, áëëÜ ç áíÜãíùóç äåäïìÝíùí ðïõ âñßóêïíôáí óôïí ðñïâëçìáôéêü äßóêï ðñÝðåé íá åðáíáûðïëïãéóôåß ìå âÜóç ôá áíôßóôïé÷á ìðëïê éóïôéìßáò ðïõ âñßóêïíôáé óå üëïõò ôïõò Üëëïõò äßóêïõò.</para> </sect1> <sect1 id="vinum-objects"> <title>Áíôéêåßìåíá ôïõ Vinum</title> <para>Ãéá ôçí áíôéìåôþðéóç ôùí ðáñáðÜíù ðñïâëçìÜôùí, ôï Vinum õëïðïéåß ìéá éåñáñ÷ßá áíôéêåéìÝíùí ôåóóÜñùí åðéðÝäùí:</para> <itemizedlist> <listitem> <para>Ôï ðëÝïí ïñáôü áíôéêåßìåíï åßíáé ï åéêïíéêüò äßóêïò, ï ïðïßïò êáëåßôáé êáé <emphasis>ôüìïò (volume)</emphasis>. Ïé ôüìïé Ý÷ïõí ïõóéáóôéêÜ ôéò ßäéåò éäéüôçôåò ìå Ýíá äßóêï ôïõ &unix;, áí êáé õðÜñ÷ïõí êÜðïéåò ìéêñÝò äéáöïñÝò. Äåí õðÜñ÷ïõí ðåñéïñéóìïß üóï áöïñÜ ôï ìÝãåèïò ôïõò.</para> </listitem> <listitem> <para>Ïé ôüìïé áðïôåëïýíôáé áðü <emphasis>plex</emphasis>, êáé êÜèå Ýíá áðü áõôÜ áíôéðñïóùðåýåé ôï óõíïëéêü ÷þñï äéåõèýíóåùí åíüò ôüìïõ. Áõôü ôï åðßðåäï óôçí éåñáñ÷ßá ðáñÝ÷åé ôç äõíáôüôçôá redundancy. Ìðïñåßôå íá óêåöôåßôå ôá plex ùò ìåìïíùìÝíïõò äßóêïõò óå ìéá óõóôïé÷ßá mirror, üðïõ êÜèå Ýíá ðåñéÝ÷åé ôá ßäéá äåäïìÝíá.</para> </listitem> <listitem> <para>Êáèþò ôï Vinum õðÜñ÷åé ìÝóá óôï ðëáßóéï ëåéôïõñãéþí ôïõ &unix; ðïõ ÷ñçóéìïðïéåßôáé ãéá ôçí áðïèÞêåõóç óå äßóêïõò, èá ìðïñïýóå íá ÷ñçóéìïðïéÞóåé ôéò êáôáôìÞóåéò ôïõ &unix; ùò ôï äïìéêü óôïé÷åßï ãéá ôç äçìéïõñãßá ôùí plex. Óôçí ðñáãìáôéêüôçôá, ç ëïãéêÞ áõôÞ áðïäåéêíýåôáé éäéáßôåñá ðåñéïñéóôéêÞ: ïé äßóêïé óôï &unix; ìðïñïýí íá Ý÷ïõí ðåñéïñéóìÝíï áñéèìü êáôáôìÞóåùí. Áíôßèåôá, ôï Vinum õðïäéáéñåß ìéá ìüíï êáôÜôìçóç ôïõ &unix; (ôïí <emphasis>ïäçãü</emphasis>) óå óõíå÷üìåíåò ðåñéï÷Ýò ðïõ êáëïýíôáé <emphasis>õðïäßóêïé (subdisks)</emphasis>. Ïé õðïäßóêïé ÷ñçóéìïðïéïýíôáé ùò ôá äïìéêÜ óôïé÷åßá ãéá ôá plex.</para> </listitem> <listitem> <para>Ïé õðïäßóêïé âñßóêïíôáé óå <emphasis>ïäçãïýò</emphasis> Vinum, ðïõ ôç äåäïìÝíç óôéãìÞ åßíáé êáôáôìÞóåéò ôïõ &unix;. Ïé ïäçãïß ôïõ Vinum ìðïñïýí íá ðåñéÝ÷ïõí ïðïéïäÞðïôå áñéèìü áðü õðïäßóêïõò. Ìå åîáßñåóç ìéá ìéêñÞ ðåñéï÷Þ óôçí áñ÷Þ ôïõ äßóêïõ (ç ïðïßá ÷ñçóéìïðïéåßôáé ãéá ôçí áðïèÞêåõóç äåäïìÝíùí ñýèìéóçò êáé êáôÜóôáóçò) üëïò ï õðüëïéðïò ïäçãüò åßíáé äéáèÝóéìïò ãéá áðïèÞêåõóç äåäïìÝíùí.</para> </listitem> </itemizedlist> <para>Ïé ðáñáêÜôù åíüôçôåò ðåñéãñÜöïõí ôïí ôñüðï ìå ôïí ïðïßï áõôÜ ôá áíôéêåßìåíá ðáñÝ÷ïõí ôçí ëåéôïõñãéêüôçôá ðïõ áðáéôåßôáé áðü ôï Vinum.</para> <sect2> <title>ÌÝãåèïò Ôüìïõ</title> <para>Ôá plex ìðïñïýí íá ðåñéëáìâÜíïõí ðïëëáðëïýò õðïäßóêïõò, ðïõ êáôáíÝìïíôáé óå üëïõò ôïõò ïäçãïýò ôïõ Vinum. Óáí áðïôÝëåóìá, ôï ìÝãåèïò åíüò óõãêåêñéìÝíïõ äßóêïõ äåí ðåñéïñßæåé ôï ìÝãåèïò ïýôå ôïõ plex, ïýôå ôïõ ôüìïõ.</para> </sect2> <sect2> <title>ÐëåïíÜæïõóá (Redundant) ÁðïèÞêåõóç ÄåäïìÝíùí</title> <para>Ôï Vinum õëïðïéåß ôï mirroring ðñïóáñôþíôáò ðïëëáðëÜ plex óå Ýíá ôüìï. ÊÜèå plex åßíáé ìéá áíáðáñÜóôáóç ôùí äåäïìÝíùí åíüò ôüìïõ. ¸íáò ôüìïò ìðïñåß íá ðåñéÝ÷åé ìåôáîý åíüò êáé ïêôþ plex.</para> <para>Áí êáé Ýíá plex áíôéðñïóùðåýåé ôá ðëÞñç äåäïìÝíá åíüò ôüìïõ, åßíáé ðéèáíüí êÜðïéá ìÝñç ôçò áíáðáñÜóôáóçò íá ëåßðïõí áðü ôï öõóéêü ìÝóï, åßôå åðåéäÞ Ý÷åé ó÷åäéáóôåß ìå áõôü ôï ôñüðï (áí äåí Ý÷åé ïñéóôåß õðïäßóêïò ãéá êÜðïéá ôìÞìáôá ôïõ plex) Þ áðü ðñüâëçìá (ùò áðïôÝëåóìá ôçò áðïôõ÷ßáò êÜðïéïõ äßóêïõ). ¼óï õðÜñ÷åé ôïõëÜ÷éóôïí Ýíá plex ðïõ ìðïñåß íá ðáñÝ÷åé ôá äåäïìÝíá ãéá ôçí ðëÞñç ðåñéï÷Þ äéåõèýíóåùí ôïõ ôüìïõ, ï ôüìïò åßíáé ðëÞñùò ëåéôïõñãéêüò.</para> </sect2> <sect2> <title>ÈÝìáôá Áðüäïóçò</title> <para>Ôï Vinum õëïðïéåß ôüóï óõíÝíùóç üóï êáé striping óå åðßðåäï plex:</para> <itemizedlist> <listitem> <para>¸íá <emphasis>plex óõíÝíùóçò (concatenated)</emphasis> ÷ñçóéìïðïéåß ôçí ðåñéï÷Þ äéåõèýíóåùí êÜèå õðïäßóêïõ ìå ôç óåéñÜ.</para> </listitem> <listitem> <para>¸íá <emphasis>striped plex</emphasis> ãñÜöåé ôá äåäïìÝíá óå ëùñßäåò (stripes) ðïõ êáôáíÝìïíôáé óå êÜèå õðïäßóêï. ¼ëïé ïé õðïäßóêïé ðñÝðåé íá Ý÷ïõí ôï ßäéï ìÝãåèïò êáé ðñÝðåé íá õðÜñ÷ïõí ôïõëÜ÷éóôïí äýï õðïäßóêïé, ãéá íá îå÷ùñßæïõí óå ó÷Ýóç ìå ôï plex óõíÝíùóçò.</para> </listitem> </itemizedlist> </sect2> <sect2> <title>Åßäç ÏñãÜíùóçò Plex</title> <para>Ç Ýêäïóç ôïõ Vinum ðïõ ðáñÝ÷åôáé ìå ôï &os; &rel.current; õëïðïéåß äýï åßäç plex:</para> <itemizedlist> <listitem> <para>Ôá plex óõíÝíùóçò ðñïóöÝñïõí ôç ìåãáëýôåñç åõåëéîßá: ìðïñïýí íá ðåñéÝ÷ïõí ïðïéïäÞðïôå áñéèìü õðïäßóêùí, êáé ïé õðïäßóêïé áõôïß ìðïñåß íá åßíáé äéáöïñåôéêïý ìåãÝèïõò. Ôï plex ìðïñåß íá åðåêôáèåß ðñïóèÝôïíôáò ðåñéóóüôåñïõò õðïäßóêïõò. ×ñåéÜæïíôáé ëéãüôåñï ÷ñüíï <acronym>CPU</acronym> óå ó÷Ýóç ìå ôá stripes, áí êáé ç äéáöïñÜ óôç ÷ñÞóç ôçò <acronym>CPU</acronym> äåí åßíáé ìåôñÞóéìç. Áðü ôçí Üëëç ìåñéÜ, åßíáé ðéï åðéññåðÞ óå ìç-éóïññïðçìÝíç ëåéôïõñãßá, üðïõ Ýíáò äßóêïò åßíáé ðïëý åíåñãüò êáé ïé õðüëïéðïé áäñáíïýí.</para> </listitem> <listitem> <para>Ôï ìåãáëýôåñï ðëåïíÝêôçìá ôùí stripes (<acronym>RAID-0</acronym>), åßíáé üôé Ý÷ïõí ðéï éóïññïðçìÝíç ëåéôïõñãßá: åðéëÝãïíôáò ôï óùóôü ìÝãåèïò ëùñßäáò (ðåñßðïõ 256 kB), ìðïñåßôå íá åîéóïññïðÞóåôå ôï öïñôßï óå êÜèå äßóêï ôïõ plex. Ôá ìåéïíåêôÞìáôá áõôÞò ôçò ìåèüäïõ åßíáé (åëáöñÜ) ðéï ðïëýðëïêïò êþäéêáò êáé ðåñéïñéóìïß óôïõò õðïäßóêïõò: ðñÝðåé üëïé íá åßíáé ôï ßäéï ìÝãåèïò êáé ç åðÝêôáóç åíüò plex ìå ðñïóèÞêç ðåñéóóüôåñùí äßóêùí åßíáé ôüóï ðïëýðëïêç ðïõ ôç äåäïìÝíç óôéãìÞ ôï Vinum äåí ôçí õëïðïéåß. Ôï Vinum åðßóçò åðéâÜëëåé Ýíá áêüìá áðëïúêü ðåñéïñéóìü: Ýíá plex ôýðïõ stripe ðñÝðåé íá äéáèÝôåé õðï÷ñåùôéêÜ äýï ôïõëÜ÷éóôïí õðïäßóêïõò, äéáöïñåôéêÜ åßíáé áäýíáôï íá ôï îå÷ùñßóïõìå áðü Ýíá plex óõíÝíùóçò.</para> </listitem> </itemizedlist> <para>Ï <xref linkend="vinum-comparison"/> äåß÷íåé ðåñéëçðôéêÜ ôá ðëåïíåêôÞìáôá êáé ìåéïíåêôÞìáôá êÜèå åßäïõò ïñãÜíùóçò plex.</para> <table id="vinum-comparison" frame="none"> <title>Åßäç ÏñãÜíùóçò Vinum Plex</title> <tgroup cols="5"> <thead> <row> <entry>Ôýðïò plex</entry> <entry>ÅëÜ÷éóôï ðëÞèïò õðïäßóêùí</entry> <entry>Äõíáôüôçôá ðñïóèÞêçò õðïäßóêùí</entry> <entry>Ïé õðïäßóêïé ðñÝðåé íá åßíáé ßäéïõ ìåãÝèïõò</entry> <entry>ÅöáñìïãÞ</entry> </row> </thead> <tbody> <row> <entry>óõíÝíùóçò (concatenated)</entry> <entry>1</entry> <entry>íáé</entry> <entry>ü÷é</entry> <entry>ÁðïèÞêåõóç ìåãÜëïõ üãêïõ äåäïìÝíùí ìå ìÝãéóôç åõåëéîßá óôïí ôñüðï êáôáíïìÞò êáé ìÝôñéá áðüäïóç.</entry> </row> <row> <entry>striped</entry> <entry>2</entry> <entry>ü÷é</entry> <entry>íáé</entry> <entry>ÕøçëÞ áðüäïóç óå óõíäõáóìü ìå ðïëý êáëÝò ôá÷ýôçôåò óå êáôáóôÜóåéò ðïëëáðëÞò ðñüóâáóçò.</entry> </row> </tbody> </tgroup> </table> </sect2> </sect1> <sect1 id="vinum-examples"> <title>ÌåñéêÜ Ðáñáäåßãìáôá</title> <para>Ôï Vinum äéáôçñåß ìéá <emphasis>âÜóç äåäïìÝíùí ìå ôéò ñõèìßóåéò ôïõ</emphasis> ç ïðïßá ðåñéãñÜöåé ôá áíôéêåßìåíá ôá ïðïßá ãíùñßæåé Ýíá óõãêåêñéìÝíï óýóôçìá. Áñ÷éêÜ, ï ÷ñÞóôçò äçìéïõñãåß áõôÞ ôç âÜóç äåäïìÝíùí áðü Ýíá Þ ðåñéóóüôåñá áñ÷åßá ñõèìßóåùí, ìå ôçí âïÞèåéá ôïõ ðñïãñÜììáôïò &man.gvinum.8;. Ôï vinum áðïèçêåýåé Ýíá áíôßãñáöï ôçò âÜóçò äåäïìÝíùí óå êÜèå slice ôïõ äßóêïõ (ðïõ ôï Vinum áðïêáëåß <emphasis>óõóêåõÞ</emphasis>) ðïõ âñßóêåôáé õðü ôïí Ýëåã÷ï ôïõ. Ç âÜóç äåäïìÝíùí áíáíåþíåôáé óå êÜèå áëëáãÞ êáôÜóôáóçò, þóôå üëá ôá áíôéêåßìåíá ôïõ Vinum íá åðáíÝñ÷ïíôáé óôç óùóôÞ êáôÜóôáóç ìåôÜ áðü ìéá åðáíåêêßíçóç.</para> <sect2> <title>Ôï Áñ÷åßï Ñõèìßóåùí</title> <para>Ôï áñ÷åßï ñõèìßóåùí ðåñéãñÜöåé ôá ìåìïíùìÝíá áíôéêåßìåíá ôïõ Vinum. Ï ïñéóìüò ãéá Ýíá áðëü ôüìï ìðïñåß íá ìïéÜæåé ìå ôïí ðáñáêÜôù:</para> <programlisting> drive a device /dev/da3h volume myvol plex org concat sd length 512m drive a</programlisting> <para>Áõôü ôï áñ÷åßï ðåñéãñÜöåé ôÝóóåñá áíôéêåßìåíá ôïõ Vinum:</para> <itemizedlist> <listitem> <para>Ç ãñáììÞ <emphasis>drive</emphasis> ðåñéãñÜöåé ìéá êáôÜôìçóç äßóêïõ (<emphasis>ïäçãïý</emphasis>) êáé ôç èÝóç ôçò óå ó÷Ýóç ìå ôï öõóéêü äßóêï. Äßíåôáé óå áõôÞ ôï óõìâïëéêü üíïìá <emphasis>a</emphasis>. Áõôüò ï äéá÷ùñéóìüò ôùí óõìâïëéêþí áðü ôá ðñáãìáôéêÜ ïíüìáôá óõóêåõþí, ìáò åðéôñÝðåé íá ìåôáöÝñïõìå äßóêïõò áðü ìéá èÝóç óå ìéá Üëëç ÷ùñßò íá ðñïêëçèåß óýã÷õóç.</para> </listitem> <listitem> <para>Ç ãñáììÞ <emphasis>volume</emphasis> ðåñéãñÜöåé Ýíá ôüìï. Ôï ìüíï áðáéôïýìåíï ÷áñáêôçñéóôéêü åäþ åßíáé ôï üíïìá, óôçí ðåñßðôùóç ìáò <emphasis>myvol</emphasis>.</para> </listitem> <listitem> <para>Ç ãñáììÞ <emphasis>plex</emphasis> ïñßæåé Ýíá plex. Ç ìüíç áðáñáßôçôç ðáñÜìåôñïò åßíáé ôï åßäïò ôçò ïñãÜíùóçò, óôç óõãêåêñéìÝíç ðåñßðôùóç ôï <emphasis>concat</emphasis>. Äåí åßíáé áðáñáßôçôï íá äïèåß üíïìá: ôï óýóôçìá ðáñÜãåé áõôüìáôá Ýíá üíïìá ÷ñçóéìïðïéþíôáò ôï üíïìá ôïõ ôüìïõ êáé ôçí êáôÜëçîç <emphasis>.p</emphasis><emphasis>x</emphasis>, üðïõ ôï <emphasis>x</emphasis> åßíáé ï áñéèìüò ôïõ plex óôïí ôüìï. ¸ôóé, áõôü ôï plex èá êáëåßôáé <emphasis>myvol.p0</emphasis>.</para> </listitem> <listitem> <para>Ç ãñáììÞ <emphasis>sd</emphasis> ðåñéãñÜöåé Ýíá õðïäßóêï. Ïé åëÜ÷éóôåò áðáéôïýìåíåò ðñïäéáãñáöÝò åßíáé ôï üíïìá åíüò äßóêïõ óôïí ïðïßï èá áðïèçêåõôåß, êáé ôï ìÞêïò ôïõ õðïäßóêïõ. ¼ðùò óõìâáßíåé êáé ìå ôá plex, äåí áðáéôåßôáé üíïìá: ôï óýóôçìá áðïäßäåé ïíüìáôá áõôüìáôá, ÷ñçóéìïðïéþíôáò ùò óçìåßï åêêßíçóçò ôï üíïìá ôïõ plex êáé ðñïóèÝôïíôáò ôçí êáôÜëçîç <emphasis>.s</emphasis><emphasis>x</emphasis>, üðïõ ôï <emphasis>x</emphasis> åßíáé ï áñéèìüò ôïõ õðïäßóêïõ óôï plex. ¸ôóé, ôï Vinum äßíåé óå áõôüí ôïí õðïäßóêï ôï üíïìá <emphasis>myvol.p0.s0</emphasis>.</para> </listitem> </itemizedlist> <para>ÌåôÜ ôçí åðåîåñãáóßá áõôïý ôïõ áñ÷åßïõ, ôï &man.gvinum.8; ðáñÜãåé ôçí áêüëïõèç Ýîïäï:</para> <programlisting width="97"> &prompt.root; gvinum -> <userinput>create config1</userinput> Configuration summary Drives: 1 (4 configured) Volumes: 1 (4 configured) Plexes: 1 (8 configured) Subdisks: 1 (16 configured) D a State: up Device /dev/da3h Avail: 2061/2573 MB (80%) V myvol State: up Plexes: 1 Size: 512 MB P myvol.p0 C State: up Subdisks: 1 Size: 512 MB S myvol.p0.s0 State: up PO: 0 B Size: 512 MB</programlisting> <para>Ç ðáñáðÜíù Ýîïäïò ÷ñçóéìïðïéåß ôç ìïñöÞ óõíôïìåõìÝíçò ëßóôáò ôïõ &man.gvinum.8;. Ç ãñáöéêÞ áðåéêüíéóç öáßíåôáé óôï <xref linkend="vinum-simple-vol"/>.</para> <para> <figure id="vinum-simple-vol"> <title>¸íáò Áðëüò Ôüìïò Vinum</title> <graphic fileref="vinum/vinum-simple-vol"/> </figure> </para> <para>Óôï ó÷Þìá áõôü (êáèþò êáé óå áõôÜ ðïõ áêïëïõèïýí) õðÜñ÷åé ç áíáðáñÜóôáóç åíüò ôüìïõ ðïõ ðåñéÝ÷åé ôá plex, ôá ïðïßá ìå ôç óåéñÜ ôïõò ðåñéÝ÷ïõí ôïõò õðïäßóêïõò. Óå áõôü ôï áðëïõóôåõìÝíï ðáñÜäåéãìá, ï ôüìïò ðåñéÝ÷åé Ýíá plex êáé ôï plex ðåñéÝ÷åé Ýíá õðïäßóêï.</para> <para>Ï ôüìïò áõôüò äåí Ý÷åé êÜðïéï óõãêåêñéìÝíï ðëåïíÝêôçìá óå ó÷Ýóç ìå ìéá óõìâáôéêÞ êáôÜôìçóç äßóêïõ. ÐåñéÝ÷åé Ýíá ìüíï plex, Üñá äåí Ý÷åé êÜðïéá éêáíüôçôá áíï÷Þò óöáëìÜôùí. Ôï plex ðåñéÝ÷åé åðßóçò Ýíá õðïäßóêï, êáé Ýôóé äåí õðÜñ÷åé äéáöïñÜ óôçí êáôáíïìÞ ÷þñïõ óå ó÷Ýóç ìå ìéá óõìâáôéêÞ êáôÜôìçóç. Óôéò åðüìåíåò åíüôçôåò èá äåßîïõìå äéáöïñåôéêÝò êáé ðéï åíäéáöÝñïõóåò ìåèüäïõò ñýèìéóçò.</para> </sect2> <sect2> <title>ÁõîçìÝíç Áîéïðéóôßá: Mirroring</title> <para>Ç áîéïðéóôßá åíüò ôüìïõ ìðïñåß íá áõîçèåß ìÝóù ôïõ mirroring (êáèñåðôéóìïý). ¼ôáí ó÷åäéÜæåôå Ýíá ôüìï óôïí ïðïßï èá ãßíåé mirroring, åßíáé óçìáíôéêü íá åîáóöáëßóåôå üôé ïé õðïäßóêïé óå êÜèå plex åßíáé óå äéáöïñåôéêïýò ïäçãïýò, þóôå ç áðïôõ÷ßá åíüò äßóêïõ íá ìçí ðñïêáëÝóåé ðáýóç ëåéôïõñãßáò êáé óôá äýï plex. Ôï ðáñáêÜôù ðáñÜäåéãìá äåß÷íåé ðùò ìðïñåß íá ãßíåé mirroring åíüò ôüìïõ:</para> <programlisting> drive b device /dev/da4h volume mirror plex org concat sd length 512m drive a plex org concat sd length 512m drive b</programlisting> <para>Óôï ðáñÜäåéãìá áõôü, äåí Þôáí áðáñáßôçôï íá êáèïñéóôåß îáíÜ ï ïäçãüò <emphasis>a</emphasis>, êáèþò ôï Vinum äéáèÝôåé Þäç ôéò áíôßóôïé÷åò êáôá÷ùñßóåéò óôç âÜóç äåäïìÝíùí ìå ôéò ñõèìßóåéò ôïõ. ÌåôÜ ôçí åðåîåñãáóßá ôùí ðáñáðÜíù ïñéóìþí, ç ñýèìéóç ìïéÜæåé ìå ôçí ðáñáêÜôù:</para> <programlisting width="97"> Drives: 2 (4 configured) Volumes: 2 (4 configured) Plexes: 3 (8 configured) Subdisks: 3 (16 configured) D a State: up Device /dev/da3h Avail: 1549/2573 MB (60%) D b State: up Device /dev/da4h Avail: 2061/2573 MB (80%) V myvol State: up Plexes: 1 Size: 512 MB V mirror State: up Plexes: 2 Size: 512 MB P myvol.p0 C State: up Subdisks: 1 Size: 512 MB P mirror.p0 C State: up Subdisks: 1 Size: 512 MB P mirror.p1 C State: initializing Subdisks: 1 Size: 512 MB S myvol.p0.s0 State: up PO: 0 B Size: 512 MB S mirror.p0.s0 State: up PO: 0 B Size: 512 MB S mirror.p1.s0 State: empty PO: 0 B Size: 512 MB</programlisting> <para>Ôï <xref linkend="vinum-mirrored-vol"/> áíáðáñéóôÜ áõôÞ ôç äïìÞ ãñáöéêÜ.</para> <para> <figure id="vinum-mirrored-vol"> <title>¸íáò Mirrored Ôüìïò Vinum </title> <graphic fileref="vinum/vinum-mirrored-vol"/> </figure> </para> <para>Óôï ðáñÜäåéãìá áõôü, êÜèå plex ðåñéÝ÷åé ôçí ðëÞñç ðåñéï÷Þ äéåõèýíóåùí, ìåãÝèïõò 512 MB. ¼ðùò êáé óôï ðñïçãïýìåíï ðáñÜäåéãìá, êÜèå plex ðåñéÝ÷åé Ýíá ìïíáäéêü õðïäßóêï.</para> </sect2> <sect2> <title>Âåëôéóôïðïéþíôáò ôçí Áðüäïóç</title> <para>Ï mirrored ôüìïò ôïõ ðñïçãïýìåíïõ ðáñáäåßãìáôïò ðáñïõóéÜæåé ìåãáëýôåñç áíï÷Þ óöáëìÜôùí óå ó÷Ýóç ìå Ýíá ôüìï ðïõ äåí ÷ñçóéìïðïéåß mirror, áëëÜ ç áðüäïóç ôïõ åßíáé ìéêñüôåñç: êÜèå åããñáöÞ óôïí ôüìï ðñÝðåé íá ãßíåôáé êáé óôïõò äýï äßóêïõò, ÷ñçóéìïðïéþíôáò Ýôóé ìåãáëýôåñï ðïóïóôü ôïõ äéáèÝóéìïõ åýñïõò æþíçò. Ïé áðáéôÞóåéò ðïõ åíäå÷ïìÝíùò Ý÷ïõìå ãéá áðüäïóç, áðáéôïýí äéáöïñåôéêÞ ðñïóÝããéóç: áíôß íá ÷ñçóéìïðïéÞóïõìå mirror, ìðïñïýìå íá äçìéïõñãÞóïõìå ëùñßäåò áðïèÞêåõóçò (stripes) óå üóï ôï äõíáôüí ðåñéóóüôåñïõò äßóêïõò. Ç ðáñáêÜôù ñýèìéóç äåß÷íåé Ýíá ôüìï óôïí ïðïßï ôï plex Ý÷åé ãßíåé stripe óå ôÝóóåñéò äßóêïõò:</para> <programlisting> drive c device /dev/da5h drive d device /dev/da6h volume stripe plex org striped 512k sd length 128m drive a sd length 128m drive b sd length 128m drive c sd length 128m drive d</programlisting> <para>¼ðùò êáé ðñïçãïõìÝíùò, äåí ÷ñåéÜæåôáé íá ïñßóïõìå îáíÜ ôïõò äßóêïõò ðïõ åßíáé Þäç ãíùóôïß óôï Vinum. ÌåôÜ ôçí åðåîåñãáóßá ôïõ ðáñáðÜíù ïñéóìïý, ç ñýèìéóç èá ìïéÜæåé ìå ôçí ðáñáêÜôù:</para> <programlisting width="92"> Drives: 4 (4 configured) Volumes: 3 (4 configured) Plexes: 4 (8 configured) Subdisks: 7 (16 configured) D a State: up Device /dev/da3h Avail: 1421/2573 MB (55%) D b State: up Device /dev/da4h Avail: 1933/2573 MB (75%) D c State: up Device /dev/da5h Avail: 2445/2573 MB (95%) D d State: up Device /dev/da6h Avail: 2445/2573 MB (95%) V myvol State: up Plexes: 1 Size: 512 MB V mirror State: up Plexes: 2 Size: 512 MB V striped State: up Plexes: 1 Size: 512 MB P myvol.p0 C State: up Subdisks: 1 Size: 512 MB P mirror.p0 C State: up Subdisks: 1 Size: 512 MB P mirror.p1 C State: initializing Subdisks: 1 Size: 512 MB P striped.p1 State: up Subdisks: 1 Size: 512 MB S myvol.p0.s0 State: up PO: 0 B Size: 512 MB S mirror.p0.s0 State: up PO: 0 B Size: 512 MB S mirror.p1.s0 State: empty PO: 0 B Size: 512 MB S striped.p0.s0 State: up PO: 0 B Size: 128 MB S striped.p0.s1 State: up PO: 512 kB Size: 128 MB S striped.p0.s2 State: up PO: 1024 kB Size: 128 MB S striped.p0.s3 State: up PO: 1536 kB Size: 128 MB</programlisting> <para> <figure id="vinum-striped-vol"> <title>¸íáò Striped Ôüìïò Vinum</title> <graphic fileref="vinum/vinum-striped-vol"/> </figure> </para> <para>Áõôüò ï ôüìïò áíáðáñßóôáôáé ãñáöéêÜ óôï <xref linkend="vinum-striped-vol"/>. Ç áðü÷ñùóç ôçò ëùñßäáò áíôéðñïóùðåýåé ôç èÝóç ôçò ìÝóá óôçí ðåñéï÷Þ äéåõèýíóåùí ôïõ plex: ïé áíïé÷ôü÷ñùìåò ëùñßäåò åßíáé ïé ðñþôåò, ïé óêïõñü÷ñùìåò åßíáé ïé ôåëåõôáßåò.</para> </sect2> <sect2> <title>Áîéïðéóôßá êáé Áðüäïóç</title> <para><anchor id="vinum-resilience"/>Ìå ôï êáôÜëëçëï õëéêü, åßíáé äõíáôüí íá äçìéïõñãçèïýí ôüìïé ïé ïðïßïé íá ðáñïõóéÜæïõí ôüóï ìåãÜëç áíï÷Þ óå óöÜëìáôá, üóï êáé áõîçìÝíç áðüäïóç óå ó÷Ýóç ìå ôéò ôõðïðïéçìÝíåò êáôáôìÞóåéò ôïõ &unix;. ¸íá ôõðéêü áñ÷åßï ñõèìßóåùí èá ìïéÜæåé ìå ôï ðáñáêÜôù:</para> <programlisting> volume raid10 plex org striped 512k sd length 102480k drive a sd length 102480k drive b sd length 102480k drive c sd length 102480k drive d sd length 102480k drive e plex org striped 512k sd length 102480k drive c sd length 102480k drive d sd length 102480k drive e sd length 102480k drive a sd length 102480k drive b</programlisting> <para>Ïé õðïäßóêïé ôïõ äåýôåñïõ plex Ý÷ïõí ìåôáôåèåß êáôÜ äýï ïäçãïýò óå ó÷Ýóç ìå áõôïýò ôïõ ðñþôïõ plex: áõôü åîáóöáëßæåé üôé ïé åããñáöÝò äåí ãßíïíôáé óôïõò ßäéïõò õðïäßóêïõò, áêüìá êáé áí ìéá ìåôáöïñÜ ÷ñçóéìïðïéåß êáé ôïõò äýï äßóêïõò.</para> <para>Ôï <xref linkend="vinum-raid10-vol"/> áíáðáñéóôÜ ãñáöéêÜ ôç äïìÞ áõôïý ôïõ ôüìïõ.</para> <para> <figure id="vinum-raid10-vol"> <title>¸íáò Mirrored êáé Striped Ôüìïò ôïõ Vinum</title> <graphic fileref="vinum/vinum-raid10-vol"/> </figure> </para> </sect2> </sect1> <sect1 id="vinum-object-naming"> <title>Ïíïìáóßá ÁíôéêåéìÝíùí</title> <para>¼ðùò ðåñéãñÜøáìå ðáñáðÜíù, ôï Vinum áðïäßäåé ðñïåðéëåãìÝíá ïíüìáôá óå plex êáé õðïäßóêïõò, áí êáé õðÜñ÷åé ç äõíáôüôçôá íá ôá ðáñáêÜìøåôå. Áõôü ùóôüóï äåí óõíßóôáôáé: ç åìðåéñßá ðïõ Ý÷ïõìå áðü ôï äéá÷åéñéóôÞ ôüìùí VERITAS (ï ïðïßïò åðéôñÝðåé åëåýèåñç áðüäïóç ïíïìÜôùí óôá áíôéêåßìåíá) Ý÷åé äåßîåé üôé áõôïý ôïõ åßäïõò ç åõåëéîßá äåí ðñïóöÝñåé óçìáíôéêÜ ðëåïíåêôÞìáôá, êáé ìðïñåß íá ðñïêáëÝóåé óýã÷õóç.</para> <para>Ôá ïíüìáôá ìðïñåß íá ðåñéÝ÷ïõí ïðïéïäÞðïôå ìç-êåíü ÷áñáêôÞñá, áëëÜ óõíßóôáôáé íá ðåñéïñéóôåßôå óôç ÷ñÞóç ãñáììÜôùí, áñéèìþí êáé ôçò êÜôù ðáýëáò. Ôá ïíüìáôá ôùí ôüìùí, ôùí plex êáé ôùí õðïäßóêùí ìðïñåß íá åßíáé ìÝ÷ñé 64 ÷áñáêôÞñåò, åíþ ôá ïíüìáôá ôùí äßóêùí ìðïñåß íá åßíáé ìÝ÷ñé 32 ÷áñáêôÞñåò.</para> <para>Ôá áñ÷åßá óõóêåõþí ôïõ Vinum äçìéïõñãïýíôáé óôïí êáôÜëïãï <filename class="directory">/dev/gvinum</filename>. Ìå ôéò ñõèìßóåéò ðïõ öáßíïíôáé ðáñáðÜíù, ôï Vinum èá äçìéïõñãÞóåé ôá ðáñáêÜôù áñ÷åßá óõóêåõþí:</para> <itemizedlist> <listitem> <para>Êáôá÷ùñßóåéò óõóêåõþí ãéá êÜèå ôüìï. ÁõôÝò åßíáé êáé ïé êýñéåò óõóêåõÝò ðïõ ÷ñçóéìïðïéåß ôï Vinum. Ìå ôéò ñõèìßóåéò ðïõ äåßîáìå ðáñáðÜíù, èá Ý÷ïõìå ôéò óõóêåõÝò: <filename class="devicefile">/dev/gvinum/myvol</filename>, <filename class="devicefile">/dev/gvinum/mirror</filename>, <filename class="devicefile">/dev/gvinum/striped</filename>, <filename class="devicefile">/dev/gvinum/raid5</filename> êáé <filename class="devicefile">/dev/gvinum/raid10</filename>.</para> </listitem> <listitem> <para>¼ëïé ïé ôüìïé äéáèÝôïõí áðåõèåßáò êáôá÷ùñßóåéò óôïí êáôÜëïãï <filename class="directory">/dev/gvinum/</filename>.</para> </listitem> <listitem> <para>Ïé êáôÜëïãïé <filename class="directory">/dev/gvinum/plex</filename> êáé <filename class="directory">/dev/gvinum/sd</filename>, ðïõ ðåñéÝ÷ïõí ôá áñ÷åßá óõóêåõþí ãéá êÜèå plex êáé õðïäßóêï áíôßóôïé÷á.</para> </listitem> </itemizedlist> <para>Ãéá ðáñÜäåéãìá, èåùñÞóôå ôï ðáñáêÜôù áñ÷åßï ñõèìßóåùí:</para> <programlisting> drive drive1 device /dev/sd1h drive drive2 device /dev/sd2h drive drive3 device /dev/sd3h drive drive4 device /dev/sd4h volume s64 setupstate plex org striped 64k sd length 100m drive drive1 sd length 100m drive drive2 sd length 100m drive drive3 sd length 100m drive drive4</programlisting> <para>ÌåôÜ ôçí åðåîåñãáóßá áõôïý ôïõ áñ÷åßïõ, ôï &man.gvinum.8; èá äçìéïõñãÞóåé ôçí áêüëïõèç äïìÞ óôïí êáôÜëïãï <filename class="directory">/dev/gvinum</filename>:</para> <programlisting> drwxr-xr-x 2 root wheel 512 Apr 13 16:46 plex crwxr-xr-- 1 root wheel 91, 2 Apr 13 16:46 s64 drwxr-xr-x 2 root wheel 512 Apr 13 16:46 sd /dev/vinum/plex: total 0 crwxr-xr-- 1 root wheel 25, 0x10000002 Apr 13 16:46 s64.p0 /dev/vinum/sd: total 0 crwxr-xr-- 1 root wheel 91, 0x20000002 Apr 13 16:46 s64.p0.s0 crwxr-xr-- 1 root wheel 91, 0x20100002 Apr 13 16:46 s64.p0.s1 crwxr-xr-- 1 root wheel 91, 0x20200002 Apr 13 16:46 s64.p0.s2 crwxr-xr-- 1 root wheel 91, 0x20300002 Apr 13 16:46 s64.p0.s3</programlisting> <para>Áí êáé óõíßóôáôáé íá ìçí äßíïíôáé óõãêåêñéìÝíá ïíüìáôá óôá plex êáé ôïõò õðïäßóêïõò, èá ðñÝðåé íá äïèïýí ïíüìáôá óôïõò äßóêïõò ôïõ Vinum. Ìå ôïí ôñüðï áõôü, ï äßóêïò áíáãíùñßæåôáé áõôüìáôá áêüìá êáé áí áëëÜîåé èÝóç. Ôá ïíüìáôá ôùí äßóêùí ìðïñåß íá Ý÷ïõí ìÝãåèïò ìÝ÷ñé 32 ÷áñáêôÞñåò.</para> <sect2> <title>Äçìéïõñãßá ÓõóôçìÜôùí Áñ÷åßùí</title> <para>Ïé ôüìïé äåß÷íïõí üìïéïé ìå ôïõò äßóêïõò üóï áöïñÜ ôï óýóôçìá, ìå ìéá åîáßñåóç. Áíôßèåôá ìå ôïõò äßóêïõò ôïõ &unix;, ôï Vinum äåí äçìéïõñãåß êáôáôìÞóåéò óôïõò ôüìïõò, êáé Ýôóé áðïõóéÜæåé áðü áõôïýò ï áíôßóôïé÷ïò ðßíáêáò êáôáôìÞóåùí. Áõôü áðáéôåß ôçí ôñïðïðïßçóç êÜðïéùí âïçèçôéêþí ðñïãñáììÜôùí êáé åéäéêüôåñá ôïõ &man.newfs.8;, ôï ïðïßï óôéò ðñïçãïýìåíåò õëïðïéÞóåéò ôïõ ðñïóðáèïýóå íá åñìçíåýóåé ôï ôåëåõôáßï ãñÜììá åíüò ôüìïõ Vinum ùò áíáãíùñéóôéêü ôçò êáôÜôìçóçò. Ãéá ðáñÜäåéãìá, Ýíáò êáíïíéêüò äßóêïò ìðïñåß íá Ý÷åé ôï üíïìá <filename class="devicefile">/dev/ad0a</filename> Þ <filename class="devicefile">/dev/da2h</filename>. Ôá ïíüìáôá áõôÜ áíôéðñïóùðåýïõí ôçí ðñþôç êáôÜôìçóç (<devicename>a</devicename>) óôïí ðñþôï äßóêï IDE (<devicename>ad</devicename>) êáé ôçí üãäïç êáôÜôìçóç (<devicename>h</devicename>) óôïí ôñßôï (2) SCSI äßóêï (<devicename>da</devicename>) áíôßóôïé÷á. Óå áíôßèåóç, Ýíáò ôüìïò ôïõ Vinum ìðïñåß íá ïíïìÜæåôáé <filename class="devicefile">/dev/gvinum/concat</filename>, ôï ïðïßï äåí Ý÷åé êáìéÜ ó÷Ýóç ìå üíïìá êáôÜôìçóçò.</para> <para>Ãéá íá äçìéïõñãÞóåôå Ýíá óýóôçìá áñ÷åßùí óå áõôü ôïí ôüìï, ÷ñçóéìïðïéÞóôå ôçí &man.newfs.8;:</para> <screen>&prompt.root; <userinput>newfs /dev/gvinum/concat</userinput></screen> </sect2> </sect1> <sect1 id="vinum-config"> <title>Ñýèìéóç ôïõ Vinum</title> <para>Ôï Vinum äåí õðÜñ÷åé óôïí ðõñÞíá <filename>GENERIC</filename>. Åßíáé äõíáôüí íá äçìéïõñãÞóåôå ðñïóáñìïóìÝíï ðõñÞíá ðïõ íá ôï ðåñéÝ÷åé, áëëÜ äåí óõíßóôáôáé. Ï óõíçèéóìÝíïò ôñüðïò íá îåêéíÞóåôå ôï Vinum, åßíáé íá ôï öïñôþóåôå ùò Üñèñùìá óôïí ðõñÞíá (<acronym>kld</acronym>). Äåí ÷ñåéÜæåôáé êáí íá ÷ñçóéìïðïéÞóåôå ôçí &man.kldload.8; ãéá ôï Vinum: üôáí îåêéíÞóåôå ôï &man.gvinum.8;, èá ãßíåé Ýëåã÷ïò ãéá íá äéáðéóôùèåß áí ôï Üñèñùìá åßíáé öïñôùìÝíï, êáé áí äåí åßíáé èá öïñôùèåß áõôüìáôá.</para> <sect2> <title>Åêêßíçóç</title> <para>Ôï Vinum áðïèçêåýåé ôéò ðëçñïöïñßåò ãéá ôéò ñõèìßóåéò ôïõ óôá slices ôùí äßóêùí, ïõóéáóôéêÜ ìå ôïí ßäéï ôñüðï ðïõ ôéò áðïèçêåýåé êáé óôá áñ÷åßá ñõèìßóåùí. ¼ôáí ôï Vinum äéáâÜæåé ôç âÜóç äåäïìÝíùí ôùí ñõèìßóåùí, ìðïñåß íá áíáãíùñßóåé Ýíá áñéèìü ëÝîåùí ðïõ äåí åðéôñÝðåôáé íá åìöáíéóôïýí óôá áñ÷åßá ñõèìßóåùí. Ãéá ðáñÜäåéãìá, ïé ñõèìßóåéò ãéá êÜðïéï äßóêï ìðïñåß íá ðåñéÝ÷ïõí ôï ðáñáêÜôù êåßìåíï:</para> <programlisting width="119">volume myvol state up volume bigraid state down plex name myvol.p0 state up org concat vol myvol plex name myvol.p1 state up org concat vol myvol plex name myvol.p2 state init org striped 512b vol myvol plex name bigraid.p0 state initializing org raid5 512b vol bigraid sd name myvol.p0.s0 drive a plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 0b sd name myvol.p0.s1 drive b plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 1048576b sd name myvol.p1.s0 drive c plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 0b sd name myvol.p1.s1 drive d plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 1048576b sd name myvol.p2.s0 drive a plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 0b sd name myvol.p2.s1 drive b plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 524288b sd name myvol.p2.s2 drive c plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1048576b sd name myvol.p2.s3 drive d plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1572864b sd name bigraid.p0.s0 drive a plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 0b sd name bigraid.p0.s1 drive b plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 4194304b sd name bigraid.p0.s2 drive c plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 8388608b sd name bigraid.p0.s3 drive d plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 12582912b sd name bigraid.p0.s4 drive e plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 16777216b</programlisting> <para>Ïé ðñïöáíåßò äéáöïñÝò åäþ, åßíáé ç ðáñïõóßá óõãêåêñéìÝíùí èÝóåùí êáé ïíïìÜôùí (êáé ôá äýï åßíáé åðéôñåðôÜ, áëëÜ ãåíéêÜ äåí óõíßóôáôáé ç ÷ñÞóç ôïõò) êáé ïé ðëçñïöïñßåò êáôÜóôáóçò (ðïõ äåí åßíáé äéáèÝóéìåò óôï ÷ñÞóôç). Ôï Vinum äåí áðïèçêåýåé ðëçñïöïñßåò ó÷åôéêÝò ìå ôïõò äßóêïõò óôéò ñõèìßóåéò ôïõ: áðëþò áíé÷íåýåé üëïõò ôïõò äßóêïõò ãéá êáôáôìÞóåéò ðïõ ðåñéÝ÷ïõí åôéêÝôá Vinum. Áõôü åðéôñÝðåé óôï Vinum íá áíáãíùñßóåé ôïõò äßóêïõò óùóôÜ, áêüìá êáé áí ôïõò Ý÷åé äïèåß äéáöïñåôéêü &unix; áíáãíùñéóôéêü (ID).</para> <sect3 id="vinum-rc-startup"> <title>Áõôüìáôç Åêêßíçóç</title> <para>Ôï <emphasis>Gvinum</emphasis> îåêéíÜåé ðÜíôïôå áõôüìáôá ìåôÜ ôçí öüñôùóç ôïõ áñèñþìáôïò ìÝóù ôïõ &man.loader.conf.5;. Ãéá íá öïñôþóåôå ôï Üñèñùìá ôïõ <emphasis>Gvinum</emphasis> êáôÜ ôçí åêêßíçóç, ðñïóèÝóôå ôç ãñáììÞ <literal>geom_vinum_load="YES"</literal> óôï áñ÷åßï <filename>/boot/loader.conf</filename>.</para> <para>¼ôáí îåêéíÜôå ôï Vinum ìå ôçí åíôïëÞ <command>gvinum start</command>, ôï Vinum äéáâÜæåé ôç âÜóç äåäïìÝíùí ñõèìßóåùí áðü Ýíáí äßóêï ðïõ âñßóêåôáé õðü ôïí Ýëåã÷ï ôïõ. ÊÜôù áðü öõóéïëïãéêÝò óõíèÞêåò, êÜèå äßóêïò ðåñéÝ÷åé Ýíá üìïéï áíôßãñáöï ôçò âÜóçò, Ýôóé äåí Ý÷åé óçìáóßá áðü ðïéï äßóêï èá ãßíåé ç áíÜãíùóç. Ùóôüóï, ìåôÜ áðü êÜðïéï áðüôïìï ôåñìáôéóìü ëåéôïõñãßáò, ôï Vinum èá ðñÝðåé íá êáèïñßóåé ðïéïò äßóêïò Ý÷åé ôï ðéï ðñüóöáôï áíôßãñáöï êáé íá äéáâÜóåé áðü åêåß ôéò ñõèìßóåéò. ÌåôÜ èá äéïñèþóåé (áí ÷ñåéÜæåôáé) ôéò ñõèìßóåéò êáé óôïõò õðüëïéðïõò äßóêïõò.</para> </sect3> </sect2> </sect1> <sect1 id="vinum-root"> <title>×ñÞóç ôïõ Vinum óôï Ñéæéêü Óýóôçìá Áñ÷åßùí</title> <para>Óå Ýíá ìç÷Üíçìá óôï ïðïßï Ý÷åé ãßíåé ðëÞñåò mirror óôá óõóôÞìáôá áñ÷åßùí ìå ôç ÷ñÞóç ôïõ Vinum, åßíáé óõíÞèùò åðéèõìçôü íá ãßíåé mirror êáé óôï ñéæéêü (root) óýóôçìá áñ÷åßùí. Ç ñýèìéóç áõôÞ äåí åßíáé ôüóï áðëÞ üóï óå Ýíá ïðïéïäÞðïôå óýóôçìá áñ÷åßùí, åðåéäÞ:</para> <itemizedlist> <listitem> <para>Ôï ñéæéêü óýóôçìá áñ÷åßùí ðñÝðåé íá åßíáé äéáèÝóéìï áðü ðïëý íùñßò êáôÜ ôç äéáäéêáóßá åêêßíçóçò, Ýôóé åßíáé áðáñáßôçôï ïé õðïäïìÝò ôïõ Vinum íá åßíáé åðßóçò äéáèÝóéìåò ôçí ßäéá óôéãìÞ.</para> </listitem> <listitem> <para>Ï ôüìïò ðïõ ðåñéÝ÷åé ôï ñéæéêü óýóôçìá áñ÷åßùí ðåñéÝ÷åé åðßóçò êáé ôïí êþäéêá åêêßíçóçò (bootstrap) êáé ôïí ðõñÞíá, ï ïðïßïò èá ðñÝðåé íá åßíáé ðñïóâÜóéìïò áðü âáóéêÜ ðñïãñÜììáôá ôïõ óõóôÞìáôïò (ð.÷. ôï BIOS óå ìç÷áíÞìáôá ôýðïõ PC), ôá ïðïßá äåí ãíùñßæïõí êáé äåí ìðïñïýí íá ìÜèïõí ôéò ëåðôïìÝñåéåò õëïðïßçóçò ôïõ Vinum.</para> </listitem> </itemizedlist> <para>Óôéò åðüìåíåò åíüôçôåò, ï üñïò <quote>ñéæéêüò ôüìïò</quote> ÷ñçóéìïðïéåßôáé ãåíéêÜ ãéá íá ðåñéãñÜøåé ôïí ôüìï ôïõ Vinum ðïõ ðåñéÝ÷åé ôï ñéæéêü óýóôçìá áñ÷åßùí. Åßíáé ãåíéêÜ êáëÞ éäÝá íá ÷ñçóéìïðïéåßôáé ôï üíïìá <literal>"root"</literal> ãéá áõôü ôïí ôüìï, áëëÜ áõôü äåí áðïôåëåß ôå÷íéêÞ áðáßôçóç. ¼ëá ôá ðáñáäåßãìáôá åíôïëþí óôéò ðáñáêÜôù åíüôçôåò ÷ñçóéìïðïéïýí ôçí ðáñáðÜíù ðáñáäï÷Þ.</para> <sect2> <title>Åêêßíçóç ôïõ Vinum ÁñêåôÜ Íùñßò ãéá ôï Ñéæéêü Óýóôçìá Áñ÷åßùí</title> <para>Áõôü ìðïñåß íá åðéôåõ÷èåß ìå äéÜöïñïõò ôñüðïõò:</para> <itemizedlist> <listitem> <para>Ôï Vinum ðñÝðåé íá åßíáé äéáèÝóéìï óôï ðõñÞíá êáôÜ ôçí åêêßíçóç. Ãéá ôï ëüãï áõôü, ç ìÝèïäïò áõôüìáôçò åêêßíçóçò ðïõ ðåñéãñÜøáìå óôï <xref linkend="vinum-rc-startup"/> äåí ìðïñåß íá ÷ñçóéìïðïéçèåß óå áõôÞ ôçí ðåñßðôùóç êáé ç ðáñÜìåôñïò <literal>start_vinum</literal> <emphasis>äåí</emphasis> èá ðñÝðåé íá ôåèåß üôáí ÷ñçóéìïðïéåßôáé ç ðáñáêÜôù äéÜôáîç. Ìéá ðéèáíÞ åðéëïãÞ åßíáé íá ìåôáãëùôôßóåôå óôáôéêÜ ôï Vinum óôïí ðõñÞíá þóôå íá åßíáé äéáèÝóéìï ðÜíôá, áëëÜ áõôü óõíÞèùò äåí åßíáé åðéèõìçôü. ÕðÜñ÷åé ìéá áêüìá äéáèÝóéìç åðéëïãÞ, íá ïñßóåôå íá öïñôþíåôáé ôï Üñèñùìá ôïõ ðõñÞíá ìÝóù ôïõ <filename>/boot/loader</filename> (<xref linkend="boot-loader"/>) ðñéí ôçí åêêßíçóç ôïõ ßäéïõ ôïõ ðõñÞíá. Áõôü ìðïñåß íá åðéôåõ÷èåß ìå ôç ãñáììÞ:</para> <programlisting>geom_vinum_load="YES"</programlisting> <para>óôï áñ÷åßï <filename>/boot/loader.conf</filename>.</para> </listitem> <listitem> <para>Óôï <emphasis>Gvinum</emphasis>, üëç ç äéáäéêáóßá åêêßíçóçò ãßíåôáé áõôüìáôá ìåôÜ ôçí öüñôùóç ôïõ áñèñþìáôïò ðõñÞíá, Ýôóé ç äéáäéêáóßá ðïõ ðåñéãñÜøáìå ðáñáðÜíù åßíáé êáé ç ìüíç ðïõ áðáéôåßôáé.</para> </listitem> </itemizedlist> </sect2> <sect2> <title>Äçìéïõñãßá Ñéæéêïý Ôüìïõ Vinum ìå Äõíáôüôçôá Ðñüóâáóçò áðü ôïí Êþäéêá Åêêßíçóçò (Bootstrap).</title> <para>Êáèþò ï ôñÝ÷ïíôáò êþäéêáò åêêßíçóçò ôïõ &os; Ý÷åé ìÝãåèïò ìüíï 7.5 KB, êáé åßíáé Þäç åðéöïñôéóìÝíïò ìå ôçí áíÜãíùóç áñ÷åßùí (üðùò ôï <filename>/boot/loader</filename>) áðü ôï óýóôçìá áñ÷åßùí UFS, åßíáé ðñáêôéêÜ áäýíáôï íá ãíùñßæåé êáé ôéò áðáéôïýìåíåò åóùôåñéêÝò äïìÝò ôïõ Vinum þóôå íá ìðïñåß íá åñìçíåýóåé ôéò áíôßóôïé÷åò ðëçñïöïñßåò ñýèìéóçò êáé íá ìÜèåé ôéò ëåðôïìÝñåéåò ôïõ ôüìïõ åêêßíçóçò. Ãéá ôï ëüãï áõôü, ÷ñåéÜæåôáé íá ÷ñçóéìïðïéÞóïõìå êÜðïéá ôå÷íÜóìáôá þóôå íá äþóïõìå óôïí êþäéêá åêêßíçóçò ôçí øåõäáßóèçóç ýðáñîçò ìéáò êáíïíéêÞò êáôÜôìçóçò <literal>"a"</literal> ðïõ íá ðåñéÝ÷åé ôï ñéæéêü óýóôçìá áñ÷åßùí.</para> <para>Ãéá íá êáôáóôåß áõôü äõíáôü, èá ðñÝðåé íá ðëçñïýíôáé ôáõôü÷ñïíá üëåò ïé ðáñáêÜôù ðñïûðïèÝóåéò üóï áöïñÜ ôïí ôüìï åêêßíçóçò:</para> <itemizedlist> <listitem> <para>Ï ôüìïò åêêßíçóçò äåí èá ðñÝðåé íá åßíáé stripe Þ RAID-5.</para> </listitem> <listitem> <para>Ï ôüìïò åêêßíçóçò äåí èá ðñÝðåé íá ðåñéÝ÷åé ðåñéóóüôåñïõò áðü Ýíá óõíåíùìÝíïõò õðïäßóêïõò áíÜ plex.</para> </listitem> </itemizedlist> <para>Óçìåéþóôå üôé åßíáé óõíÞèùò åðéèõìçôü êáé äõíáôü íá õðÜñ÷ïõí ðïëëáðëÜ plex, êáèÝíá áðü ôá ïðïßá íá åßíáé áíôßãñáöï ôïõ ñéæéêïý óõóôÞìáôïò áñ÷åßùí. Ç äéáäéêáóßá åêêßíçóçò èá ÷ñçóéìïðïéÞóåé ùóôüóï ìüíï Ýíá áðü áõôÜ ôá áíôßãñáöá ãéá íá âñåé ôïí êþäéêá åêêßíçóçò êáé üëá ôá áñ÷åßá, ìÝ÷ñé íá ãßíåé ôåëéêÜ ç ðñïóÜñôçóç ôïõ ñéæéêïý óõóôÞìáôïò áñ÷åßùí áðü ôïí ßäéï ôïí ðõñÞíá. ÊÜèå ìïíáäéêüò õðïäßóêïò ìÝóá óå áõôÜ ôá plex, èá ÷ñåéáóôåß íá äéáèÝôåé ôç äéêÞ ôïõ øåõôï-êáôÜôìçóç <literal>"a"</literal> þóôå ç óõóêåõÞ íá åßíáé åêêéíÞóéìç. Äåí åßíáé áðáñáßôçôï êÜèå ìéá áðü áõôÝò ôéò øåõôï-êáôáôìÞóåéò íá âñßóêåôáé óôçí ßäéá èÝóç ìÝóá óôçí óõóêåõÞ, óå ó÷Ýóç ìå Üëëåò óõóêåõÝò ðïõ ðåñéÝ÷ïõí plex ìå ñéæéêü óýóôçìá áñ÷åßùí. Åßíáé üìùò ãåíéêÜ êáëÞ éäÝá íá äçìéïõñãÞóåôå ôïõò ôüìïõò ôïõ Vinum ìå ôÝôïéï ôñüðï, þóôå ïé óõóêåõÝò mirror ðïõ ðñïêýðôïõí íá åßíáé óõììåôñéêÝò ãéá íá áðïöýãåôå ôç óýã÷õóç.</para> <para>Ãéá íá äçìéïõñãçèïýí áõôÝò ïé ôýðïõ <literal>"a"</literal> êáôáôìÞóåéò ãéá êÜèå óõóêåõÞ ðïõ èá ðåñéÝ÷åé ôìÞìáôá ôïõ ñéæéêïý ôüìïõ, èá ðñÝðåé íá ãßíïõí ôá áêüëïõèá:</para> <procedure> <step> <para>Èá ðñÝðåé íá åîåôÜóåôå ôç èÝóç (ôçí áðüóôáóç áðü ôçí áñ÷Þ ôçò óõóêåõÞò) êáé ôï ìÝãåèïò ôçò óõóêåõÞò õðïäßóêïõ ç ïðïßá èá åßíáé ìÝñïò ôïõ ñéæéêïý ôüìïõ, ÷ñçóéìïðïéþíôáò ôçí åíôïëÞ:</para> <screen>&prompt.root; <userinput>gvinum l -rv root</userinput></screen> <para>Óçìåéþóôå üôé óôï Vinum ïé èÝóåéò êáé ôá ìåãÝèç ìåôñïýíôáé óå bytes. Èá ðñÝðåé íá äéáéñÝóåôå áõôïýò ôïõò áñéèìïýò ìå ôï 512 ãéá íá âñåßôå ôïõò áñéèìïýò ìðëïê ðïõ èá ÷ñçóéìïðïéÞóåôå óôçí åíôïëÞ <command>bsdlabel</command>.</para> </step> <step> <para>ÅêôåëÝóôå ôçí åíôïëÞ:</para> <screen>&prompt.root; <userinput>bsdlabel -e <replaceable>devname</replaceable></userinput></screen> <para>ãéá êÜèå óõóêåõÞ ðïõ óõììåôÝ÷åé óôï ñéæéêü ôüìï. Ôï <replaceable>devname</replaceable> èá ðñÝðåé íá åßíáé åßôå ôï üíïìá ôïõ äßóêïõ (ãéá ðáñÜäåéãìá <devicename>da0</devicename>) ãéá äßóêïõò ÷ùñßò slices (÷ùñßò äçë. êáôáôìÞóåéò fdisk), Þ ôï üíïìá ôïõ slice (ãéá ðáñÜäåéãìá, <devicename>ad0s1</devicename>).</para> <para>Áí õðÜñ÷åé Þäç ìéá êáôÜôìçóç <literal>"a"</literal> óôç óõóêåõÞ (ðïõ ðéèáíþò ðåñéÝ÷åé ôï ñéæéêü óýóôçìá áñ÷åßùí ðïõ Þôáí óå ÷ñÞóç ðñéí ÷ñçóéìïðïéçèåß ôï Vinum), èá ðñÝðåé íá ìåôïíïìáóôåß óå êÜôé Üëëï þóôå íá åîáêïëïõèåß íá åßíáé ðñïóâÜóéìï (óå ðåñßðôùóç áíÜãêçò), áëëÜ äåí èá ÷ñçóéìïðïéåßôáé ðëÝïí áðü ðñïåðéëïãÞ ãéá ôçí åêêßíçóç ôïõ óõóôÞìáôïò. Óçìåéþóôå üôé ïé åíåñãÝò êáôáôìÞóåéò (üðùò ãéá ðáñÜäåéãìá Ýíá ñéæéêü óýóôçìá áñ÷åßùí ôï ïðïßï åßíáé Þäç ðñïóáñôçìÝíï) äåí ìðïñïýí íá ìåôïíïìáóôïýí. Èá ðñÝðåé íá åêôåëÝóåôå ôçí åíôïëÞ ÷ñçóéìïðïéþíôáò ôçí åðéëïãÞ <quote>Fixit</quote> ôïõ CD åãêáôÜóôáóçò, Þ íá áêïëïõèÞóåôå ìéá äéáäéêáóßá äýï âçìÜôùí (óå ðåñßðôùóç ðïõ Ý÷åôå mirror) îåêéíþíôáò áðü ôïí Ýíá äßóêï êáé ìåôïíïìÜæïíôáò ôïí Üëëï.</para> <para>¸ðåéôá èá ðñÝðåé íá ðñïóèÝóåôå ôçí áðüóôáóç (offset, áí õðÜñ÷åé) ôçò êáôÜôìçóçò Vinum áõôÞò ôçò óõóêåõÞò, ìå ôçí áðüóôáóç ôïõ õðïäßóêïõ ôïõ áíôßóôïé÷ïõ ñéæéêïý ôüìïõ ôçò óõóêåõÞò. Ç ôéìÞ ðïõ èá ðñïêýøåé èá åßíáé ç áðüóôáóç (<literal>"offset"</literal>) ãéá ôç íÝá êáôÜôìçóç <literal>"a"</literal>. Ìðïñåßôå íá ðÜñåôå áõôïýóéá ôçí ôéìÞ <literal>"size"</literal> ãéá áõôÞ ôçí êáôÜôìçóç áðü ôïí õðïëïãéóìü ðïõ êÜíáôå ðáñáðÜíù. Ôï <literal>"fstype"</literal> èá ðñÝðåé íá åßíáé <literal>4.2BSD</literal>. Ïé ôéìÝò ôùí <literal>"fsize"</literal>, <literal>"bsize"</literal>, êáé <literal>"cpg"</literal> èá ðñÝðåé íá åðéëå÷èïýí ìå ôÝôïéï ôñüðï þóôå íá ôáéñéÜæïõí ìå ôï ðñáãìáôéêü óýóôçìá áñ÷åßùí, áí êáé äåí Ý÷ïõí óçìáóßá óôç óõãêåêñéìÝíç ðåñßðôùóç.</para> <para>Ìå áõôü ôïí ôñüðï, èá äçìéïõñãçèåß ìéá íÝá êáôÜôìçóç <literal>"a"</literal> ç ïðïßá åðéêáëýðôåé ôçí êáôÜôìçóç ôïõ Vinum óå áõôÞ ôç óõóêåõÞ. Óçìåéþóôå üôé ç åíôïëÞ <command>bsdlabel</command> èá åðéôñÝøåé áõôÞ ôçí åðéêÜëõøç ìüíï áí ç êáôÜôìçóç ôïõ Vinum Ý÷åé åðéóçìáíèåß êáôÜëëçëá ìå fstype <literal>"vinum"</literal>.</para> </step> <step> <para>Áõôü åßíáé üëï! ÕðÜñ÷åé ðëÝïí ìéá øåõôï-êáôÜôìçóç <literal>"a"</literal> óå êÜèå óõóêåõÞ ç ïðïßá Ý÷åé áíôßãñáöï ôïõ ñéæéêïý ôüìïõ. Óõíßóôáôáé íá åðáëçèåýóåôå îáíÜ ôï áðïôÝëåóìá, ÷ñçóéìïðïéþíôáò ìéá åíôïëÞ üðùò ôçí ðáñáêÜôù:</para> <screen>&prompt.root; <userinput>fsck -n /dev/<replaceable>devname</replaceable>a</userinput></screen> </step> </procedure> <para>Èá ðñÝðåé íá èõìÜóôå üôé ïé èÝóåéò ôùí áñ÷åßùí ðïõ ðåñéÝ÷ïõí ðëçñïöïñßåò åëÝã÷ïõ ðñÝðåé íá åßíáé ó÷åôéêÝò ùò ðñïò ôï ñéæéêü óýóôçìá áñ÷åßùí ðïõ âñßóêåôáé óôï ôüìï ôïõ Vinum, êáé ï ïðïßïò (êáôÜ ôçí äçìéïõñãßá êáéíïýñéïõ ñéæéêïý ôüìïõ Vinum) ìðïñåß íá ìçí ôáéñéÜæåé ìå ôï ñéæéêü óýóôçìá áñ÷åßùí ðïõ åßíáé åíåñãü ôç äåäïìÝíç óôéãìÞ. Èá ðñÝðåé éäéáßôåñá íá öñïíôßóåôå ôá áñ÷åßá <filename>/etc/fstab</filename> êáé <filename>/boot/loader.conf</filename>.</para> <para>Óôçí åðüìåíç åðáíåêêßíçóç, ï êþäéêáò åêêßíçóçò èá ðñÝðåé íá åíôïðßóåé ôéò êáôÜëëçëåò ðëçñïöïñßåò åëÝã÷ïõ áðü ôï íÝï (Vinum) ñéæéêü óýóôçìá áñ÷åßùí êáé íá äñÜóåé êáôÜëëçëá. Óôï ôÝëïò ôçò äéáäéêáóßáò áñ÷éêïðïßçóçò ôïõ ðõñÞíá, êáé ìåôÜ ôçí áíáããåëßá üëùí ôùí óõóêåõþí, ôï ìÞíõìá ôï ïðïßï äåß÷íåé ôçí åðéôõ÷Þ ëåéôïõñãßá ôïõ åã÷åéñÞìáôïò ìïéÜæåé ìå ôï ðáñáêÜôù:</para> <screen>Mounting root from ufs:/dev/gvinum/root</screen> </sect2> <sect2> <title>ÐáñÜäåéãìá Ñýèìéóçò Ñéæéêïý Ôüìïõ ìå Vinum</title> <para>ÌåôÜ ôçí ñýèìéóç ôïõ ñéæéêïý ôüìïõ ìå ôï Vinum, ç Ýîïäïò ôçò åíôïëÞò <command>gvinum l -rv root</command> èá ìïéÜæåé ìå ôçí ðáñáêÜôù:</para> <screen> ... Subdisk root.p0.s0: Size: 125829120 bytes (120 MB) State: up Plex root.p0 at offset 0 (0 B) Drive disk0 (/dev/da0h) at offset 135680 (132 kB) Subdisk root.p1.s0: Size: 125829120 bytes (120 MB) State: up Plex root.p1 at offset 0 (0 B) Drive disk1 (/dev/da1h) at offset 135680 (132 kB) </screen> <para>Ïé ôéìÝò ðïõ èá ðñÝðåé íá óçìåéþóåôå åßíáé ôï <literal>135680</literal> ãéá ôçí áðüóôáóç (offset óå ó÷Ýóç ìå ôçí êáôÜôìçóç <filename class="devicefile">/dev/da0h</filename>). Áõôü ìåôáöñÜæåôáé óå 265 block ôùí 512 byte ãéá ôçí åíôïëÞ <command>bsdlabel</command>. Ðáñüìïéá, ôï ìÝãåèïò ôïõ ñéæéêïý ôüìïõ åßíáé 245760 ìðëïê ôùí 512 byte. Ôï <filename class="devicefile">/dev/da1h</filename>, ôï ïðïßï ðåñéÝ÷åé ôï äåýôåñï áíôßãñáöï ôïõ ñéæéêïý ôüìïõ, Ý÷åé óõììåôñéêÞ ñýèìéóç.</para> <para>Ôï bsdlabel ãéá áõôÝò ôéò óõóêåõÝò èá ìïéÜæåé ìå ôï ðáñáêÜôù:</para> <screen> ... 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 245760 281 4.2BSD 2048 16384 0 # (Cyl. 0*- 15*) c: 71771688 0 unused 0 0 # (Cyl. 0 - 4467*) h: 71771672 16 vinum # (Cyl. 0*- 4467*)</screen> <para>Ìðïñåßôå íá ðáñáôçñÞóåôå üôé ç ðáñÜìåôñïò <literal>"size"</literal> ãéá ôçí øåõôï-êáôÜôìçóç <literal>"a"</literal> ôáéñéÜæåé ìå ôçí ôéìÞ ðïõ äåßîáìå ðáñáðÜíù, åíþ ç ôéìÞ ôçò ðáñáìÝôñïõ <literal>"offset"</literal> åßíáé ôï Üèñïéóìá ôçò áðüóôáóçò áíÜìåóá óôçí êáôÜôìçóç Vinum <literal>"h"</literal> êáé ôçò áðüóôáóçò áõôÞò ôçò êáôÜôìçóçò ìÝóá óôç óõóêåõÞ (Þ ôï slice). Ðñüêåéôáé ãéá ìéá ôõðéêÞ ñýèìéóç ðïõ åßíáé áðáñáßôçôç ãéá íá áðïöåõ÷èïýí ôá ðñïâëÞìáôá ðïõ ðåñéãñÜöçêáí óôï <xref linkend="vinum-root-panic"/>. Ìðïñåßôå åðßóçò íá äåßôå üôé ïëüêëçñç ç êáôÜôìçóç <literal>"a"</literal> ðåñéÝ÷åôáé áõôïýóéá ìÝóá óôçí <literal>"h"</literal> ç ïðïßá êáé ðåñéÝ÷åé üëåò ôéò ðëçñïöïñßåò Vinum ôçò óõóêåõÞò.</para> <para>Óçìåéþóôå üôé óôï ðáñáðÜíù ðáñÜäåéãìá ç óõóêåõÞ ÷ñçóéìïðïéåßôáé åî' ïëïêëÞñïõ áðü ôï Vinum, êáé äåí õðÜñ÷åé êÜðïéï êáôÜëïéðï ñéæéêÞò êáôÜôìçóçò áðü ðáëéüôåñç ÷ñÞóç. Áõôü óõìâáßíåé åðåéäÞ ðñüêåéôáé ãéá äßóêï ðïõ ÷ñçóéìïðïéÞèçêå áðü ôçí áñ÷Þ ùò ìÝñïò åíüò óõóôÞìáôïò Vinum.</para> </sect2> <sect2> <title>Áíôéìåôþðéóç ÐñïâëçìÜôùí</title> <para>Óå ðåñßðôùóç ðñïâëÞìáôïò, èá ÷ñåéáóôåßôå êÜðïéá ìÝèïäï áíôéìåôþðéóçò. Ç ðáñáêÜôù ëßóôá ðåñéÝ÷åé ìåñéêÜ áðü ôá ðéï óõíçèéóìÝíá ðñïâëÞìáôá êáé ôéò ëýóåéò ôïõò.</para> <sect3> <title>Ï Êþäéêáò Åêêßíçóçò Öïñôþíåôáé, ÁëëÜ ôï Óýóôçìá äåí Åêêéíåß</title> <para>Áí ãéá ïðïéïäÞðïôå ëüãï ôï óýóôçìá äåí óõíå÷ßæåé ôçí åêêßíçóç, èá ðñÝðåé íá äéáêüøåôå ôçí åêêßíçóç ìÝóá óôï ÷ñïíéêü äéÜóôçìá ôùí 10 äåõôåñïëÝðôùí ðïõ åìöáíßæåôáé ï öïñôùôÞò åêêßíçóçò, ðéÝæïíôáò ôï ðëÞêôñï <keycap>space</keycap>. Ìðïñåßôå íá åîåôÜóåôå ôéò ôéìÝò ôùí ìåôáâëçôþí ôïõ öïñôùôÞ (üðùò ç <literal>vinum.autostart</literal>), ÷ñçóéìïðïéþíôáò ôçí åíôïëÞ <command>show</command>, êáé íá ôéò áëëÜîåôå ìå ôéò åíôïëÝò <command>set</command> Þ <command>unset</command>.</para> <para>Áí ôï ìïíáäéêü ðñüâëçìá Þôáí ç áðïõóßá ôïõ áñèñþìáôïò Vinum óôç ëßóôá ôçò áõôüìáôçò öüñôùóçò, áñêåß íá äþóåôå ôçí åíôïëÞ <command>load geom_vinum</command>.</para> <para>¼ôáí åßóôå Ýôïéìïò, ç åêêßíçóç ìðïñåß íá óõíå÷éóôåß ìå ôçí åíôïëÞ <command>boot -as</command>. Ïé åðéëïãÝò <option>-as</option> èá ïäçãÞóïõí ôïí ðõñÞíá íá ñùôÞóåé ãéá ôï ñéæéêü óýóôçìá áñ÷åßùí ðïõ ðñüêåéôáé íá ðñïóáñôçèåß (<option>-a</option>), êáé ç äéáäéêáóßá åêêßíçóçò èá óôáìáôÞóåé óå êáôÜóôáóç åíüò ÷ñÞóôç (single user, ëüãù ôçò åðéëïãÞò <option>-s</option>), üðïõ ç ðñïóÜñôçóç ôïõ ñéæéêïý óõóôÞìáôïò åßíáé ìüíï ãéá áíÜãíùóç. Ìå ôïí ôñüðï áõôü, áêüìá êáé áí Ý÷åé ðñïóáñôçèåß ìüíï Ýíá plex åíüò ôüìïõ ðïõ áðïôåëåßôáé áðü ðïëëÜ, äåí õðÜñ÷åé êßíäõíïò íá äçìéïõñãçèåß áóõíÝðåéá äåäïìÝíùí ìåôáîý ôùí plex.</para> <para>Óôçí ðñïôñïðÞ ðïõ åìöáíßæåôáé ãéá ôï ñéæéêü óýóôçìá áñ÷åßùí ðïõ ðñüêåéôáé íá ðñïóáñôçèåß, ìðïñåßôå íá åéóÜãåôå ïðïéáäÞðïôå óõóêåõÞ ðåñéÝ÷åé Ýíá Ýãêõñï ñéæéêü óýóôçìá áñ÷åßùí. Áí ôï <filename>/etc/fstab</filename> Ý÷åé ñõèìéóôåß óùóôÜ, ç ðñïåðéëïãÞ èá åßíáé êÜôé óáí <literal>ufs:/dev/gvinum/root</literal>. Ìéá ôõðéêÞ åíáëëáêôéêÞ ôïðïèåóßá èá ìðïñïýóå íá åßíáé ôï <literal>ufs:da0d</literal>, ìéá õðïèåôéêÞ êáôÜôìçóç ðïõ ðåñéÝ÷åé ôï ðáëéü (ðñéí ôï Vinum) ñéæéêü óýóôçìá áñ÷åßùí. Áí ðñüêåéôáé íá ÷ñçóéìïðïéÞóåôå ìéá áðü ôéò ôýðïõ <literal>"a"</literal> øåõôï-êáôáôìÞóåéò ðïõ åßíáé óôçí ðñáãìáôéêüôçôá õðïäßóêïé ôçò ñéæéêÞò óõóêåõÞò ôïõ Vinum, èá ðñÝðåé íá åßóôå ðñïóåêôéêüò, ãéáôß áí ÷ñçóéìïðïéåßôå mirror èá ãßíåé ðñïóÜñôçóç ìüíï ôïõ åíüò ôìÞìáôïò ôçò óõóêåõÞò. Áí ðñüêåéôáé íá ðñïóáñôÞóåôå áõôÞ ôç óõóêåõÞ áñãüôåñá ìå äõíáôüôçôá åããñáöÞò-áíÜãíùóçò, åßíáé áðáñáßôçôï íá áöáéñÝóåôå ôá õðüëïéðá plex ôïõ ñéæéêïý ôüìïõ ôïõ Vinum, êáèþò áõôÜ èá ðåñéÝ÷ïõí äåäïìÝíá ðïõ äåí åßíáé óå óõã÷ñïíéóìü ìå ôçí êáôÜôìçóç ðïõ Ý÷åôå Þäç ðñïóáñôÞóåé.</para> </sect3> <sect3> <title>Öïñôþíåé Ìüíï ï Âáóéêüò Êþäéêáò Åêêßíçóçò</title> <para>Áí ç öüñôùóç ôïõ <filename>/boot/loader</filename> äåí åßíáé åðéôõ÷Þò, áëëÜ ï âáóéêüò êþäéêáò åêêßíçóçò (primary bootstrap) öïñôþíåôáé (êÜôé ðïõ ìðïñåßôå íá äéáðéóôþóåôå åëÝã÷ïíôáò áí åìöáíßæåôáé ìéá ðáýëá óôçí ðÜíù áñéóôåñÞ ãùíßá ôçò ïèüíçò êáôÜ ôï áñ÷éêü óôÜäéï åêêßíçóçò), ìðïñåßôå íá ðñïóðáèÞóåôå íá äéáêüøåôå ôç âáóéêÞ åêêßíçóç óå áõôü ôï óçìåßï ÷ñçóéìïðïéþíôáò ôï ðëÞêôñï <keycap>space</keycap>. Ìå áõôü ôïí ôñüðï, ç åêêßíçóç èá óôáìáôÞóåé óôï óôÜäéï äýï (äåßôå ôï <xref linkend="boot-boot1"/>). Ìðïñåßôå åäþ íá ðñïóðáèÞóåôå íá åêêéíÞóåôå áðü ìéá åíáëëáêôéêÞ êáôÜôìçóç, ð.÷. ôçí êáôÜôìçóç ðïõ ðåñéåß÷å ôï ñéæéêü óýóôçìá áñ÷åßùí ðïõ ìåôáêéíÞóáôå áðü ôï <literal>"a"</literal> üôáí îåêéíÞóáôå íá ÷ñçóéìïðïéåßôå ôï Vinum.</para> </sect3> <sect3 id="vinum-root-panic"> <title>Äåí Ãßíåôáé ÊáìéÜ Åêêßíçóç, ï Êþäéêáò Åêêßíçóçò Ðñïêáëåß Panic</title> <para>Áõôü ìðïñåß íá óõìâåß áí ï êþäéêáò åêêßíçóçò êáôáóôñáöåß áðü ôçí åãêáôÜóôáóç ôïõ Vinum. Äõóôõ÷þò, ôï Vinum ôçí ôñÝ÷ïõóá óôéãìÞ áöÞíåé ìüíï 4 KB åëåýèåñá óôçí áñ÷Þ ôçò êáôÜôìçóçò ôïõ ðñéí áñ÷ßóåé íá ãñÜöåé ôéò ðëçñïöïñßåò ôçò åðéêåöáëßäáò ôïõ. Ùóôüóï ôá óôÜäéá Ýíá êáé äýï êáèþò êáé ôï bsdlabel ðïõ åíóùìáôþíåôáé áíÜìåóá ôïõò, ÷ñåéÜæïíôáé 8 KB. ¸ôóé, áí ìéá êáôÜôìçóç Vinum îåêßíáãå óôçí èÝóç 0 ìÝóá óå Ýíá slice Þ äßóêï ðïõ ðñïïñßæïíôáí ãéá åêêßíçóç, ç åãêáôÜóôáóç ôïõ Vinum èá êáôÝóôñåöå ôïí êþäéêá åêêßíçóçò.</para> <para>Ìå ôïí ßäéï ôñüðï, áí ç ðáñáðÜíù êáôÜóôáóç åðéäéïñèùèåß ãéá ðáñÜäåéãìá îåêéíþíôáò áðü Ýíá CD <quote>Fixit</quote> êáé åðáíåãêáèéóôþíôáò ôïí êþäéêá åêêßíçóçò ìå ôç âïÞèåéá ôçò åíôïëÞò <command>bsdlabel -B</command> (üðùò ðåñéãñÜöåôáé óôï <xref linkend="boot-boot1"/>), ï êþäéêáò åêêßíçóçò èá êáôáóôñÝøåé ôçí åðéêåöáëßäá ôïõ Vinum, ôï ïðïßï äåí èá ìðïñåß ðëÝïí íá åíôïðßóåé ôïõò äßóêïõò ôïõ. Áí êáé ôï ðáñáðÜíù äåí êáôáóôñÝöåé ôá äåäïìÝíá ñõèìßóåùí Þ ôá ðñáãìáôéêÜ äåäïìÝíá ðïõ õðÜñ÷ïõí óôïõò ôüìïõò (êáé ç áíÜêôçóç ôïõò åßíáé äõíáôÞ áí äþóåôå îáíÜ áêñéâþò ôéò ßäéåò ñõèìßóåéò óôï Vinum ìå ôéò áñ÷éêÝò óáò), ç êáôÜóôáóç äéïñèþíåôáé áñêåôÜ äýóêïëá. Èá ðñÝðåé íá ìåôáêéíÞóåôå ïëüêëçñç ôçí êáôÜôìçóç ôïõ Vinum ôïõëÜ÷éóôïí êáôÜ 4 KB þóôå íá ìçí õðÜñ÷åé óýãêñïõóç ìåôáîý ôçò åðéêåöáëßäáò ôïõ Vinum êáé ôïõ êþäéêá åêêßíçóçò.</para> </sect3> </sect2> </sect1> </chapter>