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:
parent
6d8c5d7bbd
commit
de23ae8d58
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48671
1 changed files with 126 additions and 119 deletions
|
@ -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; 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; 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>
|
||||
|
|
Loading…
Reference in a new issue