aboutsummaryrefslogtreecommitdiff
path: root/de_DE.ISO8859-1/books/handbook/geom/chapter.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'de_DE.ISO8859-1/books/handbook/geom/chapter.sgml')
-rw-r--r--de_DE.ISO8859-1/books/handbook/geom/chapter.sgml932
1 files changed, 0 insertions, 932 deletions
diff --git a/de_DE.ISO8859-1/books/handbook/geom/chapter.sgml b/de_DE.ISO8859-1/books/handbook/geom/chapter.sgml
deleted file mode 100644
index ca088459ff..0000000000
--- a/de_DE.ISO8859-1/books/handbook/geom/chapter.sgml
+++ /dev/null
@@ -1,932 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
-<!--
- 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
- &mdash; Master Boot Records, <acronym>BSD</acronym>-Label usw.
- &mdash; 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>&gt;&gt; /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"' &gt;&gt; /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;&nbsp;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"' &gt;&gt; /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;&nbsp;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;&nbsp;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;&nbsp;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>