[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 00/11] NBD reconnect
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
Re: [Qemu-devel] [PATCH v3 00/11] NBD reconnect |
Date: |
Tue, 3 Jul 2018 16:46:39 +0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 |
Hi all.
before v4 realization, I'd like to discuss some questions.
Our proposal for v4 is the following:
1. don't reconnect on nbd_open. So, on open we do only one connect
attempt, and if it fails, open fails.
2. don't configure timeout between attempts. instead do the following:
1s timeout, then 2s, then 4, 8, 16, and then always 16 until success
3. configure only time, after disconnect, during which requests are
paused (and after this time, if not connected, they will return EIO). Or
not configure it for now, make a default of 5 minutes.
Any ideas?
09.06.2018 18:32, Vladimir Sementsov-Ogievskiy wrote:
Hi all.
Here is NBD reconnect.
The feature realized inside nbd-client driver and works as follows:
There are two parameters: reconnect-attempts and reconnect-timeout.
So, we will try to reconnect in case of initial connection failed or
in case of connection lost. All current and new io operations will wait
until we make reconnect-attempts tries to reconnect. After this, all
requests will fail with EIO, but we will continue trying to reconnect.
v3:
06: fix build error in function 'nbd_co_send_request':
error: 'i' may be used uninitialized in this function
v2 notes:
Here is v2 of NBD reconnect, but it is very very different from v1, so,
forget about v1.
The series includes my "NBD reconnect: preliminary refactoring", with
changes in 05: leave asserts (Eric).
Vladimir Sementsov-Ogievskiy (11):
block/nbd-client: split channel errors from export errors
block/nbd: move connection code from block/nbd to block/nbd-client
block/nbd-client: split connection from initialization
block/nbd-client: fix nbd_reply_chunk_iter_receive
block/nbd-client: don't check ioc
block/nbd-client: move from quit to state
block/nbd-client: rename read_reply_co to connection_co
block/nbd-client: move connecting to connection_co
block/nbd: add cmdline and qapi parameters for nbd reconnect
block/nbd-client: nbd reconnect
iotests: test nbd reconnect
qapi/block-core.json | 12 +-
block/nbd-client.h | 23 ++-
block/nbd-client.c | 429 ++++++++++++++++++++++++++++++------------
block/nbd.c | 61 +++---
tests/qemu-iotests/220 | 68 +++++++
tests/qemu-iotests/220.out | 7 +
tests/qemu-iotests/group | 1 +
tests/qemu-iotests/iotests.py | 4 +
8 files changed, 445 insertions(+), 160 deletions(-)
create mode 100755 tests/qemu-iotests/220
create mode 100644 tests/qemu-iotests/220.out
--
Best regards,
Vladimir
- Re: [Qemu-devel] [PATCH v3 00/11] NBD reconnect,
Vladimir Sementsov-Ogievskiy <=