From: Ori Mamluk <omamluk@zerto.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: dlaor@redhat.com, "עודד קדם" <oded@zerto.com>,
"תומר בן אור" <tomer@zertodata.com>,
qemu-devel@nongnu.org, "Yair Kuszpet" <yairk@zerto.com>,
"Paolo Bonzini" <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] [RFC] Replication agent design (was [RFC PATCH] replication agent module)
Date: Wed, 08 Feb 2012 15:28:44 +0200 [thread overview]
Message-ID: <4F32788C.60904@zerto.com> (raw)
In-Reply-To: <4F32489A.80307@redhat.com>
Hi,
Thanks for all the valuable inputs provided so far, I'll try to suggest
a design based on them.
The main inputs were about the use a new transport protocol between
repagent and rephub.
It was suggested to use some standard network storage protocol instead,
and use QMP commands for the control path.
The main idea is to use two NBD connections per protected volume:
NBD tap - protected VM is the client, rephub is the server, used to
report writes.
The tap is not a standard NBD backing - it is for replication,
meaning that its importance is lesser than
the main image path. Errors are not reported to the protected VM as
IO error.
NBD reader - protected VM is the server, rephub is the client, used for
reading the protected volume.
The NBD reader is a generic remote read (can add also write)
capability, probably usable for other various needs.
Actually the reader will probably be more useful as a
reader/writer, but for the agent - only read is required.
Here's a list of the protocol messages from the previous design and how
they're implemented in this design:
Rephub --> Repagent:
* Start protect
Will be done via QMP command.
* Read volume request
Covered by NBD reader
Repagent --> Rephub
* Protected write
Covered by NBD tap
* Report VM volumes
Isn't required in the protocol. I assume the management system
tracks the volumes
* Read Volume Response
Covered by NBD tap
* Agent shutdown
Not covered.
The start protect scenario will look something like:
* User calls start protect for a volume
* Mgmt system (e.g. Rhev) sends QMP command to VM - start protect, with
volume details (path) and a
IP+port number for NBD tap
--> Qemu connects to the NBD tap server
* Mgmt system sends QMP command to VM - start remote reader with volume
details and port number for NBD reader.
--> Qemu starts to listen as an NBD server on that port
Issues:
* As far as I understand, NBD requires socket/port per volume, which the
management system allocates. This is a little cumbersome
The original design had a single server in the rephub - a single
port allocation, and a socket per Qemu.
Appreciate any comments and ideas.
Thanks,
Ori
next prev parent reply other threads:[~2012-02-08 13:29 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-07 10:29 [Qemu-devel] [RFC PATCH] replication agent module Ori Mamluk
2012-02-07 12:12 ` Anthony Liguori
2012-02-07 12:25 ` Dor Laor
2012-02-07 12:30 ` Ori Mamluk
2012-02-07 12:40 ` Anthony Liguori
2012-02-07 14:06 ` Ori Mamluk
2012-02-07 14:40 ` Paolo Bonzini
2012-02-07 14:48 ` Ori Mamluk
2012-02-07 15:47 ` Paolo Bonzini
2012-02-08 6:10 ` Ori Mamluk
2012-02-08 8:49 ` Dor Laor
2012-02-08 11:59 ` Stefan Hajnoczi
2012-02-08 8:55 ` Kevin Wolf
2012-02-08 9:47 ` Ori Mamluk
2012-02-08 10:04 ` Kevin Wolf
2012-02-08 13:28 ` Ori Mamluk [this message]
2012-02-08 14:59 ` [Qemu-devel] [RFC] Replication agent design (was [RFC PATCH] replication agent module) Stefan Hajnoczi
2012-02-08 14:59 ` Stefan Hajnoczi
2012-02-19 13:40 ` Ori Mamluk
2012-02-20 14:32 ` Paolo Bonzini
2012-02-21 9:03 ` [Qemu-devel] BlockDriverState stack and BlockListeners (was: [RFC] Replication agent design) Kevin Wolf
2012-02-21 9:15 ` [Qemu-devel] BlockDriverState stack and BlockListeners Paolo Bonzini
2012-02-21 9:49 ` Kevin Wolf
2012-02-21 10:09 ` Paolo Bonzini
2012-02-21 10:51 ` Kevin Wolf
2012-02-21 11:36 ` Paolo Bonzini
2012-02-21 12:22 ` Stefan Hajnoczi
2012-02-21 12:57 ` Paolo Bonzini
2012-02-21 15:49 ` Markus Armbruster
2012-02-21 13:10 ` Kevin Wolf
2012-02-21 13:21 ` Paolo Bonzini
2012-02-21 15:56 ` Markus Armbruster
2012-02-21 16:04 ` Kevin Wolf
2012-02-21 16:19 ` Markus Armbruster
2012-02-21 16:39 ` Kevin Wolf
2012-02-21 17:16 ` Stefan Hajnoczi
2012-02-21 10:20 ` Ori Mamluk
2012-02-29 8:38 ` Ori Mamluk
2012-03-03 11:46 ` Stefan Hajnoczi
2012-03-04 5:14 ` Ori Mamluk
2012-03-04 8:56 ` Paolo Bonzini
2012-03-05 12:04 ` Stefan Hajnoczi
2012-02-08 11:02 ` [Qemu-devel] [RFC PATCH] replication agent module Stefan Hajnoczi
2012-02-08 13:00 ` [Qemu-devel] [RFC] Replication agent requirements (was [RFC PATCH] replication agent module) Ori Mamluk
2012-02-08 13:30 ` Anthony Liguori
2012-02-08 12:03 ` [Qemu-devel] [RFC PATCH] replication agent module Stefan Hajnoczi
2012-02-08 12:46 ` Paolo Bonzini
2012-02-08 14:39 ` Stefan Hajnoczi
2012-02-08 14:55 ` Paolo Bonzini
2012-02-08 15:07 ` Stefan Hajnoczi
2012-02-07 14:53 ` Kevin Wolf
2012-02-07 15:00 ` Anthony Liguori
2012-02-07 13:34 ` Kevin Wolf
2012-02-07 13:50 ` Stefan Hajnoczi
2012-02-07 13:58 ` Paolo Bonzini
2012-02-07 14:05 ` Paolo Bonzini
2012-02-08 12:17 ` Orit Wasserman
2012-02-07 14:18 ` Ori Mamluk
2012-02-07 14:59 ` Anthony Liguori
2012-02-07 15:20 ` Stefan Hajnoczi
2012-02-07 16:25 ` Anthony Liguori
2012-02-21 16:01 ` Markus Armbruster
2012-02-21 17:31 ` Stefan Hajnoczi
2012-02-07 14:45 ` Ori Mamluk
2012-02-08 12:29 ` Orit Wasserman
2012-02-08 11:45 ` Luiz Capitulino
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=4F32788C.60904@zerto.com \
--to=omamluk@zerto.com \
--cc=dlaor@redhat.com \
--cc=kwolf@redhat.com \
--cc=oded@zerto.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=tomer@zertodata.com \
--cc=yairk@zerto.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 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.