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$
$FreeBSDde:$
basiert auf: r44272
basiert auf: r44414
-->
<chapter xmlns="http://docbook.org/ns/docbook"
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
Protocol</foreignphrase> (<acronym>CARP</acronym>) erlaubt es,
mehreren Rechnern die gleiche <acronym>IP</acronym>-Adresse
zuzuweisen und <emphasis>Hochverfügbarkeit</emphasis>
mehreren Rechnern die gleiche <acronym>IP</acronym>-Adresse und
<foreignphrase>Virtual Host ID</foreignphrase>
(<acronym>VHID</acronym>) zuzuweisen und <emphasis>Hochverfügbarkeit</emphasis>
bereitzustellen. Das bedeutet, dass ein oder mehrere Rechner
ausfallen können und die anderen Rechner transparent
einspringen, ohne das der Benutzer etwas von einem Ausfall
mitbekommt. Neben der gemeinsamen
<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>
einspringen, ohne das die Benutzer etwas von einem Ausfall
mitbekommen.</para>
<sect2 xml:id="carp-ha">
<title>Hochverfügbarkeit mit <acronym>CARP</acronym></title>
<para>Neben der gemeinsamen <acronym>IP</acronym>-Adresse, haben
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
oder mehrere Dienste hochverfügbar zu machen. Dieses Beispiel
konfiguriert eine Failover-Unterstützung mit drei Servern (mit
jeweils eigener, eindeutiger <acronym>IP</acronym>-Adresse),
die alle den gleichen Web-Inhalt anbieten. 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
über zwei zusätzliche <acronym>CARP</acronym>-Schnittstellen,
eine für jede <acronym>IP</acronym>-Adresse des
Master-Content-Servers. Sobald ein Fehler auftritt, übernimmt
der Backup-Server die <acronym>IP</acronym>-Adresse des
ausgefallenen Master-Servers. Die Benutzer werden einen
Dienstausfall überhaupt nicht bemerken.</para>
<para>Hochverfügbarkeit mit <acronym>CARP</acronym> ist in &os;
enthalten, jedoch unterscheidet sich die Konfiguration von der
eingesetzten &os;-Version. Dieser Abschnitt enthält die
gleichen Konfigurationsdateien für verschiedene Versionen von
&os;.</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>Dieses Beispiel konfiguriert eine Failover-Unterstützung mit
drei Servern (mit jeweils eigener, eindeutiger
<acronym>IP</acronym>-Adresse), die alle den gleichen
Web-Inhalt anbieten. Es werden zwei verschiedene Master namens
<systemitem>hosta.example.org</systemitem> und
<systemitem>hostb.example.org</systemitem> benutzt, 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>
<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
über zwei zusätzliche <acronym>CARP</acronym>-Schnittstellen,
eine für jede <acronym>IP</acronym>-Adresse des
Master-Content-Servers. Sobald ein Fehler auftritt, übernimmt
der Backup-Server die <acronym>IP</acronym>-Adresse des
ausgefallenen Master-Servers.</para>
<sect2 xml:id="carp-10x">
<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>
<para>Das <acronym>CARP</acronym>-Modul kann auch, wie in <xref
linkend="kernelconfig"/> beschrieben, direkt in den &os;
Kernel eingebunden werden:</para>
<para>So laden Sie das Modul ohne Neustart:</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>
<para>Hostname, <acronym>IP</acronym>-Management-Adresse,
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
ist für <systemitem>hosta.example.org</systemitem>:</para>
<programlisting>hostname="hosta.example.org"
ifconfig_em0="inet <systemitem
class="ipaddress">192.168.1.3</systemitem> netmask 255.255.255.0"
ifconfig_em0_alias0="vhid 1 pass testpass alias <systemitem
class="ipaddress">192.168.1.50</systemitem>/32"</programlisting>
<programlisting>hostname="<replaceable>hosta.example.org</replaceable>"
ifconfig_<replaceable>em0</replaceable>="inet <replaceable>192.168.1.3</replaceable> netmask <replaceable>255.255.255.0</replaceable>"
ifconfig_<replaceable>em0</replaceable>_alias0="vhid <replaceable>1</replaceable> pass <replaceable>testpass</replaceable> alias <replaceable>192.168.1.50</replaceable>/32"</programlisting>
<para>Beispiel für
<systemitem>hostb.example.org</systemitem>:</para>
<programlisting>hostname="hostb.example.org"
ifconfig_em0="inet <systemitem
class="ipaddress">192.168.1.4</systemitem> netmask 255.255.255.0"
ifconfig_em0_alias0="vhid 2 pass testpass alias <systemitem
class="ipaddress">192.168.1.51</systemitem>/32"</programlisting>
<para>Die nächsten Einträge sind für
<systemitem>hostb.example.org</systemitem>. Da der Rechner
einen zweiten Master darstellt, verwendet er eine andere
gemeinsame <acronym>IP</acronym>-Adresse und
<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>
<para>Achten Sie unbedingt darauf, dass die durch die Option
<option>pass</option> an &man.ifconfig.8; übergebenen
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>
<programlisting>hostname="<replaceable>hostb.example.org</replaceable>"
ifconfig_<replaceable>em0</replaceable>="inet <replaceable>192.168.1.4</replaceable> netmask <replaceable>255.255.255.0</replaceable>"
ifconfig_<replaceable>em0</replaceable>_alias0="vhid <replaceable>2</replaceable> pass <replaceable>testpass</replaceable> alias <replaceable>192.168.1.51</replaceable>/32"</programlisting>
<para>Die dritte Maschine,
<systemitem>hostc.example.org</systemitem> ist so
konfiguriert, das sie aktiviert wird, wenn eines der beiden
zuvor konfigurierten Systeme ausfällt. Diese Maschine ist mit
konfiguriert, das sie aktiviert wird, wenn einer der beiden
Masterserver ausfällt. Diese Maschine ist mit
zwei <acronym>CARP</acronym> <acronym>VHID</acronym>s
konfiguriert, eine für jede virtuelle
<acronym>IP</acronym>-Adresse der beiden Master-Server. Die
Option <option>advskew</option> (<acronym>CARP</acronym>
advertising skew) wird gesetzt, um sicherzustellen, dass sich
der Backup-Server später ankündigt wie der Master-Server.
<option>advskew</option> steuert die Rangfolge für den Fall
das mehrere Backup-Server zur Verfügung stehen. Passen Sie
die Konfiguration in <filename>/etc/rc.conf</filename>
an:</para>
<acronym>CARP</acronym> advertising skew,
<option>advskew</option> wird gesetzt, um sicherzustellen,
dass sich der Backup-Server später ankündigt wie der
Master-Server, da <option>advskew</option> die Rangfolge
steuert für den Fall, dass mehrere Backup-Server zur Verfügung
stehen.</para>
<programlisting>hostname="hostc.example.org"
ifconfig_em0="inet <systemitem
class="ipaddress">192.168.1.5</systemitem> netmask 255.255.255.0"
ifconfig_em0_alias0="vhid 1 advskew 100 pass testpass alias <systemitem
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>
ifconfig_<replaceable>em0</replaceable>="inet <replaceable>192.168.1.5</replaceable> netmask <replaceable>255.255.255.0</replaceable>"
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_<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>
<para>Durch die zwei konfigurierten <acronym>CARP</acronym>
<para>Durch die beiden konfigurierten <acronym>CARP</acronym>
<acronym>VHID</acronym>s ist
<systemitem>hostc.example.org</systemitem> in der Lage
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>
<para>An dieser Stelle muss entweder das Netzwerk neu gestartet,
oder die Maschine neu gebootet werden, um
<acronym>CARP</acronym> zu aktivieren.</para>
<para>Sobald die Konfiguration abgeschlossen ist, muss das
Netzwerk oder die Maschine neu gestartet werden.
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
@ -5538,20 +5530,31 @@ class="ipaddress">192.168.1.51</systemitem>/32"</programlisting>
<title><acronym>CARP</acronym> mit &os;&nbsp;9 (und älter)
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
durch das Laden des Kernelmoduls <filename>carp.ko</filename>
in <filename>/boot/loader.conf</filename>:</para>
<programlisting>if_carp_load="YES"</programlisting>
<para><acronym>CARP</acronym> kann auch direkt in den Kernel
eingebunden werden. Diese Prozedur wird in <xref
linkend="kernelconfig"/> beschrieben:</para>
<para>So laden Sie das Modul ohne Neustart:</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>
<para>Die <acronym>CARP</acronym>-Schnittstellen selbst können
mittels &man.ifconfig.8; erstellt werden:</para>
<para>Als nächstes erstellen Sie auf jedem Rechner eine
<acronym>CARP</acronym>-Schnittstelle:</para>
<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
genutzte <acronym>IP</acronym>-Adresse und die
<acronym>VHID</acronym>, indem Sie die erforderlichen Zeilen
in <filename>/etc/rc.conf</filename> hinzufügen. Hierzu ein
Beispiel für
in <filename>/etc/rc.conf</filename> hinzufügen. Da anstelle
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>
<programlisting>hostname="hosta.example.org"
ifconfig_fxp0="inet <systemitem
class="ipaddress">192.168.1.3</systemitem> netmask 255.255.255.0"
<programlisting>hostname="<replaceable>hosta.example.org</replaceable>"
ifconfig_<replaceable>fxp0</replaceable>="inet <replaceable>192.168.1.3</replaceable> netmask <replaceable>255.255.255.0</replaceable>"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 1 pass testpass <systemitem
class="ipaddress">192.168.1.50</systemitem>/24"</programlisting>
ifconfig_carp0="vhid <replaceable>1</replaceable> pass <replaceable>testpass</replaceable> <replaceable>192.168.1.50/24</replaceable>"</programlisting>
<para>Beispiel für
<systemitem>hostb.example.org</systemitem>:</para>
<programlisting>hostname="hostb.example.org"
ifconfig_fxp0="inet <systemitem
class="ipaddress">192.168.1.4</systemitem> netmask 255.255.255.0"
<programlisting>hostname="<replaceable>hostb.example.org</replaceable>"
ifconfig_<replaceable>fxp0</replaceable>="inet <replaceable>192.168.1.4</replaceable> netmask <replaceable>255.255.255.0</replaceable>"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 2 pass testpass <systemitem
class="ipaddress">192.168.1.51</systemitem>/24"</programlisting>
ifconfig_carp0="vhid <replaceable>2</replaceable> pass <replaceable>testpass</replaceable> <replaceable>192.168.1.51/24</replaceable>"</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>
<para><foreignphrase>Preemption</foreignphrase> ist im GENERIC
&os; Kernel deaktiviert. Haben Sie jedoch
<foreignphrase>Preemption</foreignphrase> in einem
<para><foreignphrase>Preemption</foreignphrase> ist im
<filename>GENERIC</filename>-Kernel deaktiviert. Haben Sie
jedoch <foreignphrase>Preemption</foreignphrase> in einem
angepassten Kernel aktiviert, dass
<systemitem>hostc.example.org</systemitem> die virtuelle
<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>
</note>
<para>An dieser Stelle muss entweder das Netzwerk neu gestartet,
oder die Maschine neu gebootet werden, um
<acronym>CARP</acronym> zu aktivieren.</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>
<para>Sobald die Konfiguration abgeschlossen ist, muss das
Netzwerk oder die Maschine neu gestartet werden.
Hochverfügbarkeit ist nun aktiviert.</para>
</sect2>
</sect1>
</chapter>