Benutzerspezifische Werkzeuge
Sie sind hier: Startseite Members ctheune Drehbuch: Das dreckige Dutzend Trick 1: Installation eines Clusters zur Lastverteilung

Trick 1: Installation eines Clusters zur Lastverteilung

von Christian TheuneZuletzt verändert: 01.05.2006 19:09
  • Willkommen zu unserem ersten Trick. Aufgrund hoher Zugriffszahlen werden wir für die Adressverwaltung einen zweiten Server installieren. Wir benutzen dafür den integrierten Zope-Cluster: Zope Enterprise Objects, kurz ZEO.
  • Ich beginne damit den vorhandenen Zope-Server anzuhalten.
  • Mit Hilfe des Skripts "makezeoinstance" erzeuge ich eine ZEO-Server-Konfiguration. Als Parameter gebe ich den Pfad für den neuen ZEO-Server an.
  • Ich verschiebe die Datenbank unseres Zope-Servers in den Datenbereich des ZEO-Servers.
  • Mit dem Skript "zeocontrol" kontrolle ich den ZEO-Server.
  • Der Befehl "start" startet den Server. Mit dem Befehl "logtail" prüfe ich, dass der ZEO-Server korrekt hochgefahren wurde.
  • Den Zope-Server konfiguriere ich so, dass er nicht mehr die lokale Datenbank benutzt, sondern über das Netzwerk die Datenbank des ZEO-Servers anspricht.
  • Dazu bearbeite ich die Datei "etc zopeconf".
  • In der Sektion "zodb" tausche ich die Konfiguration für FileStorage gegen die Konfiguration für einen ZEO-Client aus.
  • Nun starte ich den Zope-Server wieder.
  • Wenn ich jetzt auf die Anwendung zugreife hat sich aus Benutzersicht nichts geändert.
  • Allerdings werden im Hintergrund jetzt sämtliche Daten vom ZEO-Server geladen und beim Speichern an ihn weitergeleitet.
  • Um den ersten Server zu entlasten, richte ich jetzt einen neuen Zope-Server ein. Dazu verwende ich das Skript "makezopeinstance".
  • Das Skript fragt mich nach dem Pfad für den neuen Zope-Server, sowie nach einem Benutzernamen und Administratorpasswort.
  • Die installierten Zusatzprodukte des ersten Zope-Servers kopiere ich aus dem "lib python"-Verzeichnis in das entsprechende Verzeichnis des neuen Zope-Servers.
  • Zusätzlich kopiere ich die Konfiguration der Zusatzprodukte aus "etc package-includes" um die Adressverwaltung auch auf dem neuen Zope-Server zu aktivieren.
  • Zuletzt bearbeite ich die Datei "etc zopeconf". Ich setze den Servernamen auf "server2" und konfiguriere die ZEO-Anbindung. Die ZEO-Konfiguration geschieht genau wie beim ersten Zope-Server.
  • Der zweite Zope-Server ist jetzt einsatzbereit. Beim ersten Start eines Zope-Servers werden die installierten Produkte und Datenbanken initialisiert. Deshalb dauert der erste Start etwas länger als üblich.
  • Über den Servernamen "server2" greife ich auf den neuen Zope-Server zu.
  • Im neuen Server ist das angelegte Adressbuch mit allen eingetragenen Adressen verfügbar und reagiert ohne Unterschiede zum alten Server.
  • Die Benutzer unserer Anwendung können beliebig einen der beiden Server verwenden, da die Daten vom ZEO-Server zentral gespeichert und an alle Zope-Server verteilt werden.
  • Gebe ich eine Adresse auf "server2" ein, ... ist diese Adresse auf "server1" sofort verfügbar.
  • Wir haben in unserem ersten Trick gesehen, wie mit Hilfe von ZEO ein einzelner ausgelasteter Server in kurzer Zeit in einen Cluster mit mehreren Servern verwandelt wird.
  • Im nächsten Trick zeige ich, wie man einen Zope-Server mit einem Skript steuert, um Adressen aus einer externen Datenquelle zu importieren.
  • Nächsten Montag zeige ich, wie man einen Zope-Server mit einem Skript steuert, um Adressen aus einer externen Datenquelle zu importieren.

Tippablauf

  1. Fensterwechsel
  2. bin/zopectl stop
  3. ~/Development/Zope-3.2/bin/mkzeoinstance /home/ctheune/zope/d12-zeo
  4. mv var/Data.fs ../d12-zeo/var
  5. cd ../d12-zeo
  6. bin/zeoctl
  7. start
  8. logtail
  9. 5 Sekunden warten
  10. cd ../d12/
  11. vim etc/zope.conf
  12. Sektion ZODB -> filestorage weg, zeoclient rein, 3 sekunden warten, exit
  13. bin/zopectl start
  14. Fensterwechsel
  15. Seite neu laden, 9 Sekunden warten
  16. Fensterwechsel
  17. ~/Development/Zope-3.2/bin/mkzopeinstance
  18. /home/ctheune/zope/d12-server2
  19. admin
  20. admin
  21. cd ../d12-server2/lib/python
  22. cp -a /home/ctheune/d12/lib/python/d12/ .
  23. 1 Sek warten
  24. cd ../../
  25. cd etc/package-includes
  26. cp /home/ctheune/d12/etc/package-includes/d12* .
  27. 1 Sek warten
  28. cd ../../
  29. vim etc/zope.conf
  30. Name server2,
  31. 1 Sek warten
  32. ZODB-> filestorage weg, clientstorage rein
  33. 2 Sek warten
  34. bin/zopectl fg
  35. warten bis server da
  36. fensterwechsel
  37. browser: server1 durch server2 ersetzen, 1 sek warten, enter
  38. 2 sekunden warten
  39. neue adresse langsam eingeben, 1 sekunde warten
  40. server 2 auf server 1 wechseln