Einführung
Ich arbeite in einer Firma, wo wir laufen viele Batch-Jobs Verarbeitung von Millionen von Datensätzen der Daten jeden Tag und ich habe vor kurzem Nachdenken über all die Maschinen, um jeden zu sitzen und jeden Tag nichts zu tun für mehrere Stunden. Wäre es nicht gut, wenn wir diese Maschinen benutzen konnte, um die Rechenleistung der Systeme zu stärken? In dieser Reihe von Artikeln werde ich auf die potenziellen Vorteile der Verwendung eines Büro-Look Gitter mit virtualisierten Umgebungen.
In Teil 2 haben wir uns die Arbeitsplätze einen Server ausgeführt wird, und wie Arbeitsplätze sollten so konfiguriert werden, um größte Menge der Verarbeitung gleichzeitig sicherzustellen, dass jeder Auftrag ohne Fehler verarbeitet zu erreichen.
Einrichten des Arbeitnehmers - oder LIMP-Server
Der nächste Schritt in diesem Prozess ist die Einrichtung Ihrer virtuellen Arbeiter. Aus diesem werde ich eine Installation von CentOS mit VirtualBox nutzen. Ich werde zu installieren mySQL und PHP auf dem Server, der auch als ein Hinken (Li nux, m ySQL, P HP) Servera (ich kann aus diesen Namen bis sein) bekannt.
- Installieren von VirtualBox auf Ihrem Windows-Rechner (Link folgen)
- Downloaden und installieren Sie CentOS (aktuelle Version 5.3) in einem erstellte virtuelle Maschine
Es macht keinen Sinn mich werde diesen gibt es wahrscheinlich 1000 's der großen Tutorials gibt (ok, hier ist einer: Erstellen und Managing CentOS virtuelle Maschine unter VirtualBox ). Der wichtige Punkt zu beachten, Ich nehme an, dass ich meine virtuelle Maschine GridMachine genannt.
Soweit meine Entscheidungen der Virtualisierung Client und Betriebssystem zu gehen gibt es keine großen zwingenden Grund für jede Wahl. VirtualBox ist etwas, das ich den Einsatz auf meinem Rechner zu Hause und wird von den drei großen Betriebssystemen unterstützt. Ich entschied mich für CentOS als eine gute stabile OS und ich benutze es auf meinem eigenen Web-Server. Ich bin ein großer Anhänger in die richtigen Werkzeuge für den Job (obwohl ich die Anwendung bin "die schnellste und einfachste für Sie"-Mentalität hier), so dass, wenn Betriebssystem X läuft der Code schneller und effizienter, dass stattdessen:)
Wichtig ist sicher, dass Ihr VM DHCP verwendet, ansonsten für jeden neuen virtuellen Maschine müsste separat konfiguriert werden, die wir so nicht want.By nicht über DHCP brauchen wir nicht zu Netzwerk-Einstellungen individuell konfigurieren für Arbeiter Maschinen, wird DHCP Hand out IPs für Sie. Daher können Sie Ihre virtuelle Maschine über das Büro, ohne sich Gedanken über die Einstellung jedes up (das verbessert die Skalierbarkeit und reduziert die Arbeiter Verwaltung) zu kopieren.
Der Prozess, den Sie erreichen wollen sollte wäre es, einen neuen physischen Maschine zu erhalten, installieren Sie VirtualBox und dann ziemlich viel Einsatz das virtuelle Bild ohne viel anderes. Es könnte sinnvoll sein, alle Ihre Mitarbeiter in einem anderen Subnetz Setup so, dass Sie mindestens sehen, wie viele Maschinen laufen. Außerdem benötigen Sie, um Ihre Maschinen auf einem Erbpacht-oder unbegrenzten Lease DHCP.
Wie Jobs auf den Arbeiter laufen
Dies ist ein interessantes Gebiet und es gibt mehrere gültige Methoden für die Verarbeitung von Jobs auf den Arbeiter. Hier werde ich nur diskutieren die beiden auf der Hand:
- Ständig laufende Skript: Ein Skript, sei es ein Shell-Skript oder ein PHP-Skript wird einmal auf den Arbeiter ausgeführt und wird als Teil einer unendlichen Schleife. Ich habe diese Methode als eine Absturz des Skripts abgezinst und möglicherweise Ihre Mitarbeiter werden nicht mehr ohne irgendeine Art von Intervention führen.
- Cron basiertes Skript-Ausführung: alle X Minuten die cron-Daemon startet einen Aufruf an das Skript um Dinge geht. Ohne eine Prüfung könnte dies zu viele, viele Kopien Ihrer Mitarbeiter script läuft führen.
Meine Entscheidung war es, mit cron die angepfiffen ein Shell-Skript alle 10 minutes. My Shell-Skript führt die folgenden Aufgaben gehen:
- Holen Sie sich ein Prozess-Liste und grep dies für 'php'. Wenn nicht gefunden, dann fortsetzen.
- Rufen Sie Ihre Job-Code, in meinem Fall wäre dies etwas PHP basieren
- Worker-Skript beendet seinen Lauf
- Ready to go wieder auf die nächste gewünschte Anruf
Meine Bash-Skript sieht ungefähr wie folgt aus:
#! / Bin / sh
wenn ps ax | grep-v grep | grep php> / dev / null
dann
echo "Job gerade bearbeitet, Ausfahrt"
sonst
echo "Job nicht läuft, jetzt beginnen"
php yourJobProcessingScript.php
fi Hinweis: das Echo ist fast völlig sinnlos, sondern kann die nächste Person, die zusammen kommt, um zu versuchen und zu bearbeiten ihnen zu helfen.
Damit ist die Einrichtung des Arbeitnehmers virtuellen Maschine, schnelle, einfache und leicht zu jedem neuen Stück Hardware, das empfangen zu kopieren. Die "Klugheit" des Netzes ist wirklich nicht in der visualisierten OS, seine alle mit dem Code erstellt, um Arbeitsplätze, die Job-Konfiguration und in dafür sorgen, dass die Arbeit bei Bedarf läuft (dh, wenn der Host inaktiv ist Prozess zu tun ).
Einrichten von Windows zu Workers initialisieren
Die erste Aufgabe ist die Erarbeitung der Befehl erforderlich, um die virtuelle Maschine aus der Windows-Kommandozeile ausgeführt werden. Wenn Sie VirtualBox in der Standard-Speicherort installiert haben und Sie haben Ihre Mitarbeiter GridMachine benannt dann den Befehl Berechnungen Ihre Arbeitnehmer:
"C: \ Program Files \ Sun \ VirtualBox \ VBoxManage.exe" startvm GridMachine
Allerdings, um das Skript in eine "kopflose" Zustand, den wir verwenden müssen ausgeführt werden:
"C: \ Program Files \ Sun \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - VRDP = off
Dadurch wird die virtuelle Maschine ohne GUI zu starten und ermöglichen es, festzustellen, anmutig zu speichern. Das zweite Argument schaltet RDP so dass es keinen Konflikt mit Windows RDP, oder geben Sie eine Meldung über lauscht auf Port 3389 ein. Der Name der virtuellen Maschine ist Groß-und Kleinschreibung!
Als nächstes müssen wir Fenster einzurichten, um kick off unserer Arbeiter VM, wenn die Maschine im Leerlauf war. Um dies zu tun (unter Windows XP) müssen Sie auf Start gehen -> Alle Programme -> Zubehör -> Systemprogramme -> Geplante Tasks wie folgt:
Anschließend klicken Sie auf "Geplanten Task hinzufügen" durchsuchen, um ein benutzerdefiniertes Programm add gefolgt. Navigieren Sie zu Ihrem VBoxManage Skript, und klicken Sie auf OK. Planen Sie Ihre Aufgabe für eine der Optionen (wir werden das in einer Minute ändern) und weiter. Nach dem Überspringen der nächsten Bildschirmfenster werden Sie fragen, wer Ihnen diese Aufgabe ausführen möchten, würde ich vorschlagen, entweder 'Administrator' oder Erstellen eines neuen privilegierter Benutzer. Denken Sie daran, wir wollen nicht mit den Standard-Personal-Account auf der Maschine zu jedem Zeitpunkt eingreifen. Klicken Sie auf Weiter und überprüfen show advanced options für diese Aufgabe.
Um das Ende des Laufs Textfeld hinzuzufügen unser "startvm GridMachine 'string und sicherzustellen, dass nur ausgeführt, wenn eingeloggt ist links unticked. Besuchen Sie den Zeitplan Aufgabe nächsten und den Zeitplan ändern Drop-Down, um die Option "im Leerlauf", wählen Sie die Zeit, die dir die Maschine zu sein, bevor er zur nächsten Registerkarte im Leerlauf hatte.
Schließlich deaktivieren Sie die Option, die Aufgabe beenden, wenn es läuft schon X Zeitspanne Staaten, aber die Möglichkeit, die Aufgabe zu stoppen ankreuzen, wenn die Maschine nicht mehr im Leerlauf.
Das war es dann für die Windows-Host-Setup!
Zusammenfassung
In diesem Teil haben wir eine virtuelle Maschine als Arbeitnehmer, als auch die Art und Weise, in der wir aufrufen und ausführen unserer Job-Verarbeitung Skripte (für mich ein PHP-Skript) fungieren können. Von hier aus schauen wir uns, wie Sie unsere Kopien von Windows zu starten der virtuellen Maschine in kopflosen Modus, wenn der Computer im Leerlauf befindet, und speichern ihren Zustand, wenn der Benutzer wieder Verwendung der Maschine. Hoffentlich an dieser Stelle die Sie sehen, wie einfach es ist, richten Sie ein solches System und sind Juckreiz, um einige Experimente gehen Sie selbst!
Nächstes Mal
In Teil 4 werden wir im Umgang mit Werkzeugen, um sicherzustellen, dass Sie die aktuellste Version des Codes und Datenquellen, so dass erzielten Ergebnisse sind immer up-to-date mit den neuesten Geschäftsinformationen und Logik zu suchen.