Update to r44414:

Editorial review of CARP chapter.
Add a few clarifications.

Reviewed by:	bcr
Differential Revision:	https://reviews.freebsd.org/D5988
This commit is contained in:
Bjoern Heidotting 2016-04-18 20:20:06 +00:00
parent 6d8c5d7bbd
commit de23ae8d58
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48671

View file

@ -5,7 +5,7 @@
$FreeBSD$ $FreeBSD$
$FreeBSDde:$ $FreeBSDde:$
basiert auf: r44272 basiert auf: r44414
--> -->
<chapter xmlns="http://docbook.org/ns/docbook" <chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
@ -5380,58 +5380,54 @@ route_hostD="192.168.173.4 hatm0 0 102 llc/snap ubr"</programlisting>
<para>Das <foreignphrase>Common Address Redundancy <para>Das <foreignphrase>Common Address Redundancy
Protocol</foreignphrase> (<acronym>CARP</acronym>) erlaubt es, Protocol</foreignphrase> (<acronym>CARP</acronym>) erlaubt es,
mehreren Rechnern die gleiche <acronym>IP</acronym>-Adresse mehreren Rechnern die gleiche <acronym>IP</acronym>-Adresse und
zuzuweisen und <emphasis>Hochverfügbarkeit</emphasis> <foreignphrase>Virtual Host ID</foreignphrase>
(<acronym>VHID</acronym>) zuzuweisen und <emphasis>Hochverfügbarkeit</emphasis>
bereitzustellen. Das bedeutet, dass ein oder mehrere Rechner bereitzustellen. Das bedeutet, dass ein oder mehrere Rechner
ausfallen können und die anderen Rechner transparent ausfallen können und die anderen Rechner transparent
einspringen, ohne das der Benutzer etwas von einem Ausfall einspringen, ohne das die Benutzer etwas von einem Ausfall
mitbekommt. Neben der gemeinsamen mitbekommen.</para>
<acronym>IP</acronym>-Adresse, haben die jeweiligen Rechner auch
eine eindeutige <acronym>IP</acronym>-Adresse zur Verwaltung und
Konfiguration, wie in den folgenden Beispielen zu sehen
ist.</para>
<sect2 xml:id="carp-ha"> <para>Neben der gemeinsamen <acronym>IP</acronym>-Adresse, haben
<title>Hochverfügbarkeit mit <acronym>CARP</acronym></title> die jeweiligen Rechner auch eine eindeutige
<acronym>IP</acronym>-Adresse zur Verwaltung und Konfiguration.
Alle Maschinen, die sich eine <acronym>IP</acronym>-Adresse
teilen, verwenden die gleiche <acronym>VHID</acronym>. Die
<acronym>VHID</acronym> für jede einzelne
<acronym>IP</acronym>-Adresse muss, entsprechend der
Broadcast-Domäne der Netzwerkschnittstelle, eindeutig
sein.</para>
<para><acronym>CARP</acronym> wird häufig verwendet, um einen <para>Hochverfügbarkeit mit <acronym>CARP</acronym> ist in &os;
oder mehrere Dienste hochverfügbar zu machen. Dieses Beispiel enthalten, jedoch unterscheidet sich die Konfiguration von der
konfiguriert eine Failover-Unterstützung mit drei Servern (mit eingesetzten &os;-Version. Dieser Abschnitt enthält die
jeweils eigener, eindeutiger <acronym>IP</acronym>-Adresse), gleichen Konfigurationsdateien für verschiedene Versionen von
die alle den gleichen Web-Inhalt anbieten. Die Lastverteilung &os;.</para>
dieser Maschinen wird dabei über <foreignphrase>Round
Robin</foreignphrase> <acronym>DNS</acronym> konfiguriert. <para>Dieses Beispiel konfiguriert eine Failover-Unterstützung mit
Mit Ausnahme des Hostnamens und der drei Servern (mit jeweils eigener, eindeutiger
<acronym>IP</acronym>-Management-Adresse sind Master- und <acronym>IP</acronym>-Adresse), die alle den gleichen
Backup-Maschinen identisch konfiguriert. Die Server müssen Web-Inhalt anbieten. Es werden zwei verschiedene Master namens
die gleiche Konfiguration und die gleichen Dienste aktiviert <systemitem>hosta.example.org</systemitem> und
haben. Tritt ein Failover auf, können Anfragen an den Dienst <systemitem>hostb.example.org</systemitem> benutzt, mit einem
mit der gemeinsam genutzten <acronym>IP</acronym>-Adresse nur gemeinsamen Backup namens
dann richtig beantwortet werden, wenn der Backup-Server <systemitem>hostc.example.org</systemitem>.</para>
<para>Die Lastverteilung dieser Maschinen wird dabei über
<foreignphrase>Round Robin</foreignphrase>
<acronym>DNS</acronym> konfiguriert. Mit Ausnahme des
Hostnamens und der <acronym>IP</acronym>-Management-Adresse sind
Master- und Backup-Maschinen identisch konfiguriert. Die Server
müssen die gleiche Konfiguration und die gleichen Dienste
aktiviert haben. Tritt ein Failover auf, können Anfragen an den
Dienst mit der gemeinsam genutzten <acronym>IP</acronym>-Adresse
nur dann richtig beantwortet werden, wenn der Backup-Server
Zugriff auf denselben Inhalt hat. Die Backup-Maschine verfügt Zugriff auf denselben Inhalt hat. Die Backup-Maschine verfügt
über zwei zusätzliche <acronym>CARP</acronym>-Schnittstellen, über zwei zusätzliche <acronym>CARP</acronym>-Schnittstellen,
eine für jede <acronym>IP</acronym>-Adresse des eine für jede <acronym>IP</acronym>-Adresse des
Master-Content-Servers. Sobald ein Fehler auftritt, übernimmt Master-Content-Servers. Sobald ein Fehler auftritt, übernimmt
der Backup-Server die <acronym>IP</acronym>-Adresse des der Backup-Server die <acronym>IP</acronym>-Adresse des
ausgefallenen Master-Servers. Die Benutzer werden einen ausgefallenen Master-Servers.</para>
Dienstausfall überhaupt nicht bemerken.</para>
<para>Dieses Beispiel benutzt zwei verschiedene Master namens
<systemitem>hosta.example.org</systemitem> und
<systemitem>hostb.example.org</systemitem> mit einem
gemeinsamen Backup namens
<systemitem>hostc.example.org</systemitem>.</para>
<para>Jede virtuelle <acronym>IP</acronym>-Adresse hat eine
eindeutige Identifikationsnummer, die als
<foreignphrase>Virtual Host Identification</foreignphrase>
(<acronym>VHID</acronym>) bekannt ist. Alle Maschinen, die
sich eine <acronym>IP</acronym>-Adresse teilen, verwenden die
gleiche <acronym>VHID</acronym>. Die <acronym>VHID</acronym>
für jede einzelne <acronym>IP</acronym>-Adresse muss,
entsprechend der Broadcast-Domäne der Netzwerkschnittstelle,
eindeutig sein.</para>
</sect2>
<sect2 xml:id="carp-10x"> <sect2 xml:id="carp-10x">
<title><acronym>CARP</acronym> mit &os;&nbsp;10 (und neuer) <title><acronym>CARP</acronym> mit &os;&nbsp;10 (und neuer)
@ -5443,66 +5439,62 @@ route_hostD="192.168.173.4 hatm0 0 102 llc/snap ubr"</programlisting>
<programlisting>carp_load="YES"</programlisting> <programlisting>carp_load="YES"</programlisting>
<para>Das <acronym>CARP</acronym>-Modul kann auch, wie in <xref <para>So laden Sie das Modul ohne Neustart:</para>
linkend="kernelconfig"/> beschrieben, direkt in den &os;
Kernel eingebunden werden:</para> <screen>&prompt.root; <userinput>kldload carp</userinput></screen>
<para>Benutzer, die einen angepassten Kernel verwenden
möchten, müssen die folgende Zeile in die Konfigurationsdatei
aufnehmen. Anschließend muss der Kernel, wie in
<xref linkend="kernelconfig"/> beschrieben, neu gebaut
werden:</para>
<programlisting>device carp</programlisting> <programlisting>device carp</programlisting>
<para>Hostname, <acronym>IP</acronym>-Management-Adresse, <para>Hostname, <acronym>IP</acronym>-Management-Adresse,
Subnetzmaske, gemeinsame <acronym>IP</acronym>-Adresse und Subnetzmaske, gemeinsame <acronym>IP</acronym>-Adresse und
<acronym>VHID</acronym> werden durch das Hinzufügen in <acronym>VHID</acronym> werden durch Einträge in
<filename>/etc/rc.conf</filename> gesetzt. Dieses Beispiel <filename>/etc/rc.conf</filename> gesetzt. Dieses Beispiel
ist für <systemitem>hosta.example.org</systemitem>:</para> ist für <systemitem>hosta.example.org</systemitem>:</para>
<programlisting>hostname="hosta.example.org" <programlisting>hostname="<replaceable>hosta.example.org</replaceable>"
ifconfig_em0="inet <systemitem ifconfig_<replaceable>em0</replaceable>="inet <replaceable>192.168.1.3</replaceable> netmask <replaceable>255.255.255.0</replaceable>"
class="ipaddress">192.168.1.3</systemitem> netmask 255.255.255.0" ifconfig_<replaceable>em0</replaceable>_alias0="vhid <replaceable>1</replaceable> pass <replaceable>testpass</replaceable> alias <replaceable>192.168.1.50</replaceable>/32"</programlisting>
ifconfig_em0_alias0="vhid 1 pass testpass alias <systemitem
class="ipaddress">192.168.1.50</systemitem>/32"</programlisting>
<para>Beispiel für
<systemitem>hostb.example.org</systemitem>:</para>
<programlisting>hostname="hostb.example.org" <para>Die nächsten Einträge sind für
ifconfig_em0="inet <systemitem <systemitem>hostb.example.org</systemitem>. Da der Rechner
class="ipaddress">192.168.1.4</systemitem> netmask 255.255.255.0" einen zweiten Master darstellt, verwendet er eine andere
ifconfig_em0_alias0="vhid 2 pass testpass alias <systemitem gemeinsame <acronym>IP</acronym>-Adresse und
class="ipaddress">192.168.1.51</systemitem>/32"</programlisting> <acronym>VHID</acronym>. Die mittels <option>pass</option>
angegebenen Passwörter müssen jedoch identisch sein, da
<acronym>CARP</acronym> nur mit Systemen kommuniziert,
die über das richtige Passwort verfügen.</para>
<note> <programlisting>hostname="<replaceable>hostb.example.org</replaceable>"
<para>Achten Sie unbedingt darauf, dass die durch die Option ifconfig_<replaceable>em0</replaceable>="inet <replaceable>192.168.1.4</replaceable> netmask <replaceable>255.255.255.0</replaceable>"
<option>pass</option> an &man.ifconfig.8; übergebenen ifconfig_<replaceable>em0</replaceable>_alias0="vhid <replaceable>2</replaceable> pass <replaceable>testpass</replaceable> alias <replaceable>192.168.1.51</replaceable>/32"</programlisting>
Passwörter auf beiden Systemen identisch sind, da
<filename>carp</filename>-Geräte nur mit Systemen
kommunizieren können, die über ein korrektes Passwort
verfügen.</para>
</note>
<para>Die dritte Maschine, <para>Die dritte Maschine,
<systemitem>hostc.example.org</systemitem> ist so <systemitem>hostc.example.org</systemitem> ist so
konfiguriert, das sie aktiviert wird, wenn eines der beiden konfiguriert, das sie aktiviert wird, wenn einer der beiden
zuvor konfigurierten Systeme ausfällt. Diese Maschine ist mit Masterserver ausfällt. Diese Maschine ist mit
zwei <acronym>CARP</acronym> <acronym>VHID</acronym>s zwei <acronym>CARP</acronym> <acronym>VHID</acronym>s
konfiguriert, eine für jede virtuelle konfiguriert, eine für jede virtuelle
<acronym>IP</acronym>-Adresse der beiden Master-Server. Die <acronym>IP</acronym>-Adresse der beiden Master-Server. Die
Option <option>advskew</option> (<acronym>CARP</acronym> <acronym>CARP</acronym> advertising skew,
advertising skew) wird gesetzt, um sicherzustellen, dass sich <option>advskew</option> wird gesetzt, um sicherzustellen,
der Backup-Server später ankündigt wie der Master-Server. dass sich der Backup-Server später ankündigt wie der
<option>advskew</option> steuert die Rangfolge für den Fall Master-Server, da <option>advskew</option> die Rangfolge
das mehrere Backup-Server zur Verfügung stehen. Passen Sie steuert für den Fall, dass mehrere Backup-Server zur Verfügung
die Konfiguration in <filename>/etc/rc.conf</filename> stehen.</para>
an:</para>
<programlisting>hostname="hostc.example.org" <programlisting>hostname="hostc.example.org"
ifconfig_em0="inet <systemitem ifconfig_<replaceable>em0</replaceable>="inet <replaceable>192.168.1.5</replaceable> netmask <replaceable>255.255.255.0</replaceable>"
class="ipaddress">192.168.1.5</systemitem> netmask 255.255.255.0" ifconfig_<replaceable>em0</replaceable>_alias0="vhid <replaceable>1</replaceable> advskew <replaceable>100</replaceable> pass <replaceable>testpass</replaceable> alias <replaceable>192.168.1.50</replaceable>/32"
ifconfig_em0_alias0="vhid 1 advskew 100 pass testpass alias <systemitem ifconfig_<replaceable>em0</replaceable>_alias1="vhid <replaceable>2</replaceable> advskew <replaceable>100</replaceable> pass <replaceable>testpass</replaceable> alias <replaceable>192.168.1.51</replaceable>/32"</programlisting>
class="ipaddress">192.168.1.50</systemitem>/32"
ifconfig_em1_alias0="vhid 2 advskew 100 pass testpass alias <systemitem
class="ipaddress">192.168.1.51</systemitem>/32"</programlisting>
<para>Durch die zwei konfigurierten <acronym>CARP</acronym> <para>Durch die beiden konfigurierten <acronym>CARP</acronym>
<acronym>VHID</acronym>s ist <acronym>VHID</acronym>s ist
<systemitem>hostc.example.org</systemitem> in der Lage <systemitem>hostc.example.org</systemitem> in der Lage
festzustellen, wenn einer der Master-Server nicht mehr festzustellen, wenn einer der Master-Server nicht mehr
@ -5523,9 +5515,9 @@ class="ipaddress">192.168.1.51</systemitem>/32"</programlisting>
<screen>&prompt.root; <userinput>ifconfig em0 vhid 1 state backup</userinput></screen> <screen>&prompt.root; <userinput>ifconfig em0 vhid 1 state backup</userinput></screen>
<para>An dieser Stelle muss entweder das Netzwerk neu gestartet, <para>Sobald die Konfiguration abgeschlossen ist, muss das
oder die Maschine neu gebootet werden, um Netzwerk oder die Maschine neu gestartet werden.
<acronym>CARP</acronym> zu aktivieren.</para> Hochverfügbarkeit ist nun aktiviert.</para>
<para>Die Funktionalität von <acronym>CARP</acronym> kann, wie <para>Die Funktionalität von <acronym>CARP</acronym> kann, wie
in der Manualpage &man.carp.4; beschrieben, über verschiedene in der Manualpage &man.carp.4; beschrieben, über verschiedene
@ -5538,20 +5530,31 @@ class="ipaddress">192.168.1.51</systemitem>/32"</programlisting>
<title><acronym>CARP</acronym> mit &os;&nbsp;9 (und älter) <title><acronym>CARP</acronym> mit &os;&nbsp;9 (und älter)
benutzen</title> benutzen</title>
<para>Die Konfiguration für diese Versionen von &os; ist ähnlich
wie im vorhergehenden Abschnitt beschrieben, mit der Ausnahme,
dass zuerst ein <acronym>CARP</acronym>-Gerät in der
Konfiguration erstellt und bezeichnet werden muss.</para>
<para>Unterstützung für <acronym>CARP</acronym> erhalten Sie <para>Unterstützung für <acronym>CARP</acronym> erhalten Sie
durch das Laden des Kernelmoduls <filename>carp.ko</filename> durch das Laden des Kernelmoduls <filename>carp.ko</filename>
in <filename>/boot/loader.conf</filename>:</para> in <filename>/boot/loader.conf</filename>:</para>
<programlisting>if_carp_load="YES"</programlisting> <programlisting>if_carp_load="YES"</programlisting>
<para><acronym>CARP</acronym> kann auch direkt in den Kernel <para>So laden Sie das Modul ohne Neustart:</para>
eingebunden werden. Diese Prozedur wird in <xref
linkend="kernelconfig"/> beschrieben:</para> <screen>&prompt.root; <userinput>kldload carp</userinput></screen>
<para>Benutzer, die einen angepassten Kernel verwenden
möchten, müssen die folgende Zeile in die Konfigurationsdatei
aufnehmen. Anschließend muss der Kernel, wie in
<xref linkend="kernelconfig"/> beschrieben, neu gebaut
werden:</para>
<programlisting>device carp</programlisting> <programlisting>device carp</programlisting>
<para>Die <acronym>CARP</acronym>-Schnittstellen selbst können <para>Als nächstes erstellen Sie auf jedem Rechner eine
mittels &man.ifconfig.8; erstellt werden:</para> <acronym>CARP</acronym>-Schnittstelle:</para>
<screen>&prompt.root; <userinput>ifconfig carp0 create</userinput></screen> <screen>&prompt.root; <userinput>ifconfig carp0 create</userinput></screen>
@ -5559,31 +5562,41 @@ class="ipaddress">192.168.1.51</systemitem>/32"</programlisting>
<acronym>IP</acronym>-Management-Adresse, die gemeinsam <acronym>IP</acronym>-Management-Adresse, die gemeinsam
genutzte <acronym>IP</acronym>-Adresse und die genutzte <acronym>IP</acronym>-Adresse und die
<acronym>VHID</acronym>, indem Sie die erforderlichen Zeilen <acronym>VHID</acronym>, indem Sie die erforderlichen Zeilen
in <filename>/etc/rc.conf</filename> hinzufügen. Hierzu ein in <filename>/etc/rc.conf</filename> hinzufügen. Da anstelle
Beispiel für eines Alias eine virtuelles <acronym>CARP</acronym>-Gerät
verwendet wird, wird die tatsächliche Subnetzmaske
<literal>/24</literal> anstatt <literal>/32</literal> benutzt.
Hier sind die Einträge für
<systemitem>hosta.example.org</systemitem>:</para> <systemitem>hosta.example.org</systemitem>:</para>
<programlisting>hostname="hosta.example.org" <programlisting>hostname="<replaceable>hosta.example.org</replaceable>"
ifconfig_fxp0="inet <systemitem ifconfig_<replaceable>fxp0</replaceable>="inet <replaceable>192.168.1.3</replaceable> netmask <replaceable>255.255.255.0</replaceable>"
class="ipaddress">192.168.1.3</systemitem> netmask 255.255.255.0"
cloned_interfaces="carp0" cloned_interfaces="carp0"
ifconfig_carp0="vhid 1 pass testpass <systemitem ifconfig_carp0="vhid <replaceable>1</replaceable> pass <replaceable>testpass</replaceable> <replaceable>192.168.1.50/24</replaceable>"</programlisting>
class="ipaddress">192.168.1.50</systemitem>/24"</programlisting>
<para>Beispiel für <para>Beispiel für
<systemitem>hostb.example.org</systemitem>:</para> <systemitem>hostb.example.org</systemitem>:</para>
<programlisting>hostname="hostb.example.org" <programlisting>hostname="<replaceable>hostb.example.org</replaceable>"
ifconfig_fxp0="inet <systemitem ifconfig_<replaceable>fxp0</replaceable>="inet <replaceable>192.168.1.4</replaceable> netmask <replaceable>255.255.255.0</replaceable>"
class="ipaddress">192.168.1.4</systemitem> netmask 255.255.255.0"
cloned_interfaces="carp0" cloned_interfaces="carp0"
ifconfig_carp0="vhid 2 pass testpass <systemitem ifconfig_carp0="vhid <replaceable>2</replaceable> pass <replaceable>testpass</replaceable> <replaceable>192.168.1.51/24</replaceable>"</programlisting>
class="ipaddress">192.168.1.51</systemitem>/24"</programlisting>
<para>Die dritte Maschine,
<systemitem>hostc.example.org</systemitem> ist so
konfiguriert, das sie aktiviert wird, wenn einer der beiden
Masterserver ausfällt:</para>
<programlisting>hostname="<replaceable>hostc.example.org</replaceable>"
ifconfig_<replaceable>fxp0</replaceable>="inet <replaceable>192.168.1.5</replaceable> netmask <replaceable>255.255.255.0</replaceable>"
cloned_interfaces="carp0 carp1"
ifconfig_carp0="vhid <replaceable>1</replaceable> advskew <replaceable>100</replaceable> pass <replaceable>testpass</replaceable> <replaceable>192.168.1.50/24</replaceable>"
ifconfig_carp1="vhid <replaceable>2</replaceable> advskew <replaceable>100</replaceable> pass <replaceable>testpass</replaceable> <replaceable>192.168.1.51/24</replaceable>"</programlisting>
<note> <note>
<para><foreignphrase>Preemption</foreignphrase> ist im GENERIC <para><foreignphrase>Preemption</foreignphrase> ist im
&os; Kernel deaktiviert. Haben Sie jedoch <filename>GENERIC</filename>-Kernel deaktiviert. Haben Sie
<foreignphrase>Preemption</foreignphrase> in einem jedoch <foreignphrase>Preemption</foreignphrase> in einem
angepassten Kernel aktiviert, dass angepassten Kernel aktiviert, dass
<systemitem>hostc.example.org</systemitem> die virtuelle <systemitem>hostc.example.org</systemitem> die virtuelle
<acronym>IP</acronym>-Adresse nicht wieder an den <acronym>IP</acronym>-Adresse nicht wieder an den
@ -5599,15 +5612,9 @@ class="ipaddress">192.168.1.51</systemitem>/24"</programlisting>
betroffenen System zugeordnet ist.</para> betroffenen System zugeordnet ist.</para>
</note> </note>
<para>An dieser Stelle muss entweder das Netzwerk neu gestartet, <para>Sobald die Konfiguration abgeschlossen ist, muss das
oder die Maschine neu gebootet werden, um Netzwerk oder die Maschine neu gestartet werden.
<acronym>CARP</acronym> zu aktivieren.</para> Hochverfügbarkeit ist nun aktiviert.</para>
<para>Die Funktionalität von <acronym>CARP</acronym> kann, wie
in der Manualpage &man.carp.4; beschrieben, über verschiedene
&man.sysctl.8; Parameter kontrolliert werden. Mit dem Einsatz
von &man.devd.8; können weitere Aktionen zu
<acronym>CARP</acronym>-Ereignissen ausgelöst werden.</para>
</sect2> </sect2>
</sect1> </sect1>
</chapter> </chapter>