|
Suche |
HINWEIS: Diese Beschreibung (bzw. einige Details) gilt nicht für Server, welche sich aktuell im Angebot von OVH befinden (Stand 08.06.2009). Sie verfügen über einen gesicherten Speicherbereich (RAID) auf einem Filer. Sie teilen diesen Bereich unter mehreren dedizierten Servern auf (per NFS). OVH hat Ihnen eine neue IP-Adresse zugewiesen (IP für die Lastverteilung, "balanced IP"). Ausserdem hat OVH Ihre Server konfiguriert damit diese auf den gesicherten Speicherbereich zugreifen und den Traffic von der IP zur Lastverteilung aus erhalten. Wenn Sie den Cluster Dienst direkt nutzen wollen ohne sich mit seiner Funktionsweise zu beschäftigen können Sie direkt zum Abschnitt "Erste Schritte mit Ihrem Cluster" springen. 1. Konfiguration der IP zur Lastverteilung Damit der Server Pakete von der IP zur Lastverteilung akzeptiert wird ein virtuelles Netzwerkinterface als lo:0 hinzugefügt: lo:0 Link encap:Local Loopback inet addr:213.251.xxx.xxx Mask:255.255.255.255 UP LOOPBACK RUNNING MTU:16436 Metric:1 Das Routing wird auch auf der Ebene des Servers modifiziert (Hinzufügen der table 201 in iproute2). 2. Konfiguration eines privaten Netzwerks zum Zugang auf den Filer Der Zugang zum Filer erfolgt über ein privates Netzwerk vom Typ 192.168.xxx.xxx. Jeder Server verfügt über seine eigene als eth0:0 konfigurierte IP: eth0:0 Link encap:Ethernet HWaddr 00:E0:4C:82:32:3F inet addr:192.168.xxx.xxx Bcast:192.168.xxx.255 Mask:255.255.254.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:19 Base address:0xc000 3. Mounten der gesicherten Partition Der gesicherte Speicherbereich wird auf den Servern per NFS als /home/ha gemountet. Die Datei /etc/fstab enthält eine neue Zeile: 192.168.xxx.xxx:/vol0/Z-xxx-xxx /home/ha nfs rw 0 0 4. Installation der Sonde Um das Prinzip der "High Availability" zu sichern muss das System zur Lastverteilung eine Maschine aus dem Cluster entfernen können wenn diese nicht mehr verfügbar ist. Dazu installieren wir einen Daemon (OCO) auf jedem Server der prüft ob der Server in der Lage ist auf Anfragen zu antworten. Standardmässig prüft OCO nur ob der Port 80 auf HHTP Requests antwortet. Sie können jedoch ganz einfach Skripte hinzufügen die Sie benötigen um speziellere Überprüfungen durchzuführen (prüfen ob PHP korrekt antwortet, ob FTP funktioniert...). Funktionsweise von OCO OCO wird in /usr/local/oco installiert, der Daemon wird automatisch beim Start des Servers per /etc/init.d/oco ausgeführt. Die Skripte zur Überprüfung liegen in den Verzeichnissen: /usr/local/oco/60sec , /usr/local/oco/120sec oder /usr/local/oco/300sec. Diese werden automatisch mit der im Ordnernamen bezeichneten Frequenz ausgeführt. Jedes Skript schreibt eine Datei in das Verzeichnis /usr/local/oco/result. Der Inhalt dieser Datei ist eine Zahl:
Es muss mindestens eine Datei mit Inhalt 200 im Verzeichnis /usr/local/oco/result vorhanden sein damit der Server dem Cluster hinzugefügt wird. Wenn eine oder mehrere Dateien 300 (oder mehr als 300) enthält, dann wird der Server aus dem Cluster entfernt. Wenn mindestens eine Datei eine Änderungszeit grösser als 15 Minuten aufweist wird der Server ebenfalls aus dem Cluster entfernt. Warnung: Wenn Sie die mit OCO gelieferten Prüfskripte modofizieren, dann ändern Sie den Namen der Skripte, da Ihre Änderungen sonst bei einem Update von OCO überschrieben werden würden. 5. Freizugebende Netzwerkströme Wenn Ihr Server mit einer Firewall ausgestattet ist, dann müssen Sie folgendes auf dem Server freigeben:
iptables -A INPUT -s 213.251.164.240 -i eth0 -p tcp -m tcp --dport 79 -j ACCEPT iptables -A INPUT -s 213.251.164.241 -i eth0 -p tcp -m tcp --dport 79 -j ACCEPT iptables -A INPUT -s 213.251.164.242 -i eth0 -p tcp -m tcp --dport 79 -j ACCEPT
iptables -A INPUT -s 192.168.59.2 -i eth0 -j ACCEPT Das Erste was Sie mit Ihrem Cluster machen wollen ist wahrscheinlich die Verteilung der HTTP Anfragen. 1. Verwendung des Filers Damit die Lastverteilung optimal funktioniert müssen Sie die selben Webseiten und die selben Skripte auf allen Servern verwenden. Dazu ist es am einfachsten, den Speicherbereich der in /home/ha gemountet wurde zu verwenden. Kopieren Sie Ihre Seiten nach /home/ha/xxxxx; diese sind dann von jedem Server aus abrufbar. Wenn Sie CGI mit suexec oder suphp verwenden, dann müssen Sie darauf achten dass die users und die uid auf jedem Server identisch sind (und eventuell /etc/passwd modifizieren). Ausserdem muss die Konfigurationsdatei apache httpd.conf modifiziert werden um den korrekten Pfad (/home/ha/yyyy) in den 'DocumentRoot' anzugeben. 2. Verteilung der HTTP Requests Nehmen wir zum Beispiel einen dedizierten Server mit der IP 213.186.33.2, und die fürs Loadbalancing zugewiesene IP ist 213.251.131.8. Die Konfigurationsdatei von Apache httpd.conf muss modifiziert werden:
www.meine_domain.tld A 213.186.33.2 wird zu: www.meine_domain.tld A 213.251.131.8 3. Testen der Lastverteilung vor der Modifikation der DNS und/oder während der Propagation Auf Ihrem Client Rechner (Browser) können Sie temporär die Auflösung einer einer Domain auf die Loadbalancing IP einstellen:
213.251.131.8 www.meine_domain.tld
Windows 95/98/Me : c:windowshosts Windows NT/2000/XP Pro : c:winntsystem32driversetchosts Windows XP Home : c:windowssystem32driversetchosts und fügen Sie folgende Zeile hinzu: 213.251.131.8 www.meine_domain.tld Beschränkungen: Es ist technisch möglich die Pakete die an alle Ports (HTTP:80, SMTP:25, STREAMING...) gerichtet sind zu verteilen. Es ist jedoch nicht möglich, diese Lösung für MySQL (und wahrscheinlich die grosse Mehrheit der Datenbankprogramme) zu verwenden. Diese Limitierung ist Bestandteil der Datenbankprogramme, es ist dann notwendig die Lösungen der Entwickler der Software zu nutzen. |