svn commit: r48461 - head/de_DE.ISO8859-1/books/handbook/geom
Bjoern Heidotting
bhd at FreeBSD.org
Wed Mar 23 19:45:50 UTC 2016
Author: bhd
Date: Wed Mar 23 19:45:48 2016
New Revision: 48461
URL: https://svnweb.freebsd.org/changeset/doc/48461
Log:
Update to r39909:
Rework the gmirror section to create mirrors properly.
Modified:
head/de_DE.ISO8859-1/books/handbook/geom/chapter.xml
Modified: head/de_DE.ISO8859-1/books/handbook/geom/chapter.xml
==============================================================================
--- head/de_DE.ISO8859-1/books/handbook/geom/chapter.xml Wed Mar 23 15:28:38 2016 (r48460)
+++ head/de_DE.ISO8859-1/books/handbook/geom/chapter.xml Wed Mar 23 19:45:48 2016 (r48461)
@@ -5,7 +5,7 @@
$FreeBSD$
$FreeBSDde$
- basiert auf: r38401
+ basiert auf: r39909
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="GEOM">
<info><title>GEOM: Modulares Framework zur
@@ -246,210 +246,578 @@ Done.</screen>
<indexterm>
<primary>Disk Mirroring</primary>
</indexterm>
+ <indexterm>
+ <primary>RAID1</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>
+ <para>Spiegelung (<acronym>RAID1</acronym> / Mirroring) ist eine
+ Technik, bei der identische Daten auf mehr als ein Laufwerk
+ geschrieben werden. Spiegel werden in der Regel zum Schutz vor
+ Datenverlust aufgrund von Festplattenausfällen verwendet. Jedes
+ Laufwerk in einem Spiegel enthält eine identische Kopie der
+ Daten. Wenn ein einzelnes Laufwerk ausfällt, funktioniert der
+ Spiegel weiterhin und die Daten werden von den restlichen
+ Festplatten bereit gestellt. Der Rechner läuft einfach weiter
+ und der Administrator hat die Gelegentheit, das defekte Laufwerk
+ auszutauschen.</para>
+
+ <para>Zwei häufige Situationen werden in diesem Beispiel
+ erläutert. Im ersten Beispiel wird ein Spiegel aus zwei
+ neuen Laufwerken erstellt, der die existierende Platte ersetzt.
+ Das zweite Beispiel erzeugt ein Spiegel mit einem einzigen
+ Laufwerk, kopiert dann die Daten von der alten Platte und fügt
+ die alte Platte zum Spiegel hinzu. Obwohl dieses Verfahren
+ etwas komplizierter ist, wird nur ein neues Laufwerk
+ benötigt.</para>
+
+ <para>Traditionell sind die Laufwerke in einem Spiegel vom
+ gleichen Modell und besitzen die gleiche Kapazität. Dies ist
+ jedoch keine Voraussetzung für &man.gmirror.8;. Hier können
+ Spiegel mit unterschiedlichen Kapazitäten verwendet werden. Die
+ Kapazität richtet sich dann nach dem kleinsten Laufwerk im
+ Spiegel. Zusätzlicher Speicherplatz auf größeren Laufwerken
+ bleibt dann ungenutzt. Werden später weitere Laufwerke zum
+ Spiegel hinzugefügt, müssen diese mindestens so viel Kapazität
+ haben wie das kleinste Laufwerk im Spiegel.</para>
+
+ <warning>
+ <para>Die hier gezeigten Verfahren löschen keine Daten. Dennoch
+ sollte, wie bei jeder größeren Operation, zuerst eine
+ vollständige Sicherung erstellt werden.</para>
+ </warning>
+
+ <sect2 xml:id="geom-mirror-metadata">
+ <title>Probleme mit Metadaten</title>
+
+ <para>Viele Plattensysteme speichern Metadaten am Ende der
+ Platte. Alte Metadaten sollten vor der Wiederverwendung in
+ einem Spiegel gelöscht werden, da die meisten Probleme aus
+ zwei Arten von übrig gebliebenen Metadaten resultieren:
+ <acronym>GPT</acronym>-Partitionstabellen und alte Metadaten
+ aus einem vorherigen Spiegel.</para>
+
+ <para><acronym>GPT</acronym>-Metadaten können mit &man.gpart.8;
+ gelöscht werden. Dieses Beispiel löscht sowohl die primären,
+ als auch die <acronym>GPT</acronym>-Partitionstabelle von der
+ Festplatte <filename>ada8</filename>:</para>
+
+ <screen>&prompt.root; <userinput>gpart destroy -F ada8</userinput></screen>
+
+ <para>Mit &man.gmirror.8; kann eine Platte aus einem aktiven
+ Spiegel entfernt und gleichzeitig die Metadaten gelöscht
+ werden. In diesem Beispiel wird die Platte
+ <filename>ada8</filename> aus dem aktiven Spiegel
+ <filename>gm4</filename> entfernt:</para>
+
+ <screen>&prompt.root; <userinput>gmirror remove gm4 ada8</userinput></screen>
+
+ <para>Wenn der Spiegel nicht aktiv ist, sich jedoch noch alte
+ Metadaten auf der Festplatte befinden, benutzen Sie
+ <command>gmirror clear</command>, um die Metadaten zu
+ entfernen:</para>
+
+ <screen>&prompt.root; <userinput>gmirror clear ada8</userinput></screen>
+
+ <para>&man.gmirror.8; speichert einen Datenblock an Metadaten am
+ Ende der Festplatte. Da das
+ <acronym>GPT</acronym>-Partitionschema die Metadaten auch am
+ Ende der Platte speichert, wird es nicht empfohlen, mit
+ &man.gmirror.8; einen Spiegel aus einem gesamten
+ <acronym>GPT</acronym>-Datenträger zu erstellen. In diesen
+ Fällen sollte eine <acronym>MBR</acronym>-Partitionierung
+ benutzt werden, weil hier nur eine Partitionstabelle am Anfang
+ der Platte gespeichert wird und somit nicht mit den Metadaten
+ des Spiegels im Konflikt steht.</para>
+ </sect2>
<sect2>
- <title>Die primäre Platte spiegeln</title>
+ <title>Einen Spiegel mit zwei neuen Festplatten
+ erstellen</title>
- <para>Angenommen, &os; wurde auf der ersten Platte
- <filename>da0</filename> 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>/dev/mirror/gm</filename>, indem Sie
- den folgenden Befehl ausführen:</para>
+ <para>In diesem Beispiel wurde &os; bereits auf der vorhandenen
+ Festplatte <filename>ada0</filename> installiert. Zwei neue
+ Platten, <filename>ada1</filename> und
+ <filename>ada2</filename>, wurden bereits mit dem System
+ verbunden. Ein neuer Spiegel soll mit diesen beiden Platten
+ erzeugt und verwendet werden, um die alte vorhandene Platte zu
+ ersetzen.</para>
+
+ <para>Das Kernelmodul <filename>geom_mirror.ko</filename> muss
+ entweder in den Kernel eingebaut, oder zur Laufzeit geladen
+ werden. Sie können das Modul manuell laden:</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 load</userinput></screen>
- <screen>&prompt.root; <userinput>gmirror label -vb round-robin gm0 /dev/da0</userinput></screen>
+ <para>Erstellen Sie den Spiegel mit den beiden neuen
+ Festplatten:</para>
- <para>Ihr System sollte wie folgt antworten:</para>
+ <screen>&prompt.root; <userinput>gmirror label -v gm0 /dev/ada1 /dev/ada2</userinput></screen>
- <screen>Metadata value stored on /dev/da0.
-Done.</screen>
+ <para><filename>gm0</filename> ist ein vom Benutzer gewählter
+ Name, der dem neuen Spiegel zugeordnet wird. Nachdem der
+ Spiegel gestartet wurde, erscheint dieser Gerätename in
+ <filename>/dev/mirror/</filename>.</para>
+
+ <para><acronym>MBR</acronym>- und
+ <application>bsdlabel</application>-Partitionstabellen können
+ jetzt auf dem neuen Spiegel erzeugt werden. Dieses Beispiel
+ verwendet das herkömmliche Dateisystem-Layout für
+ <filename>/</filename>, swap, <filename>/var</filename>,
+ <filename>/tmp</filename> und <filename>/usr</filename>. Eine
+ einzelne Root- und Swap-Partition würde ebenfalls
+ funktionieren.</para>
+
+ <para>Die Partitionen auf dem Spiegel müssen nicht zwingend die
+ gleiche Größe wie die auf der Festplatte haben, aber sie
+ müssen groß genug sein, um alle Daten aufnehmen zu können, die
+ bereits auf <filename>ada0</filename> gespeichert sind.</para>
+
+ <screen>&prompt.root; <userinput>gpart create -s MBR mirror/gm0</userinput>
+&prompt.root; <userinput>gpart add -t freebsd -a 4k mirror/gm0</userinput>
+&prompt.root; <userinput>gpart show mirror/gm0</userinput>
+=> 63 156301423 mirror/gm0 MBR (74G)
+ 63 63 - free - (31k)
+ 126 156301299 1 freebsd (74G)
+ 156301425 61 - free - (30k)</screen>
+
+ <screen>&prompt.root; <userinput>gpart create -s BSD mirror/gm0s1</userinput>
+&prompt.root; <userinput>gpart add -t freebsd-ufs -a 4k -s 2g mirror/gm0s1</userinput>
+&prompt.root; <userinput>gpart add -t freebsd-swap -a 4k -s 4g mirror/gm0s1</userinput>
+&prompt.root; <userinput>gpart add -t freebsd-ufs -a 4k -s 2g mirror/gm0s1</userinput>
+&prompt.root; <userinput>gpart add -t freebsd-ufs -a 4k -s 1g mirror/gm0s1</userinput>
+&prompt.root; <userinput>gpart add -t freebsd-ufs -a 4k mirror/gm0s1</userinput>
+&prompt.root; <userinput>gpart show mirror/gm0s1</userinput>
+=> 0 156301299 mirror/gm0s1 BSD (74G)
+ 0 2 - free - (1.0k)
+ 2 4194304 1 freebsd-ufs (2.0G)
+ 4194306 8388608 2 freebsd-swap (4.0G)
+ 12582914 4194304 4 freebsd-ufs (2.0G)
+ 16777218 2097152 5 freebsd-ufs (1.0G)
+ 18874370 137426928 6 freebsd-ufs (65G)
+ 156301298 1 - free - (512B)</screen>
+
+ <para>Damit von dem Spiegel gebootet werden kann, muss der
+ Bootcode in den <acronym>MBR</acronym> installiert, ein
+ bsdlabel erstellt und die aktive Partition gesetzt
+ werden:</para>
+
+ <screen>&prompt.root; <userinput>gpart bootcode -b /boot/mbr mirror/gm0</userinput>
+&prompt.root; <userinput>gpart set -a active -i 1 mirror/gm0</userinput>
+&prompt.root; <userinput>gpart bootcode -b /boot/boot mirror/gm0s1</userinput></screen>
+
+ <para>Erstellen Sie die Dateisysteme auf dem neuen Spiegel und
+ aktivieren Sie Soft-Updates:</para>
+
+ <screen>&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1a</userinput>
+&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1d</userinput>
+&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1e</userinput>
+&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1f</userinput></screen>
+
+ <para>Die Dateisysteme der vorhandenen Platte
+ <filename>ada0</filename> können jetzt mit &man.dump.8; und
+ &man.restore.8; auf den Spiegel kopiert werden.</para>
+
+<screen>&prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput>
+&prompt.root; <userinput>dump -C16 -b64 -0aL -f - / | (cd /mnt && restore -rf -)</userinput>
+&prompt.root; <userinput>mount /dev/mirror/gm0s1d /mnt/var</userinput>
+&prompt.root; <userinput>mount /dev/mirror/gm0s1e /mnt/tmp</userinput>
+&prompt.root; <userinput>mount /dev/mirror/gm0s1f /mnt/usr</userinput>
+&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /var | (cd /mnt/var && restore -rf -)</userinput>
+&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /tmp | (cd /mnt/tmp && restore -rf -)</userinput>
+&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /usr | (cd /mnt/usr && restore -rf -)</userinput></screen>
+
+ <para>Fügen Sie die Dateisysteme für den Spiegel in
+ <filename>/etc/rc.conf</filename> hinzu:</para>
+
+ <programlisting># Device Mountpoint FStype Options Dump Pass#
+/dev/mirror/gm0s1a / ufs rw 1 1
+/dev/mirror/gm0s1b none swap sw 0 0
+/dev/mirror/gm0s1d /var ufs rw 2 2
+/dev/mirror/gm0s1e /tmp ufs rw 2 2
+/dev/mirror/gm0s1f /usr ufs rw 2 2</programlisting>
+
+ <para>Wenn das Modul <filename>geom_mirror.ko</filename> nicht
+ im Kernel enthalten ist, können Sie
+ <filename>/mnt/boot/loader.conf</filename> bearbeiten, damit
+ das Modul beim Systemstart geladen wird:</para>
+
+ <programlisting>geom_mirror_load="YES"</programlisting>
+
+ <para>Starten Sie das System neu und überprüfen Sie, ob
+ alle Daten erfolgreich kopiert wurden. Das
+ <acronym>BIOS</acronym> wird den Spiegel vermutlich als
+ zwei einzelne Laufwerke erkennen. Da beide Laufwerke
+ jedoch identisch sind, spielt es keine Rolle, welches
+ Laufwerk zum Booten ausgewählt wird.</para>
+
+ <para>Falls es Probleme beim Booten gibt, lesen Sie den
+ <xref linkend="gmirror-troubleshooting"/>. Die alte
+ Festplatte <filename>ada0</filename> kann vom System
+ getrennt und als Offline-Sicherung aufbewahrt werden.</para>
- <para>Initialisieren Sie GEOM. Dadurch wird das Kernelmodul
- <filename>/boot/kernel/geom_mirror.ko</filename> geladen:</para>
+ <para>Im laufenden Betrieb verhält sich der Spiegel genau
+ wie ein einzelnes Laufwerk.</para>
+ </sect2>
+
+ <sect2>
+ <title>Einen Spiegel mit einem vorhandenen Laufwerk
+ erstellen</title>
+
+ <para>In diesem Beispiel wurde &os; bereits auf der
+ Festplatte <filename>ada0</filename> installiert und eine
+ weitere Platte, <filename>ada1</filename>, wurde an
+ das System angeschlossen. Zunächst wird ein Spiegel mit
+ einer Festplatte erstellt, dann das vorhandene System auf
+ den Spiegel kopiert. Zuletzt wird die alte Festplatte in den
+ Spiegel eingefügt. Diese etwas komplexere Vorgehensweise ist
+ erforderlich, da <command>gmirror</command> 512 Byte an
+ Metadaten am Ende der Festplatte speichert, und die bestehende
+ Platte, <filename>ada0</filename>, in der Regel den Platz
+ bereits belegt hat.</para>
+
+ <para>Laden Sie das Kernelmodul
+ <filename>geom_mirror.ko</filename>:</para>
<screen>&prompt.root; <userinput>gmirror load</userinput></screen>
- <note>
- <para>Wenn dieser Befehl erfolgreich ausgeführt wurde, wird
- die Gerätedatei <filename>gm0</filename> im
- Verzeichnis <filename>/dev/mirror</filename>
- erzeugt.</para>
- </note>
+ <para>Prüfen Sie mit <command>diskinfo</command> die Mediengröße
+ der vorhandenen Festplatte:</para>
- <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
- <filename>da0</filename> durch die neue Gerätedatei
- <filename>gm0</filename> des Plattenspiegels. Um die Datei
- <filename>/etc/fstab</filename> bearbeiten zu können,
- müssen Sie als Benutzer <systemitem class="username">root</systemitem> am
- System angemeldet sein.</para>
+ <screen>&prompt.root; <userinput>diskinfo -v ada0 | head -n3</userinput>
+/dev/ada0
+ 512 # sectorsize
+ 1000204821504 # mediasize in bytes (931G)</screen>
+
+ <para>Jetzt können Sie den Spiegel auf der neuen Festplatte
+ erzeugen. Um sicherzustellen, dass die Kapazität nicht größer
+ ist, als die Kapazität der vorhandenen Platte
+ <filename>ada0</filename>, benutzen Sie &man.gnop.8; um eine
+ Platte mit der exakt gleichen Größe zu imitieren. Diese
+ Platte speichert keine Daten und wird nur verwendet, um die
+ Größe des Spiegels zu begrenzen. &man.gmirror.8; wird die
+ Kapazität des Spiegels auf die Größe von
+ <filename>gzero.nop</filename> beschränken, auch wenn die neue
+ Festplatte <filename>ada1</filename> mehr Platz zur Verfügung
+ hätte. Beachten Sie, dass
+ <replaceable>1000204821504</replaceable> in der zweiten Zeile
+ der ermittelten Mediengröße von <command>diskinfo</command>
+ entspricht.</para>
+
+ <screen>&prompt.root; <userinput>geom zero load</userinput>
+&prompt.root; <userinput>gnop create -s 1000204821504 gzero</userinput>
+&prompt.root; <userinput>gmirror label -v gm0 gzero.nop ada1</userinput>
+&prompt.root; <userinput>gmirror forget gm0</userinput></screen>
+
+ <para>Da <filename>gzero.nop</filename> keine Daten speichert,
+ sieht der Spiegel sie als nicht verbunden an. Der Spiegel ist
+ so konfiguriert, dass er nicht verbundene Komponenten einfach
+ <quote>vergisst</quote>. Das Ergebnis ist ein Spiegel mit nur
+ einer einzigen Platte, <filename>ada1</filename>.</para>
+
+ <para>Sehen Sie sich nach der Erstellung von
+ <filename>gm0</filename> die Partitionstabelle von
+ <filename>ada0</filename> an. Diese Ausgabe stammt von einer
+ 1 TB Festplatte. Falls am Ende der Platte noch freier
+ Speicherplatz ist, kann der Inhalt von
+ <filename>ada0</filename> direkt auf den Spiegel kopiert
+ werden.</para>
+
+ <para>Falls jedoch der gesamte Speicherplatz auf der Platte
+ zugeordnet ist, dann gibt es keinen Platz mehr für die 512
+ Byte Metadaten für den Spiegel am Ende der Platte, wie in
+ dieser Auflistung zu sehen.</para>
+
+ <screen>&prompt.root; <userinput>gpart show ada0</userinput>
+=> 63 1953525105 ada0 MBR (931G)
+ 63 1953525105 1 freebsd [active] (931G)</screen>
+
+ <para>In diesem Fall muss die Partitionstabelle bearbeitet
+ werden, um die Kapazität von <filename>mirror/gm0</filename>
+ um einen Sektor zu reduzieren. Dieses Verfahren wird später
+ erläutert.</para>
+
+ <para>In beiden Fällen sollte die Partitionstabelle der primären
+ Platte mit <command>gpart backup</command> gesichert
+ werden.</para>
+
+ <screen>&prompt.root; <userinput>gpart backup ada0 > table.ada0</userinput>
+&prompt.root; <userinput>gpart backup ada0s1 > table.ada0s1</userinput></screen>
+
+ <para>Diese Kommandos erstellen zwei Dateien,
+ <filename>table.ada0</filename> und
+ <filename>table.ada0s1</filename>. Das Beispiel verwendet
+ eine 1 TB Festplatte:</para>
+
+ <screen>&prompt.root; <userinput>cat table.ada0</userinput>
+MBR 4
+1 freebsd 63 1953525105 [active]</screen>
+
+ <screen>&prompt.root; <userinput>cat table.ada0s1</userinput>
+BSD 8
+1 freebsd-ufs 0 4194304
+2 freebsd-swap 4194304 33554432
+4 freebsd-ufs 37748736 50331648
+5 freebsd-ufs 88080384 41943040
+6 freebsd-ufs 130023424 838860800
+7 freebsd-ufs 968884224 984640881</screen>
+
+ <para>Wenn am Ende der Platte kein Platz vorhanden ist, muss
+ die Größe des Slice und der letzten Partition verringert
+ werden. Bearbeiten Sie die beiden Dateien, und verringern
+ Sie die Größe der Slice und der Partition jeweils um eins.
+ Dies bezieht sich auf die letzten Zahlen in der Liste.</para>
+
+ <screen>&prompt.root; <userinput>cat table.ada0</userinput>
+MBR 4
+1 freebsd 63 <emphasis>1953525104</emphasis> [active]</screen>
+
+ <screen>&prompt.root; <userinput>cat table.ada0s1</userinput>
+BSD 8
+1 freebsd-ufs 0 4194304
+2 freebsd-swap 4194304 33554432
+4 freebsd-ufs 37748736 50331648
+5 freebsd-ufs 88080384 41943040
+6 freebsd-ufs 130023424 838860800
+7 freebsd-ufs 968884224 <emphasis>984640880</emphasis></screen>
+
+ <para>Wenn mindestens ein Sektor der Platte nicht zugewiesen
+ wurde, kann die Platte ohne Modifikation verwendet
+ werden.</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 <filename>da0</filename> durch
- <filename>gm0</filename>, indem Sie
- <userinput>:%s/da/mirror\/gm/g</userinput> eingeben.</para>
- </note>
+ <para>Jetzt kann die Partitionstabelle auf
+ <filename>mirror/gm0</filename> wiederhergestellt
+ werden:</para>
+
+ <screen>&prompt.root; <userinput>gpart restore mirror/gm0 < table.ada0</userinput>
+&prompt.root; <userinput>gpart restore mirror/gm0s1 < table.ada0s1</userinput></screen>
- <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
- <filename>gm</filename>.</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
- <filename>gm0</filename>-Geräte anstatt der bisherigen
- <filename>da0</filename>-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 <filename>da1</filename> 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>
+ <para>Prüfen Sie die Partitionstabellen mit
+ <command>gpart show</command>. Dieses Beispiel nutzt
+ <filename>gm0s1a</filename> für <filename>/</filename>,
+ <filename>gm0s1d</filename> für <filename>/var</filename>,
+ <filename>gm0s1e</filename> für <filename>/usr</filename>,
+ <filename>gm0s1f</filename> für <filename>/data1</filename>
+ und <filename>gm0s1g</filename> für
+ <filename>/data2</filename>.</para>
+
+ <screen>&prompt.root; <userinput>gpart show mirror/gm0</userinput>
+=> 63 1953525104 mirror/gm0 MBR (931G)
+ 63 1953525042 1 freebsd [active] (931G)
+ 1953525105 62 - free - (31k)
+
+&prompt.root; <userinput>gpart show mirror/gm0s1</userinput>
+=> 0 1953525042 mirror/gm0s1 BSD (931G)
+ 0 2097152 1 freebsd-ufs (1.0G)
+ 2097152 16777216 2 freebsd-swap (8.0G)
+ 18874368 41943040 4 freebsd-ufs (20G)
+ 60817408 20971520 5 freebsd-ufs (10G)
+ 81788928 629145600 6 freebsd-ufs (300G)
+ 710934528 1242590514 7 freebsd-ufs (592G)
+ 1953525042 63 - free - (31k)</screen>
+
+ <para>Sowohl die Slice, als auch die letzte Partition, muss
+ mindestens einen freien Block am Ende der Platte haben.</para>
+
+ <para>Erstellen Sie Dateisysteme auf diesen neuen
+ Partitionen:</para>
+
+<screen>&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1a</userinput>
+&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1d</userinput>
+&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1e</userinput>
+&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1f</userinput>
+&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1g</userinput></screen>
+
+ <para>Damit Sie von dem Spiegel booten können, müssen Sie den
+ Bootcode in den <acronym>MBR</acronym> installieren, ein
+ bsdlabel anlegen und das aktive Slice setzen:</para>
+
+ <screen>&prompt.root; <userinput>gpart bootcode -b /boot/mbr mirror/gm0</userinput>
+&prompt.root; <userinput>gpart set -a active -i 1 mirror/gm0</userinput>
+&prompt.root; <userinput>gpart bootcode -b /boot/boot mirror/gm0s1</userinput></screen>
+
+ <para>Bearbeiten Sie <filename>/etc/fstab</filename>, um die
+ neuen Partitionen auf dem Spiegel nutzen zu können. Speichern
+ Sie zunächst eine Kopie der Datei unter
+ <filename>/etc/fstab.orig</filename>:</para>
+
+ <screen>&prompt.root; <userinput>cp /etc/fstab /etc/fstab.orig</userinput></screen>
+
+ <para>Ersetzen Sie in <filename>/etc/fstab</filename>
+ <filename>/dev/ada0</filename> durch
+ <filename>mirror/gm0</filename>.</para>
+
+ <programlisting># Device>>>>>>>>>>Mountpoint>>>>>>FStype>>Options>Dump>>>>Pass#
+/dev/mirror/gm0s1a>>>>>>/>>>>>>>>>>>>>>>ufs>>>>>rw>>>>>>1>>>>>>>1
+/dev/mirror/gm0s1b>>>>>>none>>>>>>>>>>>>swap>>>>sw>>>>>>0>>>>>>>0
+/dev/mirror/gm0s1d>>>>>>/var>>>>>>>>>>>>ufs>>>>>rw>>>>>>2>>>>>>>2
+/dev/mirror/gm0s1e>>>>>>/usr>>>>>>>>>>>>ufs>>>>>rw>>>>>>2>>>>>>>2
+/dev/mirror/gm0s1f>>>>>>/data1>>>>>>>>>>ufs>>>>>rw>>>>>>2>>>>>>>2
+/dev/mirror/gm0s1g>>>>>>/data2>>>>>>>>>>ufs>>>>>rw>>>>>>2>>>>>>>2</programlisting>
+
+ <para>Wenn das Modul <filename>geom_mirror.ko</filename> nicht
+ im Kernel enthalten ist, können Sie
+ <filename>/boot/loader.conf</filename> bearbeiten, damit
+ das Modul beim Systemstart geladen wird:</para>
+
+ <programlisting>geom_mirror_load="YES"</programlisting>
+
+ <para>Die Dateisysteme der ursprünglichen Platte können jetzt
+ mit &man.dump.8; und &man.restore.8; auf den Spiegel kopiert
+ werden. Wenn Sie das Dateisystem mit <command>dump
+ -L</command> sichern, wird zunächst ein Snapshot des
+ Dateisystems erstellt, was einige Zeit dauern kann.</para>
+
+ <screen>&prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput>
+&prompt.root; <userinput>dump -C16 -b64 -0aL -f - / | (cd /mnt && restore -rf -)</userinput>
+&prompt.root; <userinput>mount /dev/mirror/gm0s1d /mnt/var</userinput>
+&prompt.root; <userinput>mount /dev/mirror/gm0s1e /mnt/usr</userinput>
+&prompt.root; <userinput>mount /dev/mirror/gm0s1f /mnt/data1</userinput>
+&prompt.root; <userinput>mount /dev/mirror/gm0s1g /mnt/data2</userinput>
+&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /usr | (cd /mnt/usr && restore -rf -)</userinput>
+&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /var | (cd /mnt/var && restore -rf -)</userinput>
+&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /data1 | (cd /mnt/data1 && restore -rf -)</userinput>
+&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /data2 | (cd /mnt/data2 && restore -rf -)</userinput></screen>
+
+ <para>Starten Sie das System neu und booten Sie von
+ <filename>ada1</filename>. Wenn alles funktioniert, wird
+ das System von <filename>mirror/gm0</filename> booten,
+ welches jetzt die gleichen Daten enthält wie
+ <filename>ada0</filename>. Lesen Sie <xref
+ linkend="gmirror-troubleshooting"/>, falls es Probleme beim
+ Booten gibt.</para>
+
+ <para>An dieser Stelle besteht der Spiegel immer noch aus der
+ einzelnen Platte <filename>ada1</filename>.</para>
+
+ <para>Nachdem erfolgreich von <filename>mirror/gm0</filename>
+ gebootet wurde, besteht der letzte Schritt darin,
+ <filename>ada0</filename> in den Spiegel einzufügen.</para>
+
+ <important>
+ <para>Wenn Sie <filename>ada0</filename> in den Spiegel
+ einfügen, wird der Inhalt der Platte mit den Daten aus
+ dem Spiegel überschrieben. Sie müssen sicherstellen, das
+ <filename>mirror/gm0</filename> den gleichen Inhalt wie
+ <filename>ada0</filename> hat, bevor Sie
+ <filename>ada0</filename> zum Spiegel hinzufügen. Falls der
+ zuvor mit &man.dump.8; und &man.restore.8; kopierte Inhalt
+ nicht mit dem von <filename>ada0</filename> identisch ist,
+ machen Sie die Änderungen an <filename>/etc/fstab</filename>
+ rückgängig, starten Sie das System neu und beginnen Sie die
+ Prozedur von vorn.</para>
+ </important>
+
+ <screen>&prompt.root; <userinput>gmirror insert gm0 ada0</userinput>
+GEOM_MIRROR: Device gm0: rebuilding provider ada0</screen>
+
+ <para>Die Synchronisation zwischen den beiden Platten wird
+ direkt gestartet. Verwenden Sie <command>gmirror
+ status</command> um den Fortschritt zu beobachten.</para>
+
+ <screen>&prompt.root; <userinput>gmirror status</userinput>
+ Name Status Components
+girror/gm0 DEGRADED ada1 (ACTIVE)
+ ada0 (SYNCHRONIZING, 64%)</screen>
+
+ <para>Nach einer Weile wird die Wiederherstellung abgeschlossen
+ sein.</para>
+
+ <screen>GEOM_MIRROR: Device gm0: rebuilding provider ada0 finished.
+&prompt.root; <userinput>gmirror status</userinput>
+ Name Status Components
+mirror/gm0 COMPLETE ada1 (ACTIVE)
+ ada0 (ACTIVE)</screen>
+
+ <para><filename>mirror/gm0</filename> besteht nun aus den beiden
+ Platten <filename>ada0</filename> und
+ <filename>ada1</filename>. Der Inhalt der beiden Platten wird
+ automatisch miteinander synchronisiert. Im laufenden Betrieb
+ verhält sich <filename>mirror/gm0</filename> wie eine einzelne
+ Festplatte.</para>
</sect2>
- <sect2>
+ <sect2 xml:id="gmirror-troubleshooting">
<title>Fehlerbehebung</title>
<sect3>
- <title>Das System weigert sich zu starten</title>
+ <title>Probleme beim Bootvorgang</title>
- <para>Falls das System startet und eine Eingabeaufforderung
- ähnlich der folgenden erscheint:</para>
+ <sect4>
+ <title>BIOS-Einstellungen</title>
- <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>
+ <para>Möglicherweise müssen die
+ <acronym>BIOS</acronym>-Einstellungen geändert werden, um
+ von dem neuen gespiegelten Laufwerk zu booten. Beide
+ Platten des Spiegels können zum Booten verwendet werden.
+ Als Komponenten des Spiegels enthalten sie identische
+ Daten.</para>
+ </sect4>
+
+ <sect4>
+ <title>Probleme beim Booten</title>
+
+ <para>Wenn der Bootvorgang mit der folgenden Meldung
+ abbricht, ist irgendwas mit dem Spiegel nicht in
+ Ordnung:</para>
+
+ <screen>Mounting from ufs:/dev/mirror/gm0s1a failed with error 19.
+
+Loader variables:
+ vfs.root.mountfrom=ufs:/dev/mirror/gm0s1a
+ vfs.root.mountfrom.options=rw
+
+Manual root filesystem specification:
+ <fstype>:<device> [options]
+ Mount <device> using filesystem <fstype>
+ and with the specified (optional) option list.
+
+ eg. ufs:/dev/da0s1a
+ zfs:tank
+ cd9660:/dev/acd0 ro
+ (which is equivalent to: mount -t cd9660 -o ro /dev/acd0 /)
+
+ ? List valid disk boot devices
+ . Yield 1 second (for background tasks)
+ <empty line> Abort manual input
+
+mountroot></screen>
+
+ <para>Dieses Problem kann durch ein nicht geladenes
+ Kernelmodul <filename>geom_mirror.ko</filename> in
+ <filename>/boot/loader.conf</filename> verursacht werden.
+ Um das Problem zu beheben, booten Sie von einem
+ &os;-Installationsmedium und wählen Sie
+ <literal>Shell</literal> an der Eingabeaufforderung. Laden
+ Sie dann das Modul und hängen Sie den Spiegel ein:</para>
+
+ <screen>&prompt.root; <userinput>gmirror load</userinput>
+&prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput></screen>
+
+ <para>Bearbeiten Sie dann
+ <filename>/mnt/boot/loader.conf</filename> und fügen Sie
+ eine Zeile für das Kernelmodul hinzu:</para>
+
+ <programlisting>geom_mirror_load="YES"</programlisting>
+
+ <para>Speichern Sie die Datei und starten Sie das System
+ neu.</para>
+
+ <para>Andere Probleme, die <literal>error 19</literal>
+ verursachen können, sind nur mit mehr Aufwand zu beheben.
+ Obwohl das System von <filename>ada0</filename> booten
+ sollte, wird ein weiterer Prompt erscheinen, wenn
+ <filename>/etc/fstab</filename> fehlerhaft ist. Geben
+ Sie am Loader-Prompt <literal>ufs:/dev/ada0s1a</literal> ein
+ und drücken Sie <keycap>Enter</keycap>. Machen Sie die
+ Änderungen an <filename>/etc/fstab</filename> rückgängig und
+ hängen Sie anstelle des Spiegels die originale Festplatte
+ (<filename>ada0</filename>) ein. Starten Sie dann das
+ System neu und versuchen Sie den Vorgang erneut.</para>
+
+ <screen>Enter full pathname of shell or RETURN for /bin/sh:
+&prompt.root; <userinput>cp /etc/fstab.orig /etc/fstab</userinput>
+&prompt.root; <userinput>reboot</userinput></screen>
+ </sect4>
</sect3>
</sect2>
@@ -457,29 +825,51 @@ OK? <userinput>boot</userinput></screen>
<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 <filename>da1</filename> 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>
+ <para>Das Schöne an der Plattenspiegelung ist, dass eine Platte
+ ausfallen kann, ohne dass Sie dabei Daten verlieren. Falls
+ <filename>ada0</filename> aus dem obigen Beispiel ausfällt,
+ steht der Spiegel weiterhin zur Verfügung und bietet die Daten
+ von der verbleibenden Platte <filename>ada1</filename>
+ an.</para>
+
+ <para>Um das ausgefallene Laufwerk zu ersetzen, muss das System
+ heruntergefahren werden und das ausgefallene Laufwerk durch
+ ein neues Laufwerk von gleicher oder größerer Kapazität
+ ersetzt werden. Hersteller verwenden oft etwas
+ willkürliche Werte für die Kapazität. Der einzige Weg, um
+ wirklich sicher zu sein, ist die Gesamtzahl der Sektoren von
+ <command>diskinfo -V</command> zu vergleichen. Ein Laufwerk
+ mit größerer Kapazität wird funktionieren, allerdings wird der
+ zusätzliche Platz ungenutzt bleiben.</para>
+
+ <para>Nachdem der Rechner wieder eingeschaltet ist, wird der
+ Spiegel im <quote>degraded</quote> Modus ausgeführt werden.
+ Der Spiegel wird angewiesen, Laufwerke zu vergessen, die noch
+ nicht verbunden sind:</para>
<screen>&prompt.root; <userinput>gmirror forget gm0</userinput></screen>
- <screen>&prompt.root; <userinput>gmirror insert gm0 /dev/da1</userinput></screen>
+ <para>Alte Metadaten sollten von der Ersatzfestplatte nach den
+ Anweisungen in <xref linkend="geom-mirror-metadata"/> gelöscht
+ werden. Anschließend kann die Ersatzfestplatte, in diesem
+ Beispiel <filename>ada4</filename>, in den Spiegel eingefügt
+ werden:</para>
+
+ <screen>&prompt.root; <userinput>gmirror insert gm0 /dev/ada4</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>
+ <para>Die Wiederherstellung beginnt, sobald das neue Laufwerk in
+ den Spiegel eingesetzt wird. Das Kopieren der Daten vom
+ Spiegel auf das neue Laufwerk kann eine Weile dauern. Die
+ Leistung des Spiegels ist während dieser Zeit stark reduziert,
+ deswegen sollten neue Laufwerke idealerweise dann eingefügt
+ werden, wenn der Rechner nicht benötigt wird.</para>
+
+ <para>Der Fortschritt der Wiederherstellung kann mit
+ <command>gmirror status</command> überwacht werden. Während
+ der Wiederherstellung ist der Status
+ <computeroutput>DEGRADED</computeroutput>. Wenn der Vorgang
+ abgeschlossen ist, wechselt der Status zu
+ <computeroutput>COMPLETE</computeroutput>.</para>
</sect2>
</sect1>
More information about the svn-doc-head
mailing list