Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
Verwaltung des Load Balancer Add-Ons
Load Balancer Add-on für Red Hat Enterprise Linux
Ausgabe 6
Zusammenfassung
Einführung
- Red Hat Enterprise Linux Installationshandbuch – Liefert Informationen bezüglich der Installation von Red Hat Enterprise Linux 6.
- Red Hat Enterprise Linux Bereitstellungshandbuch – Liefert Informationen bezüglich der Implementierung, der Konfiguration und der Administration von Red Hat Enterprise Linux 6.
- Überblick über die Red Hat Cluster Suite – Liefert einen allgemeinen Überblick über das High Availability Add-On, das Resilient Storage Add-On und das Load Balancer Add-On.
- Konfiguration und Verwaltung des High Availability Add-Ons Liefert Informationen zur Konfiguration und Verwaltung des High Availability Add-Ons (auch Red Hat Cluster genannt) für Red Hat Enterprise Linux 6.
- Administration des Logical Volume Managers – Liefert eine Beschreibung des Logical Volume Managers (LVM), inklusive Informationen zum Einsatz von LVM in einer Cluster-Umgebung.
- Global File System: Konfiguration und Administration – Liefert Informationen zur Installation, Konfiguration und Wartung des Red Hat Resilient Storage Add-Ons (auch Red Hat Global File System 2 genannt).
- DM-Multipath – Liefert Informationen zur Verwendung des Device-Mapper-Multipath-Features von Red Hat Enterprise Linux 6.
- Versionshinweise – Liefert Informationen zu aktuellen Releases von Red Hat Produkten.
1. Feedback
Kapitel 1. Überblick über das Load Balancer Add-On
Anmerkung
- Gleichmäßige Verteilung der Auslastung unter den realen Servern.
- Überprüfung der Integrität der Dienste auf jedem realen Server.
1.1. Eine grundlegende Load Balancer Add-On Konfiguration
Abbildung 1.1. Eine grundlegende Load Balancer Add-On Konfiguration
eth0:1
erhalten. Alternativ kann jeder virtuelle Server mit einem separaten Gerät pro Dienst verknüpft werden. Beispielsweise kann HTTP-Datenverkehr auf eth0:1
und FTP-Datenverkehr auf eth0:2
verwaltet werden.
1.1.1. Daten replizieren und gemeinsam verwenden auf realen Servern
- Synchronisation der Daten auf den realen Servern
- Hinzufügen einer dritten Schicht zur Topologie für den Zugriff auf gemeinsam genutzte Daten
1.1.1.1. Konfigurieren von realen Servern zur Synchronisierung von Daten
rsync
dazu verwenden, um veränderte Daten in bestimmten Abständen auf alle Knoten zu replizieren.
1.2. Eine dreischichtige Load Balancer Add-On Konfiguration
Abbildung 1.2. Eine dreischichtige Load Balancer Add-On Konfiguration
1.3. Übersicht über das Load Balancer Add-On Scheduling
1.3.1. Scheduling-Algorithmen
- Round-Robin-Scheduling
- Verteilt die Anfragen reihum in dem Pool der realen Server. Bei der Verwendung dieses Algorithmus werden alle realen Server als gleichwertig behandelt, ohne Rücksicht auf deren Kapazität oder Auslastung. Dieses Scheduling-Modell ähnelt Round-Robin-DNS, ist jedoch feiner steuerbar, da es auf Netzwerkverbindungen basiert statt auf Hosts. Das Round-Robin-Scheduling des Load Balancer Add-Ons leidet zudem nicht unter dem Ungleichgewicht, das gecachte DNS-Anfragen verursachen.
- Gewichtetes Round-Robin-Scheduling
- Verteilt die Anfragen reihum in dem Pool der realen Server, teilt jedoch Servern mit einer höheren Kapazität mehr Jobs zu. Die Kapazität wird durch einen vom Administrator zugewiesenen Gewichtungsfaktor angezeigt, der dann durch eine dynamische Auslastungsinformation entweder nach oben oder unten korrigiert wird. Siehe Abschnitt 1.3.2, »Server-Gewichtung und Scheduling« für weitere Informationen über die Gewichtung der realen Server.Das gewichtete Round-Robin-Scheduling ist die bevorzugte Methode, falls es deutliche Unterschiede in der Kapazität der realen Server im Pool gibt. Falls die Anfragelast jedoch sehr schwankt, bedient der höher gewichtete Server unter Umständen einen zu großen Teil der Anfragen.
- Least-Connection
- Verteilt mehr Anfragen an reale Server mit weniger aktiven Verbindungen. Da diese Methode anhand der IPVS-Tabelle die Anzahl der aktiven Verbindungen zu den realen Servern nachverfolgt, ist dies ein dynamischer Scheduling-Algorithmus-Typ und stellt eine bessere Wahl dar, falls die Anfragelast sehr schwankt. Dieser Algorithmus ist am besten für einen Pool von realen Server geeignet, in dem jeder Mitgliedsknoten ungefähr dieselbe Kapazität besitzt. Falls die realen Server unterschiedliche Kapazitäten besitzen, ist das gewichtete Least-Connection-Scheduling die bessere Wahl.
- Gewichtetes Least-Connections (Standard)
- Verteilt mehr Anfragen an Server mit weniger aktiven Verbindungen in Relation zu ihrer Kapazität. Die Kapazität wird durch eine benutzerdefinierte Gewichtung angezeigt, welche dann wiederum je nach dynamischer Lastinformation nach oben oder unten korrigiert wird. Der Zusatz der Gewichtung macht diesen Algorithmus zu einer idealen Alternative, wenn der Pool der realen Server aus Hardware mit unterschiedlichen Kapazitäten besteht. Siehe Abschnitt 1.3.2, »Server-Gewichtung und Scheduling« für weitere Informationen über die Gewichtung der realen Server.
- Standortbasiertes Least-Connection-Scheduling
- Verteilt mehr Anfragen an Server mit weniger aktiven Verbindungen in Relation zu ihren Ziel-IPs. Dieser Algorithmus ist für den Einsatz in einem Proxy-Cache-Server-Cluster konzipiert. Er leitet die Pakete für eine IP-Adresse solange an den Server für diese Adresse, bis dieser Server seine Kapazitätsgrenze überschreitet und einen Server mit dessen halber Last vorliegen hat. In diesem Fall weist er die IP-Adresse dem realen Server mit der geringsten Auslastung zu.
- Standortbasiertes Least-Connection-Scheduling mit Replikations-Scheduling
- Verteilt mehr Anfragen an Server mit weniger aktiven Verbindungen in Relation zu ihren Ziel-IPs. Dieser Algorithmus ist ebenfalls für den Einsatz in einem Proxy-Cache-Server-Cluster konzipiert. Er unterscheidet sich vom standortbasierten Least-Connection-Scheduling durch das Zuordnen der Ziel-IP-Adresse zu einer Teilmenge von realen Server-Knoten. Anfragen werden anschließend zum Server in dieser Teilmenge mit der niedrigsten Anzahl an Verbindungen geroutet. Falls alle Knoten für die Ziel-IP über der Kapazität liegen, repliziert er einen neuen Server für diese Ziel-IP-Adresse, indem er den realen Server mit den wenigsten Verbindungen aus dem gesamten Pool der realen Server zur Teilmenge der realen Server für diese Ziel-IP hinzufügt. Der Knoten mit der höchsten Last wird dann aus der Teilmenge der realen Server entfernt, um eine Überreplikation zu verhindern.
- Ziel-Hash-Scheduling
- Verteilt Anfragen an den Pool realer Server, indem die Ziel-IP in einer statischen Hash-Tabelle gesucht wird. Dieser Algorithmus ist für einen Proxy-Cache-Server-Cluster konzipiert.
- Quell-Hash-Scheduling
- Verteilt Anfragen an den Pool realer Server, indem die Quell-IP in einer statischen Hash-Tabelle gesucht wird. Dieser Algorithmus ist für LVS-Router mit mehreren Firewalls konzipiert.
1.3.2. Server-Gewichtung und Scheduling
1.4. Routing-Methoden
1.4.1. NAT-Routing
Abbildung 1.3. Load Balancer Add-On implementiert mit NAT-Routing
1.4.2. Direktes Routing
Abbildung 1.4. Load Balancer Add-On implementiert mit direktem Routing
1.4.2.1. Direktes Routing und die ARP-Einschränkung
arptables_jf
oder iptables
verwenden, denn:
arptables_jf
hindert ARP an der Verknüpfung von VIPs mit realen Servern.- Die
iptables
-Methode umgeht das ARP-Problem, indem VIPs gar nicht erst auf realen Servern konfiguriert werden.
arptables
oder iptables
in einer Load Balancer Add-On Umgebung mit direktem Routing finden Sie in Abschnitt 3.2.1, »Direktes Routing und arptables_jf
« oder Abschnitt 3.2.2, »Direktes Routing und iptables
«.
1.5. Persistenz und Firewall-Markierungen
1.5.1. Persistenz
1.5.2. Firewall-Markierungen
1.6. Load Balancer Add-On – Ein Blockdiagramm
Abbildung 1.5. Load Balancer Add-On Komponenten
pulse
-Daemon läuft sowohl auf den aktiven als auch den passiven LVS-Routern. Auf dem Backup-Router sendet pulse
einen Heartbeat an die öffentliche Schnittstelle des aktiven Routers, um sicherzustellen, dass der aktive Router noch ordnungsgemäß funktioniert. Auf dem aktiven Router startet pulse
den lvs
-Daemon und antwortet auf Heartbeat-Anfragen des Backup-LVS-Routers.
lvs
-Daemon das ipvsadm
-Dienstprogramm auf, um die IPVS-Routing-Tabelle im Kernel zu konfigurieren und zu pflegen, und startet einen nanny
-Prozess für jeden konfigurierten virtuellen Server auf jedem realen Server. Jeder nanny
-Prozess überprüft den Status eines konfigurierten Dienstes auf einem realen Server und unterrichtet den lvs
-Daemon darüber, ob der Dienst auf diesem realen Server korrekt funktioniert. Falls eine Fehlfunktion entdeckt wird, weist der lvs
-Daemon ipvsadm
an, diesen realen Server aus der IPVS-Routing-Tabelle zu entfernen.
send_arp
aufruft, um alle virtuellen IP-Adressen den NIC-Hardware-Adressen (MAC Adressen) des Backup-Knotens neu zuzuweisen. Weiterhin sendet er einen Befehl an den aktiven Router sowohl über die öffentliche als auch die private Netzwerkschnittstelle, den lvs
-Daemon auf dem aktiven Router zu beenden, und startet den lvs
-Daemon auf dem Backup-Router, um Anfragen für die konfigurierten virtuellen Server zu akzeptieren.
1.6.1. Load Balancer Add-On Komponenten
pulse
« zeigt eine detaillierte Liste aller Softwarekomponenten in einem LVS-Router.
1.6.1.1. pulse
/etc/rc.d/init.d/pulse
gestartet. Der Daemon liest dann die Konfigurationsdatei /etc/sysconfig/ha/lvs.cf
. Auf dem aktiven Router startet pulse
den LVS-Daemon. Auf dem Backup-Router bestimmt pulse
die Verfassung des aktiven Routers, indem es einen einfachen Heartbeat in benutzerdefinierten Abständen ausgibt. Falls der aktive Router sich nicht nach einem benutzerdefinierten Intervall meldet, wird ein Failover eingeleitet. Während des Failovers weist pulse
auf dem Backup-Router den pulse
-Daemon auf dem aktiven Router an, alle LVS-Dienste herunterzufahren, startet das Programm send_arp
, um die relativen IP-Adressen der MAC-Adresse des Backup-Routers neu zuzuweisen und startet den lvs
-Daemon.
1.6.1.2. lvs
lvs
-Daemon läuft auf dem aktiven LVS-Router, sobald er von pulse
aufgerufen wird. Er liest die Konfigurationsdatei /etc/sysconfig/ha/lvs.cf
, ruft das Dienstprogramm ipvsadm
auf, um die IPVS-Routing-Tabelle zu erstellen und zu pflegen und weist jedem konfigurierten Load Balancer Add-On Dienst einen nanny
-Prozess zu. Falls der nanny
-Prozess meldet, dass ein realer Server nicht mehr erreichbar ist, weist lvs
das Dienstprogramm ipvsadm
an, den realen Server aus der IPVS-Routing-Tabelle zu entfernen.
1.6.1.3. ipvsadm
lvs
-Daemon richtet das Load Balancer Add-On ein und verwaltet es, indem er ipvsadm
aufruft, um Einträge in der IPVS-Routing-Tabelle hinzuzufügen, zu ändern oder zu löschen.
1.6.1.4. nanny
nanny
läuft auf dem aktiven LVS-Router. Mithilfe dieses Daemons bestimmt der aktive Router die Verfassung eines jeden realen Servers und überwacht optional dessen Auslastung. Ein separater Prozess läuft für jeden Dienst, der auf jedem realen Server definiert ist.
1.6.1.5. /etc/sysconfig/ha/lvs.cf
1.6.1.6. Piranha-Konfigurationstool
/etc/sysconfig/ha/lvs.cf
.
1.6.1.7. send_arp
Kapitel 2. Erste Konfigurationsschritte für das Load Balancer Add-On
Anmerkung
2.1. Konfigurieren von Diensten auf dem LVS-Router
chkconfig
, das ncurses-basierte Programm ntsysv
und das grafische Dienst-Konfigurationstool. Alle drei erfordern root-Zugriff.
Anmerkung
su -
gefolgt vom root-Passwort ein. Zum Beispiel:
$ su - root password
- Der
piranha-gui
-Dienst (nur auf dem primären Knoten) - Der
pulse
-Dienst - Der
sshd
-Dienst
iptables
-Dienst aktivieren.
chkconfig
-Befehl für jeden Dienst aus:
/sbin/chkconfig --level 35 daemon on
/sbin/chkconfig --list
Warnung
chkconfig
aktivieren, werden die Daemons noch nicht gestartet. Verwenden Sie dazu den Befehl /sbin/service
. Siehe Abschnitt 2.3, »Starten des Piranha-Konfigurationstool-Dienstes« für ein Beispiel für die Verwendung des Befehls /sbin/service
.
ntsysv
und dem Dienst-Konfigurationstool finden Sie im Kapitel „Steuern des Zugriffs auf Dienste“ im Red Hat Enterprise Linux Administrationshandbuch.
2.2. Einrichten eines Passworts für das Piranha-Konfigurationstool
/usr/sbin/piranha-passwd
Warnung
2.3. Starten des Piranha-Konfigurationstool-Dienstes
piranha-gui
unter /etc/rc.d/init.d/piranha-gui
bzw. starten diesen neu. Geben Sie dazu den folgenden Befehl als root ein:
/sbin/service piranha-gui start
/sbin/service piranha-gui restart
/usr/sbin/piranha_gui -> /usr/sbin/httpd
aufgerufen wird. Aus Sicherheitsgründen läuft die piranha-gui
-Version von httpd
als piranha-Benutzer in einem separaten Prozess. Aus der Tatsache, dass piranha-gui
den httpd
-Dienst nutzt, ergibt sich Folgendes:
- Der Apache HTTP Server muss auf dem System installiert sein.
- Ein Stoppen oder Neustarten des Apache HTTP Servers mittels
service
-Befehl stoppt denpiranha-gui
-Dienst.
Warnung
/sbin/service httpd stop
oder /sbin/service httpd restart
auf einem LVS-Router ausgeführt wird, müssen Sie den piranha-gui
-Dienst mithilfe des folgenden Befehls starten:
/sbin/service piranha-gui start
piranha-gui
-Dienst ist notwendig, um mit der Konfiguration des Load Balancer Add-Ons zu beginnen. Falls Sie das Load Balancer Add-On jedoch von Remote aus konfigurieren, ist zudem der sshd
-Dienst erforderlich. Sie brauchen den pulse
-Dienst erst zu starten, wenn die Konfiguration mit dem Piranha-Konfigurationstool abgeschlossen ist. Siehe Abschnitt 4.8, »Starten des Load Balancer Add-Ons« für Informationen über das Starten des pulse
-Dienstes.
2.3.1. Konfigurieren des Piranha-Konfigurationstool-Webserver-Ports
Listen 3636
in Abschnitt 2 der piranha-gui
-Webserver-Konfigurationsdatei /etc/sysconfig/ha/conf/httpd.conf
.
http://localhost:3636
. Sie können das Piranha-Konfigurationstool per Webbrowser von überall erreichen, indem Sie localhost durch den Hostnamen oder die IP-Adresse des primären LVS-Router ersetzen.
piranha
im Feld Username ein und das Passwort, das Sie mit piranha-passwd
festgelegt haben, im Feld Password.
2.4. Einschränken des Zugriffs auf das Piranha-Konfigurationstool
/etc/sysconfig/ha/web/secure/.htaccess
bearbeiten. Nach dem Bearbeiten der Datei brauchen Sie den Dienst piranha-gui
nicht neu zu starten, da der Server die Datei .htaccess
jedes Mal prüft, wenn er auf das Verzeichnis zugreift.
Order deny,allow Allow from all
.htaccess
, um Zugriff nur vom Loopback-Gerät (127.0.0.1) zu erlauben. Weitere Informationen über das Loopback-Gerät finden Sie im Kapitel Netzwerkskripte im Red Hat Enterprise Linux Referenzhandbuch.
Order deny,allow Deny from all Allow from 127.0.0.1
Order deny,allow Deny from all Allow from 192.168.1.100 Allow from 172.16.57
Warnung
.htaccess
wird der Zugriff auf die Konfigurationsseiten im Verzeichnis /etc/sysconfig/ha/web/secure/
eingeschränkt, nicht aber auf die Anmelde- und Hilfeseiten in /etc/sysconfig/ha/web/
. Um den Zugriff auf dieses Verzeichnis einzuschränken, erstellen Sie eine .htaccess
-Datei im Verzeichnis /etc/sysconfig/ha/web/
mit den Zeilen order
, allow
und deny
genau wie in /etc/sysconfig/ha/web/secure/.htaccess
.
2.5. Aktivieren der Paketweiterleitung
net.ipv4.ip_forward = 0
in /etc/sysctl.conf
folgendermaßen:
net.ipv4.ip_forward = 1
/sbin/sysctl net.ipv4.ip_forward
1
ausgibt, ist die IP-Weiterleitung aktiviert. Falls er 0
ausgibt, können Sie die IP-Weiterleitung manuell mithilfe des folgenden Befehls aktivieren:
/sbin/sysctl -w net.ipv4.ip_forward=1
2.6. Konfigurieren von Diensten auf den realen Servern
httpd
für Webdienste oder xinetd
für FTP- oder Telnet-Dienste gehören.
sshd
-Daemon ebenfalls installiert und aktiviert sein sollte.
Kapitel 3. Einrichten des Load Balancer Add-Ons
3.1. Das NAT Load Balancer Add-On Netzwerk
- Netzwerkaufbau
- Die Topologie für das Load Balancer Add-On mit NAT-Routing ist im Hinblick auf den Netzwerkaufbau am einfachsten zu konfigurieren, da nur ein Zugangspunkt zum öffentlichen Netzwerk benötigt wird. Die realen Server senden alle Anfragen zurück über den LVS-Router, befinden sich also in ihrem eigenen, privaten Netzwerk.
- Hardware
- Die NAT-Topologie ist im Hinblick auf die Hardware am flexibelsten, da es sich bei den realen Servern nicht um Linux-Rechner handeln muss. In einer NAT-Topologie benötigt jeder reale Server nur eine NIC, da er nur mit dem LVS-Router kommuniziert. Die LVS-Router dagegen benötigen jeweils zwei NICs, um den Datenverkehr zwischen den Netzwerken hin- und herzuleiten. Da diese Topologie einen Engpass am LVS-Router verursacht, können Gigabit-Ethernet-NICs auf jedem LVS-Router eingesetzt werden, um die Bandbreite der LVS-Router zu erhöhen. Falls Gigabit-Ethernet auf den LVS-Routern eingesetzt wird, muss jeder Switch, der die realen Server mit den LVS-Routern verbindet, mindestens über zwei Gigabit-Ethernet-Ports verfügen, um die Last effizient zu handhaben.
- Software
- Da die NAT-Topologie die Verwendung von
iptables
für einige Konfigurationen erfordert, ist unter Umständen einiges an Software-Konfiguration außerhalb des Piranha-Konfigurationstools nötig. Insbesondere FTP-Dienste und die Verwendung von Firewall-Markierungen erfordern eine zusätzliche, manuelle Konfiguration der LVS-Router, um Anfragen ordnungsgemäß weiterzuleiten.
3.1.1. Konfigurieren von Netzwerkschnittstellen für Load Balancer Add-On mit NAT
eth0
) auf dem Netzwerk 192.168.26/24 (dies ist keine routbare IP, gehen Sie jedoch von einer Firewall vor dem LVS-Router aus). Die privaten Schnittstellen, die mit den realen Servern verbinden (eth1
), befinden sich auf dem Netzwerk 10.11.12/24.
Wichtig
network
-Dienst gehören und dass das Load Balancer Add-On nicht kompatibel ist mit dem NetworkManager
-Dienst.
/etc/sysconfig/network-scripts/ifcfg-eth0
, etwa wie folgt aussehen:
DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.26.9 NETMASK=255.255.255.0 GATEWAY=192.168.26.254
/etc/sysconfig/network-scripts/ifcfg-eth1
für die private NAT-Schnittstelle auf dem LVS-Router könnte etwa wie folgt aussehen:
DEVICE=eth1 BOOTPROTO=static ONBOOT=yes IPADDR=10.11.12.9 NETMASK=255.255.255.0
Wichtig
Wichtig
3.1.2. Routing auf den realen Servern
Anmerkung
/etc/sysconfig/network-scripts/ifcfg-eth0
des realen Servers sollte also etwa wie folgt aussehen:
DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=10.11.12.1 NETMASK=255.255.255.0 GATEWAY=10.11.12.10
Warnung
GATEWAY=
konfiguriert hat, wird die Netzwerkschnittstelle, die als erstes aktiv wird, das Gateway erhalten. Falls sowohl eth0
als auch eth1
konfiguriert sind und eth1
für das Load Balancer Add-On verwendet wird, könnten Anfragen von den realen Servern infolgedessen unter Umständen nicht korrekt geroutet werden.
/etc/sysconfig/network-scripts/
die Option ONBOOT=no
angeben. Andernfalls sollten Sie sicherstellen, dass das Gateway korrekt konfiguriert ist in derjenigen Schnittstelle, die zuerst aktiviert wird.
3.1.3. Aktivieren von NAT-Routing auf den LVS-Routern
Warnung
eth0:1
oder eth1:1
nicht durch manuelles Bearbeiten von Netzwerkskripten oder mit einem Netzwerkkonfigurationstool. Verwenden Sie stattdessen das Piranha-Konfigurationstool, wie in Abschnitt 4.4, »GLOBAL SETTINGS« und Abschnitt 4.6.1, »Der Unterabschnitt VIRTUAL SERVER« beschrieben.
pulse
-Dienst wie in Abschnitt 4.8, »Starten des Load Balancer Add-Ons« beschrieben. Sobald pulse
läuft, beginnt der aktive LVS-Router mit der Weiterleitung von Anfragen an den Pool der realen Server.
3.2. Load Balancer Add-On mit direktem Routing
- Netzwerkaufbau
- In einer Load Balancer Add-On Konfiguration mit direktem Routing muss der LVS-Router eingehende Anfragen empfangen und diese an die richtigen realen Server zur Verarbeitung weiterleiten. Die realen Server müssen ihre Antwort dann direkt an den Client senden. Falls sich der Client beispielsweise im Internet befindet und das Paket durch den LVS-Router an einen realen Server sendet, dann muss der reale Server dazu in der Lage sein, über das Internet direkt an den Client zu senden. Sie erreichen dies, indem Sie ein Gateway für den realen Server konfigurieren, das die Pakete an das Internet weiterleitet. Jeder reale Server im Server-Pool kann über ein eigenes Gateway verfügen (und jedes Gateway über eine eigene Verbindung zum Internet) für maximalen Durchsatz und optimale Skalierbarkeit. In typischen Load Balancer Add-On Konfigurationen können die realen Server jedoch über ein einziges Gateway und somit eine Netzwerkverbindung kommunizieren.
Wichtig
Es wird nicht empfohlen, den LVS-Router als Gateway für die realen Server zu verwenden, da dies die Konfiguration des LVS-Routers unnötig verkompliziert und diesem darüber hinaus weitere Netzwerklast aufbürdet, wodurch wie beim NAT-Routing wieder ein Engpass entsteht. - Hardware
- Die Hardware-Anforderungen eines Load Balancer Add-On Systems mit direktem Routing ähneln denen anderer Load Balancer Add-On Topologien. Während auf dem LVS-Router Red Hat Enterprise Linux laufen muss, um die eingehenden Anfragen zu verarbeiten und die Lastverteilung für die realen Server durchzuführen, muss es sich bei den realen Servern nicht um Linux-Rechner handeln, um ordnungsgemäß zu funktionieren. Die LVS-Router benötigen jeweils eine oder zwei NICs (abhängig davon, ob es einen Backup-Router gibt). Sie können zwei NICs verwenden, um die Konfiguration zu vereinfachen und den Datenverkehr abzugrenzen – eingehende Anfragen werden von einer NIC gehandhabt und geroutete Pakete zu den realen Servern auf der anderen.Da die realen Server den LVS-Router umgehen und ausgehende Pakete direkt an einen Client senden, ist ein Gateway zum Internet erforderlich. Für ein Höchstmaß an Leistung und Verfügbarkeit kann jeder reale Server mit einem eigenen Gateway verbunden werden, der über eine eigene Verbindung zu dem Netzwerk verfügt, auf dem sich der Client befindet (z. B. das Internet oder ein Intranet).
- Software
- Es gibt einige notwendige Konfigurationsschritte außerhalb des Piranha-Konfigurationstools, insbesondere für Administratoren, die beim Einsatz des Load Balancer Add-Ons mit direktem Routing auf ARP-Probleme stoßen. Siehe Abschnitt 3.2.1, »Direktes Routing und
arptables_jf
« oder Abschnitt 3.2.2, »Direktes Routing undiptables
« für weitere Informationen.
3.2.1. Direktes Routing und arptables_jf
arptables_jf
zu konfigurieren, muss auf jedem realen Server eine virtuelle IP-Adresse konfiguriert sein, damit diese Pakete direkt routen können. ARP-Anfragen für die VIP werden von den realen Servern völlig ignoriert und jegliche andere ARP-Pakete, die gegebenenfalls die VIPs enthalten, werden geändert, um die IP des realen Servers zu enthalten anstelle der VIPs.
arptables_jf
können Applikationen mit jeder einzelnen VIP oder jedem einzelnen Port verbinden, die vom realen Server bereitgestellt werden. Beispielsweise ermöglicht arptables_jf
, dass mehrere laufende Instanzen von Apache HTTP Server explizit mit anderen VIPs auf dem System verknüpft werden. Es gibt zudem deutliche Leistungsvorteile bei der Verwendung von arptables_jf
im Vergleich zur iptables
-Option.
arptables_jf
nicht möglich, mithilfe von standardmäßigen Red Hat Enterprise Linux Systemkonfigurationstools die VIPs zum Start beim Bootzeitpunkt zu konfigurieren.
- Erstellen Sie die ARP-Tabelleneinträge für jede virtuelle IP-Adresse auf jedem realen Server (die real_ip ist die IP, die der Router zur Kommunikation mit dem realen Server verwendet, oft ist diese IP
eth0
zugewiesen):arptables -A IN -d <virtual_ip> -j DROP arptables -A OUT -s <virtual_ip> -j mangle --mangle-ip-s <real_ip>
Dies führt dazu, dass die realen Server alle ARP-Anfragen für die virtuellen IP-Adressen ignorieren, und ändert jegliche ausgehende ARP-Antworten, die andernfalls die virtuelle IP enthalten, auf die reale IP des Servers. Der einzige Knoten, der auf ARP-Anfragen für die VIPs reagieren sollte, ist der derzeit aktive LVS-Knoten. - Sobald dies auf jedem realen Server fertiggestellt wurde, speichern Sie die ARP-Tabelleneinträge, indem Sie die folgenden Befehle auf jedem realen Server ausführen:
service arptables_jf save
chkconfig --level 2345 arptables_jf on
Derchkconfig
-Befehl führt dazu, dass das System die arptables-Konfiguration beim Systemstart – noch vor dem Start des Netzwerks – neu lädt. - Konfigurieren Sie die virtuelle IP-Adresse auf allen realen Servern mithilfe von
ifconfig
, um ein IP-Alias zu erstellen. Zum Beispiel:#
ifconfig eth0:1 192.168.76.24 netmask 255.255.252.0 broadcast 192.168.79.255 up
Sie können auch dasiproute2
-Dienstprogrammip
verwenden, zum Beispiel:#
ip addr add 192.168.76.24 dev eth0
Wie bereits erwähnt, können die virtuellen IP-Adressen nicht mithilfe der Red Hat Systemkonfigurationstools zum Starten beim Systemstart konfiguriert werden. Sie können dieses Problem jedoch umgehen, indem Sie diese Befehle in die Datei/etc/rc.d/rc.local
einfügen. - Konfigurieren Sie Piranha für das direkte Routing. Siehe Kapitel 4, Konfigurieren des Load Balancer Add-Ons mit dem Piranha-Konfigurationstool für weitere Informationen.
3.2.2. Direktes Routing und iptables
iptables
-Firewall-Regeln erstellen. Um das direkte Routing mit iptables
zu konfigurieren, müssen Sie Regeln hinzufügen, die einen transparenten Proxy erstellen, sodass ein realer Server die an die VIP-Adresse gesendeten Pakete verarbeitet, obwohl die VIP-Adresse nicht auf dem System existiert.
iptables
-Methode ist einfacher zu konfigurieren als die arptables_jf
-Methode. Zudem umgeht diese Methode das LVS-ARP-Problem gänzlich, da die virtuellen IP-Adressen nur auf dem aktiven LVS-Router existieren.
iptables
-Methode im Vergleich zu arptables_jf
Leistungsnachteile mit sich, da die Weiterleitung und Maskierung jedes Pakets einen Overhead verursacht.
iptables
-Methode keine Ports wiederverwenden. Beispielsweise ist es nicht möglich, zwei separate Apache HTTP Server-Dienste mit Port 80 zu verknüpfen, da beide mit INADDR_ANY
verbunden werden müssen anstelle der virtuellen IP-Adressen.
iptables
-Methode zu konfigurieren:
- Führen Sie auf jedem realen Server den folgenden Befehl für jede Kombination aus VIP, Port und Protokoll (TCP oder UDP) aus, die von den realen Servern bedient werden soll:
iptables -t nat -A PREROUTING -p <tcp|udp> -d <vip> --dport <port> -j REDIRECT
Dieser Befehl veranlasst die realen Server dazu, Pakete zu verarbeiten, die auf die angegebenen VIPs und Ports abzielen. - Speichern Sie die Konfiguration auf jedem realen Server:
#
service iptables save
#chkconfig --level 2345 iptables on
Die obigen Befehle veranlassen das System dazu, dieiptables
-Konfiguration beim Systemstart – noch vor dem Start des Netzwerks – neu zu laden.
3.3. Zusammenstellen der Konfiguration
Wichtig
eth0
beispielsweise mit dem öffentlichen Netzwerk verbindet und eth1
mit dem privaten Netzwerk, dann müssen auf dem Backup-LVS-Router dieselben Geräte mit denselben Netzwerken verbinden.
3.3.1. Allgemeine Tipps für ein Netzwerk mit Load Balancer Add-On
- Aktivieren von Netzwerkschnittstellen
- Um eine reale Netzwerkschnittstelle zu aktivieren, führen Sie den folgenden Befehl als root-Benutzer aus und ersetzen Sie dabei N durch die Nummer Ihrer Schnittstelle (
eth0
undeth1
)./sbin/ifup ethN
Warnung
Verwenden Sie dieifup
-Skripte nicht zur Aktivierung von Floating-IP-Adressen, die Sie ggf. mit dem Piranha-Konfigurationstool erstellen (eth0:1
odereth1:1
). Verwenden Sie stattdessen denservice
-Befehl zum Starten vonpulse
(siehe Abschnitt 4.8, »Starten des Load Balancer Add-Ons« für Einzelheiten). - Deaktivieren von Netzwerkschnittstellen
- Um eine reale Netzwerkschnittstelle zu deaktivieren, führen Sie den folgenden Befehl als root-Benutzer aus und ersetzen Sie dabei N durch die Nummer Ihrer Schnittstelle (
eth0
undeth1
)./sbin/ifdown ethN
- Überprüfen des Status der Netzwerkschnittstellen
- Falls Sie prüfen möchten, welche Netzwerkschnittstellen derzeit aktiv sind, geben Sie Folgendes ein:
/sbin/ifconfig
Um die Routing-Tabelle für einen Rechner einzusehen, führen Sie den folgenden Befehl aus:/sbin/route
3.3.1.1. Suche und Bereinigung von Fehlern mit virtuellen IP-Adressen
pulse
-Dienst manuell neu gestartet wird, werden alle virtuellen IP-Adressen aktiviert.
echo 1 > /proc/sys/net/ipv4/conf/all/promote_secondaries
/etc/sysctl.conf
und fügen Sie die folgende Zeile hinzu:
net.ipv4.conf.all.promote_secondaries = 1
3.4. Multi-Port-Dienste und Load Balancer Add-On
iptables
außerhalb des Piranha-Konfigurationstools erfolgen.
3.4.1. Zuweisen von Firewall-Markierungen
iptables
verwenden.
iptables
-Regel geben muss, um den Netzwerkpaketen die Markierung zuzuweisen.
/sbin/service iptables status
iptables
nicht ausgeführt wird, kehrt die Eingabeaufforderung sofort zurück.
iptables
aktiv ist, werden eine Reihe von Regeln angezeigt. Falls Regeln vorhanden sind, geben Sie den folgenden Befehl ein:
/sbin/service iptables stop
/etc/sysconfig/iptables
und kopieren Sie jegliche Regeln, die Sie behalten möchten, an einen sicheren Speicherort, bevor Sie fortfahren.
/sbin/iptables -t mangle -A PREROUTING -p tcp -d n.n.n.n/32 -m multiport --dports 80,443 -j MARK --set-mark 80
iptables
-Modul laden müssen, bevor Sie zum ersten Mal Regeln erstellen.
iptables
-Befehlen sollte n.n.n.n durch die Floating-IP für Ihre virtuellen HTTP- und HTTPS-Server ersetzt werden. Diese Befehle weisen effektiv jeglichem Datenverkehr, der an die VIP auf den entsprechenden Ports gerichtet ist, die Firewall-Markierung 80 zu, die anschließend von IPVS erkannt und entsprechend weitergeleitet wird.
Warnung
3.5. Konfigurieren von FTP
3.5.1. Funktionsweise von FTP
- Aktive Verbindungen
- Wenn eine aktive Verbindung hergestellt wird, öffnet der Server eine Datenverbindung zum Client von Port 20 zu einem Port im hohen Bereich auf dem Client-Rechner. Sämtliche Daten vom Server werden über diese Verbindung übertragen.
- Passive Verbindungen
- Wenn eine passive Verbindung hergestellt wird, fordert der Client den FTP-Server zur Herstellung eines passiven Verbindungsports auf, der auf einem beliebigen Port über 10.000 liegen kann. Der Server verbindet für diese Sitzung mit diesem hohen Port und teilt dem Client die Portnummer mit. Der Client öffnet daraufhin den neu verbundenen Port für die Datenverbindung. Jede Datenanforderung durch den Client resultiert in einer separaten Datenverbindung. Moderne FTP-Clients versuchen, bei der Anforderung von Daten von Servern eine passive Verbindung zu erstellen.
Anmerkung
3.5.2. Auswirkungen auf das Load Balancer Add-On Routing
Anmerkung
ip_vs_ftp
geladen ist. Führen Sie dazu den Befehl modprobe ip_vs_ftp
als root-Benutzer an einer Shell-Eingabeaufforderung aus.
3.5.3. Erstellen von Netzwerkpaketfilterregeln
iptables
-Regeln für den FTP-Dienst erstellen, werfen Sie einen Blick auf die Informationen in Abschnitt 3.4.1, »Zuweisen von Firewall-Markierungen« über Multi-Port-Dienste und Techniken zur Prüfung der vorhandenen Netzwerkpaketfilterregeln.
21
im Feld Firewall Mark konfigurieren. Siehe Abschnitt 4.6.1, »Der Unterabschnitt VIRTUAL SERVER« für Einzelheiten.
3.5.3.1. Regeln für aktive Verbindungen
iptables
-Befehl erlaubt es dem LVS-Router, ausgehende Verbindungen von den realen Servern zu akzeptieren, die IPVS unbekannt sind:
/sbin/iptables -t nat -A POSTROUTING -p tcp -s n.n.n.0/24 --sport 20 -j MASQUERADE
iptables
-Befehl durch die ersten drei Werte der Floating-IP für die interne Netzwerkschnittstelle der NAT-Schnittstelle, wie auf dem Reiter GLOBAL SETTINGS im Piranha-Konfigurationstool definiert.
3.5.3.2. Regeln für passive Verbindungen
Warnung
/etc/vsftpd.conf
hinzufügen:
pasv_min_port=10000
pasv_max_port=20000
pasv_address
zum Überschreiben der realen FTP-Serveradresse sollte nicht verwendet werden, da sie von LVS auf die virtuelle IP-Adresse aktualisiert wird.
10000:20000
in den nachfolgenden Befehlen auf 1024:65535
ändern.
iptables
-Befehle weisen effektiv jeglichem Datenverkehr, der an die Floating-IP auf den entsprechenden Ports gerichtet ist, die Firewall-Markierung 21 zu, die anschließend von IPVS erkannt und entsprechend weitergeleitet wird:
/sbin/iptables -t mangle -A PREROUTING -p tcp -d n.n.n.n/32 --dport 21 -j MARK --set-mark 21
/sbin/iptables -t mangle -A PREROUTING -p tcp -d n.n.n.n/32 --dport 10000:20000 -j MARK --set-mark 21
iptables
-Befehlen n.n.n.n durch die Floating-IP für den virtuellen FTP-Server, der in dem Unterbereich VIRTUAL SERVER im Piranha-Konfigurationstool definiert ist.
Warnung
3.6. Speichern der Netzwerkpaketfiltereinstellungen
iptables
den folgenden Befehl ein:
/sbin/service iptables save
/etc/sysconfig/iptables
, damit diese beim Systemstart wieder abgerufen werden können.
/sbin/service
zum Starten, Stoppen und Prüfen des Status (mittels status-Switch) von iptables
verwenden. Der Befehl /sbin/service
lädt automatisch das richtige Modul für Sie. Ein Anwendungsbeispiel für /sbin/service
finden Sie in Abschnitt 2.3, »Starten des Piranha-Konfigurationstool-Dienstes«.
Kapitel 4. Konfigurieren des Load Balancer Add-Ons mit dem Piranha-Konfigurationstool
/etc/sysconfig/ha/lvs.cf
. Dieses Kapitel beschreibt die grundlegende Verwendung des Piranha-Konfigurationstools und die Aktivierung des Load Balancer Add-Ons nach abgeschlossener Konfiguration.
Wichtig
lvs.cf
und somit Softwarefehler vermeiden.
4.1. Notwendige Software
piranha-gui
muss auf dem primären LVS-Router laufen, um das Piranha-Konfigurationstool verwenden zu können. Für die Konfiguration des Load Balancer Add-Ons brauchen Sie mindestens einen textbasierten Webbrowser wie z. B. links
. Falls Sie von einem anderen Rechner aus auf den LVS-Router zugreifen, benötigen Sie zudem eine ssh
-Verbindung zum primären LVS-Router als root-Benutzer.
ssh
-Verbindung in einem Terminalfenster zu haben. Diese Verbindung bietet einen sicheren Weg zum Neustarten von pulse
und anderen Diensten, zur Konfiguration von Netzwerkpaketfiltern und zur Überwachung von /var/log/messages
während der Suche und Bereinigung von Fehlern.
4.2. Anmelden beim Piranha-Konfigurationstool
piranha-gui
läuft und dass das Administratorpasswort festgelegt wurde, wie in Abschnitt 2.2, »Einrichten eines Passworts für das Piranha-Konfigurationstool« beschrieben.
http://localhost:3636
in einem Webbrowser aufrufen, um das Piranha-Konfigurationstool zu öffnen. Geben Sie andernfalls den Hostnamen oder die reale IP-Adresse für den Server ein, gefolgt von :3636
. Sobald der Browser die Verbindung hergestellt hat, sehen Sie den Bildschirm aus Abbildung 4.1, »Der Begrüßungsbildschirm«.
Abbildung 4.1. Der Begrüßungsbildschirm
piranha
als Username und das von Ihnen festgelegte Administratorpasswort im Feld Password ein.
4.3. CONTROL/MONITORING
pulse
-Daemons, der LVS-Routing-Tabelle und der von LVS erzeugten nanny
-Prozesse angezeigt.
Anmerkung
Abbildung 4.2. Der Reiter CONTROL/MONITORING
- Auto update
- Die Statusanzeige auf dieser Seite kann automatisch aktualisiert werden in benutzerdefinierten Zeitabständen. Um diese Funktion zu aktivieren, markieren Sie das Auswahlkästchen Auto update und geben Sie das gewünschte Intervall im Textfeld Update frequency in seconds ein (der Standardwert beträgt 10 Sekunden).Es wird nicht empfohlen, die automatische Aktualisierung auf einen Zeitintervall von weniger als 10 Sekunden zu setzen. Andernfalls kann es problematisch werden, das Zeitintervall für Auto update neu zu konfigurieren, da die Seite zu schnell neu lädt. Falls Sie dieses Problem haben, klicken Sie einfach auf einen anderen Reiter und dann zurück auf CONTROL/MONITORING.Die Funktion Auto update funktioniert nicht mit allen Browsern wie z. B. Mozilla.
- Update information now
- Sie können die Statusinformationen auch manuell aktualisieren, indem Sie auf diese Schaltfläche klicken.
- CHANGE PASSWORD
- Ein Klick auf diese Schaltfläche führt Sie zu einer Hilfeseite mit Informationen, wie Sie das administrative Passwort für das Piranha-Konfigurationstool ändern können.
4.4. GLOBAL SETTINGS
Abbildung 4.3. Der Reiter GLOBAL SETTINGS
- Primary server public IP
- Geben Sie in diesem Feld die öffentlich routbare, reale IP-Adresse für den primären LVS-Knoten ein.
- Primary server private IP
- Geben Sie in diesem Feld die reale IP-Adresse für eine alternative Netzwerkschnittstelle auf dem primären LVS-Knoten ein. Diese Adresse wird lediglich als alternativer Kanal zur Übertragung von Heartbeats für den Backup-Router verwendet und muss nicht mit der realen privaten IP-Adresse übereinstimmen, die in Abschnitt 3.1.1, »Konfigurieren von Netzwerkschnittstellen für Load Balancer Add-On mit NAT« zugewiesen wird. Sie können dieses Feld frei lassen, sollten sich jedoch darüber im Klaren sein, dass es in diesem Fall keinen alternativen Heartbeat-Kanal für den Backup-LVS-Router gibt und dies einen Single Point of Failure darstellt.
Anmerkung
Die private IP-Adresse ist nicht notwendig für Konfigurationen mit Direct Routing, da alle realen Server und die LVS-Router dieselbe virtuelle IP-Adresse verwenden und dieselbe IP-Route konfiguriert haben sollten.Anmerkung
Die private IP-Adresse des primären LVS-Routers kann auf jeder Schnittstelle konfiguriert werden, die TCP/IP akzeptiert, egal ob Ethernet-Adapter oder serieller Port. - TCP Timeout
- Geben Sie die Zeit (in Sekunden) an, nach der für eine TCP-Sitzung eine Zeitüberschreitung erfolgt. Der Standardwert ist 0.
- TCP Fin Timeout
- Geben Sie die Zeit (in Sekunden) an, nach der für eine TCP-Sitzung nach Empfang eines FIN-Pakets eine Zeitüberschreitung erfolgt. Der Standardwert ist 0.
- UDP Timeout
- Geben Sie die Zeit (in Sekunden) an, nach der für eine UDP-Sitzung eine Zeitüberschreitung erfolgt. Der Standardwert ist 0.
- Use network type
- Klicken Sie auf die Schaltfläche NAT, um das NAT-Routing auszuwählen.Klicken Sie auf die Schaltfläche Direct Routing, um das direkte Routing auszuwählen.
- NAT Router IP
- Geben Sie die private Floating-IP in diesem Textfeld ein. Diese Floating-IP sollte als Gateway für die realen Server verwendet werden.
- NAT Router netmask
- Falls die Floating-IP des NAT-Routers eine spezielle Netzmaske benötigt, wählen Sie diese aus der Auswahlliste.
- NAT Router device
- Geben Sie in diesem Textfeld den Gerätenamen der Netzwerkschnittstelle für die Floating-IP-Adresse an, z. B.
eth1:1
.Anmerkung
Die sollten ein Alias für die Floating-IP-Adresse von NAT zur Ethernet-Schnittstelle, die mit dem privaten Netzwerk verbunden ist, anlegen. In diesem Beispiel ist das private Netzwerk auf der Schnittstelleeth1
, somit isteth1:1
die Floating-IP-Adresse.
Warnung
4.5. REDUNDANCY
Anmerkung
Abbildung 4.4. Der Reiter REDUNDANCY
- Redundant server public IP
- Geben Sie die öffentliche, reale IP-Adresse für den Backup-LVS-Routerknoten ein.
- Redundant server private IP
- Geben Sie in diesem Textfeld die private, reale IP-Adresse des Backup-Knotens ein.Falls Sie das Feld Redundant server private IP nicht sehen, gehen Sie zurück zum Reiter GLOBAL SETTINGS, geben Sie eine IP-Adresse für Primary server private IP an und klicken Sie auf ACCEPT.
- Heartbeat Interval (seconds)
- Dieses Feld legt die Anzahl an Sekunden zwischen Heartbeats fest, also die Zeitabstände, in denen der Backup-Knoten den funktionalen Status des primären LVS-Knoten überprüft.
- Assume dead after (seconds)
- Falls der primäre LVS-Knoten nicht nach dieser Anzahl an Sekunden antwortet, leitet der Backup-LVS-Knoten den Failover ein.
- Heartbeat runs on port
- Dieses Feld legt den Port fest, auf dem der Heartbeat mit dem primären LVS-Knoten kommuniziert. Der Standardwert ist 539, falls dieses Feld leer gelassen wird.
Warnung
sync_version
mithilfe des echo
-Befehls als root-Benutzer an einer Shell-Eingabeaufforderung wie folgt:
echo 0 > /proc/sys/net/ipv4/vs/sync_version
- Use Sync Daemon
- Markieren Sie das Auswahlkästchen, falls Sie den Synchronisations-Daemon aktivieren möchten.
- Sync Daemon Interface
- Die Netzwerkschnittstelle, über die der Synchronisations-Daemon seine Multicast-Nachrichten sendet bzw. empfängt. Die standardmäßige Schnittstelle in diesem Feld ist
eth0
. - Sync daemon id
- Dieses Feld legt eine Kennung (ID) für Multicast-Synchronisationsnachrichten fest. Unterstützte Werte sind 0 bis 255. Der Standardwert ist 0, falls dieses Feld leer gelassen wird.
Warnung
4.6. VIRTUAL SERVERS
Abbildung 4.5. Der Reiter VIRTUAL SERVERS
4.6.1. Der Unterabschnitt VIRTUAL SERVER
Abbildung 4.6. Der Unterabschnitt VIRTUAL SERVERS
- Name
- Geben Sie einen aussagekräftigen Namen zur Identifizierung des virtuellen Servers ein. Dieser Name ist nicht der Hostname für den Rechner und sollte daher aussagekräftig und einfach identifizierbar sein. Sie können sogar das Protokoll angeben, das vom virtuellen Server verwendet werden soll, wie zum Beispiel HTTP.
- Application port
- Geben Sie die Portnummer an, auf der die Dienstapplikation lauschen soll. Da dieses Beispiel sich auf HTTP-Dienste bezieht, wird der Port 80 verwendet.
- Protocol
- Wählen Sie aus der Auswahlliste zwischen UDP und TCP. Webserver kommunizieren in der Regel über das TCP-Protokoll, weshalb im obigen Beispiel TCP ausgewählt wird.
- Virtual IP Address
- Geben Sie in diesem Textfeld die Floating-IP-Adresse des virtuellen Servers ein.
- Virtual IP Network Mask
- Wählen Sie aus der Auswahlliste die Netzmaske für diesen virtuellen Server.
- Firewall Mark
- Geben Sie in diesem Feld keinen Ganzzahlwert für die Firewall-Markierung ein, es sei denn, Sie bündeln Protokolle mit mehreren Ports oder Sie erstellen einen virtuellen Server mit mehreren Ports für separate, aber verwandte Protokolle. In diesem Beispiel hat der obige virtuelle Server die Firewall Mark 80, um Verbindungen mit HTTP auf Port 80 und mit HTTPS auf Port 443 mithilfe der Firewall-Markierung 80 zu bündeln. In Kombination mit Persistenz gewährleistet dieses Verfahren, dass Benutzer, die sowohl auf sichere als auch auf unsichere Websites zugreifen, an denselben Server geleitet werden, um so den Zustand zu bewahren.
Warnung
Die Eingabe einer Firewall-Markierung in diesem Feld informiert IPVS darüber, dass Pakete mit dieser Firewall-Markierung gleich behandelt werden sollen. Um diese Firewall-Markierung zuzuweisen, sind jedoch zusätzliche Konfigurationsschritte außerhalb des Piranha-Konfigurationstools notwendig. Siehe Abschnitt 3.4, »Multi-Port-Dienste und Load Balancer Add-On« für Anweisungen zur Erstellung von Multi-Port-Diensten und Abschnitt 3.5, »Konfigurieren von FTP« für Anweisungen zur Erstellung eines hochverfügbaren, virtuellen FTP-Servers. - Device
- Geben Sie den Namen des Netzwerkgeräts ein, mit dem die im Feld Virtual IP Address definierte Floating-IP-Adresse verknüpft werden soll.Sie sollten ein Alias anlegen für die öffentliche Floating-IP-Adresse zur Ethernet-Schnittstelle, die mit dem öffentlichen Netzwerk verbunden ist. In diesem Beispiel ist das öffentliche Netzwerk auf der Schnittstelle
eth0
, somit sollteeth0:1
als Gerätename eingegeben werden.
- Re-entry Time
- Geben Sie einen ganzzahligen Wert ein, der die Zeitspanne in Sekunden definiert, bevor der aktive LVS-Router versucht, einen realen Server im Anschluss an einen Ausfall wieder in den Pool einzubringen.
- Service Timeout
- Geben Sie einen ganzzahligen Wert an, der die Zeitspanne in Sekunden definiert, bevor ein realer Server als ausgefallen gilt und aus dem Pool entfernt wird.
- Quiesce server
- Wenn die Auswahlfläche Quiesce server markiert ist, wird die Gewichtung eines realen Servers auf 0 gesetzt, wenn dieser nicht verfügbar ist. Dadurch wird der Server effektiv deaktiviert. Wenn der reale Server wieder verfügbar ist, wird er wieder aktiviert, indem seine ursprüngliche Gewichtung wiederhergestellt wird. Falls Quiesce server deaktiviert ist, wird ein ausgefallener Server aus der Servertabelle entfernt. Wenn dieser ausgefallene reale Server wieder verfügbar wird, dann wird er wieder zur Tabelle der realen Server hinzugefügt.
- Load monitoring tool
- Der LVS-Router kann die Auslastung auf verschiedenen realen Servern entweder mithilfe von
rup
oderruptime
überwachen. Falls Sierup
aus dem Auswahlmenü auswählen, muss auf jedem realen Server derrstatd
-Dienst laufen. Falls Sieruptime
auswählen, muss auf jedem realen Server derrwhod
-Dienst laufen.Warnung
Die Überwachung der Auslastung ist nicht dasselbe wie die Lastverteilung und kann zu schwer vorhersehbarem Scheduling-Verhalten führen, falls sie mit gewichteten Scheduling-Algorithmen kombiniert wird. Zudem muss es sich zur Überwachung der Auslastung bei den realen Servern um Linux-Rechner handeln. - Scheduling
- Wählen Sie Ihren bevorzugten Scheduling-Algorithmus aus der Auswahlliste. Der Standard ist
Weighted least-connection
. Weitere Informationen über Scheduling-Algorithmen finden Sie in Abschnitt 1.3.1, »Scheduling-Algorithmen«. - Persistence
- Falls Sie persistente Verbindungen mit dem virtuellen Server während Client-Transaktionen benötigen, geben Sie in diesem Textfeld die Anzahl der Sekunden für Inaktivität an, bevor eine Zeitüberschreitung der Verbindung erfolgt.
Wichtig
Falls Sie einen Wert in dem Feld Firewall Mark oben eingegeben haben, sollten Sie ebenfalls einen Wert für die Persistenz eingeben. Vergewissern Sie sich zudem, dass Sie bei der Verwendung von Firewall-Markierungen mit Persistenz für jeden virtuellen Server mit der Firewall-Markierung dieselben Werte für die Persistenz angeben. Weitere Informationen über Persistenz und Firewall-Markierungen finden Sie in Abschnitt 1.5, »Persistenz und Firewall-Markierungen«. - Persistence Network Mask
- Um die Persistenz für ein bestimmtes Subnetz einzuschränken, wählen Sie die entsprechende Netzwerkmaske aus der Auswahlliste.
Anmerkung
Vor dem Aufkommen der Firewall-Markierungen war die auf Subnetze eingeschränkte Persistenz eine grobe Methode zur Bündelung von Verbindungen. Heutzutage ist es am besten, zu diesem Zweck Persistenz zusammen mit Firewall-Markierungen zu verwenden.
Warnung
4.6.2. Der Unterabschnitt REAL SERVER
Abbildung 4.7. Der Unterabschnitt REAL SERVER
Abbildung 4.8. Der Konfigurationsreiter REAL SERVER
- Name
- Ein beschreibender Name für den realen Server.
Anmerkung
Dieser Name ist nicht der Hostname für den Rechner und sollte daher aussagekräftig und einfach identifizierbar sein. - Address
- Die IP-Adresse des realen Servers. Da der Port, auf dem gelauscht wird, bereits für den dazugehörigen virtuellen Server angegeben ist, fügen Sie hier keine Portnummer hinzu.
- Weight
- Ein ganzzahliger Wert, der die Kapazität dieses Hosts relativ zu der Kapazität anderer Hosts im Pool anzeigt. Der Wert kann beliebig sein, sollte jedoch als Faktor im Vergleich zu anderen realen Servern gewählt werden. Weitere Informationen über Servergewichtung finden Sie unter Abschnitt 1.3.2, »Server-Gewichtung und Scheduling«.
Warnung
4.6.3. Der Unterabschnitt EDIT MONITORING SCRIPTS
Abbildung 4.9. Der Unterabschnitt EDIT MONITORING SCRIPTS
- Sending Program
- Für eine fortgeschrittenere Dienstverifizierung können Sie dieses Feld zur Angabe des Pfads zu einem Skript zur Dienstprüfung verwenden. Diese Funktion ist besonders für Dienste hilfreich, die dynamisch verändernde Daten erfordern, wie beispielsweise HTTPS oder SSL.Um diese Funktionalität zu verwenden, müssen Sie ein Skript schreiben, das eine Antwort in Textform zurückgibt, dieses ausführbar machen und den Pfad im Feld Sending Program eingeben.
Anmerkung
Um sicherzustellen, dass jeder Server im Pool der realen Server geprüft wird, verwenden Sie einen speziellen Platzhalter%h
nach dem Pfad zum Skript im Feld Sending Program. Dieser Platzhalter wird durch die IP-Adresse eines jeden realen Servers ersetzt, sobald das Skript vomnanny
-Daemon aufgerufen wird.Nachfolgend sehen Sie ein Beispielskript, das Ihnen als Leitfaden für die Erstellung Ihres Skripts zur Dienstprüfung dienen kann:#!/bin/sh TEST=`dig -t soa example.com @$1 | grep -c dns.example.com if [ $TEST != "1" ]; then echo "OK else echo "FAIL" fi
Anmerkung
Falls im Feld Sending Program ein externes Programm eingegeben wird, dann wird das Feld Send ignoriert. - Send
- Geben Sie in diesem Feld einen String für den
nanny
-Daemon für das Versenden an jeden realen Server ein. Standardmäßig ist das Feld Send für HTTP bereits vervollständigt. Sie können diesen Wert gemäß Ihrer Anforderungen anpassen. Falls Sie dieses Feld leer lassen, versucht dernanny
-Daemon, den Port zu öffnen, und geht davon aus, dass der Dienst läuft, wenn er erfolgreich ist.Nur eine Sendesequenz ist in diesem Feld gestattet und es darf nur druckbare ASCII-Zeichen sowie die folgenden Escape-Zeichen enthalten:- \n für Zeilenumbruch
- \r für Wagenrücklauf
- \t für Tabulator
- \ für den Escape des darauffolgenden Zeichens
- Expect
- Geben Sie in Textform die Antwort ein, die der Server zurückgeben sollte, wenn er korrekt funktioniert. Falls Sie Ihr eigenes Sendeprogramm geschrieben haben, geben Sie die von Ihnen vorgegebene Antwort ein, die zu senden ist, falls es erfolgreich war.
Anmerkung
Um festzulegen, was für einen bestimmten Dienst gesendet werden sollte, können Sie einetelnet
-Verbindung mit dem Port auf einem realen Server öffnen und sich anschauen, was zurückgegeben wird. Beispielsweise gibt FTP bei der Verbindung 220 aus, somit könnten Siequit
im Feld Send und220
im Feld Expect eingeben.
Warnung
4.7. Synchronisieren von Konfigurationsdateien
/etc/sysconfig/ha/lvs.cf
– die Konfigurationsdatei für die LVS-Router./etc/sysctl
– die Konfigurationsdatei, die unter anderem die Paketweiterleitung im Kernel aktiviert./etc/sysconfig/iptables
– Falls Sie Firewall-Markierungen verwenden, sollten Sie eine dieser Dateien synchronisieren basierend darauf, welchen Netzwerkpaketfilter Sie verwenden.
Wichtig
/etc/sysctl.conf
und /etc/sysconfig/iptables
ändern sich nicht, wenn Sie das Load Balancer Add-On mithilfe des Piranha-Konfigurationstools konfigurieren.
4.7.1. Synchronisieren von lvs.cf
/etc/sysconfig/ha/lvs.cf
erstellt oder verändert wird, muss sie auf den Backup-LVS-Routerknoten kopiert werden.
Warnung
lvs.cf
-Dateien verfügen. Abweichende LVS-Konfigurationsdateien zwischen den LVS-Routerknoten können zum Scheitern der Ausfallsicherung führen.
scp
-Befehl.
Wichtig
scp
zu verwenden, muss sshd
auf dem Backup-Router laufen. Siehe Abschnitt 2.1, »Konfigurieren von Diensten auf dem LVS-Router« für Einzelheiten darüber, wie die notwendigen Dienste auf den LVS-Routern konfiguriert werden.
lvs.cf
-Dateien zwischen den Routerknoten zu synchronisieren:
scp /etc/sysconfig/ha/lvs.cf n.n.n.n:/etc/sysconfig/ha/lvs.cf
4.7.2. Synchronisieren von sysctl
sysctl
-Datei wird in den meisten Fällen nur einmal verändert. Diese Datei wird beim Systemstart gelesen und weist den Kernel dazu an, die Paketweiterleitung zu aktivieren.
Wichtig
4.7.3. Synchronisieren von Regeln zur Netzwerkpaketfilterung
iptables
verwenden, müssen Sie die entsprechende Konfigurationsdatei auf den Backup-LVS-Router synchronisieren.
scp /etc/sysconfig/iptables n.n.n.n:/etc/sysconfig/
ssh
-Sitzung zum Backup-Router oder melden Sie sich auf dem Rechner als root-Benutzer an und führen Sie den folgenden Befehl aus:
/sbin/service iptables restart
4.8. Starten des Load Balancer Add-Ons
ssh
-Sitzungen als root zum primären LVS-Router herzustellen.
tail -f /var/log/messages
/sbin/service pulse start
pulse
-Dienststarts in dem Terminal mit den Kernel-Protokollnachrichten. Wenn Sie die folgende Ausgabe sehen, wurde der pulse
-Dienst erfolgreich gestartet:
gratuitous lvs arps finished
/var/log/messages
zu beenden, drücken Sie Strg+c.
Anhang A. Verwenden des Load Balancer Add-Ons mit dem High Availability Add-On
Abbildung A.1. Load Balancer Add-On mit einem High Availability Add-On
- Erste Schicht – LVS-Router führen die Lastverteilung aus, um Webanfragen zu verteilen.
- Zweite Schicht – Eine Reihe von Webservern antwortet auf diese Anfragen.
- Dritte Schicht – Ein High Availability Add-On liefert Daten an die Webserver.
Anhang B. Versionsgeschichte
Versionsgeschichte | |||
---|---|---|---|
Version 1-15.3 | Thu Apr 9 2015 | Hedda Peters | |
| |||
Version 1-15.2 | Thu Apr 9 2015 | Hedda Peters | |
| |||
Version 1-15.1 | Thu Apr 9 2015 | Hedda Peters | |
| |||
Version 1-15 | Tue Dec 16 2014 | Steven Levine | |
| |||
Version 1-13 | Thu Oct 9 2014 | Steven Levine | |
| |||
Version 1-10 | Tue Nov 19 2013 | John Ha | |
| |||
Version 1-8 | Fri Sep 27 2013 | John Ha | |
| |||
Version 1-4 | Wed Nov 28 2012 | John Ha | |
| |||
Version 1-3 | Mon Jun 18 2012 | John Ha | |
| |||
Version 1-2 | Fri Dec 2 2011 | John Ha | |
| |||
Version 1-1 | Wed Nov 10 2010 | Paul Kennedy | |
|
Stichwortverzeichnis
Symbole
- /etc/sysconfig/ha/lvs.cf-Datei, /etc/sysconfig/ha/lvs.cf
A
- arptables_jf, Direktes Routing und arptables_jf
C
- chkconfig, Konfigurieren von Diensten auf dem LVS-Router
- Cluster
- Verwenden des Load Balancer Add-Ons mit dem High Availability Add-On, Verwenden des Load Balancer Add-Ons mit dem High Availability Add-On
D
- direktes Routing
- und arptables_jf, Direktes Routing und arptables_jf
E
- Einführung, Einführung
- weitere Red Hat Enterprise Linux Dokumente, Einführung
F
- Feedback, Feedback
- FTP, Konfigurieren von FTP
- (Siehe auch Load Balancer Add-On)
H
- High Availability Add-On
- und das Load Balancer Add-On , Verwenden des Load Balancer Add-Ons mit dem High Availability Add-On
- Verwenden mit dem Load Balancer Add-On, Verwenden des Load Balancer Add-Ons mit dem High Availability Add-On
I
- iptables , Konfigurieren von Diensten auf dem LVS-Router
- ipvsadm-Programm, ipvsadm
J
- Job-Scheduling, Load Balancer Add-On, Übersicht über das Load Balancer Add-On Scheduling
K
- Komponenten
- Load Balancer Add-On, Load Balancer Add-On Komponenten
L
- Least Connections (Siehe Job-Scheduling, Load Balancer Add-On)
- Least Connections, gewichtet (Siehe Job-Scheduling, Load Balancer Add-On)
- Load Balancer Add-On
- /etc/sysconfig/ha/lvs.cf-Datei, /etc/sysconfig/ha/lvs.cf
- Datenreplikation, reale Server, Daten replizieren und gemeinsam verwenden auf realen Servern
- direktes Routing
- Anforderungen, Hardware, Direktes Routing, Load Balancer Add-On mit direktem Routing
- Anforderungen, Netzwerk, Direktes Routing, Load Balancer Add-On mit direktem Routing
- Anforderungen, Software, Direktes Routing, Load Balancer Add-On mit direktem Routing
- und arptables_jf, Direktes Routing und arptables_jf
- dreischichtig
- Load Balancer Add-on, Eine dreischichtige Load Balancer Add-On Konfiguration
- erste Konfigurationsschritte, Erste Konfigurationsschritte für das Load Balancer Add-On
- gemeinsam verwendete Daten, Daten replizieren und gemeinsam verwenden auf realen Servern
- ipvsadm-Programm, ipvsadm
- Job-Scheduling, Übersicht über das Load Balancer Add-On Scheduling
- Komponenten, Load Balancer Add-On Komponenten
- LVS-Router
- Konfigurieren von Diensten, Erste Konfigurationsschritte für das Load Balancer Add-On
- Notwendige Dienste, Konfigurieren von Diensten auf dem LVS-Router
- primärer Knoten, Erste Konfigurationsschritte für das Load Balancer Add-On
- Multi-Port-Dienste, Multi-Port-Dienste und Load Balancer Add-On
- nanny-Daemon, nanny
- NAT-Routing
- Anforderungen, Hardware, Das NAT Load Balancer Add-On Netzwerk
- Anforderungen, Netzwerk, Das NAT Load Balancer Add-On Netzwerk
- Anforderungen, Software, Das NAT Load Balancer Add-On Netzwerk
- Paketweiterleitung, Aktivieren der Paketweiterleitung
- Piranha-Konfigurationstool , Piranha-Konfigurationstool
- pulse-Daemon, pulse
- Routing-Methoden
- NAT, Routing-Methoden
- Routing-Voraussetzungen, Konfigurieren von Netzwerkschnittstellen für Load Balancer Add-On mit NAT
- Scheduling, Job, Übersicht über das Load Balancer Add-On Scheduling
- send_arp-Programm, send_arp
- Starten des Load Balancer Add-Ons, Starten des Load Balancer Add-Ons
- Synchronisieren von Konfigurationsdateien, Synchronisieren von Konfigurationsdateien
- Verwenden des Load Balancer Add-Ons mit dem High Availability Add-On, Verwenden des Load Balancer Add-Ons mit dem High Availability Add-On
- LVS
- Daemon, lvs
- lvs-Daemon, lvs
- NAT-Routing
- aktivieren, Aktivieren von NAT-Routing auf den LVS-Routern
- reale Server, Überblick über das Load Balancer Add-On
- Überblick, Überblick über das Load Balancer Add-On
- lvs-Daemon, lvs
M
- Multi-Port-Dienste, Multi-Port-Dienste und Load Balancer Add-On
- (Siehe auch Load Balancer Add-On)
N
- nanny-Daemon, nanny
- NAT
- aktivieren, Aktivieren von NAT-Routing auf den LVS-Routern
- Routing-Methoden, Load Balancer Add-On, Routing-Methoden
- Network Address Translation (Siehe NAT)
P
- Paketweiterleitung, Aktivieren der Paketweiterleitung
- (Siehe auch Load Balancer Add-On)
- piranha-gui-Dienst, Konfigurieren von Diensten auf dem LVS-Router
- Piranha-Konfigurationstool , Piranha-Konfigurationstool
- Anmeldeseite, Anmelden beim Piranha-Konfigurationstool
- CONTROL/MONITORING , CONTROL/MONITORING
- EDIT MONITORING SCRIPTS Unterabschnitt, Der Unterabschnitt EDIT MONITORING SCRIPTS
- Einrichten eines Passworts, Einrichten eines Passworts für das Piranha-Konfigurationstool
- GLOBAL SETTINGS , GLOBAL SETTINGS
- notwendige Software, Notwendige Software
- REAL SERVER Unterabschnitt , Der Unterabschnitt REAL SERVER
- REDUNDANCY , REDUNDANCY
- Überblick, Konfigurieren des Load Balancer Add-Ons mit dem Piranha-Konfigurationstool
- VIRTUAL SERVER Unterabschnitt, Der Unterabschnitt VIRTUAL SERVER
- Firewall-Markierung , Der Unterabschnitt VIRTUAL SERVER
- Persistence , Der Unterabschnitt VIRTUAL SERVER
- Scheduling , Der Unterabschnitt VIRTUAL SERVER
- Virtuelle IP-Adresse , Der Unterabschnitt VIRTUAL SERVER
- VIRTUAL SERVERS , VIRTUAL SERVERS
- Zugriff einschränken, Einschränken des Zugriffs auf das Piranha-Konfigurationstool
- piranha-passwd , Einrichten eines Passworts für das Piranha-Konfigurationstool
- pulse-Daemon, pulse
- pulse-Dienst, Konfigurieren von Diensten auf dem LVS-Router
R
- reale Server
- Konfigurieren von Diensten, Konfigurieren von Diensten auf den realen Servern
- Round Robin (Siehe Job-Scheduling, Load Balancer Add-On)
- Round Robin, gewichtet (Siehe Job-Scheduling, Load Balancer Add-On)
- Routing
- Voraussetzungen für Load Balancer Add-On, Konfigurieren von Netzwerkschnittstellen für Load Balancer Add-On mit NAT
S
- Scheduling, Job (Load Balancer Add-On), Übersicht über das Load Balancer Add-On Scheduling
- send_arp-Programm, send_arp
- Sicherheit
- Piranha-Konfigurationstool, Einschränken des Zugriffs auf das Piranha-Konfigurationstool
- sshd-Dienst, Konfigurieren von Diensten auf dem LVS-Router
- Synchronisieren von Konfigurationsdateien, Synchronisieren von Konfigurationsdateien