All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 0/7] block-backend: Introduce I/O hang
@ 2020-09-27 13:04 Ying Fang
  2020-09-27 13:04 ` [RFC PATCH 1/7] block-backend: introduce I/O rehandle info Ying Fang
                   ` (9 more replies)
  0 siblings, 10 replies; 13+ messages in thread
From: Ying Fang @ 2020-09-27 13:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: kwolf, Ying Fang, zhang.zhanghailiang, mreitz

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.


Ying Fang (7):
  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 hang drain when disbale
  virtio-blk: disable 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

 block/block-backend.c          | 285 +++++++++++++++++++++++++++++++++
 blockdev.c                     |  11 ++
 hw/block/virtio-blk.c          |   8 +
 include/sysemu/block-backend.h |   5 +
 qapi/block-core.json           |  26 +++
 5 files changed, 335 insertions(+)

-- 
2.23.0



^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2020-09-29  9:49 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-27 13:04 [RFC PATCH 0/7] block-backend: Introduce I/O hang Ying Fang
2020-09-27 13:04 ` [RFC PATCH 1/7] block-backend: introduce I/O rehandle info Ying Fang
2020-09-27 13:04 ` [RFC PATCH 2/7] block-backend: rehandle block aios when EIO Ying Fang
2020-09-27 13:04 ` [RFC PATCH 3/7] block-backend: add I/O hang timeout Ying Fang
2020-09-27 13:04 ` [RFC PATCH 4/7] block-backend: add I/O hang drain when disbale Ying Fang
2020-09-28 15:09   ` Eric Blake
2020-09-27 13:04 ` [RFC PATCH 5/7] virtio-blk: disable I/O hang when resetting Ying Fang
2020-09-27 13:04 ` [RFC PATCH 6/7] qemu-option: add I/O hang timeout option Ying Fang
2020-09-27 13:04 ` [RFC PATCH 7/7] qapi: add I/O hang and I/O hang timeout qapi event Ying Fang
2020-09-27 13:27 ` [RFC PATCH 0/7] block-backend: Introduce I/O hang no-reply
2020-09-27 13:32 ` no-reply
2020-09-28 10:57 ` Kevin Wolf
2020-09-29  9:48   ` cenjiahui

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.