From: Jiahui Cen <cenjiahui@huawei.com>
To: <qemu-devel@nongnu.org>, <kwolf@redhat.com>, <mreitz@redhat.com>,
<eblake@redhat.com>
Cc: cenjiahui@huawei.com, zhang.zhanghailiang@huawei.com,
qemu-block@nongnu.org, stefanha@redhat.com, fangying1@huawei.com,
jsnow@redhat.com
Subject: [PATCH v3 0/9] block-backend: Introduce I/O hang
Date: Thu, 22 Oct 2020 21:02:54 +0800 [thread overview]
Message-ID: <20201022130303.1092-1-cenjiahui@huawei.com> (raw)
A VM in the cloud environment may use a virutal disk as the backend storage,
and there are usually filesystems on the virtual block device. When backend
storage is temporarily down, any I/O issued to the virtual block device will
cause an error. For example, an error occurred in ext4 filesystem would make
the filesystem readonly. However a cloud backend storage can be soon recovered.
For example, an IP-SAN may be down due to network failure and will be online
soon after network is recovered. The error in the filesystem may not be
recovered unless a device reattach or system restart. So an I/O rehandle is
in need to implement a self-healing mechanism.
This patch series propose a feature called I/O hang. It can rehandle AIOs
with EIO error without sending error back to guest. From guest's perspective
of view it is just like an IO is hanging and not returned. Guest can get
back running smoothly when I/O is recovred with this feature enabled.
v2->v3:
* Add a doc to describe I/O hang.
v1->v2:
* Rebase to fix compile problems.
* Fix incorrect remove of rehandle list.
* Provide rehandle pause interface.
Jiahui Cen (9):
block-backend: introduce I/O rehandle info
block-backend: rehandle block aios when EIO
block-backend: add I/O hang timeout
block-backend: add I/O rehandle pause/unpause
block-backend: enable I/O hang when timeout is set
virtio-blk: pause I/O hang when resetting
qemu-option: add I/O hang timeout option
qapi: add I/O hang and I/O hang timeout qapi event
docs: add a doc about I/O hang
block/block-backend.c | 300 +++++++++++++++++++++++++++++++++
blockdev.c | 11 ++
docs/io-hang.rst | 45 +++++
hw/block/virtio-blk.c | 8 +
include/sysemu/block-backend.h | 5 +
qapi/block-core.json | 26 +++
6 files changed, 395 insertions(+)
create mode 100644 docs/io-hang.rst
--
2.19.1
next reply other threads:[~2020-10-22 13:08 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-22 13:02 Jiahui Cen [this message]
2020-10-22 13:02 ` [PATCH v3 1/9] block-backend: introduce I/O rehandle info Jiahui Cen
2020-10-22 13:02 ` [PATCH v3 2/9] block-backend: rehandle block aios when EIO Jiahui Cen
2020-10-22 13:02 ` [PATCH v3 3/9] block-backend: add I/O hang timeout Jiahui Cen
2020-10-22 13:02 ` [PATCH v3 4/9] block-backend: add I/O rehandle pause/unpause Jiahui Cen
2020-10-22 13:02 ` [PATCH v3 5/9] block-backend: enable I/O hang when timeout is set Jiahui Cen
2020-10-22 13:03 ` [PATCH v3 6/9] virtio-blk: pause I/O hang when resetting Jiahui Cen
2020-10-22 13:03 ` [PATCH v3 7/9] qemu-option: add I/O hang timeout option Jiahui Cen
2020-10-22 13:03 ` [PATCH v3 8/9] qapi: add I/O hang and I/O hang timeout qapi event Jiahui Cen
2020-10-22 13:03 ` [PATCH v3 9/9] docs: add a doc about I/O hang Jiahui Cen
2020-10-26 16:53 ` [PATCH v3 0/9] block-backend: Introduce " Stefan Hajnoczi
2020-10-29 9:42 ` cenjiahui
2020-10-30 13:21 ` Stefan Hajnoczi
2020-11-03 12:19 ` cenjiahui
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=20201022130303.1092-1-cenjiahui@huawei.com \
--to=cenjiahui@huawei.com \
--cc=eblake@redhat.com \
--cc=fangying1@huawei.com \
--cc=jsnow@redhat.com \
--cc=kwolf@redhat.com \
--cc=mreitz@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
--cc=zhang.zhanghailiang@huawei.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).