Date: Wed, 23 Mar 2016 19:45:48 +0000 (UTC) From: Bjoern Heidotting <bhd@FreeBSD.org> To: doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org Subject: svn commit: r48461 - head/de_DE.ISO8859-1/books/handbook/geom Message-ID: <201603231945.u2NJjmhE079424@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201603231945.u2NJjmhE079424>