Update to r44485:
Editorial review of first 1/2 of HAST chapter. Reviewed by: bcr Differential Revision: https://reviews.freebsd.org/D5641
This commit is contained in:
parent
7730db9d8b
commit
6fc272280f
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48416
1 changed files with 183 additions and 203 deletions
|
@ -5,7 +5,7 @@
|
|||
|
||||
$FreeBSD$
|
||||
$FreeBSDde: de-docproj/books/handbook/disks/chapter.xml,v 1.187 2012/04/26 19:32:48 bcr Exp $
|
||||
basiert auf: r44473
|
||||
basiert auf: r44485
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="disks">
|
||||
<info><title>Speichermedien</title>
|
||||
|
@ -3460,7 +3460,10 @@ Device 1K-blocks Used Avail Capacity
|
|||
</sect1>
|
||||
|
||||
<sect1 xml:id="disks-hast">
|
||||
<info><title>Highly Available Storage (HAST)</title>
|
||||
<info>
|
||||
<title>Highly Available Storage
|
||||
(<acronym>HAST</acronym>)</title>
|
||||
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Daniel</firstname><surname>Gerzo</surname></personname><contrib>Beigetragen von </contrib></author>
|
||||
</authorgroup>
|
||||
|
@ -3482,69 +3485,27 @@ Device 1K-blocks Used Avail Capacity
|
|||
<secondary>high availability</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>Hochverfügbarkeit ist eine der Hauptanforderungen von
|
||||
ernsthaften Geschäftsanwendungen und hochverfügbarer Speicher
|
||||
ist eine Schlüsselkomponente in solchen Umgebungen. Highly
|
||||
Available STorage, oder <acronym>HAST<remark role="acronym">Highly Available STorage</remark></acronym>, wurde von
|
||||
&a.pjd.email; als ein Framework entwickelt, welches die transparente
|
||||
Speicherung der gleichen Daten über mehrere physikalisch getrennte
|
||||
Maschinen ermöglicht, die über ein TCP/IP-Netzwerk verbunden
|
||||
sind. <acronym>HAST</acronym> kann als ein netzbasiertes RAID1
|
||||
(Spiegel) verstanden werden und ist dem DRBD®-Speichersystem der
|
||||
GNU/&linux;-Plattform ähnlich. In Kombination mit anderen
|
||||
Hochverfügbarkeitseigenschaften von &os;
|
||||
wie <acronym>CARP</acronym>, ermöglicht es
|
||||
<acronym>HAST</acronym>, hochverfügbare Speichercluster zu bauen,
|
||||
die in der Lage sind, Hardwareausfällen zu widerstehen.</para>
|
||||
<para>Hochverfügbarkeit ist eine der Hauptanforderungen von
|
||||
ernsthaften Geschäftsanwendungen und hochverfügbarer Speicher
|
||||
ist eine Schlüsselkomponente in solchen Umgebungen. Highly
|
||||
Available STorage (<acronym>HAST</acronym>) ist ein Framework
|
||||
in &os;, welches die transparente Speicherung der gleichen
|
||||
Daten über mehrere physikalisch getrennte Maschinen ermöglicht,
|
||||
die über ein <acronym>TCP/IP</acronym>-Netzwerk verbunden sind.
|
||||
<acronym>HAST</acronym> kann als ein netzbasiertes RAID1
|
||||
(Spiegel) verstanden werden und ist dem DRBD®-Speichersystem
|
||||
der GNU/&linux;-Plattform ähnlich. In Kombination mit anderen
|
||||
Hochverfügbarkeitseigenschaften von &os; wie
|
||||
<acronym>CARP</acronym>, ermöglicht es <acronym>HAST</acronym>,
|
||||
hochverfügbare Speichercluster zu bauen, die in der Lage sind,
|
||||
Hardwareausfällen zu widerstehen.</para>
|
||||
|
||||
<para>Nachdem Sie diesen Abschnitt gelesen haben, werden Sie folgendes
|
||||
wissen:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Was <acronym>HAST</acronym> ist, wie es funktioniert und
|
||||
welche Eigenschaften es besitzt.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Wie man <acronym>HAST</acronym> auf &os; aufsetzt und
|
||||
verwendet.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Wie man <acronym>CARP</acronym> und &man.devd.8; kombiniert, um
|
||||
ein robustes Speichersystem zu bauen.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Bevor Sie diesen Abschnitt lesen, sollten Sie:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>die Grundlagen von &unix; und &os; verstanden haben
|
||||
(<xref linkend="basics"/>).</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>wissen, wie man Netzwerkschnittstellen und andere Kernsysteme
|
||||
von &os; konfiguriert (<xref linkend="config-tuning"/>).</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>ein gutes Verständnis der &os;-Netzwerkfunktionalität
|
||||
besitzen (<xref linkend="network-communication"/>).</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Das <acronym>HAST</acronym>-Projekt wurde von der &os; Foundation
|
||||
mit Unterstützung der <link xlink:href="http://www.omc.net/">OMCnet Internet Service GmbH</link> und
|
||||
<link xlink:href="http://www.transip.nl/">TransIP BV</link>
|
||||
gesponsert.</para>
|
||||
|
||||
<sect2>
|
||||
<title>HAST-Merkmale</title>
|
||||
|
||||
<para>Die Hauptmerkmale des <acronym>HAST</acronym>-Systems sind:</para>
|
||||
<para>Die Hauptmerkmale von <acronym>HAST</acronym> sind:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Es kann zur Maskierung von I/O-Fehlern auf lokalen Festplatten
|
||||
<para>Es kann zur Maskierung von
|
||||
<acronym>I/O</acronym>-Fehlern auf lokalen Festplatten
|
||||
eingesetzt werden.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
|
@ -3574,70 +3535,100 @@ Device 1K-blocks Used Avail Capacity
|
|||
bauen.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
|
||||
<para>Nachdem Sie diesen Abschnitt gelesen haben, werden Sie
|
||||
folgendes wissen:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Was <acronym>HAST</acronym> ist, wie es funktioniert und
|
||||
welche Eigenschaften es besitzt.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Wie man <acronym>HAST</acronym> unter &os; aufsetzt und
|
||||
verwendet.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Wie man <acronym>CARP</acronym> und &man.devd.8;
|
||||
kombiniert, um ein robustes Speichersystem zu bauen.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Bevor Sie diesen Abschnitt lesen, sollten Sie:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>die Grundlagen von &unix; und &os; verstanden haben
|
||||
(<xref linkend="basics"/>).</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>wissen, wie man Netzwerkschnittstellen und andere
|
||||
Kernsysteme von &os; konfiguriert (<xref
|
||||
linkend="config-tuning"/>).</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>ein gutes Verständnis der &os;-Netzwerkfunktionalität
|
||||
besitzen (<xref linkend="network-communication"/>).</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Das <acronym>HAST</acronym>-Projekt wurde von der &os;
|
||||
Foundation mit Unterstützung der <link
|
||||
xlink:href="http://www.omc.net/">OMCnet Internet Service GmbH</link>
|
||||
und <link xlink:href="http://www.transip.nl/">TransIP BV</link>
|
||||
gesponsert.</para>
|
||||
|
||||
<sect2>
|
||||
<title>HAST im Einsatz</title>
|
||||
|
||||
<para><acronym>HAST</acronym> stellt auf Block-Ebene eine synchrone
|
||||
Replikation eines beliebigen Speichermediums auf mehreren Maschinen zur
|
||||
Verfügung. Daher werden mindestens zwei physikalische
|
||||
Maschinen benötigt: der <literal>primary</literal>, auch
|
||||
bekannt als <literal>master</literal> Knoten, sowie der
|
||||
<para><acronym>HAST</acronym> bietet eine synchrone Replikation
|
||||
auf Blockebene zwischen zwei Maschinen: einem
|
||||
<literal>primary</literal>, auch bekannt als
|
||||
<literal>master</literal> Knoten, sowie dem
|
||||
<literal>secondary</literal>, oder <literal>slave</literal>
|
||||
Knoten. Diese beiden Maschinen zusammen werden als Cluster
|
||||
bezeichnet.</para>
|
||||
|
||||
<note>
|
||||
<para>HAST ist momentan auf insgesamt zwei Knoten im Cluster
|
||||
beschränkt.</para>
|
||||
</note>
|
||||
|
||||
<para>Da <acronym>HAST</acronym> in einer
|
||||
primär-sekundär-Konfiguration funktioniert, ist immer nur ein
|
||||
Knoten des Clusters zu jeder Zeit aktiv. Der
|
||||
<literal>primäre</literal> Knoten, auch
|
||||
<literal>active</literal> genannt, ist derjenige, der alle I/O-Anfragen
|
||||
verarbeitet, die an die <acronym>HAST</acronym>-Schnittstelle gesendet
|
||||
werden. Der <literal>secondary</literal>-Knoten wird automatisch vom
|
||||
<literal>primary</literal>-Knoten aus synchronisiert.</para>
|
||||
primär-sekundär-Konfiguration funktioniert, ist immer nur ein
|
||||
Knoten des Clusters zu jeder Zeit aktiv. Der primäre Knoten,
|
||||
auch <emphasis>active</emphasis> genannt, ist derjenige, der
|
||||
alle <acronym>I/O</acronym>-Anfragen verarbeitet, die an die
|
||||
<acronym>HAST</acronym>-Schnittstelle gesendet werden. Der
|
||||
sekundäre Knoten wird automatisch vom primären Knoten aus
|
||||
synchronisiert.</para>
|
||||
|
||||
<para>Die physischen Komponenten des <acronym>HAST</acronym>-Systems
|
||||
sind:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>lokale Platte am Primärknoten</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>entfernte Platte am Sekundärknoten</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>Die physischen Komponenten des
|
||||
<acronym>HAST</acronym>-Systems sind die lokale Platte am
|
||||
Primärknoten und die entfernte Platte am
|
||||
Sekundärknoten.</para>
|
||||
|
||||
<para><acronym>HAST</acronym> arbeitet synchron auf Blockebene,
|
||||
was es für Dateisysteme und Anwendungen transparent macht.
|
||||
<acronym>HAST</acronym> stellt gewöhnliche GEOM-Provider in
|
||||
<acronym>HAST</acronym> stellt gewöhnliche
|
||||
<acronym>GEOM</acronym>-Provider in
|
||||
<filename>/dev/hast/</filename> für die Verwendung durch
|
||||
andere Werkzeuge oder Anwendungen zur Verfügung. Somit gibt
|
||||
es keinen Unterschied zwischen dem Einsatz von
|
||||
andere Werkzeuge oder Anwendungen zur Verfügung. Es gibt
|
||||
keinen Unterschied zwischen dem Einsatz von
|
||||
<acronym>HAST</acronym> bereitgestellten Geräten und
|
||||
herkömmlichen Platten, Partitionen, etc.</para>
|
||||
herkömmlichen Platten oder Partitionen.</para>
|
||||
|
||||
<para>Jede Schreib-, Lösch- oder Entleerungsoperation wird an die
|
||||
lokale und über TCP/IP zu der entfernt liegenden
|
||||
Platte gesendet. Jede Leseoperation wird von der lokalen Platte
|
||||
durchgeführt, es sei denn, die lokale Platte ist nicht aktuell
|
||||
oder es tritt ein I/O-Fehler auf. In solchen Fällen wird die
|
||||
Leseoperation an den Sekundärknoten geschickt.</para>
|
||||
<para>Jede Schreib-, Lösch- oder Entleerungsoperation wird an
|
||||
die lokale und über <acronym>TCP/IP</acronym> zu der entfernt
|
||||
liegenden Platte gesendet. Jede Leseoperation wird von der
|
||||
lokalen Platte durchgeführt, es sei denn, die lokale Platte
|
||||
ist nicht aktuell oder es tritt ein
|
||||
<acronym>I/O</acronym>-Fehler auf. In solchen Fällen wird die
|
||||
Leseoperation an den Sekundärknoten geschickt.</para>
|
||||
|
||||
<para><acronym>HAST</acronym> versucht, eine schnelle Fehlerbereinigung
|
||||
zu gewährleisten. Aus diesem Grund ist es sehr wichtig, die
|
||||
Synchronisationszeit nach dem Ausfall eines Knotens zu reduzieren.
|
||||
Um eine schnelle Synchronisation zu ermöglichen, verwaltet
|
||||
<acronym>HAST</acronym> eine Bitmap von unsauberen Bereichen
|
||||
auf der Platte und synchronisiert nur diese während einer
|
||||
regulären Synchronisation (mit Ausnahme der initialen
|
||||
Synchronisation).</para>
|
||||
<para><acronym>HAST</acronym> versucht, eine schnelle
|
||||
Fehlerbereinigung zu gewährleisten. Aus diesem Grund ist es
|
||||
wichtig, die Synchronisationszeit nach dem Ausfall eines
|
||||
Knotens zu reduzieren. Um eine schnelle Synchronisation zu
|
||||
ermöglichen, verwaltet <acronym>HAST</acronym> eine Bitmap von
|
||||
unsauberen Bereichen auf der Platte und synchronisiert nur
|
||||
diese während einer regulären Synchronisation (mit Ausnahme
|
||||
der initialen Synchronisation).</para>
|
||||
|
||||
<para>Es gibt viele Wege, diese Synchronisation zu behandeln.
|
||||
<acronym>HAST</acronym> implementiert mehrere Replikationsarten, um
|
||||
|
@ -3645,7 +3636,7 @@ Device 1K-blocks Used Avail Capacity
|
|||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis>memsync</emphasis>: meldet Schreiboperationen als
|
||||
<para><emphasis>memsync</emphasis>: Dieser Modus meldet Schreiboperationen als
|
||||
vollständig, wenn die lokale Schreiboperation beendet ist
|
||||
und der entfernt liegende Knoten die Ankunft der Daten
|
||||
bestätigt hat, jedoch bevor die Daten wirklich gespeichert
|
||||
|
@ -3655,19 +3646,20 @@ Device 1K-blocks Used Avail Capacity
|
|||
zusätzlich eine gute Verlässlichkeit zu bieten.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis>fullsync</emphasis>: meldet Schreiboperationen als
|
||||
vollständig, wenn die lokale Schreiboperation beendet ist
|
||||
und die entfernte Schreiboperation ebenfalls abgeschlossen wurde.
|
||||
Dies ist der sicherste und zugleich der langsamste
|
||||
Replikationsmodus. Er stellt den momentanen Standardmodus
|
||||
dar.</para>
|
||||
<para><emphasis>fullsync</emphasis>: Dieser Modus meldet
|
||||
Schreiboperationen als vollständig, wenn sowohl die
|
||||
lokale, als auch die entfernte Schreiboperation
|
||||
abgeschlossen wurde. Dies ist der sicherste und
|
||||
zugleich der langsamste Replikationsmodus. Er stellt
|
||||
den momentanen Standardmodus dar.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis>async</emphasis>: meldet Schreiboperationen als
|
||||
vollständig, wenn lokale Schreibvorgänge abgeschlossen
|
||||
wurden. Dies ist der schnellste und gefährlichste
|
||||
Replikationsmodus. Er sollte verwendet werden, wenn die Latenz
|
||||
zu einem entfernten Knoten bei einer Replikation zu hoch ist
|
||||
<para><emphasis>async</emphasis>: Dieser Modus meldet
|
||||
Schreiboperationen als vollständig, wenn lokale
|
||||
Schreibvorgänge abgeschlossen wurden. Dies ist der
|
||||
schnellste und gefährlichste Replikationsmodus. Er
|
||||
sollte nur verwendet werden, wenn die Latenz zu einem
|
||||
entfernten Knoten bei einer Replikation zu hoch ist
|
||||
für andere Modi.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
@ -3676,64 +3668,64 @@ Device 1K-blocks Used Avail Capacity
|
|||
<sect2>
|
||||
<title>HAST-Konfiguration</title>
|
||||
|
||||
<para><acronym>HAST</acronym> benötigt
|
||||
<literal>GEOM_GATE</literal>-Unterstützung, welche
|
||||
standardmäßig nicht im <literal>GENERIC</literal>-Kernel
|
||||
enthalten ist. Jedoch ist in der Standardinstallation von
|
||||
&os; <filename>geom_gate.ko</filename> als ladbares Modul
|
||||
vorhanden. Alternativ lässt sich die
|
||||
<literal>GEOM_GATE</literal>-Unterstützung in den Kernel
|
||||
statisch einbauen, indem folgende Zeile zur
|
||||
Kernelkonfigurationsdatei hinzugefügt wird:</para>
|
||||
|
||||
<programlisting>options GEOM_GATE</programlisting>
|
||||
|
||||
<para>Das <acronym>HAST</acronym>-Framework besteht aus Sicht des
|
||||
Betriebssystems aus mehreren Bestandteilen:</para>
|
||||
<para>Das <acronym>HAST</acronym>-Framework besteht aus mehreren
|
||||
Komponenten:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Dem &man.hastd.8;-Daemon, welcher für
|
||||
Datensynchronisation verantwortlich ist,</para>
|
||||
Datensynchronisation verantwortlich ist. Wenn dieser
|
||||
Daemon gestartet wird, wird automatisch
|
||||
<varname>geom_gate.ko</varname> geladen.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Dem &man.hastctl.8; Management-Werkzeug,</para>
|
||||
<para>Dem &man.hastctl.8; Management-Werkzeug.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Der Konfigurationsdatei &man.hast.conf.5;.</para>
|
||||
<para>Der Konfigurationsdatei &man.hast.conf.5;. Diese
|
||||
Datei muss vorhanden sein, bevor
|
||||
<application>hastd</application> gestartet wird.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Alternativ lässt sich die
|
||||
<literal>GEOM_GATE</literal>-Unterstützung in den Kernel
|
||||
statisch einbauen, indem folgende Zeile zur
|
||||
Kernelkonfigurationsdatei hinzugefügt wird. Anschließend muss
|
||||
der Kernel, wie in <xref linkend="kernelconfig"/> beschrieben,
|
||||
neu gebaut werden:</para>
|
||||
|
||||
<programlisting>options GEOM_GATE</programlisting>
|
||||
|
||||
<para>Das folgende Beispiel beschreibt, wie man zwei Knoten als
|
||||
<literal>master</literal>-<literal>slave</literal> /
|
||||
<literal>primary</literal>-<literal>secondary</literal> mittels
|
||||
<acronym>HAST</acronym> konfiguriert, um Daten zwischen diesen beiden
|
||||
auszutauschen. Die Knoten werden als
|
||||
<literal><replaceable>hasta</replaceable></literal> mit der IP-Adresse
|
||||
<replaceable>172.16.0.1</replaceable> und
|
||||
<literal><replaceable>hastb</replaceable></literal> mit der IP-Adresse
|
||||
<replaceable>172.16.0.2</replaceable> bezeichnet. Beide Knoten
|
||||
besitzen eine dedizierte Festplatte
|
||||
<filename>/dev/<replaceable>ad6</replaceable></filename> mit der
|
||||
gleichen Grösse für den <acronym>HAST</acronym>-Betrieb.
|
||||
Der <acronym>HAST</acronym>-Pool, manchmal auch Ressource
|
||||
genannt, oder der GEOM-Provider in
|
||||
master-slave / primary-secondary mittels
|
||||
<acronym>HAST</acronym> konfiguriert, um Daten zwischen diesen
|
||||
beiden auszutauschen. Die Knoten werden als
|
||||
<literal>hasta</literal> mit der <acronym>IP</acronym>-Adresse
|
||||
<literal>172.16.0.1</literal> und <literal>hastb</literal> mit
|
||||
der <acronym>IP</acronym>-Adresse
|
||||
<literal>172.16.0.2</literal> bezeichnet. Beide Knoten
|
||||
besitzen eine dedizierte Festplatte
|
||||
<filename>/dev/ad6</filename> mit der gleichen Größe für den
|
||||
<acronym>HAST</acronym>-Betrieb. Der
|
||||
<acronym>HAST</acronym>-Pool, manchmal auch Ressource genannt,
|
||||
oder der <acronym>GEOM</acronym>-Provider in
|
||||
<filename>/dev/hast/</filename> wird als
|
||||
<filename><replaceable>test</replaceable></filename> bezeichnet.</para>
|
||||
<filename>test</filename> bezeichnet.</para>
|
||||
|
||||
<para>Die Konfiguration von <acronym>HAST</acronym> wird in
|
||||
<filename>/etc/hast.conf</filename> vorgenommen. Diese Datei sollte
|
||||
auf beiden Knoten gleich sein. Die denkbar einfachste Konfiguration
|
||||
<filename>/etc/hast.conf</filename> vorgenommen. Diese Datei
|
||||
sollte auf beiden Knoten gleich sein. Die einfachste Konfiguration
|
||||
ist folgende:</para>
|
||||
|
||||
<programlisting>resource test {
|
||||
on hasta {
|
||||
local /dev/ad6
|
||||
remote 172.16.0.2
|
||||
<programlisting>resource <replaceable>test</replaceable> {
|
||||
on <replaceable>hasta</replaceable> {
|
||||
local <replaceable>/dev/ad6</replaceable>
|
||||
remote <replaceable>172.16.0.2</replaceable>
|
||||
}
|
||||
on hastb {
|
||||
local /dev/ad6
|
||||
remote 172.16.0.1
|
||||
on <replaceable>hastb</replaceable> {
|
||||
local <replaceable>/dev/ad6</replaceable>
|
||||
remote <replaceable>172.16.0.1</replaceable>
|
||||
}
|
||||
}</programlisting>
|
||||
|
||||
|
@ -3742,19 +3734,19 @@ Device 1K-blocks Used Avail Capacity
|
|||
|
||||
<tip>
|
||||
<para>Es ist ebenfalls möglich, den Hostnamen in den
|
||||
<literal>remote</literal>-Anweisungen zu verwenden. Stellen Sie in
|
||||
solchen Fällen sicher, dass diese Rechner auch aufgelöst
|
||||
werden können und in <filename>/etc/hosts</filename>, oder
|
||||
im lokalen <acronym>DNS</acronym> definiert sind.</para>
|
||||
<literal>remote</literal>-Anweisungen zu verwenden, falls
|
||||
die Rechner aufgelöst werden können und in
|
||||
<filename>/etc/hosts</filename>, oder im lokalen
|
||||
<acronym>DNS</acronym> definiert sind.</para>
|
||||
</tip>
|
||||
|
||||
<para>Da nun die Konfiguration auf beiden Rechnern vorhanden
|
||||
<para>Sobald die Konfiguration auf beiden Rechnern vorhanden
|
||||
ist, kann ein <acronym>HAST</acronym>-Pool erstellt werden.
|
||||
Lassen Sie diese Kommandos auf beiden Knoten ablaufen, um die
|
||||
initialen Metadaten auf die lokale Platte zu schreiben und
|
||||
starten Sie anschliessend &man.hastd.8;:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>hastctl create test</userinput>
|
||||
<screen>&prompt.root; <userinput>hastctl create <replaceable>test</replaceable></userinput>
|
||||
&prompt.root; <userinput>service hastd onestart</userinput></screen>
|
||||
|
||||
<note>
|
||||
|
@ -3771,54 +3763,42 @@ Device 1K-blocks Used Avail Capacity
|
|||
oder <literal>secondary</literal>, wird vom einem
|
||||
Administrator, oder einer Software wie
|
||||
<application>Heartbeat</application>, mittels
|
||||
&man.hastctl.8; festgelegt. Auf dem primären
|
||||
Knoten <literal><replaceable>hasta</replaceable></literal>
|
||||
geben Sie diesen Befehl ein:</para>
|
||||
&man.hastctl.8; festgelegt. Auf dem primären Knoten
|
||||
<literal>hasta</literal> geben Sie diesen Befehl ein:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>hastctl role primary test</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>hastctl role primary <replaceable>test</replaceable></userinput></screen>
|
||||
|
||||
<para>Geben Sie folgendes Kommando auf dem sekundären
|
||||
Knoten <literal><replaceable>hastb</replaceable></literal>
|
||||
ein:</para>
|
||||
<para>Geben Sie folgendes Kommando auf dem sekundären Knoten
|
||||
<literal>hastb</literal> ein:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>hastctl role secondary test</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>hastctl role secondary <replaceable>test</replaceable></userinput></screen>
|
||||
|
||||
<caution>
|
||||
<para>Es kann passieren, dass beide Knoten nicht in der Lage
|
||||
sind, miteinander zu kommunizieren und dadurch beide als
|
||||
primäre Knoten konfiguriert sind; die Konsequenz daraus wird
|
||||
als <literal>split-brain</literal> bezeichnet. Um diese
|
||||
Situation zu bereinigen, folgen Sie den Schritten, die
|
||||
in <xref linkend="disks-hast-sb"/> beschrieben sind.</para>
|
||||
</caution>
|
||||
<para>Überprüfen Sie das Ergebnis mit <command>hastctl</command>
|
||||
auf beiden Knoten:</para>
|
||||
|
||||
<para>Überprüfen Sie das Ergebnis mit &man.hastctl.8; auf beiden
|
||||
Knoten:</para>
|
||||
<screen>&prompt.root; <userinput>hastctl status <replaceable>test</replaceable></userinput></screen>
|
||||
|
||||
<screen>&prompt.root; <userinput>hastctl status test</userinput></screen>
|
||||
|
||||
<para>Der wichtigste Teil ist die
|
||||
<literal>status</literal>-Textzeile, die auf jedem Knoten
|
||||
<literal>complete</literal> lauten sollte. Falls der Status
|
||||
als <literal>degraded</literal> zurückgemeldet wird, ist etwas
|
||||
schief gegangen. Zu diesem Zeitpunkt hat die Synchronisation
|
||||
zwischen den beiden Knoten bereits begonnen. Die
|
||||
Synchronisation ist beendet, wenn
|
||||
<para>Überprüfen Sie die <literal>status</literal>-Zeile. Wird
|
||||
hier <literal>degraded</literal> angezeigt, dann ist etwas mit
|
||||
der Konfigurationsdatei nicht in Ordnung. Auf jedem Konten
|
||||
sollte <literal>complete</literal> angezeit werden, was
|
||||
bedeutet, dass die Synchronisation zwischen den beiden Knoten
|
||||
gestartet wurde. Die Synchronisierung ist abgeschlossen, wenn
|
||||
<command>hastctl status</command> meldet, dass die
|
||||
<literal>dirty</literal>-Bereiche 0 Bytes betragen.</para>
|
||||
|
||||
<para>Der nächste Schritt ist, ein Dateisystem auf dem
|
||||
<filename>/dev/hast/<replaceable>test</replaceable></filename> GEOM-Provider anzulegen
|
||||
und dieses ins System einzuhängen. Dies muss auf dem
|
||||
<literal>primary</literal>-Knoten durchgeführt werden, da
|
||||
<filename>/dev/hast/<replaceable>test</replaceable></filename> nur auf dem
|
||||
<literal>primary</literal>-Knoten erscheint. Die Erstellung
|
||||
des Dateisystems kann ein paar Minuten dauern, abhängig von
|
||||
der Größe der Festplatte:</para>
|
||||
<acronym>GEOM</acronym>-Provider anzulegen und dieses ins
|
||||
System einzuhängen. Dies muss auf dem
|
||||
<literal>primary</literal>-Knoten durchgeführt werden.
|
||||
Die Erstellung des Dateisystems kann ein paar Minuten dauern,
|
||||
abhängig von der Größe der Festplatte. Dieses Beispiel
|
||||
erstellt ein <acronym>UFS</acronym>-Dateisystem auf
|
||||
<filename>/dev/hast/test</filename>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>newfs -U /dev/hast/test</userinput>
|
||||
&prompt.root; <userinput>mkdir /hast/test</userinput>
|
||||
&prompt.root; <userinput>mount /dev/hast/test /hast/test</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>newfs -U /dev/hast/<replaceable>test</replaceable></userinput>
|
||||
&prompt.root; <userinput>mkdir /hast/<replaceable>test</replaceable></userinput>
|
||||
&prompt.root; <userinput>mount /dev/hast/<replaceable>test</replaceable> <replaceable>/hast/test</replaceable></userinput></screen>
|
||||
|
||||
<para>Sobald das <acronym>HAST</acronym>-Framework richtig
|
||||
konfiguriert wurde, besteht der letzte Schritt nun darin,
|
||||
|
|
Loading…
Reference in a new issue