Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Permanente Zeitabweichung mit Gentoo als VBox-Guest
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
Jimini
Guru
Guru


Joined: 31 Oct 2006
Posts: 590
Location: Germany

PostPosted: Tue Mar 22, 2011 7:01 pm    Post subject: Permanente Zeitabweichung mit Gentoo als VBox-Guest Reply with quote

Aloha,
ich habe mehrere VMs aufgesetzt. Host- als auch Gastsystem sind Gentoo. Eine der VMs hat nun das Problem, dass die Zeit permanent falsch geht, der Grad der Abweichung variiert dabei. Mal sind es sechs Minuten, nach einem Reboot dann acht Minuten, nach einem weiteren Reboot drei Minuten. Auf allen drei VMs sind die virtualbox-guest-additions installiert. Ich bootete die VM, deren Uhr falsch geht, testweise von der Gentoo-Install-CD, hier ging die Uhr dann um genau eine Stunde vor, was ich auf die Zeitzone schiebe. Es liegt also nicht an der VM, sondern an der Gentoo-Installation.

NTP ist auf keinem der Systeme installiert, das Syncen sollten eigentlich die Guest Additions übernehmen (die Uhrzeit auf dem Host ist korrekt).
Starte ich die Guest Additions von Hand, werden folgende Zeilen geloggt:
Quote:
[2011-03-22 19:55:08] debug kern kernel [11232.970060] vboxguest: Successfully loaded version 3.2.12 (interface 0x00010004)
[2011-03-22 19:55:08] warning kern kernel [11232.986952] vboxsf: Unknown symbol utf32_to_utf8 (err 0)
[2011-03-22 19:55:08] warning kern kernel [11232.986997] vboxsf: Unknown symbol load_nls (err 0)
[2011-03-22 19:55:08] warning kern kernel [11232.988168] vboxsf: Unknown symbol utf8_to_utf32 (err 0)
[2011-03-22 19:55:08] warning kern kernel [11232.988655] vboxsf: Unknown symbol unload_nls (err 0)

Das tritt allerdings auch auf einem System auf, dessen Zeit stimmt.

Nächste Anlaufstelle war /etc/conf.d/clock:
Quote:
CLOCK="UTC"
TIMEZONE="Europe/Berlin"
CLOCK_OPTS=""
CLOCK_SYSTOHC="yes"
SRM="no"
ARC="no"

Auch diese Datei unterscheidet sich nicht von dem Exemplar auf den beiden anderen VMs.

Die Konfiguration der VMs habe ich verglichen, hier unterscheiden sich nur Name, MAC-Adressen - der übliche Kram eben.

Ich glaube, dass das Problem auftritt, seit ich heute morgen versehentlich die Mountoptionen für / auf zwei VMs auf nosuid, noexec und nodev setzte, was ich erst beim nächsten Reboot bemerkte. Ich behob den Fehler, indem ich von der Install-CD bootete, die Systeme scheinen jetzt - bis auf die Zeit beim einen System - auch wieder fehlerfrei zu laufen.

Bisher kenne ich nur die üblichen Probleme, was die Uhrzeit angeht - also dass beispielsweise eine falsche Zeitzone eingestellt ist; hier handelt es sich aber um Minuten. Was könnte mir da noch dazwischenschießen?

MfG Jimini

Edit: kleine Offtopic-Frage - ist es irgendwie möglich, die Module der Guest Additions zu nutzen, wenn man einen Kernel ohne Modul-Support laufen hat? Also die Module irgendwie fest einzubetten? Es wurmt mich ein bisschen, wenn ich nur wegen den Guest Additions generell das Laden von Modulen ermöglichen muss.
_________________
"The most merciful thing in the world, I think, is the inability of the human mind to correlate all its contents." (H.P. Lovecraft: The Call of Cthulhu)


Last edited by Jimini on Fri Mar 25, 2011 12:08 pm; edited 2 times in total
Back to top
View user's profile Send private message
Jimini
Guru
Guru


Joined: 31 Oct 2006
Posts: 590
Location: Germany

PostPosted: Wed Mar 23, 2011 6:11 pm    Post subject: Reply with quote

Ich konnte das Problem partout nicht finden und hatte jetzt auch keinen Bock mehr, noch länger zu suchen, also habe ich das Image der einwandfrei laufenden VM geklont und angepasst. Jetzt laufen alle Uhren wieder genau.

MfG Jimini
_________________
"The most merciful thing in the world, I think, is the inability of the human mind to correlate all its contents." (H.P. Lovecraft: The Call of Cthulhu)
Back to top
View user's profile Send private message
Jimini
Guru
Guru


Joined: 31 Oct 2006
Posts: 590
Location: Germany

PostPosted: Fri Mar 25, 2011 12:08 pm    Post subject: Reply with quote

...oder auch nicht. Nachdem das komplette System rund einen halben Tag ausgeschaltet war, geht die Uhr einer VM 2 Sekunden nach, auch nach mehreren Reboots. Die Guest Additions laufen.

Any ideas? So langsam nervt mich der Hickhack, es kann ja wohl nicht so schwer sein, 3 VMs mit korrekt gehenden Uhren laufen zu haben, ohne gleich die ganze NTP-Maschinerie in Gang setzen zu müssen...

MfG Jimini
_________________
"The most merciful thing in the world, I think, is the inability of the human mind to correlate all its contents." (H.P. Lovecraft: The Call of Cthulhu)
Back to top
View user's profile Send private message
Beforegod
Bodhisattva
Bodhisattva


Joined: 10 Apr 2002
Posts: 1493
Location: Frankfurt/Main

PostPosted: Fri Mar 25, 2011 2:19 pm    Post subject: Reply with quote

Gibt es für die VM Spezifische Parameter.

- CPU
- RAM
- IO-APIC
- VM-T
- Nested Paging

?
Back to top
View user's profile Send private message
Josef.95
Advocate
Advocate


Joined: 03 Sep 2007
Posts: 3626
Location: Germany

PostPosted: Fri Mar 25, 2011 7:43 pm    Post subject: Reply with quote

Hmm.., mit NTP in einer VM wäre ich eher vorsichtig.
Siehe zb die Kommentare aus diesem Blog --> VirtualBox Guest Additions und die Zeit
Back to top
View user's profile Send private message
schmutzfinger
Veteran
Veteran


Joined: 26 Oct 2003
Posts: 1287
Location: Dresden/Germany

PostPosted: Fri Mar 25, 2011 8:24 pm    Post subject: Reply with quote

Das Uhren in VMs driften ist ganz normal. Ein Betriebssystem programmiert normalerweise ein Timer-Gerät um regelmässig (Linux CONFIG_HZ) oder zu bestimmten Zeitpunkten (Linux CONFIG_NO_IDLE_HZ) von der Hardware einen Interrupt zu bekommen. Dabei geht es davon aus, dass diese Interrupts auch zum festgelegten Zeitpunkt ankommen. Ausserdem kann ein OS die CPU auch fragen, wie viele Instruktionen sie bisher ausgeführt hat. Anhand der Taktfrequenz der CPU kann man dann auch eine Zeitspanne zwischen zwei Messpunkten errechnen.
In einer VM sind die Timer-Geräte üblicherweise emuliert und liefern die Interrupts nicht mit der gewünschten Frequenz aus. Und die CPU wird mit dem Host und anderen VMs geteilt. Der Instruktions-Zähler der CPU kann also auch nicht als Grundlage für eine genaue Uhr verwendet werden. Der Gast kann sehen, dass Zeit vergangen ist. Aber in der Zeit lief eventuell eine andere VM oder der Host.

Wenn deine VMs Internet-Zugang haben dann würde ich einfach auf ntp zurückgreifen und einen ntp-Server aus dem Internet verwenden. Wenn sie keinen Internetzugang haben dann ist es vielleicht eine gute Idee auf dem Host einen ntp-Server laufen zu lassen.

In der Dokumentation von Vbox gibt es auch ein Kapitel zur Synchronisation mit Hilfe der guest additions
http://www.virtualbox.org/manual/ch09.html#id419820
Dort sind auch noch andere Möglichkeiten beschrieben. Zum Beispiel die Anpassung des Instruktions-Zählers (TSC) entsprechend der Erwartungen des Gastes.

In Linux kann man einstellen, welche Methode zur Zeitmessung verwendet werden soll.
Siehe dazu /sys/devices/system/clocksource/clocksource*/.
Du kannst dir dabei die Datei available_clocksource mit cat angucken und einen der Werte dann mit echo in current_clocksource schreiben.
zB:
Code:

echo hpet > /sys/devices/system/clocksource/clocksource0/current_clocksource

Was du da zur Auswahl hast hängt von deinem Kernel ab. "hpet" wäre für eine VM mit hoher Wahrscheinlichkeit ungünstig und würde zu einem starken Driften führen.
"tsc" zusammen mit "VBoxInternal/TM/TSCTiedToExecution" könnte hingegen eine ziemlich stabile Variante sein. Wobei diese Anpassung viel Arbeit für VBox und damit entsprechend overhead bedeuted.

