Skip to contentSkip to conversation

scripted migration (without Alt-Ctrl-2 / qemu-monitor) - possible?

DISCUSSION Tomasz Chmielewski 4 participants 6 messages Apr 5, 2007 4 messages not in the archive KVM

lore
Share & tools
lore
#0 lore raw

Is it possible to do a migration (or any other maintenance, like stopping a guest VM) without qemu-monitor / Alt-Ctrl-2?

For those using Xen, it would be similar to a command line "xm" which migrates a guest/domain to a different host - just SSH to your server (or use it in a script etc.), and do:

xm migrate <Domain> <Host>

Similarly, lots of other actions are possible, like pausing, rebooting, shutting down, saving, restoring etc.

The idea of having to "alt-ctrl-2 on the SDL window" does seem a bit incompatible with CLI, doesn't it?

Signature · 8 lines
Tomasz Chmielewski
http://wpkg.org

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

A message that is not in the archive (sent off-list or not yet received): 4614CA6B.2030303-Nem3ZqsbT/[email protected]

#2 lore raw
Quoted 11 lines · Tomasz Chmielewski

Is it possible to do a migration (or any other maintenance, like stopping a guest VM) without qemu-monitor / Alt-Ctrl-2?

For those using Xen, it would be similar to a command line "xm" which migrates a guest/domain to a different host - just SSH to your server (or use it in a script etc.), and do:

xm migrate <Domain> <Host>

Quoted 8 lines

Similarly, lots of other actions are possible, like pausing, rebooting, shutting down, saving, restoring etc.

The idea of having to "alt-ctrl-2 on the SDL window" does seem a bit incompatible with CLI, doesn't it?

Look up the qemu -monitor option. This allows you to redirect the qemu console anywhere you like, including stdio, pipes, tcp sockets, etc. It's wonderfully flexible.

Signature · 8 lines
error compiling committee.c: too many arguments to function


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

A message that is not in the archive (sent off-list or not yet received): 4614CED8.20209-atKUWr5tajBWk0Htik3J/[email protected]

#4 lore raw
Quoted 16 lines · Avi Kivity
Quoted 15 lines · Tomasz Chmielewski

Is it possible to do a migration (or any other maintenance, like stopping a guest VM) without qemu-monitor / Alt-Ctrl-2?

For those using Xen, it would be similar to a command line "xm" which migrates a guest/domain to a different host - just SSH to your server (or use it in a script etc.), and do:

xm migrate <Domain> <Host>

Similarly, lots of other actions are possible, like pausing, rebooting, shutting down, saving, restoring etc.

Quoted 8 lines
Quoted 4 lines

The idea of having to "alt-ctrl-2 on the SDL window" does seem a bit incompatible with CLI, doesn't it?

Look up the qemu -monitor option. This allows you to redirect the qemu console anywhere you like, including stdio, pipes, tcp sockets, etc. It's wonderfully flexible.

All right - so I see it belongs more to qemu documentation than KVM's (+/- KVM extensions like migration etc.).

Not as easy to use and intuitive as "xm" - some instruction here, as Qemu's "-monitor dev" documentation seems a bit incomplete as it mentions only "vc" and "stdio":

1. Make a /tmp/guest socket; then start a guest

qemu (...) -monitor unix:/tmp/quest,server,nowait

2. Show qemu-monitor's help:

echo 'help' | socat - unix-connect:/tmp/quest

The things get more complicated if you run multiple quests - you have to keep track of the pipes etc.

Certainly, it is possible to write a powerful backend to that - as you say, if it supports tcp sockets, it would be even possible to support multiple KVM/qemu servers with one program or a script - something that Xen's "xm" can't easily do.

Are there any ready solutions for that? Or the wheel still waits to be invented?

Signature · 9 lines
Tomasz Chmielewski
http://wpkg.org


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

A message that is not in the archive (sent off-list or not yet received): 4614DB87.2060705-Nem3ZqsbT/[email protected]

#6 lore raw
Quoted 5 lines · Tomasz Chmielewski
Quoted 4 lines

Look up the qemu -monitor option. This allows you to redirect the qemu console anywhere you like, including stdio, pipes, tcp sockets, etc. It's wonderfully flexible.

Quoted 7 lines

All right - so I see it belongs more to qemu documentation than KVM's (+/- KVM extensions like migration etc.).

Not as easy to use and intuitive as "xm" - some instruction here, as Qemu's "-monitor dev" documentation seems a bit incomplete as it mentions only "vc" and "stdio":

The various device options are documented under '-serial'.

Quoted 16 lines

1. Make a /tmp/guest socket; then start a guest

qemu (...) -monitor unix:/tmp/quest,server,nowait

2. Show qemu-monitor's help:

echo 'help' | socat - unix-connect:/tmp/quest

The things get more complicated if you run multiple quests - you have to keep track of the pipes etc.

Quoted 10 lines

Certainly, it is possible to write a powerful backend to that - as you say, if it supports tcp sockets, it would be even possible to support multiple KVM/qemu servers with one program or a script - something that Xen's "xm" can't easily do.

Are there any ready solutions for that? Or the wheel still waits to be invented?

http://libvirt.org/

Signature · 8 lines
error compiling committee.c: too many arguments to function


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

A message that is not in the archive (sent off-list or not yet received): 4614DE0E.3070803-atKUWr5tajBWk0Htik3J/[email protected]

#8 lore raw
Quoted 10 lines
Quoted 10 lines

1. Make a /tmp/guest socket; then start a guest

qemu (...) -monitor unix:/tmp/quest,server,nowait

2. Show qemu-monitor's help:

echo 'help' | socat - unix-connect:/tmp/quest

You can also try with a tcp device and telnet it.

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

#9 lore raw
In reply to a message not in the archive
Quoted 23 lines · Avi Kivity
Quoted 11 lines · Tomasz Chmielewski

Is it possible to do a migration (or any other maintenance, like stopping a guest VM) without qemu-monitor / Alt-Ctrl-2?

For those using Xen, it would be similar to a command line "xm" which migrates a guest/domain to a different host - just SSH to your server (or use it in a script etc.), and do:

xm migrate <Domain> <Host>

Quoted 9 lines

Similarly, lots of other actions are possible, like pausing, rebooting, shutting down, saving, restoring etc.

The idea of having to "alt-ctrl-2 on the SDL window" does seem a bit incompatible with CLI, doesn't it?

Quoted 4 lines

Look up the qemu -monitor option. This allows you to redirect the qemu console anywhere you like, including stdio, pipes, tcp sockets, etc. It's wonderfully flexible.

A nice trick is to redirect the monitor to a unix socket and then use:

echo 'migrate ssh://foo' | socat stdio unix:/path/to/socket

It's pretty easy to write a small program that lets you execute monitor commands externally. I've got a patch in my queue that adds a standard convention for monitor socket paths based on a guest "name" with the idea that you could write something very similar to xm. Just have to figure out how to address some of the lingering issues with it (mostly, how to clean things up reliably on exit).

Regards,

Anthony Liguori

Regards,

Anthony Liguori

Quoted 2 lines

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV