ESXi Clients sichern
Auf diese Weise ist kein "OnTheFly"-Backup möglich. Die VM-Maschinen müssen während des Backups heruntergefahren (automatisch) werden.
Var. 1: Sicherung via SCP erstellen
Var. 2: Sicherung via Wget und HTTP
Zunächst muss ein ESX3i-Server aufgesetzt und konfiguriert (root-Passwort, Netzwerkeinstellungen, Tastaturlayout) werden.
Anschließend kann mit dem "VMware Infrastructure Client" geprüft werden, ob alles funktioniert (Findet man wenn man die IP
des ESX3i im Browser eingibt...).
1. SSH usw. aktivieren
1.1. Am ESX3i <ALT> & <F1> tippen
1.2. "unsuppoerted" & <Enter> eingeben (es erfolgt dabei keinerlei Anzeige)
1.3. Das root-Passwort eingeben
1.4 Mittels vi die Datei-Konfiguration anpassen:
- vi /etc/inetd.conf & <Enter>
- <i> (um in den insert-Modus zu wechseln, sonst klappt das nicht)
- Mittels <backspace> (die del-Taste funktioniert nicht) die # vor den Zeilen FTP, SSH, login, shell, exec entfernen
- mit <esc> & <:> & <x> & <Enter> vi verlassen
1.5. <reboot> & <Enter> (Neustart des Servers)
2. Mit winscp versuchen auf den ESX3i zu zugreifen und das Zertifikat annehmen, sonst gehts nachher nicht weiter.
3. Einrichten des "VM-Maschinen-Herunterfahren"
3.1. VMware-VIRemoteCLI-3.5.0-104314.exe installieren
3.2. Die Datei vmware-cmd.pl unter C:\Programme\VMWare\VMWare VI Remote CLI\bin bearbeiten, da durch einen Bug das
das Passwort sind nicht in der batch mitgegeben werden kann:
- Vim::login(service_url => $url, user_name => $username, password => "ROOT-PASSWORT");
- if (!defined $password) {
#print "Enter password: ";
if ( $^O eq "MSWin32" ) {
#require Term::ReadKey;
#Term::ReadKey->import(qw(ReadMode));
#Term::ReadKey->import(qw(ReadLine));
#ReadMode('noecho');
#chomp($password = ReadLine(0));
#ReadMode('normal');
}
else {
#system("stty -echo") and die "ERROR: stty failed\n";
#chomp ($password = <STDIN>);
#system("stty echo") and die "ERROR: stty failed\n";
}
#print "\n";
}
Also das Passwort fest eintragen und die Prüfungen auskommentieren (#)
4. Die Eigentliche Datensicherung:
Dasi.bat:
"C:\Programme\VMware\VMware VI Remote CLI\bin\vmware-cmd-psl.pl" -H 10.178.217.26 -U root /vmfs/volumes/datastore/Test/Test.vmx stop
C:\Programme\WinSCP\WinSCP.exe /console /script="C:\DasiESXi.txt"
"C:\Programme\VMware\VMware VI Remote CLI\bin\vmware-cmd-psl.pl" -H 10.178.217.26 -U root /vmfs/volumes/datastore/Test/Test.vmx start
DasiESXi.txt (WinSCP-Skript) Es können natürlich weitere VM-Maschinen gesichert werden:
\# Automatically answer all prompts negatively not to stall
\# the script on errors
option batch on
\# Disable overwrite confirmations that conflict with the previous
option confirm off
\# Connect using a password
open root:PASSWORT@ESX3i-IP
\# Change remote directory
cd /vmfs/volumes/datastore/Test/
\# Force binary mode transfer
option transfer binary
\# Download file to the local directory
get * D:\VM-DASI\Test\
\# Disconnect
close
\# Exit WinSCP
exit
5. Alternativ könnte eine Datensicherung auch lokal auf der ESX3i-Kiste erfolgen -> da schneller als über das Netz.
Dazu ein Skript anstossen mit (plink.exe), dass die Daten lokal kopiert und dann aus dem Sicherungsverzeichnis
auf eine andere Maschine kopieren.
Ich hoffe so ist die Sache einigermassen verständlich!?
Ansonsten Fragen stellen erwünscht.
Natürlich wäre ich auch dankbar, wenn Ihr Verbesserungenvorschläge habt oder etwas einfacher lösen könnt.
Nachtrag:
--------------
Um die Datensicherung zu beschleunigen kann man nun eine weitere Partion in dem ESXi einrichten mit genügend freiem Platz für die VM-Kisten.
Dann kann man die Maschinen herunterfahren (siehe oben) mittels eines Shell-Skripts und der plink.exe (-> google.de) auf der VM-Kiste die Daten auf die zweitte Platte kopieren und die VM-Kisten wieder hochfahren. Bei mir dauert das Ganze für sieben Maschinen ca. 45 Minuten.
Anschließend kann man die Daten dann in Ruhe Mittels WinSCP wegholen während die VM-Kisten wieder laufen.
dasi.sh auf ESXi (BEISPIEL!!!):
rm -rf /vmfs/volumes/Partition2/DASI/Kiste1/*
cp -r /vmfs/volumes/Partition1/Kiste1/ /vmfs/volumes/Partition2/DASI/
Die bat-Datei:
"C:\Programme\VMware\VMware VI Remote CLI\bin\vmware-cmd-psl.pl" -H <EsxiIP> -U root /vmfs/volumes/Partition1/Kiste1/Kiste1.vmx stop
C:\programme\putty\plink.exe -P 22 -ssh This e-mail address is being protected from spambots. You need JavaScript enabled to view it. -pw <Passwort> ". /dasi.sh"
"C:\Programme\VMware\VMware VI Remote CLI\bin\vmware-cmd-psl.pl" -H <EsxiIP> -U root /vmfs/volumes/Partition1/Kiste1/Kiste1.vmx start
rd S:\*
mkdir S:\Kiste1
C:\Programme\WinSCP\WinSCP.exe /console /script="C:\VMWARE\Holen_VMPS1.txt"
Und somit stünde die eine Maschine dann nur ca. 10 Minuten nicht zur Verfügung.
Variante 2:
Alternativ könnte man sich die einzelnen Dateien auch über http mit wget holen. Meine Kommandozeile hierzu lautet:
wget --http-user=vmadmin --http-passwd=xxxxxx "https://192.168.178.112/folder/vmbox/vmbox ...; -O "c:\sicherung\vmbox-flat.vmdk"
Das ist zwar nicht ganz so schnell wie WinSCP, aber erfordert überhaupt keine Änderungen und zusätzlichen Dienste in der Console.
