Die Foren-SW läuft ohne erkennbare Probleme. Sollte doch etwas nicht funktionieren, bitte gerne hier jederzeit melden und wir kümmern uns zeitnah darum. Danke!

Entfernen der Redo Einstellung per Befehlzeile

Hilfe bei Problemen mit Installation & Benutzung des VMware ESX/ESXi Server 3.

Moderatoren: Dayworker, irix

Member
Beiträge: 42
Registriert: 28.04.2005, 12:11

Entfernen der Redo Einstellung per Befehlzeile

Beitragvon SaschaP » 13.09.2005, 11:30

Hallo,

wie kann man per Befehlzeile eine VMware Maschine stoppen, die Festplatte von REDO auf Append setzen und die Maschine wieder starten ?

Gruss Sascha :P

Member
Beiträge: 42
Registriert: 28.04.2005, 12:11

ich habe das wohl schlecht formuliert

Beitragvon SaschaP » 19.09.2005, 15:03

Hallo,

ich habe gesehen, das ich mein Problem ein bischen unglücklich beschrieben habe.

Die virtuelle Disk meines Server ist im "Disk Mode" Append. Ich möchte per Befehlszeile (VMware-cmd, etc) den "Disk Mode" auf Persistent ändern.

Falls jemand die Lösung weiß, danke !
:wink:

Member
Beiträge: 188
Registriert: 02.06.2004, 13:04

Beitragvon Tovaco » 23.09.2005, 10:34

stoppen per vmware-cmd <config-file> stop hard|soft

Config-File per hand editieren.

dann wieder starten...

Member
Beiträge: 42
Registriert: 28.04.2005, 12:11

Beitragvon SaschaP » 27.09.2005, 10:36

Danke Tovaco,

ich habe aber ein Script und hierzu muss ich den Disk Mode per Befehlszeile von "Append" auf "Persistent" und umgekehrt setzen können.

Gibt es dafür wirklich keine Lösung?
Mit der VMware-cmd kann man ja alles mögliche anstellen, dass dürfte doch nur eine Kleinigkeit sein. :lol:

Member
Beiträge: 188
Registriert: 02.06.2004, 13:04

Beitragvon Tovaco » 28.09.2005, 18:15

Das Problem ist, daß der vmware-cmd diese infos nur temporär im Speicher ändert...an dem vmx-File macht der nix.

Du kannst natürlich sowas konstruieren:
cat "/home/vmware/iv3s6727 -TT- Win2003 OSPF/iv3s6727 -TT- Win2003 OSPF.vmx" | sed s/'"undoable"'/'"persistent"'/g > /tmp/bla.vmx

und dann per cp -f das ursprüngliche File überschreiben...

Grüße Thorsten

Member
Beiträge: 87
Registriert: 27.09.2005, 13:25

Beitragvon joe.hidden » 29.09.2005, 11:47

ich habe vor einiger zeit mal zwei perl-scripten gefunden, die genau das gut machen.

hier also des erste, setzt die angegebene maschine in den redoable mode:

----- snip -----

Code: Alles auswählen

#!/usr/bin/perl

use VMware::Control::Server;
use VMware::Control::VM;

$cfg = $ARGV[0];

$server = VMware::Control::Server::new();

$err = $server->connect();
if (!defined($err))
{
   ($errorNumber, $errorString) = $server->get_last_error();
   print "Server connect error: ", $errorString, "\n";
   exit;
}

$vm = VMware::Control::VM::new($server, $cfg);
$err = $vm->connect();
if (!defined($err))
{
   ($errorNumber, $errorString) = $vm->get_last_error();
   print "VM connect error: ", $errorString, "\n";
   exit;
}

$data_file="/tmp/list_running_vms_to_put_in_hot.tmp";
open(DAT,">>$data_file") || die("Could not open file!");

@devices = @{ $vm->get("Status.devices") };
foreach $disk (@devices)
{
   #print "$disk\n";
   if ($disk =~ "ethernet" || $disk !~ ":" || $disk =~ "ide")
   {
   next;
   }
   # Skip the CD-ROM devices
   my $deviceType = $vm->get("Config.$disk.deviceType");
   if ($deviceType eq "atapi-cdrom" || $deviceType eq "cdrom-image")
   {
   next;
   }
   $err = $vm->add_redo($disk);
   if (!defined($err))
   {
   ($errorNumber, $errorString) = $vm->get_last_error();
   print "VM add redo log error: ", $errorString, "\n";
   close(DAT);
   exit;
   }

   print DAT "$cfg $disk\n";
}

close(DAT);

$vm->disconnect();
$server->disconnect();


----- snap ----

obiges script protokolliert in einer temp-file mit welche disks es beharkt hat.

um dann dies wieder zurückzunehmen und die änderungen im redo zu commiten gibts dann das script:

---- snip ----


Code: Alles auswählen

#!/usr/bin/perl

use VMware::Control::Server;
use VMware::Control::VM;

$data_file="/tmp/list_running_vms_to_put_in_hot.tmp";
open(DAT,"$data_file") || die("Could not open file!");

$server = VMware::Control::Server::new();

$err = $server->connect();
if (!defined($err))
{
   ($errorNumber, $errorString) = $server->get_last_error();
   print "Server connect error: ", $errorString, "\n";
   exit;
}

@raw_data=<DAT>;
foreach $pair (@raw_data)
{
   chop($pair);
   ($cfg,$disk)=split(/\ /,$pair);

   $vm = VMware::Control::VM::new($server, $cfg);
   $err = $vm->connect();
   if (!defined($err))
   {
      ($errorNumber, $errorString) = $vm->get_last_error();
      print "VM connect error: ", $errorString, "\n";
      exit;
   }

   print "\n";
   print "Committing disk $disk on $cfg\n";
   $err = $vm->commit($disk, 0, 0, 1);
   if (!defined($err))
   {
      ($errorNumber, $errorString) = $vm->get_last_error();
      print "VM commit error: ", $errorString, "\n";
      $vm->disconnect();
      exit;
   }

   print "Disk $disk on $cfg is committed\n";
   print "\n";
   $vm->disconnect();

}

$server->disconnect();


--- snap ----

leider hab ich keine ahnung mehr wo ich das script gefunden habe, würde den author gerne refernzieren. wenns einer weiss, bitte kurze nachricht.

ich nutzte diese scripte um vor einem "hot" backup einer laufenden VM die plattenfiles in einen statischen zustand zu bringen und hnterher wieder in den normalbetreib zu bringen.

VIEL ERFOLG


Zurück zu „ESX 3 & ESXi 3“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste