OpenVZ V-Server lässt sich nicht neustarten

oliverk

New Member
Hallo,

ich habe vorhin aus Testgründen einen neuen Server mit Debian 6.0 (64Bit) zusammen mit OpenVZ (042stab072.10) angelegt. Funktioniert auch alles einwandfrei. Einziges Problem: Die V-Server lassen sich aus dem Container heraus nicht neu starten. Ich muss immer über das Hostsystem den V-Server wieder starten.

Verwendet wird bei dem V-Server auch Debian 6.0 (64Bit).

Hatte jemand schon mal das selbe Problem und kann mir da evtl. weiterhelfen?

Ich danke schon mal im Voraus!
 
Mit Debian hat OpenVZ bei uns nie geklappt und es wird auch von der OpenVZ Community empfohlen, kein Debian dafür zu verwenden, sondern eher RedHat basierte Systeme wie z.B. CentOS..
 
Damit hatte ich bis jetzt auch nie Probleme.
Es ist jetzt das erste mal, dass überhaupt mal ein Problem entstanden ist. Eine Lösung habe ich aber immer noch nicht.
 
Starten kann ich sie ja, aber nicht neu starten.

Ich melde mich per SSH an und gebe "shutdown now -r" ein. Er stoppt mit der Meldung, dass er rebootet, aber danach startet er nicht mehr. Auch "reboot" ändert nichts daran. Ich kann ihn erst wieder über das Hostsystem mit "vzctl start CTID" starten.<

Ich habe mittlerweile die selbe Zusammenstellung mittels des VMware-Players nachgestellt und dort besteht das Problem nicht. Nun bin ich umso mehr verwirrt. Es wurden der gleiche Kernel genutzt und ebenso das selbe Template für den Container.
 
Last edited by a moderator:
VZ legt in dem Container ein Init-Script an, dass beim Reboot die Datei /reboot erzeugt. "shutdown -r" oder "reboot" fahren der Container runter und er bleibt aus Hostsystemsicht gemountet "liegen".
Auf dem Hostsystem läuft ein Cronjob aller 5 Minuten, der prüft ob die Datei /vz/root/<VEID>/reboot vorhanden ist und startet den Container im erfolgsfalle.

Du solltest also mal schauen ob die Datei eventuell fehlt oder der Cronjob nicht läuft.

Für alle die meckern, dass ihr vServer (bei irgendeinem Hoster) zu lange braucht für einen Reboot, dann liegt das recht oft eben genau an diesem Cronjob.
 
Cronjob existiert nicht. Aber ist das nicht auch eine veraltete Methode?
Auf meinem Testsystem im VMWare-Player existiert auch kein Cronjob und dort startet der Server sofort wieder neu.
 
OpenVZ nutzt idr einen Cronjob, der unter /var/log/cron.d/vpsrestart liegen sollte. Dazu kommt noch ein init-script, welches in der VE selbst liegt und bei einem Reboot eine Datei "reboot" unter / anlegt.

Ich nutze hier selbst ein CentOS 5 mit OpenVZ und habe beides nicht. Vermutlich ein Bug in den RHEL Paketen von OpenVZ.
 
OpenVZ nutzt idr einen Cronjob, der unter /var/log/cron.d/vpsrestart liegen sollte.

Der Jobauftrag liegt unter "/etc/vz/cron/vz". Sofern OVZ gestartet wird, wird diese Datei nach "/etc/cron.d/vz" kopiert, sodass diese dann vom crond auch abgearbeitet wird.
 
@wstuermer
Ich zitiere mal die OpenVZ Doku von SWSoft

When you issue the reboot command at your Linux box console, the command makes the
reboot system call with argument ‘restart’, which is passed to the computer BIOS. The
Linux kernel then reboots the computer. For obvious reasons this system call is blocked inside
Virtual Private Servers: no Virtual Private Server can access BIOS directly; otherwise, a reboot
inside a VPS would reboot the whole Hardware Node. That is why the reboot command
inside a VPS actually works in a different way. On executing the reboot command inside a
VPS, the VPS is stopped and then started by a special script (/etc/sysconfig/vzscripts/vpsreboot) which is executed periodically (every minute by default) by the cron
daemon. Cron configuration to run the script is in the file /etc/cron.d/vpsreboot.
If you want a Virtual Private Server to be unable to initiate reboot itself, add the
ALLOWREBOOT=”no” line to the Virtual Private Server configuration file
(/etc/sysconfig/vz-scripts/vps_id.conf). If you want to have VPS reboot
disabled by default and want to specify explicitly which Virtual Private Servers are allowed to
reboot, add the ALLOWREBOOT=”no” line to the OpenVZ global configuration file
(/etc/sysconfig/vz) and explicitly specify ALLOWREBOOT=”yes” in the corresponding
Virtual Private Server configuration files.

Weißt du zufällig in welchem Paket das enthalten ist? Wenn ich auf einem Debian Squeeze nach Dateien innerhalb der Pakete suche finde ich weder ein vz noch ein vps Skript.
 
Last edited by a moderator:
@wstuermer
Ich zitiere mal die OpenVZ Doku von SWSoft

Dann bitte auch mit Quellenverlinkung. Spontan würde ich sagen, dass der Auszug aus der Virtuozzo-Dokumentation stammt. Dennoch erklärt der Auszug nicht, woher du deinen Glauben nimmst, dass der relevante Cronjob "/var/log/cron.d/vpsrestart" heißt.

Edit:
Code:
 [13:36:25] kerneloops:~# apt-file search vpsreboot
vzctl: /usr/share/vzctl/scripts/vpsreboot

Und die Vermutung im vorherigen Satz ziehe ich zurück. Hatte da eine Zeile überlesen. Ändert aber nix dran, dass eine Quellenverlinkung dann nett wäre ;)
 
Last edited by a moderator:
Danke für die Verlinkung der Doku.
Kurz zum Hintergrund: SWSoft gibt es seit Dezember 2007 nicht mehr. Siehe: http://www.parallels.com/news/id,7402

Der cronjob itself heißt übrigens "vereboot". Das Script in der Crondatei heißt "vpsreboot".

Das ist bei mir auf einem Ubuntu Lucid mit selbst gepatchtem OpenVZ Kernel ;)
 
Komisch. Das scheint bei dem neueren Kernel nicht mehr über einen Cronjob zu laufen. Denn wenn ich auf meinem Testsystem (VMware Player) einen Container intern neu starte, dann geschieht das sofort ohne, dass ich warten muss.

var/log/vzctl.log zeichnet bei mir nur die letzten Befehle über vzctl auf.
 
Im Container wird eine "fastboot" Datei erstellt. Vielleicht hilft das weiter?

Fastboot hat soweit ich weiß nichts mit dem reboot, sondern viel mehr mit dem Starten der VE zu tun.

Welche VZ Version nutzt du denn?

Nachtrag:
Habe gerade mal OpenVZ auf einem frischen CentOS 6 installiert und dabei das gefunden:
"/usr/libexec/vzctl/scripts/vzevent-reboot"
Code:
#!/bin/sh
I=1
while vzctl --quiet status $VEID | fgrep -w running; do
        sleep $I
        I=$((I+1))
        test $I -gt 10 && exit 1
done

vzctl --quiet start $VEID

Die Datei scheint wohl jetzt dafür zuständig zu sein die Container zu rebooten. Wann die allerdings aufgerufen wird weiß ich nicht. Unter CentOS 5 exisitert die übrigens auch.
 
Last edited by a moderator:
OpenVZ-Kernel: 042stab072.10
vzctl-version: 4.1.2
ploop-version: 1.6
vzquota-version: 3.1
Betriebssystem: Debian 6.0

Auf einem Testsystem funktioniert alles. Doch auf meinem dediziertem Rootserver nicht. Aber beide Systeme sind praktisch identisch.
 
Back
Top