diff options
Diffstat (limited to 'de_DE.ISO8859-1/books/handbook/geom/chapter.sgml')
-rw-r--r-- | de_DE.ISO8859-1/books/handbook/geom/chapter.sgml | 942 |
1 files changed, 942 insertions, 0 deletions
diff --git a/de_DE.ISO8859-1/books/handbook/geom/chapter.sgml b/de_DE.ISO8859-1/books/handbook/geom/chapter.sgml new file mode 100644 index 0000000000..f95d4139bb --- /dev/null +++ b/de_DE.ISO8859-1/books/handbook/geom/chapter.sgml @@ -0,0 +1,942 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD German Documentation Project + + $FreeBSD$ + $FreeBSDde: de-docproj/books/handbook/geom/chapter.sgml,v 1.20 2011/12/19 15:25:08 bcr Exp $ + basiert auf: 1.51 +--> + +<chapter id="GEOM"> + <chapterinfo> + <authorgroup> + <author> + <firstname>Tom</firstname> + <surname>Rhodes</surname> + <contrib>Geschrieben von </contrib> + </author> + </authorgroup> + <authorgroup> + <author> + <firstname>Daniel</firstname> + <surname>Seuffert</surname> + <contrib>Übersetzt von </contrib> + </author> + <author> + <firstname>Johann</firstname> + <surname>Kois</surname> + </author> + </authorgroup> + </chapterinfo> + + <title>GEOM: Modulares Framework zur + Plattentransformation</title> + + <sect1 id="GEOM-synopsis"> + <title>Übersicht</title> + + <indexterm> + <primary>GEOM</primary> + </indexterm> + <indexterm> + <primary>GEOM Disk Framework</primary> + <see>GEOM</see> + </indexterm> + + <para>Dieses Kapitel behandelt den Einsatz von Laufwerken mit + dem GEOM-Framework in &os;. Dies beinhaltet auch die wichtigen + <acronym role="Redundant Array of Inexpensive + Disks">RAID</acronym>-Überwachungswerkzeuge, welche das + Framework zur Konfiguration nutzen. Dieses Kapitel enthält + keine tiefschürfenden Betrachtungen, wie GEOM I/O nutzt + oder steuert, sein zugrundeliegendes Subsystem oder den + Quelltext von GEOM. Diese Information wird durch die + &man.geom.4;-Manualpage und seine zahlreichen <quote>SEE ALSO</quote>-Verweise + bereitgestellt. Dieses Kapitel ist auch kein ausführlicher + Führer für + <acronym>RAID</acronym>-Konfigurationen. Nur durch GEOM + unterstützte <acronym>RAID</acronym>-Klassen werden + erörtert.</para> + + <para>Nach Lesen dieses Kapitels werden Sie folgendes + wissen:</para> + + <itemizedlist> + <listitem> + <para>Welche Art von + <acronym>RAID</acronym>-Unterstützung durch GEOM + verfügbar ist.</para> + </listitem> + + <listitem> + <para>Wie man die Basis-Dienstprogramme nutzt, um + verschiedene <acronym>RAID</acronym>-Stufen zu + konfigurieren, zu manipulieren und zu warten.</para> + </listitem> + + <listitem> + <para>Wie man mittels GEOM spiegelt, striped, + verschlüsselt und entfernte Laufwerke verbindet.</para> + </listitem> + + <listitem> + <para>Wie man an Laufwerken, welche an das GEOM-Framework + angeschlossen sind, Fehler behebt.</para> + </listitem> + </itemizedlist> + + <para>Bevor Sie dieses Kapitel lesen, sollten Sie:</para> + + <itemizedlist> + <listitem> + <para>Verstehen, wie &os; Laufwerke behandelt + (<xref linkend="disks">).</para> + </listitem> + + <listitem> + <para>Wissen wie man einen neuen &os;-Kernel installiert + und konfiguriert (<xref linkend="kernelconfig">).</para> + </listitem> + </itemizedlist> + </sect1> + + <sect1 id="GEOM-intro"> + <title>Einführung in GEOM</title> + + <para>GEOM erlaubt den Zugriff und die Kontrolle von Klassen + — Master Boot Records, <acronym>BSD</acronym>-Label usw. + — durch die Nutzung von Datenträgern (Providern) oder + den besonderen Dateien in <filename + role="directory">/dev</filename>. Verschiedene Software + <acronym>RAID</acronym>-Konfigurationen unterstützend, wird + GEOM Ihnen transparenten Zugriff auf das Betriebssystem und + System-Dienstprogramme gewähren.</para> + </sect1> + + <sect1 id="GEOM-striping"> + <sect1info> + <authorgroup> + <author> + <firstname>Tom</firstname> + <surname>Rhodes</surname> + <contrib>Geschrieben von </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 (stripe = Streifen) ist eine Methode, um + verschiedene Laufwerke in einem einzigen Datenträger + zusammenzufassen. In vielen Fällen wird dies durch die + Nutzung von Hardware-Controllern bewerkstelligt. Das + GEOM-Subsystem unterstützt + Software-<acronym>RAID</acronym>0 (welches auch als Striping + bekannt ist).</para> + + <para>In einem <acronym>RAID</acronym>0-System werden die Daten + in einzelne Blöcke aufgeteilt, welche über alle + angeschlossenen Laufwerke in einem Datenfeld (Array) geschrieben + werden. Anstatt darauf warten zu müssen, dass 256K auf + ein einzelnes Laufwerk geschrieben werden, kann ein + <acronym>RAID</acronym>0-System gleichzeitig 64K auf jedes von 4 + Laufwerken schreiben mit entsprechend besserer I/O-Leistung. + Dieser Durchsatz kann durch die Verwendung mehrerer + Controller noch zusätzlich gesteigert werden.</para> + + <para>Jedes Laufwerk in einem <acronym>RAID</acronym>0-Stripe + muss die gleiche Größe haben, da + I/O-Anforderungen für das Lesen und Schreiben + abwechselnd auf mehrere Laufwerke parallel erfolgen.</para> + + <mediaobject> + <imageobject> + <imagedata fileref="geom/striping" align="center"> + </imageobject> + + <textobject> + <phrase>Disk Striping Illustration</phrase> + </textobject> + </mediaobject> + + <procedure> + <title>Erzeugen eines Stripe von unformatierten + ATA-Platten</title> + + <step> + <para>Laden Sie das + <filename>geom_stripe.ko</filename>-Modul:</para> + + <screen>&prompt.root; <userinput>kldload geom_stripe</userinput></screen> + </step> + + <step> + <para>Stellen Sie sicher, dass ein geeigneter Mount-Punkt + existiert. Falls dieser Datenträger eine Root-Partition + werden soll, dann nutzen Sie zeitweise einen anderen + Mount-Punkt, beispielsweise <filename + role="directory">/mnt</filename>:</para> + + <screen>&prompt.root; <userinput>mkdir /mnt</userinput></screen> + </step> + + <step> + <para>Bestimmen Sie die Gerätenamen derjenigen Platten, + welche gestriped werden sollen, und erzeugen Sie ein neues + Stripe-Gerät. Das folgende Beispiel verwendet zwei + unbenutzte und unpartitionierte + <acronym>ATA</acronym>-Platten, die gestriped werden sollen. + Lauten die Gerätenamen <filename>/dev/ad2</filename> + und <filename>/dev/ad3</filename>, so verwenden Sie folgenden + Befehl:</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>Schreiben Sie einen Standard-Label (auch als + Partitions-Tabelle bekannt) auf den neuen Datenträger + und installieren Sie den normalen Bootstrap-Code:</para> + + <screen>&prompt.root; <userinput>bsdlabel -wB /dev/stripe/st0</userinput></screen> + </step> + + <step> + <para>Dieser Prozess sollte zwei weitere Geräte im + Verzeichnis <filename + class="directory">/dev/stripe</filename> (zusätzlich zum + Gerät <devicename>st0</devicename>) erzeugt haben. Diese + schliessen <devicename>st0a</devicename> und + <devicename>st0c</devicename> ein. Nun kann ein Dateisystem + auf dem Gerät <devicename>st0a</devicename> mit dem + <command>newfs</command>-Dienstprogramm erzeugt + werden:</para> + + <screen>&prompt.root; <userinput>newfs -U /dev/stripe/st0a</userinput></screen> + + <para>Viele Zahlen rauschen nun über Ihren Bildschirm + und nach ein paar Sekunden wird der Prozess abgeschlossen + sein. Der Datenträger wurde erzeugt und kann in den + Verzeichnisbaum eingehängt werden.</para> + </step> + </procedure> + + <para>Um das erzeugte Stripe manuell zu mounten:</para> + + <screen>&prompt.root; <userinput>mount /dev/stripe/st0a /mnt</userinput></screen> + + <para>Um das erzeugte Dateisystem automatisch während des + Startvorgangs zu mounten, müssen Sie die + Datenträgerinformation in die Datei + <filename>/etc/fstab</filename> schreiben. Dazu legen Sie einen + permanenten Mountpunkt namens + <filename class="directory">stripe</filename> an:</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>Das <filename>geom_stripe.ko</filename>-Modul muss + ebenfalls automatisch beim Systemstart geladen werden (durch + die Aufnahme der folgenden Zeile in die Datei + <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 - Spiegelung</title> + + <indexterm> + <primary>GEOM</primary> + </indexterm> + <indexterm> + <primary>Disk Mirroring</primary> + </indexterm> + + <para>Spiegelung (Mirroring) ist eine Technik, welche von vielen + Firmen und Heimnutzern eingesetzt wird, um Daten ohne + Unterbrechung zu sichern. Wenn ein Spiegel existiert, dann + bedeutet dies einfach nur, dass PlatteB die PlatteA + dupliziert. Oder PlatteC+D duplizieren PlatteA+A. Der + wichtigste Aspekt ist, dass Daten einer Platte oder + Partition dupliziert werden, unabhängig von der + Konfiguration der Platte. Dadurch kann später diese + Information leichter wiederhergestellt, ohne + Zugriffsunterbrechung gesichert oder sogar physisch in einem + Datentresor gelagert werden.</para> + + <para>Stellen Sie zu Beginn sicher, dass ihr System zwei + Platten mit identischer Größe aufweist. In dieser + Übung gehen wir davon aus, dass es direkt + zugängliche (&man.da.4;) <acronym>SCSI</acronym>-Platten + sind.</para> + + <sect2> + <title>Die primäre Platte spiegeln</title> + + <para>Angenommen, &os; wurde auf der ersten Platte + <devicename>da0</devicename> installiert, dann sollte + &man.gmirror.8; angewiesen werden, seine primären Daten + auf dieser Platte zu speichern.</para> + + <para>Bevor Sie den Spiegel aufbauen, sollten Sie die maximale + Protokollierung aktivieren und den Zugang zum Gerät + gestatten. Dazu setzen Sie die &man.sysctl.8;-Option + <varname>kern.geom.debugflags</varname> auf den folgenden + Wert:</para> + + <screen>&prompt.root; <userinput>sysctl kern.geom.debugflags=17</userinput></screen> + + <para>Nun können Sie den Spiegel aufbauen. Beginnen Sie den + Prozess, indem Sie die Metadaten-Informationen auf das Gerät + der primären Platte speichern. Konkret erzeugen Sie dabei + das Gerät + <filename class="devicefile">/dev/mirror/gm</filename>, indem Sie + den folgenden Befehl ausführen:</para> + + <warning> + <para>Die Spiegelung der Bootplatte kann zu Datenverlust + führen, wenn Sie Daten im letzten Sektor der Platte + gespeichert haben. Dieses Risiko lässt sich minimieren, + wenn Sie den Spiegel unmittelbar nach der Installation von + &os; aufsetzen. Die im folgenden beschriebene Vorgehensweise ist + ebenfalls nicht kompatibel mit den + Standard-Installationseinstellungen von + &os; 9.<replaceable>X</replaceable>, die das neue + <acronym>GPT</acronym>-Partitionsschema verwenden. GEOM wird + <acronym>GPT</acronym>-Metadaten überschreiben, was zu + Datenverlust und einem möglicherweise nicht bootbarem System + führt.</para> + </warning> + + <screen>&prompt.root; <userinput>gmirror label -vb round-robin gm0 /dev/da0</userinput></screen> + + <para>Ihr System sollte wie folgt antworten:</para> + + <screen>Metadata value stored on /dev/da0. +Done.</screen> + + <para>Initialisieren Sie GEOM. Dadurch wird das Kernelmodul + <filename>/boot/kernel/geom_mirror.ko</filename> geladen:</para> + + <screen>&prompt.root; <userinput>gmirror load</userinput></screen> + + <note> + <para>Wenn dieser Befehl erfolgreich ausgeführt wurde, wird + die Gerätedatei <devicename>gm0</devicename> im + Verzeichnis <filename class="directory">/dev/mirror</filename> + erzeugt.<para> + </note> + + <para>Stellen Sie sicher, dass das Kernelmodul + <filename>geom_mirror.ko</filename> beim Systemstart automatisch + geladen wird:</para> + + <screen>&prompt.root; <userinput>echo 'geom_mirror_load="YES"' >> /boot/loader.conf</userinput></screen> + + <para>Bearbeiten Sie die Datei <filename>/etc/fstab</filename> + und ersetzen Sie alle Verweise auf die alte Gerätedatei + <devicename>da0</devicename> durch die neue Gerätedatei + <devicename>gm0</devicename> des Plattenspiegels. Um die Datei + <filename>/etc/fstab</filename> bearbeiten zu können, + müssen Sie als Benutzer <username>root</username> am + System angemeldet sein.</para> + + <note> + <para>Sollte &man.vi.1; ihr bevorzugter Texteditor sein, + kouml;nnen Sie diese Änderungen ganz einfach wie + folgt durchführen:</para> + + <screen>&prompt.root; <userinput>vi /etc/fstab</userinput></screen> + + <para>Bevor Sie die Datei bearbeiten, sollten Sie ein Backup + anlegen. Haben Sie die Datei mit &man.vi.1; geöffnet, + können Sie durch die Eingabe von + <userinput>:w /etc/fstab.bak</userinput> eine Sicherungskopie + der Datei anlegen. Danach ersetzen Sie alle alten Referenzen + auf <devicename>da0</devicename> durch + <devicename>gm0</devicename>, indem Sie + <userinput>:%s/da/mirror\/gm/g</userinput> eingeben.<para> + </note> + + <para>Die geänderte <filename>fstab</filename> sollte nun + ähnlich wie im folgenden Beispiel aussehen. Es spielt + dabei keine Rolle, ob Sie <acronym>SCSI</acronym>- oder + <acronym>ATA</acronym>-Platten verwenden. Das + <acronym>RAID</acronym>-Gerät heißt in jedem Fall + <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>Führen Sie einen Systemneustart durch:</para> + + <screen>&prompt.root; <userinput>shutdown -r now</userinput></screen> + + <para>Wenn das System gestartet wird, sollten Sie nun nur noch + <devicename>gm0</devicename>-Geräte anstatt der bisherigen + <devicename>da0</devicename>-Geräte sehen. Nachdem das + System vollständig initialisiert wurde, können Sie + die neue Konfiguration testen, indem Sie den Befehl + <command>mount</command> ausführen:</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>Hier ist alles in Ordnung. Alle Werte sehen aus wie + erwartet. Um die Synchronisierung zu beginnen, integrieren + Sie nun die Platte <devicename>da1</devicename> in den + Spiegel, indem Sie den folgenden Befehl eingeben:</para> + + <screen>&prompt.root; <userinput>gmirror insert gm0 /dev/da1</userinput></screen> + + <para>Während die Platten gespiegelt werden, können + Sie den Fortschritt durch die Eingabe des folgenden Befehls + überprüfen:</para> + + <screen>&prompt.root; <userinput>gmirror status</userinput></screen> + + <para>Nachdem die Plattenspiegelung erfolgreich abgeschlossen + wurde (und alle Daten synchronisiert wurden), sollte Sie + eine Ausgabe ähnlich der folgenden erhalten, wenn Sie + den Befehl erneut ausführen:</para> + + <screen> Name Status Components +mirror/gm0 COMPLETE da0 + da1</screen> + + <para>Sollten Probleme aufgetreten oder sollte die + Synchronisierung noch nicht abgeschlossen sein, wäre + der Status <literal>DEGRADED</literal> anstatt + <literal>COMPLETE</literal>.</para> + </sect2> + + <sect2> + <title>Fehlerbehebung</title> + + <sect3> + <title>Das System weigert sich zu starten</title> + + <para>Falls das System startet und eine Eingabeaufforderung + ähnlich der folgenden erscheint:</para> + + <programlisting>ffs_mountroot: can't find rootvp +Root mount failed: 6 +mountroot></programlisting> + + <para>Starten Sie den Rechner neu mit der Power- oder + Resettaste. Wählen Sie im Startmenü Option sechs + (6). Dadurch erscheint eine Eingabeaufforderung für + &man.loader.8;. Laden Sie nun das Kernelmodul + händisch:</para> + + <screen>OK? <userinput>load geom_mirror</userinput> +OK? <userinput>boot</userinput></screen> + + <para>Falls dies funktioniert, wurde das Modul (aus welchen + Gründen auch immer) nicht richtig geladen. Prüfen + Sie, ob Ihr Eintrag in der Datei + <filename>/boot/loader.conf</filename> korrekt ist. Sollte + das Problem weiterhin bestehen, nehmen Sie die Zeile</para> + + <programlisting>options GEOM_MIRROR</programlisting> + + <para>in die Konfigurationsdatei des Kernels auf und führen + Sie einen Rebuild und eine erneute Installation durch. Dies + sollte das Problem beseitigen.</para> + </sect3> + </sect2> + + <sect2> + <title>Wiederherstellung des Systems nach einem + Plattenausfall</title> + + <para>Das Schöne an der Plattenspiegelung ist, dass eine + kaputte Platte ersetzt werden kann, ohne dass Sie dabei + Daten verlieren.</para> + + <para>Basierend auf der vorhin besprochenen + <acronym>RAID</acronym>1-Konfiguration, nehmen wir nun an, dass + die Platte <devicename>da1</devicename> ausgefallen ist und daher + ersetzt werden muss. Um dies zu tun, müssen Sie + feststellen, welche Platte ausgefallen ist und das System + herunterfahren. Nun können Sie die kaputte Platte gegen + eine neue Platte austauschen und das System wieder starten. + Nachdem der Systemstart abgeschlossen ist, verwenden Sie die + folgenden Befehle, um die Plattenspiegelung wieder zu + reaktivieren:</para> + + <screen>&prompt.root; <userinput>gmirror forget gm0</userinput></screen> + + <screen>&prompt.root; <userinput>gmirror insert gm0 /dev/da1</userinput></screen> + + <para>Der Befehl <command>gmirror</command> <option>status</option> + erlaubt es Ihnen, den Fortschritt bei der Wiederherstellung der + Plattenspiegelung zu beobachten. Das ist alles, was Sie tun + müssen.</para> + </sect2> + </sect1> + + <sect1 id="geom-ggate"> + <title>GEOM Gate Netzwerkgeräte</title> + + <para>GEOM unterstützt die Verwendung entfernter Geräte + wie Festplatten, CD-ROMs, Dateien usw. mittels Nutzung + der Gate-Dienstprogramme. Dies ist vergleichbar mit + <acronym>NFS</acronym>.</para> + + <para>Zu Beginn muss eine Exportdatei erzeugt werden. Diese + Datei legt fest, wer Zugriff auf die exportierten Ressourcen + hat und welche Zugriffstechniken angeboten werden. Um zum + Beispiel den vierten Slice auf der ersten + <acronym>SCSI</acronym>-Platte zu exportieren, ist die + folgende Datei <filename>/etc/gg.exports</filename> + mehr als ausreichend:</para> + + <programlisting>192.168.1.0/24 RW /dev/da0s4d</programlisting> + + <para>Sie wird allen Hosts innerhalb des privaten Netzwerkes + den Zugriff auf das Dateisystem auf der Partition + <devicename>da0s4d</devicename> erlauben.</para> + + <para>Um dieses Gerät zu exportieren, stellen Sie bitte + sicher, dass es momentan nicht gemounted ist und + starten Sie den &man.ggated.8; Server-Daemon:</para> + + <screen>&prompt.root; <userinput>ggated</userinput></screen> + + <para>Um nun <command>mount</command> auf der Client-Maschine + auszuführen, geben Sie bitte die folgenden Befehle + ein:</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>Von nun an kann auf das Gerät über den Mount-Punkt + <filename class="directory">/mnt</filename> zugegriffen + werden.</para> + + <note> + <para>Es sollte darauf hingewiesen werden, dass dies + scheitern wird, falls das Gerät momentan entweder + auf dem Server oder irgendeiner anderen Maschine + gemountet ist.</para> + </note> + + <para>Wenn das Gerät nicht länger gebraucht wird, + dann kann es mit dem Befehl &man.umount.8; + ausgehängt werden (genauso wie jedes andere Laufwerk + auch).</para> + </sect1> + + <sect1 id="geom-glabel"> + <title>Das Labeln von Laufwerken</title> + + <indexterm> + <primary>GEOM</primary> + </indexterm> + <indexterm> + <primary>Disk Labels</primary> + </indexterm> + + <para>Während der Initialisierung des Systems legt der + &os;-Kernel für jedes gefundene Gerät Knotenpunkte + an. Diese Methode für die Überprüfung auf + vorhandene Geräte wirft einige Fragen auf. Was passiert + beispielsweise, wenn ein neues + <acronym>USB</acronym>-Laufwerk hinzugefügt wird? + Es ist sehr wahrscheinlich, dass ein + Flash-Speicher-Gerät den Gerätenamen + <devicename>da0</devicename> erhält, während + gleichzeitig das bisherige <devicename>da0</devicename> + zu <devicename>da1</devicename> wird. Dies verursacht + Probleme beim Einhängen von Dateisystemen, wenn diese + in der <filename>/etc/fstab</filename> aufgeführt + sind und schlussendlich mag das auch dazu führen, + dass das System nicht mehr startet.</para> + + <para>Eine Lösung für dieses Problem ist das + Aneinanderketten der <acronym>SCSI</acronym>-Geräte, + damit ein neues Gerät, welches der + <acronym>SCSI</acronym>-Karte hinzugefügt wird, + unbenutzte Gerätenummern erhält. Aber was + geschieht, wenn ein <acronym>USB</acronym>-Gerät + möglicherweise die primäre + <acronym>SCSI</acronym>-Platte ersetzt? Dies kann + passieren, weil <acronym>USB</acronym>-Geräte + normalerweise vor der <acronym>SCSI</acronym>-Karte + geprüft werden. Eine Lösung ist das + Hinzufügen dieser Geräte, nachdem das System + gestartet ist. Eine andere Lösung könnte sein, + nur ein einzelnes <acronym>ATA</acronym>-Laufwerk zu + nutzen und die <acronym>SCSI</acronym>-Geräte niemals + in der <filename>/etc/fstab</filename> aufzuführen.</para> + + <para>Es gibt allerdings eine bessere Lösung. Durch + Verwendung des <command>glabel</command>-Dienstprogramms + kann ein Administrator oder Benutzer seine Laufwerke mit + Labeln versehen und diese in der <filename>/etc/fstab</filename> + nutzen. Da <command>glabel</command> seine Label im letzten + Sektor jedes vorhandenen Datenträgers speichert, wird + das Label persistent bleiben (auch über Neustarts hinweg). + Durch Nutzung dieses Labels als Gerät kann das + Dateisystem immer gemountet sein, unabhängig davon, + durch welchen Geräte-Knotenpunkt auf ihn zugegriffen + wird.</para> + + <note> + <para>Der Label muss permanent (dauerhaft) sein. + Man kann das Dienstprogramm <command>glabel</command> + nutzen, um sowohl transiniente als auch permanente Label + zu erzeugen. Aber nur permanente (persistente) Label + bleiben konsistent über Neustarts hinweg. Lesen + Sie die &man.glabel.8;-Manualpage für weitere + Unterschiede zwischen den Label-Typen.</para> + </note> + + <sect2> + <title>Label-Typen und Beispiele</title> + + <para>Es gibt zwei Arten von Labeln: generische Label und + Dateisystem-Label. Label können dauerhaft (permanent) + oder temporär sein. Permanente Label können mit + &man.tunefs.8; oder &man.newfs.8; in einem speziellen + spezielles Verzeichnis in <filename + class="directory">/dev</filename> erzeugt werden, welches + entsprechend der Dateisystem-Art benannt wird. + <acronym>UFS</acronym>2-Dateisystem-Label werden zum + Beispiel im Verzeichnis + <filename class="directory">/dev/ufs</filename> + angelegt. Permanente Label können außerdem durch + den Befehl <command>glabel label</command> erzeugt werden. + Diese Label sind dann allerdings nicht dateisystemspezisch + und werden im Unterverzeichnis <filename + class="directory">/dev/label</filename> erzeugt.</para> + + <para>Ein temporäres Label verschwindet mit dem + nächsten Systemstart. Diese Label werden im + Verzeichnis <filename class="directory">/dev/label</filename> + erzeugt und sind ideal für Testzwecke. Ein temporäres + Label kann durch den Befehl <command>glabel create</command> + erzeugt werden. Weitere Informationen finden sich in der + Manualpage &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>Um ein permanentes Label auf einem + <acronym>UFS</acronym>2-Dateisystem ohne + Löschung von Daten zu erzeugen, kann man folgenden + Befehl verwenden:</para> + + <screen>&prompt.root; <userinput>tunefs -L <replaceable>home</replaceable> <replaceable>/dev/da3</replaceable></userinput></screen> + + <warning> + <para>Wenn das Dateisystem voll ist, kann dies zu + Datenkorruption führen; aber egal wie, falls das + Dateisystem voll ist, sollte das Hauptziel die + Entfernung ungenützter Dateien und nicht das + Hinzufügen von Labeln sein.</para> + </warning> + + <para>Ein Label sollte nun in + <filename class="directory">/dev/ufs</filename> vorhanden + sein, der zu <filename>/etc/fstab</filename> + hinzugefügt wird:</para> + + <programlisting>/dev/ufs/home /home ufs rw 2 2</programlisting> + + <note> + <para>Das Dateisystem darf nicht gemountet sein beim + Versuch, <command>tunefs</command> auszuführen.</para> + </note> + + <para>Nun kann das Dateisystem wie üblich gemountet + werden:</para> + + <screen>&prompt.root; <userinput>mount /home</userinput></screen> + + <para>Von nun an kann der Geräte-Knotenpunkt sich ohne + negative Effekte auf das System ändern, solange das + Kernelmodul <filename>geom_label.ko</filename> beim + Systemstart mittels <filename>/boot/loader.conf</filename> + geladen wird oder die + <literal>GEOM_LABEL</literal>-Kernel-Option aktiv ist.</para> + + <para>Dateisysteme können auch mit einem Standard-Label + erzeugt werden (mittels des Flags <option>-L</option> in + <command>newfs</command>). Lesen Sie bitte die Manualpage + von &man.newfs.8; für weitere Informationen.</para> + + <para>Der folgende Befehl kann genutzt werden, um das Label + zu beseitigen:</para> + + <screen>&prompt.root; <userinput>glabel destroy home</userinput></screen> + + <para>Das folgende Beispiel zeigt Ihnen, wie Sie Label für + die Partitionen einer Bootplatte erzeugen.</para> + + <example> + <title>Die Partitionen einer Bootplatte labeln</title> + + <para>Durch das Erstellen von permanenten Labeln für die + Partitionen einer Bootplatte sollte das System selbst dann noch + normal starten können, wenn Sie die Platte an einen + anderen Controller anschließen oder in ein anderes + System installieren. In diesem Beispiel nehmen wir an, dass + nur eine einzige <acronym>ATA</acronym>-Platte verwendet wird, + die Ihr System derzeit als <devicename>ad0</devicename> + erkennt. Weiters nehmen wir an, dass Sie das + Standard-Partionierungsschema von &os; vewendet haben und Ihre + Platte daher die Dateisysteme + <filename class="directory">/</filename>, + <filename class="directory">/var</filename>, + <filename class="directory">/usr</filename> sowie + <filename class="directory">/tmp</filename> aufweist. + Zusätzlich wurde eine Swap-Partition angelegt.</para> + + <para>Starten Sie das System neu. Am &man.loader.8;-Prompt + drücken Sie die Taste <keycap>4</keycap>, um in den + Single-User-Modus zu gelangen. Dort führen Sie die + folgenden Befehle aus:</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>Das System startet daraufhin in den Multi-User-Modus. + Nachdem der Startvorgang abgeschlossen ist, editieren Sie die + Datei <filename>/etc/fstab</filename> und ersetzen die + konventionellen Gerätedateien durch die entsprechenden + Label. Ihre modifizierte <filename>/etc/fstab</filename> + sollte nun ähnlich der folgenden Ausgabe aussehen:</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>Starten Sie Ihr System neu. Traten keine Probleme auf, + wird das System normal hochfahren und Sie erhalten die folgende + Ausgabe, wenn Sie den Befehl <command>mount</command> + ausführen:</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>Beginnend mit &os; 7.2, unterstützt + &man.glabel.8; einen neuen Labeltyp für + <acronym>UFS</acronym>-Dateisysteme. Dieser basiert auf der + eindeutigen Dateisystem-ID <literal>ufsid</literal>. + Derartige Label finden sich im Verzeichnis + <filename class="directory">/dev/ufsid</filename> und werden + während des Systemstarts automatisch erzeugt. Es ist + möglich, diese <literal>ufsid</literal>-Label zum + automatischen Einhängen von Partitionen in der Datei + <filename>/etc/fstab</filename> einzusetzen. Verwenden Sie + den Befehl <command>glabel status</command>, um eine Liste + aller Dateisysteme und ihrer <literal>ufsid</literal>-Label + zu erhalten:</para> + + <screen>&prompt.user; <userinput>glabel status</userinput> + Name Status Components +ufsid/486b6fc38d330916 N/A ad4s1d +ufsid/486b6fc16926168e N/A ad4s1f</screen> + + <para>In diesem Beispiel repräsentiert + <devicename>ad4s1d</devicename> das + <filename class="directory">/var</filename>-Dateisystem, + während <devicename>ad4s1f</devicename> dem + <filename class="directory">/usr</filename>-Dateisystem + entspricht. Wenn Sie die angegebenen + <literal>ufsid</literal>-Werte verwenden, können + diese Dateisysteme durch die folgenden Einträge in + der Datei <filename>/etc/fstab</filename> gemountet + werden:</para> + + <programlisting>/dev/ufsid/486b6fc38d330916 /var ufs rw 2 2 +/dev/ufsid/486b6fc16926168e /usr ufs rw 2 2</programlisting> + + <para>Jede Partition, die ein <literal>ufsid</literal>-Label + aufweist, kann auf diese Art gemountet werden. Dies hat + den Vorteil, dass Sie keine permanenten Label mehr anlegen + müssen, wobei sich die Platten nach wie vor über + geräteunabhängige Namen ansprechen und mounten + lassen.</para> + </sect2> + </sect1> + + <sect1 id="geom-gjournal"> + <title>UFS Journaling in GEOM</title> + + <indexterm> + <primary>GEOM</primary> + </indexterm> + <indexterm> + <primary>Journaling</primary> + </indexterm> + + <para>Mit &os; 7.0 wurde eine lang erwartete Funktion, + das Journaling, implementiert. Diese Funktion wird über + das <acronym>GEOM</acronym>-Subsystem realisiert und kann + über das Werkzeug &man.gjournal.8; eingerichtet + werden.</para> + + <para>Was ist Journaling? Bei Journaling wird ein Protokoll + über alle Dateisystemtransaktionen angelegt, inklusive + aller Veränderungen, aus denen ein kompletter + Schreibvorgang besteht, bevor diese Änderungen (Metadaten + sowie tatsächliche Schreibvorgänge) physikalisch auf + der Festplatte ausgeführt werden. Dieses Protokoll kann + später erneut aufgerufen werden, um diese Vorgänge + zu wiederholen (beispielsweise um Systeminkonsistenzen zu + vermeiden).</para> + + <para>Diese Technik bietet eine weitere Möglichkeit, + sich vor Datenverlust und Dateisystem-Inkonsistenzen zu + schützen. Im Gegensatz zu Soft Updates (die + Metadaten-Aktualisierungen verfolgen und erzwingen) und + Snapshots (die ein Image eines Dateisystems darstellen) wird + bei Journaling ein tatsächliches Protokoll in einem + speziell dafür bereitgestellten Bereich der Festplatte + (oder manchmal sogar auf einer separaten Platte) + gespeichert.</para> + + <para>Im Gegensatz zu anderen Journaling-Dateisystemen arbeitet + die <command>gjournal</command>-Methode blockbasiert und wurde + nicht als Teil des Dateisystems implementiert, sondern als + <acronym>GEOM</acronym>-Erweiterung.</para> + + <para>Um die <command>gjournal</command>-Unterstützung zu + aktivieren, muss der &os;-Kernel die folgende Option enthalten + (was seit &os; 7.0 bereits in der Voreinstellung der Fall + ist):</para> + + <programlisting>options UFS_GJOURNAL</programlisting> + + <para>Um ein Volume mit Journalunterstützung beim Systemstart + automatisch zu mounten, muss das Kernelmodul + <filename>geom_journal.ko</filename> ebenfalls automatisch geladen + werden (durch einen entsprechenden Eintrag in der Datei + <filename>/boot/loader.conf</filename>):</para> + + <programlisting>geom_journal_load="YES"</programlisting> + + <para>Alternativ können Sie auch einen angepassten Kernel + bauen, der diese Funktionalität enthält, indem Sie die + folgende Zeile in Ihrer Kernelkonfigurationsdatei + aufnehmen:</para> + + <programlisting>options GEOM_JOURNAL</programlisting> + + <para>Das Anlegen eines neuen Journals auf einem freien Dateisystem + erfolgt durch die folgenden Schritte (im Folgenden wird + angenommen, dass es sich bei <devicename>da4</devicename> um + eine neue <acronym>SCSI</acronym>-Platte handelt):</para> + + <screen>&prompt.root; <userinput>gjournal load</userinput> +&prompt.root; <userinput>gjournal label /dev/da4</userinput></screen> + + <para>Danach sollten die Gerätedateien + <devicename>/dev/da4</devicename> sowie + <devicename>/dev/da4.journal</devicename> vorhanden sein. Nun + können Sie auf diesem Gerät ein Dateisystem + anlegen:</para> + + <screen>&prompt.root; <userinput>newfs -O 2 -J /dev/da4.journal</userinput></screen> + + <para>Dieser Befehl erzeugt ein <acronym>UFS</acronym>2-Dateisystem + auf dem Gerät, für das im letzten Schritt das + Journaling aktiviert wurde.</para> + + <para>Danach hängen Sie das neue Dateisystem mit + <command>mount</command> in Ihren Verzeichnisbaum ein:</para> + + <screen>&prompt.root; <userinput>mount /dev/da4.journal <replaceable>/mnt</replaceable></userinput></screen> + + <note> + <para>Falls auf Ihrem System mehrere Slices angelegt sind + (beispielsweise <devicename>ad4s1</devicename> sowie + <devicename>ad4s2</devicename>), wird + <command>gjournal</command> für jedes Slice ein + Journal anlegen (also <devicename>ad4s1.journal</devicename> + sowie <devicename>ad4s2.journal</devicename>).</para> + </note> + + <para>Um die Leistung zu optimieren, kann das Journal auf eine + externe Platte ausgelagert werden. In einem solchen Fall + geben Sie die Gerätedatei der Platte nach dem Gerät + an, für das Sie Journaling aktivieren wollen. + Theoretisch ist es auch möglich, Journaling auf bereits + existierenden Dateisystemen durch das Werkzeug + <command>tunefs</command> zu aktivieren. Machen Sie aber + in jedem Fall ein Backup Ihrer Daten, bevor Sie versuchen, + ein existierendes Dateisystem zu ändern. + <command>gjournal</command> wird zwar den Vorgang abbrechen, + wenn es das Journal nicht erzeugen kann, allerdings schützt + Sie dies nicht vor Datenverlust durch einen fehlerhaften Einsatz + von <command>tunefs</command>.</para> + + <para>Es ist möglich, Journale auch für die Bootplatte + eines &os;-System zu verwenden. Lesen Sie bitte den Artikel + <ulink + url="&url.articles.gjournal-desktop.en;/article.html"> + Implementing UFS Journaling on a Desktop PC</ulink>, wenn Sie + an einer derartigen Konfiguration interessiert sind.</para> + </sect1> +</chapter> + +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-always-quote-attributes: t + sgml-parent-document: ("../book.sgml" "part" "chapter") + End: +--> |