All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jinpu Wang <jinpu.wang@cloud.ionos.com>
To: Jack Wang <jinpuwang@gmail.com>
Cc: linux-block@vger.kernel.org, linux-rdma@vger.kernel.org,
	Jens Axboe <axboe@kernel.dk>,
	Christoph Hellwig <hch@infradead.org>,
	Sagi Grimberg <sagi@grimberg.me>,
	Bart Van Assche <bvanassche@acm.org>,
	Leon Romanovsky <leon@kernel.org>,
	Doug Ledford <dledford@redhat.com>,
	Jason Gunthorpe <jgg@ziepe.ca>,
	Danil Kipnis <danil.kipnis@cloud.ionos.com>,
	Roman Penyaev <rpenyaev@suse.de>
Subject: Re: [PATCH v8 00/25] RTRS (former IBTRS) RDMA Transport Library and RNBD (former IBNBD) RDMA Network Block Device
Date: Fri, 24 Jan 2020 21:54:49 +0100	[thread overview]
Message-ID: <CAMGffEnKMZ1=KeEjTgm2K-JdMkfQnVHCNHCU+HtzzW6SjOUD9Q@mail.gmail.com> (raw)
In-Reply-To: <20200124204753.13154-1-jinpuwang@gmail.com>

On Fri, Jan 24, 2020 at 9:47 PM Jack Wang <jinpuwang@gmail.com> wrote:
>
> Hi all,
>
> Here is v8 of  the RTRS (former IBTRS) RDMA Transport Library and the
> corresponding RNBD (former IBNBD) RDMA Network Block Device, which includes
> changes to address comments from the community.
>
> Introduction
> -------------
>
> RTRS (RDMA Transport) is a reliable high speed transport library
> which allows for establishing connection between client and server
> machines via RDMA. It is based on RDMA-CM, so expect also to support RoCE
> and iWARP, but we mainly tested in IB environment. It is optimized to
> transfer (read/write) IO blocks in the sense that it follows the BIO
> semantics of providing the possibility to either write data from a
> scatter-gather list to the remote side or to request ("read") data
> transfer from the remote side into a given set of buffers.
>
> RTRS is multipath capable and provides I/O fail-over and load-balancing
> functionality, i.e. in RTRS terminology, an RTRS path is a set of RDMA
> connections and particular path is selected according to the load-balancing
> policy. It can be used for other components beside RNBD.
>
> Module parameter always_invalidate is introduced for the security problem
> discussed in LPC RDMA MC 2019. When always_invalidate=Y, on the server side we
> invalidate each rdma buffer before we hand it over to RNBD server and
> then pass it to the block layer. A new rkey is generated and registered for the
> buffer after it returns back from the block layer and RNBD server.
> The new rkey is sent back to the client along with the IO result.
> The procedure is the default behaviour of the driver. This invalidation and
> registration on each IO causes performance drop of up to 20%. A user of the
> driver may choose to load the modules with this mechanism switched off
> (always_invalidate=N), if he understands and can take the risk of a malicious
> client being able to corrupt memory of a server it is connected to. This might
> be a reasonable option in a scenario where all the clients and all the servers
> are located within a secure datacenter.
>
> RNBD (RDMA Network Block Device) is a pair of kernel modules
> (client and server) that allow for remote access of a block device on
> the server over RTRS protocol. After being mapped, the remote block
> devices can be accessed on the client side as local block devices.
> Internally RNBD uses RTRS as an RDMA transport library.
>
> Commits for kernel can be found here:
>    https://github.com/ionos-enterprise/ibnbd/commits/linux-5.5-rc6-ibnbd-v7
Sorry, forgot to update the link:
https://github.com/ionos-enterprise/ibnbd/tree/linux-5.5-rc7-ibnbd-v8

  parent reply	other threads:[~2020-01-24 20:55 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-24 20:47 [PATCH v8 00/25] RTRS (former IBTRS) RDMA Transport Library and RNBD (former IBNBD) RDMA Network Block Device Jack Wang
2020-01-24 20:47 ` [PATCH v8 01/25] sysfs: export sysfs_remove_file_self() Jack Wang
2020-01-24 20:47 ` [PATCH v8 02/25] RDMA/rtrs: public interface header to establish RDMA connections Jack Wang
2020-01-24 20:47 ` [PATCH v8 03/25] RDMA/rtrs: private headers with rtrs protocol structs and helpers Jack Wang
2020-01-24 20:47 ` [PATCH v8 04/25] RDMA/rtrs: core: lib functions shared between client and server modules Jack Wang
2020-01-24 20:47 ` [PATCH v8 05/25] RDMA/rtrs: client: private header with client structs and functions Jack Wang
2020-01-24 20:47 ` [PATCH v8 06/25] RDMA/rtrs: client: main functionality Jack Wang
2020-01-24 20:47 ` [PATCH v8 07/25] RDMA/rtrs: client: statistics functions Jack Wang
2020-01-24 20:47 ` [PATCH v8 08/25] RDMA/rtrs: client: sysfs interface functions Jack Wang
2020-01-24 20:47 ` [PATCH v8 09/25] RDMA/rtrs: server: private header with server structs and functions Jack Wang
2020-01-24 20:47 ` [PATCH v8 10/25] RDMA/rtrs: server: main functionality Jack Wang
2020-01-24 20:47 ` [PATCH v8 11/25] RDMA/rtrs: server: statistics functions Jack Wang
2020-01-24 20:47 ` [PATCH v8 12/25] RDMA/rtrs: server: sysfs interface functions Jack Wang
2020-01-24 20:47 ` [PATCH v8 13/25] RDMA/rtrs: include client and server modules into kernel compilation Jack Wang
2020-01-24 20:47 ` [PATCH v8 14/25] RDMA/rtrs: a bit of documentation Jack Wang
2020-01-24 20:47 ` [PATCH v8 15/25] block/rnbd: private headers with rnbd protocol structs and helpers Jack Wang
2020-01-24 20:47 ` [PATCH v8 16/25] block/rnbd: client: private header with client structs and functions Jack Wang
2020-01-24 20:47 ` [PATCH v8 17/25] block/rnbd: client: main functionality Jack Wang
2020-01-24 20:47 ` [PATCH v8 18/25] block/rnbd: client: sysfs interface functions Jack Wang
2020-01-24 20:47 ` [PATCH v8 19/25] block/rnbd: server: private header with server structs and functions Jack Wang
2020-01-24 20:47 ` [PATCH v8 20/25] block/rnbd: server: main functionality Jack Wang
2020-01-24 20:47 ` [PATCH v8 21/25] block/rnbd: server: functionality for IO submission to file or block dev Jack Wang
2020-01-24 20:47 ` [PATCH v8 22/25] block/rnbd: server: sysfs interface functions Jack Wang
2020-01-24 20:47 ` [PATCH v8 23/25] block/rnbd: include client and server modules into kernel compilation Jack Wang
2020-01-24 20:47 ` [PATCH v8 24/25] block/rnbd: a bit of documentation Jack Wang
2020-01-24 20:47 ` [PATCH v8 25/25] MAINTAINERS: Add maintainers for RNBD/RTRS modules Jack Wang
2020-01-24 20:54 ` Jinpu Wang [this message]
2020-01-31 16:50 ` [PATCH v8 00/25] RTRS (former IBTRS) RDMA Transport Library and RNBD (former IBNBD) RDMA Network Block Device Danil Kipnis
2020-01-31 16:54   ` Jason Gunthorpe
2020-01-31 17:04     ` Jens Axboe
2020-01-31 17:28       ` Jinpu Wang
2020-01-31 17:49         ` Jens Axboe
2020-02-06 15:12           ` Jinpu Wang
2020-02-19  0:24             ` Jason Gunthorpe
2020-02-19  4:26               ` Bart Van Assche
2020-02-19  6:19               ` Leon Romanovsky
2020-02-21 10:50                 ` Jinpu Wang
2020-03-01  3:12           ` Bart Van Assche
2020-01-31 17:49       ` Jason Gunthorpe
2020-01-31 17:51         ` Jens Axboe

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='CAMGffEnKMZ1=KeEjTgm2K-JdMkfQnVHCNHCU+HtzzW6SjOUD9Q@mail.gmail.com' \
    --to=jinpu.wang@cloud.ionos.com \
    --cc=axboe@kernel.dk \
    --cc=bvanassche@acm.org \
    --cc=danil.kipnis@cloud.ionos.com \
    --cc=dledford@redhat.com \
    --cc=hch@infradead.org \
    --cc=jgg@ziepe.ca \
    --cc=jinpuwang@gmail.com \
    --cc=leon@kernel.org \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=rpenyaev@suse.de \
    --cc=sagi@grimberg.me \
    /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.