Seite 1 von 1

Vms über Script zeitgesteuert nacheinander starten

Verfasst: 25.01.2005, 16:52
von linuxer
Hallo ,

2 Fragen hätte ich mal wieder.
Also ich fahre meine Vms per Script herunter, per scp werden die Dateien kopiert, und dann die Vms wieder gestartet.

Wie ist es über die Kommandozeile möglich, das die Vms zeitgesteuert starten und die nicht alle gleichzeitig (vmware-cmd ...).

Was ist der Unsterschied wenn ich die Maschinen nicht ganz runterfahren würde sondern ein suspend soft machen würde. Ist das nur der Zeitvorteil, also wäre es auch möglich, suspenden,sichern,aufwecken ?!

Gruß
Marco

Verfasst: 26.01.2005, 09:03
von bernyw
Hallo Marco,

ja, das ist recht einfach möglich. Du kannst ein kleines Shellscript schreiben, elches nur eine VM runterfährt.
1 vmware-cmd /home/vmware/server1/server1.vmx stop
2 scp lokaledatei root@remoteserver:/remotefolder
3 vmware-cmd /home/vmware/server1/server1 start

Die Datei mit "chmod 111 dateiname" ausführbar machen und in die Crontab eintragen.
http://www.linuxhilfen.org/befehle/crontab.html

Das gleich kannst Du auch mit Suspend machen. Es geht nur darum, dass das DSK File in einem konsistenten Zustand ist und nicht mehr von VM Ware genutzt wird, das kannst Du über beide Wege bewerkstelligen.

Ich habe es bei unserem Umzug folgendermaßen gemacht.

1 VM über vmware-cmd runterfahren.
2 austauschen der Konfig Datei, damit das DSK File nicht mehr auf persisten steht, sondern auf undoable.
2 VM über vmware-cmd starten
3 scp anstossen
4 VM über vmware-cmd runterfahren
5 REDO Log kopieren
6 austausch der Konfig Datei, damit diese wieder auf persistent stehen
7 VM über vmware-cmd starten
8 REDO Log commiten

Das hat den Vorteil, das man die Downzeit sehr gering hält und man ein absolut aktuelle und konsistente Kopie.

Gruß

Bernd

Verfasst: 26.01.2005, 13:23
von linuxer
Ok soweit, was mich aber brennender interessiert ist wie man die Maschinen zeitgesteuert nacheinander per Script startet. (z.B 3min hintereinander), wie es auch über die Webconsole realisierbar ist.

Gruß

Marco

Verfasst: 26.01.2005, 15:32
von bernyw
Ok. Hier ein ungetester Vorschlag.

for I in /home/vmware/*/*.vmx; do echo $I; vmware-cmd $I start; sleep 180;done

Das sollte in der Theorie funktionieren, wobei Du die Pfade zu Deinen Konfig Dateien anpassen mußt.

Wenn Du es schön machen willst, dann wirst um Perl nicht rumkommen ?

Sag bitte bescheid, ob es funktioniert, bzw. ob dies Deine Frage beantwortet.

Gruß

Bernd

Verfasst: 29.01.2005, 10:37
von Sam.M
Mit folgender Änderung der Schleife sollte es unabhängig von den Pfaden der Config Files funktionieren:

for I in `vmware-cmd -l`;do echo $I; vmware-cmd $I start; sleep 180;done

Sam

Verfasst: 29.01.2005, 11:13
von bernyw
Hi Sam,

coole Idee, aber leider bekomme ich das bei mir nicht zum laufen, da er die Ausgabe des vmware-cmd Befehls nicht in die Variable schreibt, sondern den Befehl selbst.

Gruß

Bernd

Verfasst: 29.01.2005, 14:54
von Sam.M
Hi Bernd,

Du musst die verkehrten einfachen Anführungszeichen verwenden. Umschalttaste und die Taste neben dem ß.

Sam

Verfasst: 29.01.2005, 17:30
von bernyw
Hi Sam,

ich dachte eigentlich das hätte ich getan, aber mein zweiter Versuch war erfolgreich.

Danke für die Verbesserung!

Bernd

Verfasst: 09.02.2005, 19:54
von plan::B
Frage:

Warum machst du das ganze nicht mit addredo, kopierst dann das nicht mer gelockte diskfile (alle ändereungen werden ab dann ins redo file geschrieben) und nach dem kopieren ein commit?

dann bräuchtest du die vms nicht runterzufahren...

Gruss