MFen: 1.37->1.44
Obtained from: The FreeBSD German Documentation Project
This commit is contained in:
parent
873c933aec
commit
00864932dc
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=12440
1 changed files with 63 additions and 60 deletions
|
@ -2,9 +2,9 @@
|
|||
The FreeBSD Documentation Project
|
||||
The FreeBSD German Documentation Project
|
||||
|
||||
Original version 1.37 (ohne SoftUpdates aus 1.33 + 1.34)
|
||||
Original version 1.44
|
||||
$FreeBSD$
|
||||
$FreeBSDde: de-docproj/books/handbook/config/chapter.sgml,v 1.9 2002/01/27 16:52:12 mheinen Exp $
|
||||
$FreeBSDde: de-docproj/books/handbook/config/chapter.sgml,v 1.15 2002/03/04 16:44:25 mheinen Exp $
|
||||
-->
|
||||
|
||||
<chapter id="config-tuning">
|
||||
|
@ -93,10 +93,8 @@
|
|||
(<xref linkend="cutting-edge">)
|
||||
-->
|
||||
und wissen, wie Sie einen
|
||||
Kernel konfigurieren und kompilieren.</para>
|
||||
<!--
|
||||
(<xref linkend="kernelconfig">)
|
||||
-->
|
||||
Kernel konfigurieren und kompilieren (<xref
|
||||
linkend="kernelconfig">) .</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
|
@ -891,7 +889,7 @@ kern.maxfiles: 2088 -> 5000</screen>
|
|||
Wir entschieden uns daher für die sichere Variante
|
||||
und stellten den Schreib-Zwischenspeicher ab. Leider war
|
||||
damit auch ein großer Leistungsverlust verbunden, so
|
||||
daß wir klein beigeben mußten und die Variable
|
||||
daß wir die Variable
|
||||
nach dem Release wieder aktiviert haben. Sie sollten den
|
||||
Wert der Variable <varname>hw.ata.wc</varname> auf Ihrem
|
||||
System überprüfen. Wenn der Schreib-Zwischenspeicher
|
||||
|
@ -917,7 +915,7 @@ kern.maxfiles: 2088 -> 5000</screen>
|
|||
werden wie folgt ein- und ausgeschaltet:</para>
|
||||
|
||||
<screen>&prompt.root; tunefs -n enable /filesystem
|
||||
&prompt.root; tunefs -n disable /filesystem</screen>
|
||||
&prompt.root; tunefs -n disable /filesystem</screen>
|
||||
|
||||
<para>Ein einghängtes Dateisystem kann nicht mit &man.tunefs.8;
|
||||
modifiziert werden. Soft Updates werden am besten im Single-User
|
||||
|
@ -951,7 +949,7 @@ kern.maxfiles: 2088 -> 5000</screen>
|
|||
|
||||
<para>Es gibt zwei klassische Herangehensweisen, wie
|
||||
man die Metadaten des Dateisystems (also Daten
|
||||
über Dateien, wie i-node Bereiche oder Verzeichniseinträge)
|
||||
über Dateien, wie inode Bereiche oder Verzeichniseinträge)
|
||||
aktualisiert auf die Platte zurückschreibt:</para>
|
||||
|
||||
<para>Das historisch übliche Verfahren waren synchrone
|
||||
|
@ -962,15 +960,15 @@ kern.maxfiles: 2088 -> 5000</screen>
|
|||
<emphasis>Inhalt</emphasis> der Dateien wurde im
|
||||
<quote>Buffer Cache</quote> zwischengespeichert und
|
||||
asynchron irgendwann später auf die Platte geschrieben.
|
||||
Der Vorteil dieser Implementierung ist, daß sie sehr
|
||||
Der Vorteil dieser Implementierung ist, daß sie
|
||||
sicher funktioniert. Wenn während eines Updates ein
|
||||
Ausfall erfolgt, haben die Metadaten immer einen
|
||||
konsistenten Zustand. Eine Datei ist entweder komplett
|
||||
angelegt oder gar nicht. Wenn die Datenblöcke der
|
||||
Datei den Weg aus dem <quote>Buffer Cache</quote> noch nicht
|
||||
auf die Platte gefunden haben, dann kann &man.fsck.8; dies
|
||||
feststellen und das Dateisystem reparieren (die
|
||||
Dateilänge wird dann auf 0 gesetzt). Außerdem
|
||||
angelegt oder gar nicht. Wenn die Datenblöcke einer
|
||||
Datei im Fall eines Absturzes noch nicht den Weg aus dem
|
||||
<quote>Buffer Cache</quote> auf die Platte gefunden haben,
|
||||
kann &man.fsck.8; das Dateisystem reparieren, indem es die
|
||||
Dateilänge einfach auf 0 setzt. Außerdem
|
||||
ist die Implementierung einfach und überschaubar. Der
|
||||
Nachteil ist, daß Änderungen der Metadaten sehr
|
||||
langsam vor sich gehen. Ein <command>rm -r</command>
|
||||
|
@ -998,7 +996,7 @@ kern.maxfiles: 2088 -> 5000</screen>
|
|||
anschließend in einem unbestimmten Zustand. Niemand
|
||||
kann genau sagen, was noch geschrieben worden ist und was
|
||||
nicht mehr; die Datenblöcke einer Datei können
|
||||
schon auf der Platte stehen, während die i-node Tabelle
|
||||
schon auf der Platte stehen, während die inode Tabelle
|
||||
oder das zugehörige Verzeichnis nicht mehr aktualisiert
|
||||
worden ist. Man kann praktisch kein <command>fsck</command>
|
||||
mehr implementieren, das diesen Zustand
|
||||
|
@ -1041,8 +1039,8 @@ kern.maxfiles: 2088 -> 5000</screen>
|
|||
wieder zur Verfügung steht.
|
||||
</para>
|
||||
|
||||
<para>Die Lösung von Kirk McKusick (dem Schöpfer von
|
||||
Berkeley FFS) waren <emphasis>Soft Updates</emphasis>: die
|
||||
<para>Die Lösung von Kirk McKusick, dem Schöpfer von
|
||||
Berkeley FFS, waren <emphasis>Soft Updates</emphasis>: die
|
||||
notwendigen Updates der Metadaten werden im Speicher
|
||||
gehalten und dann sortiert auf die Platte geschrieben
|
||||
(<quote>ordered metadata updates</quote>). Dadurch hat man
|
||||
|
@ -1056,14 +1054,14 @@ kern.maxfiles: 2088 -> 5000</screen>
|
|||
die Platte geschrieben wird (die dazugehörigen
|
||||
Datenblöcke werden natürlich auch so sortiert,
|
||||
daß sie nicht vor ihren Metadaten auf der Platte
|
||||
sind). Im Crashfall hat man ein implizites <quote>log
|
||||
rewind</quote>: alle Operationen, die noch nicht den Weg auf
|
||||
sind). Im Fall eines Absturzes hat man ein implizites <quote>log
|
||||
rewind</quote>: alle Operationen, die noch nicht den Weg auf
|
||||
die Platte gefunden haben, sehen danach so aus, als
|
||||
hätten sie nie stattgefunden. Man hat so also den
|
||||
konsistenten Zustand von ca. 30 -- 60 Sekunden früher
|
||||
konsistenten Zustand von ca. 30 bis 60 Sekunden früher
|
||||
sichergestellt. Der verwendete Algorithmus garantiert
|
||||
dabei, daß alle tatsächlich benutzten Ressourcen
|
||||
auch in den entsprechenden Bitmaps (Block- und i-node
|
||||
auch in den entsprechenden Bitmaps (Block- und inode
|
||||
Tabellen) als belegt markiert sind. Der einzige Fehler, der
|
||||
auftreten kann, ist, daß Ressourcen noch als
|
||||
<quote>belegt</quote> markiert sind, die tatsächlich
|
||||
|
@ -1085,7 +1083,7 @@ kern.maxfiles: 2088 -> 5000</screen>
|
|||
Dateisysteme gestartet, die dies benötigen, um
|
||||
möglicherweise irrtümlich belegte Resourcen
|
||||
freizugeben. (Dateisysteme ohne <emphasis>Soft
|
||||
Updates</emphasis> benötigen natürlich immer noch
|
||||
Updates</emphasis> benötigen natürlich immer noch
|
||||
den üblichen (Vordergrund-)<command>fsck</command>,
|
||||
bevor sie eingebunden werden können.)</para>
|
||||
|
||||
|
@ -1097,9 +1095,9 @@ kern.maxfiles: 2088 -> 5000</screen>
|
|||
einer erhöhten Fehlerwahrscheinlichkeit in einem
|
||||
bezüglich Datenverlust hoch sensiblen Bereich) und ein
|
||||
erhöhter Speicherverbrauch entgegen. Außerdem
|
||||
muß man sich an einige <quote>Eigenheiten</quote>
|
||||
muß man sich an einige Eigenheiten
|
||||
gewöhnen: Nach einem Absturz ist ein etwas älterer
|
||||
Stand auf der Platte - statt einer leeren, aber bereits
|
||||
Stand auf der Platte — statt einer leeren, aber bereits
|
||||
angelegten Datei (wie nach einem herkömmlichen
|
||||
<command>fsck</command> Lauf) ist auf einem Dateisystem mit
|
||||
<emphasis>Soft Updates</emphasis> keine Spur der
|
||||
|
@ -1112,7 +1110,6 @@ kern.maxfiles: 2088 -> 5000</screen>
|
|||
bereiten, wenn große Datenmengen in einem Dateisystem
|
||||
ersetzt werden, das nicht genügend Platz hat, um alle
|
||||
Dateien zweimal unterzubringen.</para>
|
||||
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
@ -1230,52 +1227,58 @@ kern.maxfiles: 2088 -> 5000</screen>
|
|||
<para>Sie können eine Datei festgelegter Größe als
|
||||
Swap-Bereich nutzen. Im folgenden Beispiel werden wir eine 64 MB
|
||||
große Datei mit dem Namen <filename>/usr/swap0</filename>
|
||||
benutzen. Sie können sich natürlich einen beliebigen Namen
|
||||
für den Swap-Bereich aussuchen.</para>
|
||||
benutzen, Sie können natürlich einen beliebigen Namen
|
||||
für den Swap-Bereich benutzen.</para>
|
||||
|
||||
<para>Zuerst stellen Sie bitte sicher, daß Ihr Kernel den
|
||||
vnode-Treiber enthält. In neueren Versionen von
|
||||
<filename>GENERIC</filename> ist dieser <emphasis>nicht</emphasis>
|
||||
enthalten.</para>
|
||||
<example>
|
||||
<title>Erstellen einer Swap-Datei</title>
|
||||
|
||||
<programlisting>pseudo-device vn 1 #Vnode driver (turns a file into a device)</programlisting>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Zuerst stellen Sie bitte sicher, daß Ihr Kernel den
|
||||
vnode-Treiber enthält. In neueren Versionen von
|
||||
<filename>GENERIC</filename> ist dieser
|
||||
<emphasis>nicht</emphasis> enthalten.</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Erstellen Sie das vn-Gerät:</para>
|
||||
<screen>&prompt.root; <userinput>cd /dev</userinput> &prompt.root; <userinput>sh MAKEDEV vn0</userinput></screen>
|
||||
</listitem>
|
||||
<programlisting>pseudo-device vn 1 #Vnode driver (turns a file into a device)</programlisting>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Legen Sie die Swap-Datei <filename>/usr/swap0</filename>
|
||||
an:</para>
|
||||
<listitem>
|
||||
<para>Erstellen Sie das vn-Gerät:</para>
|
||||
<screen>&prompt.root; <userinput>cd /dev</userinput>
|
||||
&prompt.root; <userinput>sh MAKEDEV vn0</userinput></screen>
|
||||
</listitem>
|
||||
|
||||
<screen>&prompt.root; <userinput>dd if=/dev/zero of=/usr/swap0 bs=1024k count=64</userinput></screen>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Legen Sie die Swap-Datei <filename>/usr/swap0</filename>
|
||||
an:</para>
|
||||
|
||||
<listitem>
|
||||
<para>Setzen Sie die richtigen Berechtigungen für
|
||||
<filename>/usr/swap0</filename>:</para>
|
||||
<screen>&prompt.root; <userinput>dd if=/dev/zero of=/usr/swap0 bs=1024k count=64</userinput></screen>
|
||||
</listitem>
|
||||
|
||||
<screen>&prompt.root; <userinput>chmod 0600 /usr/swap0</userinput></screen>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Setzen Sie die richtigen Berechtigungen für
|
||||
<filename>/usr/swap0</filename>:</para>
|
||||
|
||||
<listitem>
|
||||
<para>Aktivieren Sie die Swap-Datei in
|
||||
<filename>/etc/rc.conf</filename>:</para>
|
||||
<screen>&prompt.root; <userinput>chmod 0600 /usr/swap0</userinput></screen>
|
||||
</listitem>
|
||||
|
||||
<programlisting>swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired.</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Aktivieren Sie die Swap-Datei in
|
||||
<filename>/etc/rc.conf</filename>:</para>
|
||||
|
||||
<listitem>
|
||||
<para>Führen Sie einen Reboot durch:</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
<programlisting>swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired.</programlisting>
|
||||
</listitem>
|
||||
|
||||
<para>Um die Swap-Datei direkt zu aktivieren, setzen Sie das folgende
|
||||
Kommando ab:</para>
|
||||
<listitem>
|
||||
<para>Um die Swap-Datei zu aktivieren, führen Sie
|
||||
entweder einen Reboot durch oder geben das folgende Kommando
|
||||
ein:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>vnconfig -e /dev/vn0b /usr/swap0 swap</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>vnconfig -e /dev/vn0b /usr/swap0 swap</userinput></screen>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</example>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
|
Loading…
Reference in a new issue