Zhan Adlun
2019-Mar-03 03:23 UTC
[libvirt-users] virsh hangs when backup jobs run on the kvm host
Hi,
Has anyone met the same problem that virsh hangs when there are some backup
jobs running on the kvm host? I use dirty bitmap supported by qemu to do backups
every 6 minitues. About a few hours later, I ran 'virsh list', It hung.
Then I stopped the backup jobs ?nothing was getting better. I had checked the
libvirt logs ?but found nothing useful .
Maybe the high I/O caused the problem? or there are connection number limits
when using virsh, because I use virsh to check the backup jobs are still running
every 10 seconds?
My os version is ' Ubuntu 12.04 LTS Release: 12.04 Codename:
precise,Linux version 4.1.0-generic (gcc version 4.6.3 (Ubuntu/Linaro
4.6.3-1ubuntu5) ) #1 SMP Wed Nov 9 02:04:23 CST 2016'. KVM version is
'QEMU emulator version 2.7.1(Debian 1:2.7+dfsg-3)'. Hoping for you
reply. Thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://listman.redhat.com/archives/libvirt-users/attachments/20190303/0e7d0eee/attachment.htm>
Michal Prívozník
2019-Mar-06 15:26 UTC
[libvirt-users] virsh hangs when backup jobs run on the kvm host
On 3/3/19 4:23 AM, Zhan Adlun wrote:> Hi, > Has anyone met the same problem that virsh hangs when there are some backup jobs running on the kvm host? I use dirty bitmap supported by qemu to do backups every 6 minitues. About a few hours later, I ran 'virsh list', It hung. Then I stopped the backup jobs ?nothing was getting better. I had checked the libvirt logs ?but found nothing useful . > Maybe the high I/O caused the problem? or there are connection number limits when using virsh, because I use virsh to check the backup jobs are still running every 10 seconds? > My os version is ' Ubuntu 12.04 LTS Release: 12.04 Codename: precise,Linux version 4.1.0-generic (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #1 SMP Wed Nov 9 02:04:23 CST 2016'. KVM version is 'QEMU emulator version 2.7.1(Debian 1:2.7+dfsg-3)'. Hoping for you reply. Thanks!This sounds like a deadlock. If you can attach gdb to libvirtd once virsh hangs and run 't a a bt' and share the output, that'd be great. Michal
Eric Blake
2019-Mar-06 15:43 UTC
[libvirt-users] virsh hangs when backup jobs run on the kvm host
On 3/2/19 9:23 PM, Zhan Adlun wrote:> Hi, > Has anyone met the same problem that virsh hangs when there are some backup jobs running on the kvm host? I use dirty bitmap supported by qemu to do backups every 6 minitues. About a few hours later, I ran 'virsh list', It hung. Then I stopped the backup jobs ?nothing was getting better. I had checked the libvirt logs ?but found nothing useful .How are you using dirty bitmaps? As my new virDomainBackupBegin() API has not landed yet, I suspect you are using virQemuMonitorCommand() (virsh qemu-monitor-command) backdoors, which is explicitly unsupported (that is, if it breaks, you get to debug it - it exists for development work, and while 'query-*' QMP commands should be safe, commands that alter qemu state such as kicking off a backup job may break libvirt expectations), and which is WHY I'm trying to get incremental backup API officially supported. A precise sequence of commands that you issued in order to reproduce the virsh hang may be useful in debugging this.> Maybe the high I/O caused the problem? or there are connection number limits when using virsh, because I use virsh to check the backup jobs are still running every 10 seconds? > My os version is ' Ubuntu 12.04 LTS Release: 12.04 Codename: precise,Linux version 4.1.0-generic (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #1 SMP Wed Nov 9 02:04:23 CST 2016'. KVM version is 'QEMU emulator version 2.7.1(Debian 1:2.7+dfsg-3)'. Hoping for you reply. Thanks!Hmm, my incremental backup API will require qemu 4.0; there have been a number of fixes in the qemu bitmap tracking that have landed since qemu 2.7.1. It could also be that you've hit an actual qemu bug where the QMP monitor has gone unresponsive. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: OpenPGP digital signature URL: <http://listman.redhat.com/archives/libvirt-users/attachments/20190306/76bdc143/attachment.sig>
Zhan Adlun
2019-Mar-07 02:17 UTC
[libvirt-users] 回复: Re: virsh hangs when backup jobs run on the kvm host
Actually,I use the backdoors as you have mentioned. I use 'virsh
qemu-monitor-command' to submit backup jobs and use 'virsh
qemu-monitor-event DOMAIN --timestamp --loop' to monitor the jobs through
the QMP protocol.
for example :
to do a full backup
virsh qemu-monitor-command DOMAIN --pretty { "execute":
"transaction",
"arguments": {
"actions": [
{"type": "block-dirty-bitmap-add",
"data": {"node": "drive0",
"name": "bitmap0"} },
{"type": "drive-backup",
"data": {"device": "drive0",
"target": "/path/to/full_backup.img",
"sync": "full", "format":
"qcow2"} }
]
}
}
refer to https://wiki.qemu.org/Features/IncrementalBackup
Unfortunately, the minitor process 'virsh qemu-monitor-event DOMAIN
--timestamp --loop' was failed to be killed. A few hours later ,there were
hundreds of monitor processes running(about 200-300), whice caused the
'virsh list' hung. After I have killed the processes, 'virsh
list' works well.
________________________________
zhanhouliang@outlook.com
发件人: Eric Blake<mailto:eblake@redhat.com>
发送时间: 2019-03-06 23:43
收件人: Zhan Adlun<mailto:zhanhouliang@outlook.com>;
libvirt-users@redhat.com<mailto:libvirt-users@redhat.com>
主题: Re: [libvirt-users] virsh hangs when backup jobs run on the kvm host
On 3/2/19 9:23 PM, Zhan Adlun wrote:> Hi,
> Has anyone met the same problem that virsh hangs when there are some
backup jobs running on the kvm host? I use dirty bitmap supported by qemu to do
backups every 6 minitues. About a few hours later, I ran 'virsh list',
It hung. Then I stopped the backup jobs ,nothing was getting better. I had
checked the libvirt logs ,but found nothing useful .
How are you using dirty bitmaps? As my new virDomainBackupBegin() API
has not landed yet, I suspect you are using virQemuMonitorCommand()
(virsh qemu-monitor-command) backdoors, which is explicitly unsupported
(that is, if it breaks, you get to debug it - it exists for development
work, and while 'query-*' QMP commands should be safe, commands that
alter qemu state such as kicking off a backup job may break libvirt
expectations), and which is WHY I'm trying to get incremental backup API
officially supported.
A precise sequence of commands that you issued in order to reproduce the
virsh hang may be useful in debugging this.
> Maybe the high I/O caused the problem? or there are connection number
limits when using virsh, because I use virsh to check the backup jobs are still
running every 10 seconds?
> My os version is ' Ubuntu 12.04 LTS Release: 12.04 Codename:
precise,Linux version 4.1.0-generic (gcc version 4.6.3 (Ubuntu/Linaro
4.6.3-1ubuntu5) ) #1 SMP Wed Nov 9 02:04:23 CST 2016'. KVM version is
'QEMU emulator version 2.7.1(Debian 1:2.7+dfsg-3)'. Hoping for you
reply. Thanks!
Hmm, my incremental backup API will require qemu 4.0; there have been a
number of fixes in the qemu bitmap tracking that have landed since qemu
2.7.1. It could also be that you've hit an actual qemu bug where the QMP
monitor has gone unresponsive.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org