MFde: Update the german handbook.
With the help of Daniel Seuffert ( DS at praxisvermittlung24 dot de ), I translated the filesystems chapter of the handbook into german. Obtained from: The FreeBSD German Documentation Project Approved by: jkois (mentor)
This commit is contained in:
parent
59a62505c2
commit
bd84cdeacc
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=34494
1 changed files with 640 additions and 9 deletions
|
|
@ -3,20 +3,651 @@
|
|||
The FreeBSD German Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde: de-docproj/books/handbook/filesystems/chapter.sgml,v 1.1 2008/09/28 14:34:41 jkois Exp $
|
||||
basiert auf:
|
||||
$FreeBSDde: de-docproj/books/handbook/filesystems/chapter.sgml,v 1.2 2009/06/24 18:56:02 bcr Exp $
|
||||
basiert auf: 1.5
|
||||
-->
|
||||
|
||||
<chapter id="filesystems">
|
||||
<chapterinfo>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Tom</firstname>
|
||||
<surname>Rhodes</surname>
|
||||
<contrib>Geschrieben von </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Benedict</firstname>
|
||||
<surname>Reuschling</surname>
|
||||
<contrib>Übersetzt von </contrib>
|
||||
</author>
|
||||
<author>
|
||||
<firstname>Daniel</firstname>
|
||||
<surname>Seuffert</surname>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</chapterinfo>
|
||||
|
||||
<title>Dateisystemunterstützung</title>
|
||||
|
||||
<sect1 id="filesystems-synopsis">
|
||||
<title>Übersicht</title>
|
||||
|
||||
<indexterm><primary>File Systems</primary></indexterm>
|
||||
<indexterm>
|
||||
<primary>File Systems Support</primary>
|
||||
<see>File Systems</see>
|
||||
</indexterm>
|
||||
|
||||
<para>Dateisysteme sind ein wesentlicher Bestandteil von Betriebssystemen.
|
||||
Sie erlauben es den Benutzern Dateien zu laden und zu speichern,
|
||||
ermöglichen den Zugriff auf die Daten und machen Festplatten
|
||||
überhaupt erst nützlich. Unterschiedliche Betriebssysteme
|
||||
besitzen normalerweise eine Gemeinsamkeit, nämlich deren
|
||||
mitgeliefertes Dateisystem. Bei &os; ist dieses Dateisystem bekannt
|
||||
unter dem Namen Fast File System <acronym>FFS</acronym>, das direkt auf
|
||||
dem Original-Unix™ Dateisystem, <acronym>UFS</acronym> genannt,
|
||||
basiert. Dieses ist das von &os; mitgelieferte Dateisystem, das auf
|
||||
Festplatten für den Dateizugriff verwendet wird.</para>
|
||||
|
||||
<para>&os; unterstützt auch eine Vielzahl von anderen Dateisystemen,
|
||||
um auf Daten von anderen Betriebssystemen lokal zuzugreifen, wie z.B.
|
||||
Daten auf <acronym>USB</acronym>-Speichermedien, Flash-Speichern und
|
||||
Festplatten. Es gibt auch Unterstützung für fremde
|
||||
Dateisysteme. Dabei handelt es sich um Dateisysteme, die auf anderen
|
||||
Betriebssystemen entwickelt wurden, wie beispielsweise das &linux;
|
||||
Extended File System (<acronym>EXT</acronym>) und das Z-Dateisystem
|
||||
(<acronym>ZFS</acronym>) von &sun;.</para>
|
||||
|
||||
<para>Es gibt verschiedene Stufen der Unterstützung in &os;
|
||||
für diese unterschiedlichen Dateisysteme. Manche benötigen ein
|
||||
geladenes Kernelmodul, andere die Installation bestimmter Werkzeuge.
|
||||
Dieses Kapitel dient dazu, den Benutzern von &os; dazu helfen, auf andere
|
||||
Dateisysteme zuzugreifen, beginnend mit &sun;s Z-Dateisystem (ZFS).</para>
|
||||
|
||||
<para>Nachdem Sie dieses Kapitel gelesen haben, werden Sie die folgenden
|
||||
Dinge wissen:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Den Unterschied zwischen eingebauten und unterstützten
|
||||
Dateisystemen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Welche Dateisysteme von &os; unterstützt werden.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Wie man fremde Dateisysteme aktiviert, konfiguriert, darauf
|
||||
zugreift und diese verwendet.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Bevor Sie dieses Kapitel lesen, sollten Sie:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Grundlagen von &unix; und &os; verstehen
|
||||
(<xref linkend="basics">).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Mit den Grundlagen der Konfiguration und dem Bauen des Kernels
|
||||
vertraut sein (<xref linkend="kernelconfig">).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Problemlos Software von Drittherstellern in &os; installieren
|
||||
können (<xref linkend="ports">).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>sich ein wenig mit Festplatten, Speicher und Gerätenamen
|
||||
in &os; auskennen (<xref linkend="disks">).</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<!--
|
||||
Temporary warning to avoid listing experimental versions
|
||||
and production versions of FreeBSD with this technology.
|
||||
-->
|
||||
<warning>
|
||||
<para>Die <acronym>ZFS</acronym>-Funktionen sind als experimentell
|
||||
zu betrachten. Manchen Optionen werden möglicherweise bestimmte
|
||||
Funktionalitäten fehlen, andere funktionieren eventuell gar
|
||||
nicht. Mit der Zeit werden diese Eigenschaften als für den
|
||||
Produktivbetrieb geeignet erachtet werden und dann wird diese
|
||||
Dokumentation entsprechend geändert, um diesem Zustand
|
||||
gerecht zu werden.</para>
|
||||
</warning>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="filesystems-zfs">
|
||||
<title>Das Z-Dateisystem (ZFS)</title>
|
||||
|
||||
<para>Das Z-Dateisystem ist eine neue von &sun; entwickelte Technologie,
|
||||
mit dem Konzept einer gepoolten Speichermethodik. Das bedeutet, dass
|
||||
Speicher nur verwendet wird, wenn dieser als Datenspeicher benutzt wird.
|
||||
ZFS wurde auch für maximale Datenintegrität entwickelt und
|
||||
unterstützt dabei mehrfache Kopien, Schnappschüsse und
|
||||
Prüfsummen für Daten. Ein neues Datenreplikationsmodell,
|
||||
bekannt als <acronym>RAID</acronym>-Z, wurde ebenfalls hinzugefügt.
|
||||
Das <acronym>RAID</acronym>-Z-Modell ist ähnlich zu
|
||||
<acronym>RAID</acronym>5, wurde aber mit dem Ziel entworfen,
|
||||
Datenverfälschung beim Schreiben zu verhindern.</para>
|
||||
|
||||
<sect2>
|
||||
<title>ZFS Einstellungen</title>
|
||||
|
||||
<para>Das <acronym>ZFS</acronym>-Teilsystem benötigt viele
|
||||
Systemressourcen, weshalb gewisse Einstellungen notwendig sind, um
|
||||
maximale Effizienz während des täglichen Gebrauchs zu
|
||||
gewährleisten. Da es sich um eine experimentelle Funktion in &os;
|
||||
handelt, wird sich das in naher Zukunft ändern. Wie dem auch sei,
|
||||
zum gegenwärtigen Zeitpunkt wird die Anwendung der folgenden
|
||||
Schritte empfohlen.</para>
|
||||
|
||||
<sect3>
|
||||
<title>Hauptspeicher</title>
|
||||
|
||||
<para>Der verfügbare Hauptspeicher im System sollte mindestens
|
||||
1 Gigabyte betragen, jedoch werden 2 Gigabyte oder mehr
|
||||
empfohlen. In allen gezeigten Beispielen in diesem Abschnitt
|
||||
verwendet das System 1 Gigabyte Hauptspeicher mit mehreren
|
||||
anderen Einstellungen.</para>
|
||||
|
||||
<para>Manche Nutzer hatten Erfolg bei der Verwendung von weniger
|
||||
als 1 GB Hauptspeicher, aber mit dieser begrenzten Menge an RAM
|
||||
ist es sehr wahrscheinlich, dass &os; eine Panic wegen
|
||||
erschöpftem Hauptspeicher erleiden wird, wenn es hohen
|
||||
Belastungen ausgesetzt ist.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Kernelkonfiguration</title>
|
||||
|
||||
<para>Es wird vorgeschlagen, nicht benötigte Treiber und Optionen
|
||||
aus der Kernelkonfigurationsdatei zu entfernen. Da die meisten
|
||||
Geräte als Module verfügbar sind, können diese einfach
|
||||
mittels der Datei <filename>/boot/loader.conf</filename> geladen
|
||||
werden.</para>
|
||||
|
||||
<para>Nutzer der &i386;-Architektur sollten die folgende Option in
|
||||
ihrer Kernelkonfigurationsdatei hinzufügen, den Kernel neu
|
||||
erstellen und anschliessend das System neustarten:</para>
|
||||
|
||||
<programlisting>options KVA_PAGES=512</programlisting>
|
||||
|
||||
<para>Diese Option wird den Adressraum des Kernels vergrössern,
|
||||
was es ermöglicht, die Einstellung <varname>vm.kvm_size</varname>
|
||||
über die momentan verhängte Grenze von 1 GB
|
||||
(2 GB für <acronym>PAE</acronym>) zu erhöhen. Um den
|
||||
passenden Wert dieser Option zu ermitteln, teilen Sie den
|
||||
gewünschten Adressraum in Megabyte durch vier. In diesem Fall
|
||||
beträgt er <literal>512</literal> für 2 GB.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Einstellungen des Loaders</title>
|
||||
|
||||
<para>Der <devicename>kmem</devicename>-Addressraum sollte auf allen
|
||||
&os;-Architekturen erhöht werden. Die folgende Option, die dem
|
||||
Testsystem mit einem Gigabyte Hauptspeicher der Datei
|
||||
<filename>/boot/loader.conf</filename> hinzugefügt und welches
|
||||
anschliessend neu gestartet wurde, war erfolgreich:</para>
|
||||
|
||||
<programlisting>vm.kmem_size="330M"
|
||||
vm.kmem_size_max="330M"
|
||||
vfs.zfs.arc_max="40M"
|
||||
vfs.zfs.vdev.cache.size="5M"</programlisting>
|
||||
|
||||
<para>Eine detailliertere Liste von Vorschlägen zu ZFS-verwandten
|
||||
Einstellungen finden Sie unter <ulink
|
||||
url="http://wiki.freebsd.org/ZFSTuningGuide"></ulink>.</para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Verwenden von <acronym>ZFS</acronym></title>
|
||||
|
||||
<para>Es existiert ein Startmechanismus, der es &os; erlaubt,
|
||||
<acronym>ZFS</acronym> als Pool während des Systemstarts
|
||||
zu initialisieren. Um das zu tun, geben Sie die folgenden Befehle
|
||||
ein:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>echo 'zfs_enable="YES"' >> /etc/rc.conf</userinput>
|
||||
&prompt.root; <userinput>/etc/rc.d/zfs start</userinput></screen>
|
||||
|
||||
<para>Für den Rest dieses Dokuments wird angenommen, dass zwei
|
||||
<acronym>SCSI</acronym>-Platten im System verfügbar sind und
|
||||
dass deren Gerätenamen
|
||||
<devicename><replaceable>da0</replaceable></devicename> und
|
||||
<devicename><replaceable>da1</replaceable></devicename> lauten.
|
||||
Benutzer von <acronym>IDE</acronym>-Hardware können
|
||||
<devicename><replaceable>ad</replaceable></devicename>-Geräte
|
||||
an Stelle von <acronym>SCSI</acronym>-Hardware einsetzen.</para>
|
||||
|
||||
<sect3>
|
||||
<title>Pool mit nur einer Platte</title>
|
||||
|
||||
<para>Um ein <acronym>ZFS</acronym> auf einer einzelnen Festplatte
|
||||
zu erstellen, benutzen Sie das
|
||||
<command>zpool</command>-Kommando:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zpool create example /dev/da0</userinput></screen>
|
||||
|
||||
<para>Um den neuen Pool anzusehen, überprüfen Sie die
|
||||
Ausgabe von <command>df</command>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>df</userinput>
|
||||
Filesystem 1K-blocks Used Avail Capacity Mounted on
|
||||
/dev/ad0s1a 2026030 235230 1628718 13% /
|
||||
devfs 1 1 0 100% /dev
|
||||
/dev/ad0s1d 54098308 1032846 48737598 2% /usr
|
||||
example 17547136 0 17547136 0% /example</screen>
|
||||
|
||||
<para>Diese Ausgabe zeigt deutlich, dass der
|
||||
<literal>example</literal>-Pool nicht nur erstellt, sondern auch
|
||||
<emphasis>gemountet</emphasis> wurde. Er ist genau wie andere
|
||||
Dateisysteme verfügbar, Dateien können darin erstellt und
|
||||
von den Benutzern aufgelistet werden, wie im folgenden Beispiel
|
||||
gezeigt wird:</para>
|
||||
|
||||
<screen>&prompt.root <userinput>cd /example</userinput>
|
||||
&prompt.root; <userinput>ls</userinput>
|
||||
&prompt.root; <userinput>touch testfile</userinput>
|
||||
&prompt.root; <userinput>ls -al</userinput>
|
||||
total 4
|
||||
drwxr-xr-x 2 root wheel 3 Aug 29 23:15 .
|
||||
drwxr-xr-x 21 root wheel 512 Aug 29 23:12 ..
|
||||
-rw-r--r-- 1 root wheel 0 Aug 29 23:15 testfile</screen>
|
||||
|
||||
<para>Leider verwendet dieser Pool keine der Vorteile der
|
||||
<acronym>ZFS</acronym>-Eigenschaften. Erstellen Sie ein Dateisystem
|
||||
auf diesem Pool und aktivieren Sie die Komprimierung darauf:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs create example/compressed</userinput>
|
||||
&prompt.root; <userinput>zfs set compression=gzip example/compressed</userinput></screen>
|
||||
|
||||
<para>Jetzt ist <literal>example/compressed</literal> ein von
|
||||
<acronym>ZFS</acronym> komprimiertes Dateisystem. Versuchen Sie, ein
|
||||
paar grosse Dateien in das Verzeichnis <filename
|
||||
class="directory">/example/compressed</filename> zu kopieren.</para>
|
||||
|
||||
<para>Die Komprimierung kann jetzt deaktiviert werden mittels:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs set compression=off example/compressed</userinput></screen>
|
||||
|
||||
<para>Um das Dateisystem aus dem Verzeichnisbaum abzuhängen, geben
|
||||
Sie den folgenden Befehl ein und vergewissern Sie sich über
|
||||
<command>df</command> vom Erfolg dieser Aktion:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs umount example/compressed</userinput>
|
||||
&prompt.root; <userinput>df</userinput>
|
||||
Filesystem 1K-blocks Used Avail Capacity Mounted on
|
||||
/dev/ad0s1a 2026030 235232 1628716 13% /
|
||||
devfs 1 1 0 100% /dev
|
||||
/dev/ad0s1d 54098308 1032864 48737580 2% /usr
|
||||
example 17547008 0 17547008 0% /example</screen>
|
||||
|
||||
<para>Mounten Sie das Dateisystem erneut, um es wieder verfügbar
|
||||
zu machen und bestätigen Sie mit <command>df</command>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs mount example/compressed</userinput>
|
||||
&prompt.root; <userinput>df</userinput>
|
||||
Filesystem 1K-blocks Used Avail Capacity Mounted on
|
||||
/dev/ad0s1a 2026030 235234 1628714 13% /
|
||||
devfs 1 1 0 100% /dev
|
||||
/dev/ad0s1d 54098308 1032864 48737580 2% /usr
|
||||
example 17547008 0 17547008 0% /example
|
||||
example/compressed 17547008 0 17547008 0% /example/compressed</screen>
|
||||
|
||||
<para>Der Pool und das Dateisystem können genausogut über die
|
||||
Ausgabe von <command>mount</command> überwacht werden:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount</userinput>
|
||||
/dev/ad0s1a on / (ufs, local)
|
||||
devfs on /dev (devfs, local)
|
||||
/dev/ad0s1d on /usr (ufs, local, soft-updates)
|
||||
example on /example (zfs, local)
|
||||
example/data on /example/data (zfs, local)
|
||||
example/compressed on /example/compressed (zfs, local)</screen>
|
||||
|
||||
<para>Wie zu beobachten ist, können
|
||||
<acronym>ZFS</acronym>-Dateisysteme nach deren Erstellung genauso
|
||||
wie normale Dateisysteme verwendet werden, jedoch sind auch noch viele
|
||||
andere Eigenschaften verfügbar. Im folgenden Beispiel wird ein
|
||||
neues Dateisystem, <literal>data</literal>, erstellt. Wichtige
|
||||
Dateien sollen hier gespeichert werden, weshalb das Dateisystem
|
||||
angewiesen wird, jeweils zwei Kopien jedes Datenblocks zu
|
||||
unterhalten:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs create example/data</userinput>
|
||||
&prompt.root; <userinput>zfs set copies=2 example/data</userinput></screen>
|
||||
|
||||
<para>Es ist nun möglich, den Speicherplatzverbrauch der Daten
|
||||
mittels <command>df</command> erneut zu betrachten:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>df</userinput>
|
||||
Filesystem 1K-blocks Used Avail Capacity Mounted on
|
||||
/dev/ad0s1a 2026030 235234 1628714 13% /
|
||||
devfs 1 1 0 100% /dev
|
||||
/dev/ad0s1d 54098308 1032864 48737580 2% /usr
|
||||
example 17547008 0 17547008 0% /example
|
||||
example/compressed 17547008 0 17547008 0% /example/compressed
|
||||
example/data 17547008 0 17547008 0% /example/data</screen>
|
||||
|
||||
<para>Beachten Sie, dass jedem Dateisystem des Pools die gleiche Menge
|
||||
an Speicher zur Verfügung steht. Das ist der Grund für die
|
||||
Verwendung von <command>df</command> in all diesen Beispielen, da es
|
||||
zeigt, dass das Dateisystem nur den Speicher belegt, den es auch
|
||||
benötigt und alles wird von dem gleichen Pool abgezogen.
|
||||
<acronym>ZFS</acronym> macht Konzepte wie Volumen und Partitionen
|
||||
überflüssig und erlaubt mehrere Dateisysteme auf demselben
|
||||
Pool. Zerstören Sie die Datensysteme und anschliessend den Pool,
|
||||
da sie nicht länger gebraucht werden:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs destroy example/compressed</userinput>
|
||||
&prompt.root; <userinput>zfs destroy example/data</userinput>
|
||||
&prompt.root; <userinput>zpool destroy example</userinput></screen>
|
||||
|
||||
<para>Festplatten werden mit der Zeit schlechter und fallen aus, eine
|
||||
unvermeidliche Tatsache. Wenn diese Platte ausfällt, sind die
|
||||
Daten verloren. Eine Möglichkeit, diesen Datenverlust beim
|
||||
Plattenausfall zu vermeiden, ist die Verwendung von
|
||||
<acronym>RAID</acronym>. <acronym>ZFS</acronym> unterstützt
|
||||
diese Eigenschaft im Entwurf seiner Pools und wird im nächsten
|
||||
Abschnitt behandelt.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title><acronym>ZFS</acronym> RAID-Z</title>
|
||||
|
||||
<para>Wie zuvor bereits erwähnt, wird in diesem Abschnitt
|
||||
angenommen, dass zwei <acronym>SCSI</acronym>-Geräte vorhanden
|
||||
sind (<devicename>da0</devicename> und <devicename>da1</devicename>).
|
||||
Um einen <acronym>RAID</acronym>-Z Pool zu erstellen, geben Sie das
|
||||
folgende Kommando ein:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zpool create storage raidz da0 da1</userinput></screen>
|
||||
|
||||
<para>Der <literal>storage</literal>-zPool sollte jetzt erstellt worden
|
||||
sein. Sie können das überprüfen, indem Sie die Befehle
|
||||
&man.mount.8; und &man.df.1; wie zuvor verwenden. Weitere
|
||||
Plattenspeicher können an das Ende der oben stehenden Liste
|
||||
hinzugefügt werden. Erstellen Sie ein neues Dateisystem in dem
|
||||
Pool, <literal>home</literal> genannt, in dem später Dateien von
|
||||
Benutzern platziert werden:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs create storage/home</userinput></screen>
|
||||
|
||||
<para>Nun kann die Komprimierung aktiviert und zusätzliche
|
||||
Kopien der Benutzerverzeichnisse und der darin enthaltenen Dateien
|
||||
angelegt werden. Dies geschieht über die gleichen Befehle
|
||||
wie bereits zuvor:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs set copies=2 storage/home</userinput>
|
||||
&prompt.root; <userinput>zfs set compression=gzip storage/home</userinput></screen>
|
||||
|
||||
<para>Um dieses Verzeichnis als neues Benutzerverzeichnis zu verwenden,
|
||||
kopieren Sie die Nutzerdaten dort hin und erstellen Sie die
|
||||
entsprechenden Symlinks:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cp -rp /home/* /storage/home</userinput>
|
||||
&prompt.root; <userinput>rm -rf /home /usr/home</userinput>
|
||||
&prompt.root; <userinput>ln -s /storage/home /home</userinput>
|
||||
&prompt.root; <userinput>ln -s /storage/home /usr/home</userinput></screen>
|
||||
|
||||
<para>Anwender sollten jetzt ihre Daten in dem neu angelegten <filename
|
||||
class="directory">/storage/home</filename> Dateisystem auffinden.
|
||||
Prüfen Sie das, indem Sie einen neuen Benutzer hinzufügen
|
||||
und sich als dieser Benutzer am System anmelden.</para>
|
||||
|
||||
<para>Versuchen Sie, einen Schnappschuss anzulegen, der später
|
||||
wieder zurückgerollt werden kann:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs snapshot storage/home@08-30-08</userinput></screen>
|
||||
|
||||
<para>Beachten Sie, dass die Schnappschuss-Option nur auf echte
|
||||
Dateisysteme, jedoch nicht auf Verzeichnisse oder eine Datei
|
||||
angewendet werden kann. Das <literal>@</literal>-Zeichen dient als
|
||||
Begrenzer zwischen dem Dateisystem- oder Volumenamen. Wenn ein
|
||||
Benutzerverzeichnis zerstört wird, können Sie es über
|
||||
den folgenden Befehl wieder herstellen:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs rollback storage/home@08-30-08</userinput></screen>
|
||||
|
||||
<para>Um eine Liste von allen verfügbaren Schnappschüssen zu
|
||||
erhalten, starten Sie das <command>ls</command>-Kommando in
|
||||
Verzeichnis <filename
|
||||
class="directory">.zfs/snapshot</filename> des entsprechenden
|
||||
Dateisystems. Beispielsweise können Sie den vorhin angelegten
|
||||
Schnappschuss mit dem folgenden Befehl auflisten:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ls /storage/home/.zfs/snapshot</userinput></screen>
|
||||
|
||||
<para>Es ist möglich ein Skript zu schreiben, dass monatliche
|
||||
Schnappschüsse der Nutzerdaten anlegt. Allerdings werden die
|
||||
Schnappschüsse mit der Zeit eine grosse Menge an Speicherplatz
|
||||
einnehmen. Den vorherigen Schnappschuss können Sie über
|
||||
das folgende Kommando löschen:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs destroy storage/home@08-30-08</userinput></screen>
|
||||
|
||||
<para>Nach all diesen Tests gibt es keinen Grund, das Verzeichnis
|
||||
<filename
|
||||
class="directory">/storage/home</filename> noch länger in seinem
|
||||
momentanen Zustand zu belassen. Ernennen Sie es zum echten <filename
|
||||
class="directory">/home</filename>-Dateisystem:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs set mountpoint=/home storage/home</userinput></screen>
|
||||
|
||||
<para>Die Eingabe der Befehle <command>df</command> und
|
||||
<command>mount</command> zeigt, dass das System das Dateisystem nun
|
||||
als das echte <filename class="directory">/home</filename>
|
||||
behandelt:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount</userinput>
|
||||
/dev/ad0s1a on / (ufs, local)
|
||||
devfs on /dev (devfs, local)
|
||||
/dev/ad0s1d on /usr (ufs, local, soft-updates)
|
||||
storage on /storage (zfs, local)
|
||||
storage/home on /home (zfs, local)
|
||||
&prompt.root; <userinput>df</userinput>
|
||||
Filesystem 1K-blocks Used Avail Capacity Mounted on
|
||||
/dev/ad0s1a 2026030 235240 1628708 13% /
|
||||
devfs 1 1 0 100% /dev
|
||||
/dev/ad0s1d 54098308 1032826 48737618 2% /usr
|
||||
storage 17547008 0 17547008 0% /storage
|
||||
storage/home 17547008 0 17547008 0% /home</screen>
|
||||
|
||||
<para>Damit ist die <acronym>RAID</acronym>-Z-Konfiguration
|
||||
abgeschlossen. Um über den Status des Dateisystems mittels des
|
||||
nächtlichen &man.periodic.8;-Skripts auf dem Laufenden gehalten
|
||||
zu werden, geben Sie das folgende Kommando ein:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>echo 'daily_status_zfs_enable="YES"' >> /etc/periodic.conf</userinput></screen>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Wiederherstellung von <acronym>RAID</acronym>-Z</title>
|
||||
|
||||
<para>Jedes Software-<acronym>RAID</acronym> besitzt Verfahren, um
|
||||
dessen <literal>Zustand</literal> zu überwachen.
|
||||
<acronym>ZFS</acronym> ist da keine Ausnahme. Der Status von
|
||||
<acronym>RAID</acronym>-Z Geräten kann mittels des folgenden
|
||||
Kommandos betrachtet werden:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zpool status -x</userinput></screen>
|
||||
|
||||
<para>Wenn alle Pools gesund sind und alles normal ist, wird die
|
||||
folgende Nachricht zurückgegeben:</para>
|
||||
|
||||
<screen>all pools are healthy</screen>
|
||||
|
||||
<para>Wenn ein Problem existiert (möglicherweise ist eine Platte
|
||||
ausgefallen), wird der Zustand des Pools ähnlich dem Folgenden
|
||||
ausgegeben:</para>
|
||||
|
||||
<screen> pool: storage
|
||||
state: DEGRADED
|
||||
status: One or more devices has been taken offline by the administrator.
|
||||
Sufficient replicas exist for the pool to continue functioning in a
|
||||
degraded state.
|
||||
action: Online the device using 'zpool online' or replace the device with
|
||||
'zpool replace'.
|
||||
scrub: none requested
|
||||
config:
|
||||
|
||||
NAME STATE READ WRITE CKSUM
|
||||
storage DEGRADED 0 0 0
|
||||
raidz1 DEGRADED 0 0 0
|
||||
da0 ONLINE 0 0 0
|
||||
da1 OFFLINE 0 0 0
|
||||
|
||||
errors: No known data errors</screen>
|
||||
|
||||
<para>Das bedeutet, dass das Gerät vom Systemadministrator
|
||||
abgeschaltet wurde. In diesem Fall trifft das zu. Um eine Platte
|
||||
abzuschalten, wurde das folgende Kommando eingegeben:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zpool offline storage da1</userinput></screen>
|
||||
|
||||
<para>Es ist jetzt möglich, <devicename>da1</devicename> zu
|
||||
ersetzen, nachdem das System ausgeschaltet wurde. Wenn das System
|
||||
wieder läuft, kann der folgende Befehl benutzt werden, um die
|
||||
Platte zu ersetzen:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zpool replace storage da1</userinput></screen>
|
||||
|
||||
<para>Von da an kann der Status erneut überprüft werden,
|
||||
jedoch dieses Mal ohne die Option <option>-x</option>, um die
|
||||
Zustandsinformation zu bekommen:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zpool status storage</userinput>
|
||||
pool: storage
|
||||
state: ONLINE
|
||||
scrub: resilver completed with 0 errors on Sat Aug 30 19:44:11 2008
|
||||
config:
|
||||
|
||||
NAME STATE READ WRITE CKSUM
|
||||
storage ONLINE 0 0 0
|
||||
raidz1 ONLINE 0 0 0
|
||||
da0 ONLINE 0 0 0
|
||||
da1 ONLINE 0 0 0
|
||||
|
||||
errors: No known data errors</screen>
|
||||
|
||||
<para>Wie in diesem Beispiel gezeigt, scheint alles wieder normal zu
|
||||
sein.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Datenüberprüfung</title>
|
||||
|
||||
<para>Wie bereits erwähnt, verwendet <acronym>ZFS</acronym>
|
||||
<literal>Prüfsummen</literal>, um die Integrität der
|
||||
gespeicherten Daten zu verifizieren. Die Prüfsummen werden
|
||||
automatisch beim Erstellen des Dateisystem aktiviert und können
|
||||
über den folgenden Befehl deaktiviert werden:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs set checksum=off storage/home</userinput></screen>
|
||||
|
||||
<para>Das ist jedoch kein schlauer Einfall, da die Prüfsummen nur
|
||||
ganz wenig Speicherplatz einnehmen und viel nützlicher sind,
|
||||
wenn Sie aktiviert bleiben. Es scheint auch kein nennenswerter
|
||||
Ressourcenverbrauch mit deren Aktivierung verbunden zu sein. Wenn die
|
||||
Prüfsummen aktiv sind, kann <acronym>ZFS</acronym> die
|
||||
Datenintegrität über den Vergleich der Prüfsummen
|
||||
gewährleisten. Dieser Prozess wird als <quote>reinigen</quote>
|
||||
bezeichnet. Um die Datenintegrität des
|
||||
<literal>storage</literal>-Pools zu überprüfen, geben Sie
|
||||
den folgenden Befehl ein:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zpool scrub storage</userinput></screen>
|
||||
|
||||
<para>Dieser Prozess kann einige Zeit in Anspruch nehmen, abhängig
|
||||
davon, wieviele Daten gespeichert sind. Es handelt sich dabei auch
|
||||
um eine <acronym>I/O</acronym>-intensive Aktion, weshalb auch jeweils
|
||||
nur eine dieser Operationen durchgeführt werden darf. Nachdem
|
||||
die Reinigung abgeschlossen ist, wird der Status aktualisiert und
|
||||
kann über eine Statusabfrage eingesehen werden:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zpool status storage</userinput>
|
||||
pool: storage
|
||||
state: ONLINE
|
||||
scrub: scrub completed with 0 errors on Sat Aug 30 19:57:37 2008
|
||||
config:
|
||||
|
||||
NAME STATE READ WRITE CKSUM
|
||||
storage ONLINE 0 0 0
|
||||
raidz1 ONLINE 0 0 0
|
||||
da0 ONLINE 0 0 0
|
||||
da1 ONLINE 0 0 0
|
||||
|
||||
errors: No known data errors</screen>
|
||||
|
||||
<para>Die Zeit des Abschlusses der Aktion kann in diesem Beispiel direkt
|
||||
abgelesen werden. Die Prüfsummen helfen dabei, sicherzustellen,
|
||||
dass die Datenintegrität über einen langen Zeitraum hinaus
|
||||
erhalten bleibt.</para>
|
||||
|
||||
<para>Es gibt viele weitere Optionen für das Z-Dateisystem, lesen
|
||||
Sie dazu die Manualpage &man.zfs.8; und &man.zpool.8;.</para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
|
||||
<!--
|
||||
XXXTR: stub sections (added later, as needed, as desire,
|
||||
after I get opinions from -doc people):
|
||||
|
||||
Still need to discuss native and foreign file systems.
|
||||
|
||||
<sect1>
|
||||
<title>Device File System</title>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>DOS and NTFS File Systems</title>
|
||||
<para>This is a good section for those who transfer files, using
|
||||
USB devices, from Windows to FreeBSD and vice-versa. My camera,
|
||||
and many other cameras I have seen default to using FAT16. There
|
||||
is (was?) a kde utility, I think called kamera, that could be used
|
||||
to access camera devices. A section on this would be useful.</para>
|
||||
|
||||
<para>XXXTR: Though! The disks chapter, covers a bit of this and
|
||||
devfs under it's USB devices. It leaves a lot to be desired though,
|
||||
see:
|
||||
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/usb-disks.html
|
||||
It may be better to flesh out that section a bit more. Add the
|
||||
word "camera" to it so that others can easily notice.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>Linux EXT File System</title>
|
||||
|
||||
<para>Probably NOT as useful as the other two, but it requires
|
||||
knowledge of the existence of the tools. Which are hidden in
|
||||
the ports collection. Most Linux guys would probably only use
|
||||
Linux, BSD guys would be smarter and use NFS.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>HFS</title>
|
||||
|
||||
<para>I think this is the file system used on Apple OSX. There are
|
||||
tools in the ports collection, and with Apple being a big
|
||||
FreeBSD supporter and user of our technologies, surely there
|
||||
is enough cross over to cover this?</para>
|
||||
</sect1>
|
||||
-->
|
||||
|
||||
<title>File Systems Support (noch nicht übersetzt)</title>
|
||||
|
||||
<para>Dieses Kapitel ist noch nicht übersetzt.
|
||||
Lesen Sie bitte <ulink
|
||||
url="&url.books.handbook.en;/filesystems.html">
|
||||
das Original in englischer Sprache</ulink>. Wenn Sie helfen
|
||||
wollen, dieses Kapitel zu übersetzen, senden Sie bitte
|
||||
eine E-Mail an die Mailingliste &a.de.translators;.</para>
|
||||
</chapter>
|
||||
|
||||
<!--
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue