[libvirt] Block-migrate
Ruben Kerkhof
ruben at rubenkerkhof.com
Wed Aug 11 12:22:54 UTC 2010
Hi Daniel,
On Wed, Aug 11, 2010 at 14:16, Daniel P. Berrange <berrange at redhat.com> wrote:
> On Sat, Aug 07, 2010 at 03:55:10PM +0200, Ruben Kerkhof wrote:
>> I've been playing with the new block-migrate feature, but am unable to
>> get it to work.
>>
>> [root at src ~]# virsh migrate --live --p2p --tunnelled
>> --copy-storage-all 4c5c75b9-decc-41c9-9296-20ca5bd5c355
>> qemu://dst/system
>> error: Unknown failure
>>
>> /var/log/libvirt/qemu/4c5c75b9-decc-41c9-9296-20ca5bd5c355.log on the
>> destination host shows:
>>
>> bind(unix:/var/run/libvirt/qemu/qemu.tunnelmigrate.dest.4c5c75b9-decc-41c9-9296-20ca5bd5c355):
>> Permission denied
>> Migration failed. Exit code
>> unix:/var/run/libvirt/qemu/qemu.tunnelmigrate.dest.4c5c75b9-decc-41c9-9296-20ca5bd5c355(-22),
>> exiting
>>
>> It seems that qemu is not able to write to that location.
>>
>> [root at dst qemu]# ls -ld /var/run/libvirt/qemu/
>> drwx------. 2 root root 4096 Aug 7 15:40 /var/run/libvirt/qemu/
>>
>> As a workaround I gave qemu write permission, and now the block migrate starts.
>
> Did the disk image files exist on the target before migration started ?
> If not, then this is going to be falling foul of our security drivers
> which prevent QEMU creating new files itself.
I'm working with raw lvs and created them on the destination before
starting the migration.
> Also, a straw poll of people at the KVM forum yesterday determined that no
> one had ever got block migration to work, so it might be just broken in
> QEMU
>
> Daniel
Actually, I've got it working now, with the --direct option and the
--p2p --direct option.
The tunneled method fails though. I'm trying to debug this now.
The first thing which strikes me as odd is in the
qemuMonitorTextMigrate function:
1173 if (qemuMonitorCommand(mon, cmd, &info) < 0) {
(gdb) p cmd
$4 = 0x7fffdc0e6ef0 "migrate -d
-b\"unix:/var/run/libvirt/qemu/qemu.tunnelmigrate.src.4c5c75b9-decc-41c9-9296-20ca5bd5c355\""
(gdb) n
1180 if (strstr(info, "fail") != NULL) {
(gdb) n
1181 qemuReportError(VIR_ERR_OPERATION_FAILED,
(gdb) p info
$5 = 0x7fffe8001210 "migration failed\r\n"
Not sure if there's supposed to be a space between the migrate and the
-d option, and no space after the -b.
Regards,
Ruben
More information about the libvir-list
mailing list