PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : KVM+Squeeze+Virsh= Falsche Zeit nach Restore



bytesphinx
20.12.10, 21:50
Hi,

ich weiß nicht, ob ich hier im richtigen Forum schreibe, aber ich versuch es mal. Das Internetz, Google und die Forumsuche geben leider null Antwort. Folgendes Szenario:

Ich habe Squeeze (aktuell noch testing) auf einer maschine die Virtualisation unterstützt aufgesetzt. Normale Default installation, keine Extras.
Netzwerkbrücke eingerichtet und dann KVM und Libvirt-bin-Pakete installiert. Mit Virtinstall problemlos in die VM ein Debian-stable installiert. Klappt alles super. Bekommt IP, kann connecten...perfekt.

Damit, falls der Server irgendwann mal runtergefahren werden muß, die VMs nicht crashen, ein Skript geschrieben, dass automatisch vorher per virsh die VMs in eine Datei sichert (save) und wenn der Server wieder neu gestartet wird, lädt es die VMs wieder in den speicher. Läuft wie ne eins.

Problem: Heute server gestartet und VM neu gestartet. Alles läuft. Fahre Server runter, VM wird automatisch gesaved (am automatisch liegts nicht, Problem tritt auch auf, wenn man es von Hand macht).
Morgen Server gestartet, VM wird wieder geladen. Jetzt: Server hat aktuelle Uhrzeit. VM weiß nix davon, hat immernoch Uhrzeit von kurz vor ihrem Save, also von gestern. Dumm

Habe NTP installiert, aber das kann keine Lösung sein.
Clocksource im Guest ist kvm-clock.

Eigentlich will ich keine Sachen im Guest einbauen, die sich um die richtige uhrzeit kümmern, außer vllt NTP, was allerdings erst verzögert merkt, dass die Zeit nicht stimmt. so lang hab ich falsche logfiles. Eigentlich müßte es doch ne Möglichkeit geben die Uhr direkt an die VM durchzuschleifen oder wie auch immer man das dann nennen möchte.

Hat jemand auch so ein Problem? Weiß jemand Rat? Ich wäre sehr dankbar, denn das ist der einzige Haken den das System soweit noch hat, bevor ich anfangen kann, es zu einem Produktivsystem umzurüsten...

Manoman
20.12.10, 23:49
kvm hat -localtime startparameter, k.A. ob und wie es dir hilft
bye

bytesphinx
21.12.10, 13:43
kvm hat -localtime startparameter, k.A. ob und wie es dir hilft
bye

Hi und Danke für die schnelle Antwort. localtime hat mit der Problematik leider nichts zu tun.

Dabei geht es nur darum, die üblicherweise auf GMT stehende Systemzeit von unix/linux servern als zeitzohnenzeit an den Gast weiterzugeben.

Mein problem ist, dass die Zeit nicht geupdatet wird, nachdem ein Guest aus der Pause wieder gestartet wird. Der Gast bekommt weiterhin die Zeitimpulse, zählt aber seinen eigene interne Uhr damit weiter, kapiert also nicht, dass seit der Pause und dem Restore Tage/Wochen/Monate vergangen sein können, sondert zählt einfach weiter ab der Zeit als er in die Pause ging.

Manoman
21.12.10, 15:13
also bei mir ist die hwclock im gast schon richtig, nur die systemzeit des gastes ist falsch, bei debian-lenny als gast


/etc/init.d/hwclock.sh start

biegt das gerade

bytesphinx
22.12.10, 14:30
Hi Manoman,

das kann ich bei mir leider so nicht bestätigen. Ich habe eben den zukünftigen Server wieder hochgefahren, dabei hat er automatisch die alte VM von Disk wieder in den RAM geladen und führt sie problemlos weiter aus (merke: die VM wird dadurch nicht neu gestartet oder hochgefahren).

hwclock --show auf dem server: Mi 22. Dez 2010 15:25:19 CET ...
hwclock --show im gast: Do 16. Dez 06:38:52 CET ...

auch ein neustart von hwclock.sh brachte hier nichts.

Sonst noch eine Idee? Ich denke es liegt an irgendeinem KVM- oder libvirt-Konfigurationsparameter, aber ich weiß nicht welchem.

Manoman
22.12.10, 15:53
und wenn du kvm selber startest? mit -localtime als startparam...
habe hier lenny als host u. gast, 2.6.36.2 host kernel, kvm-0.13 selbst gebaut ohne zusätze, so starte und lade ich eine vm


/usr/local/netd/bin/qemu-system-x86_64 -vnc :1 -m 1024 -k de -name d-1\
-usb -usbdevice tablet -localtime -drive file=d-work-x86.img,boot=on\
-drive media=cdrom -drive media=cdrom -monitor stdio -cpu core2duo\
-smp 2 -loadvm 1

du nimmst kvm und dann die optionen
bye

bytesphinx
25.12.10, 12:21
Die KVM selbst starten ist keine Option, weil sie per libvirt fernwartbar sein muß. Obwohl Localtime nichts mit der Lösung zu tun hat, hat mich das auf den parameter <timer> in der XML-Konfiguration von libvirt gebracht.

Ich habe eine rtc zur <clock>-section im configfile hinzugefügt und die wallclock (kannte ich dahin auch nicht) auf guest gestellt. Jetzt hat der Gast kleine Differenzen von Minuten und bis zu 2h zum Host nach etwa 8 Minuten nach dem Resume durch libvirt ausgeglichen. Ich wollte schon Hurra schreien, habe dann aber gestern den server erstmal wieder runtergefahren und heute, ca 12h später wieder hochgefahren. Das Angleichen der Zeit bliebt jetzt nach sogar einer halben Stunde leider wieder aus.

Die Doku zu libvirt + kvm + xml-konfiguration ist wirklich mehr als bescheiden. rtc funktioniert bei mir nur mit dem parameter delay, merge oder catchup mag er nicht und weist er als "unvalid for rtc" zurück.

Ich bin leider keinen Schritt weiter gekommen :(