Re: Is there a way to "suspend" a VE? [message #13577 is a reply to message #13558] |
Wed, 30 May 2007 10:47   |
Andrey Mirkin
Messages: 193 Registered: May 2006
|
Senior Member |
|
|
kingneutron wrote on Tue, 29 May 2007 20:04 |
--If you can send a SIGSTOP equivalent to a running VE, and not have it crash due to I/O waits, this could be useful. i.e.:
o It stops processing events RIGHTNOW,
o Outstanding writes are SYNCed,
o Its filesystem is still mounted,
o It shows up in vzlist as "run-suspended", and
o What it was doing can be resumed immediately.
|
It is possible just to freeze processes without writing their state to image file:
vzctl chkpnt VEID --suspend
and resume it later:
vzctl chkpnt VEID --resume
After suspend you can take snapshot of processes state:
vzctl chkpnt VEID --dump --dumpfile=PATH
Also after suspend you can just kill your VE:
As you can see "chkpnt" command is equal to sequential execution of 3 subcommands: --suspend, --dump and --kill.
Quote: |
--Equivalent to hitting ^Z (SIGSTOP) at the Bash prompt, so you can list jobs, issue "fg" and "bg" (could also resume with reduced-priority), etc. With a debugger attached to the VE, you could also look at what's it's doing at a deeper level (/proc and such like ' vzctl exec ' should still respond); but that's beyond my scope.
|
You will be able to see list of processes after you did "vzctl chkpnt VEID --suspend", but you won't be able to debug them, as all VE processes will be in the same state - they will be in kernel's refrigerator() function.
Andrey Mirkin
|
|
|