From: Kevin Wolf <kwolf@redhat.com>
To: Fiona Ebner <f.ebner@proxmox.com>
Cc: qemu-devel@nongnu.org, qemu-block@nongnu.org, armbru@redhat.com,
eblake@redhat.com, hreitz@redhat.com, vsementsov@yandex-team.ru,
jsnow@redhat.com, den@virtuozzo.com, t.lamprecht@proxmox.com,
alexander.ivanov@virtuozzo.com
Subject: Re: [PATCH v3 0/9] mirror: allow switching from background to active mode
Date: Wed, 25 Oct 2023 17:20:40 +0200 [thread overview]
Message-ID: <ZTkySKEa4Lt5iNc9@redhat.com> (raw)
In-Reply-To: <3d4cfc31-beb9-4b89-b185-13c6e01ede49@proxmox.com>
Am 25.10.2023 um 14:27 hat Fiona Ebner geschrieben:
> Am 23.10.23 um 13:39 schrieb Fiona Ebner:
> > Am 19.10.23 um 15:36 schrieb Kevin Wolf:
> >> Most of this series looks good to me. Apart from the comments I made in
> >> the individual patches, I would like to see iotests coverage of changing
> >> the mirroring mode. At the least to show that the query result changes,
> >> but ideally also that requests really block after switchting to active.
> >> I think with a throttled target node and immediately reading the target
> >> when the write request completes we should be able to check this.
> >>
> >
> > I'll try to work something out for v4.
> >
>
> I'm having a bit of a hard time unfortunately. I created a throttle
> group with
>
> > 'iops-total': iops,
> > 'iops-total-max': iops
I would have throttled only writes, because you need to do a read to
check the target and don't want that one to be throttled until the
writes have completed.
> and used that for the 'throttle' driver for the target. I then tried
> issuing requests via qemu_io
>
> > self.vm.hmp_qemu_io('mirror-top',
> > f'aio_write -P 1 {req_size * i} {req_size * (i + 1)}')
>
> but when I create more requests than the 'iops' limit (to ensure that
> not all are completed immediately), it will get stuck when draining the
> temporary BlockBackend used by qemu_io [0]. Note this is while still in
> background mode.
You should be able to get around this by using an existing named
BlockBackend (created with -drive if=none) instead of a node name.
mirror-top stays at the root of the tree, right?
> I also wanted to have request going on while the copy mode is changed
> and for that, I was able to work around the issue by creating an NBD
> export of the source like in iotest 151 and issuing the requests to the
> NBD socket instead.
>
> But after I switch to active mode and when I issue more than the 'iops'
> limit requests to the NBD export then, it also seems to get stuck,
> visible during shutdown when it tries to close the export[1].
Because the NBD server still throttles the I/O that needs to complete
until QEMU can shut down? If this is a problem, I suppose you can
lift the limit on the NBD server side if you use QSD.
graph-changes-while-io is an example of a test cases that uses QSD.
Kevin
prev parent reply other threads:[~2023-10-25 15:21 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-13 9:21 [PATCH v3 0/9] mirror: allow switching from background to active mode Fiona Ebner
2023-10-13 9:21 ` [PATCH v3 1/9] blockjob: introduce block-job-change QMP command Fiona Ebner
2023-10-18 15:52 ` Kevin Wolf
2023-10-23 9:31 ` Fiona Ebner
2023-10-23 13:42 ` Kevin Wolf
2023-10-13 9:21 ` [PATCH v3 2/9] block/mirror: set actively_synced even after the job is ready Fiona Ebner
2023-10-13 9:21 ` [PATCH v3 3/9] block/mirror: move dirty bitmap to filter Fiona Ebner
2023-10-13 9:21 ` [PATCH v3 4/9] block/mirror: determine copy_to_target only once Fiona Ebner
2023-10-13 9:21 ` [PATCH v3 5/9] mirror: implement mirror_change method Fiona Ebner
2023-10-18 9:38 ` Markus Armbruster
2023-10-18 16:59 ` Kevin Wolf
2023-10-23 11:37 ` Fiona Ebner
2023-10-23 12:59 ` Kevin Wolf
2023-10-23 14:14 ` Fiona Ebner
2023-10-24 11:04 ` Kevin Wolf
2023-10-13 9:21 ` [PATCH v3 6/9] qapi/block-core: use JobType for BlockJobInfo's type Fiona Ebner
2023-10-18 9:37 ` Markus Armbruster
2023-10-13 9:21 ` [PATCH v3 7/9] qapi/block-core: turn BlockJobInfo into a union Fiona Ebner
2023-10-13 9:21 ` [PATCH v3 8/9] blockjob: query driver-specific info via a new 'query' driver method Fiona Ebner
2023-10-13 9:21 ` [PATCH v3 9/9] mirror: return mirror-specific information upon query Fiona Ebner
2023-10-18 9:41 ` [PATCH v3 0/9] mirror: allow switching from background to active mode Markus Armbruster
2023-10-18 9:45 ` Fiona Ebner
2023-11-03 9:37 ` Markus Armbruster
2023-10-19 13:36 ` Kevin Wolf
2023-10-23 11:39 ` Fiona Ebner
2023-10-25 12:27 ` Fiona Ebner
2023-10-25 15:20 ` Kevin Wolf [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZTkySKEa4Lt5iNc9@redhat.com \
--to=kwolf@redhat.com \
--cc=alexander.ivanov@virtuozzo.com \
--cc=armbru@redhat.com \
--cc=den@virtuozzo.com \
--cc=eblake@redhat.com \
--cc=f.ebner@proxmox.com \
--cc=hreitz@redhat.com \
--cc=jsnow@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=t.lamprecht@proxmox.com \
--cc=vsementsov@yandex-team.ru \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.