Je besser die Quelle für die Zeitmessung desto seltener muss man synchronisieren. Ich würde dir raten einfach oft zu synchronisieren. Entweder mit ntp oder mit VBox.
Back to top
View user's profile Send private message
schmutzfinger
Veteran
Veteran


Joined: 26 Oct 2003
Posts: 1287
Location: Dresden/Germany

PostPosted: Fri Mar 25, 2011 8:31 pm    Post subject: Reply with quote

Josef.95 wrote:
Hmm.., mit NTP in einer VM wäre ich eher vorsichtig.


Dieser Blog-Eintrag hat mit dem Thema nix zu tun.
In einer VM einen ntp-Server laufen zu lassen ist ... naja Schwachsinn. Ein ntp-Server muss eine "gute" Uhr haben und wird von clients mit "schlechten" Uhren verwendet. In die VM gehört der client, der die "guten" Atomuhren aus dem Internet benutzt.
Back to top
View user's profile Send private message
Josef.95
Advocate
Advocate


Joined: 03 Sep 2007
Posts: 3626
Location: Germany

PostPosted: Fri Mar 25, 2011 10:27 pm    Post subject: Reply with quote

@schmutzfinger
Danke für deine ausführliche Erklärung zum Thema.
Thumbs up
Back to top
View user's profile Send private message
Hanisch
Apprentice
Apprentice


Joined: 21 Mar 2011
Posts: 186

PostPosted: Sat Mar 26, 2011 9:29 am    Post subject: Reply with quote

Hallo,
ich hänge mich hier mal mit rein. Auch meine Uhr im Gentoo-Gast läuft immer einige Sekunden hinterher.
Das aber ist nicht mein Problem, sondern siehe meinen Thread "Guest Additions installieren", wo es einfach nicht gelingt, die GuestAdditions zu installieren.
Da Ihr ja alle die GuestAdditions installiert habt, könnt Ihr mir vielleicht mitteilen, wie das geht (Bitte im Thread "Guest Additions installieren").
Danke.

Gruß
Ch. Hanisch
Back to top
View user's profile Send private message
Jimini
Guru
Guru


Joined: 31 Oct 2006
Posts: 590
Location: Germany

PostPosted: Sat Mar 26, 2011 6:22 pm    Post subject: Reply with quote

Beforegod wrote:
Gibt es für die VM Spezifische Parameter.

- CPU
- RAM
- IO-APIC
- VM-T
- Nested Paging

?


Natürlich - aber da z.B. beim Booten von der Install-CD die Uhr um genau eine Stunde falsch ging, schiebe ich den schwarzen Peter dem Betriebssystem und nicht der VM zu. Zudem haben alle drei VMs die gleichen Parameter (von Festplattenimage, MAC-Adresse und VRDP-Port mal abgesehen).
Hier die Parameter:
VM1:
http://nopaste.info/8b4442486c.html
VM2:
http://nopaste.info/90c72245d6.html

Zuerst machte VM2 Zicken, also klonte ich das Image von VM1 und passte es entsprechend an. Dann machte auf einmal VM1 Probleme.

@ schmutzfinger: zunächst einmal danke für den ausführlichen Beitrag. Ich würde bei den VMs gerne komplett auf NTP verzichten - wie du schon schreibst, ist das theoretisch (und eigentlich auch praktisch) unnötig, da die Guest Additions das übernehmen können - im Supportchannel von VirtualBox riet man mir auch davon ab, NTP in einer VM zu nutzen.
Zudem hatte ich generell große Probleme, die Zeitsynchronisation mittels NTP hinzubekommen - es nervt, wenn beim Booten des Hosts die VMs "fortgesetzt" werden, die Uhr um beispielsweise 7 Stunden falsch geht, NTP aber nicht synct. Daher versprach ich mir sehr viel von den Guest Additions - auch wenn ich hierbei leider das Laden von Modulen erlauben muss.
Meine VMs verwenden als Methode übrigens "TSC".
Den Link werde ich mir mal zu Gemüte führen, besten Dank!

MfG Jimini

Edit: ach ja, bevor jetzt jemand den Fehler sucht - momentan laufen die Uhren korrekt.
_________________
"The most merciful thing in the world, I think, is the inability of the human mind to correlate all its contents." (H.P. Lovecraft: The Call of Cthulhu)
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum