All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nitesh Shetty <nj.shetty@samsung.com>
To: Ming Lei <ming.lei@redhat.com>
Cc: "Hans Holmberg" <Hans.Holmberg@wdc.com>,
	"linux-block@vger.kernel.org" <linux-block@vger.kernel.org>,
	"Matias Bjørling" <Matias.Bjorling@wdc.com>,
	"Damien Le Moal" <Damien.LeMoal@wdc.com>,
	"Dennis Maisenbacher" <dennis.maisenbacher@wdc.com>,
	"Ajay Joshi" <Ajay.Joshi@wdc.com>,
	"Jørgen Hansen" <Jorgen.Hansen@wdc.com>,
	"andreas@metaspace.dk" <andreas@metaspace.dk>,
	"javier@javigon.com" <javier@javigon.com>,
	"slava@dubeyko.com" <slava@dubeyko.com>,
	"kbusch@kernel.org" <kbusch@kernel.org>,
	"hans@owltronix.com" <hans@owltronix.com>,
	"mcgrof@kernel.org" <mcgrof@kernel.org>,
	"guokuankuan@bytedance.com" <guokuankuan@bytedance.com>,
	"viacheslav.dubeyko@bytedance.com"
	<viacheslav.dubeyko@bytedance.com>, "hch@lst.de" <hch@lst.de>
Subject: Re: [LSF/MM/BPF BoF]: A host FTL for zoned block devices using UBLK
Date: Tue, 7 Feb 2023 16:01:41 +0530	[thread overview]
Message-ID: <20230207103141.GC27856@green5> (raw)
In-Reply-To: <Y+D3Sy8v3taelXvF@T590>

[-- Attachment #1: Type: text/plain, Size: 3313 bytes --]

On Mon, Feb 06, 2023 at 08:49:15PM +0800, Ming Lei wrote:
> On Mon, Feb 06, 2023 at 10:00:20AM +0000, Hans Holmberg wrote:
> > I think we're missing a flexible way of routing random-ish
> > write workloads on to zoned storage devices. Implementing a UBLK
> > target for this would be a great way to provide zoned storage
> > benefits to a range of use cases. Creating UBLK target would
> > enable us experiment and move fast, and when we arrive
> > at a common, reasonably stable, solution we could move this into
> > the kernel.
> 
> Yeah, UBLK provides one easy way for fast prototype.
> 
> > 
> > We do have dm-zoned [3]in the kernel, but it requires a bounce
> > on conventional zones for non-sequential writes, resulting in a write
> > amplification of 2x (which is not optimal for flash).
> > 
> > Fully random workloads make little sense to store on ZBDs as a
> > host FTL could not be expected to do better than what conventional block
> > devices do today. Fully sequential writes are also well taken care of
> > by conventional block devices.
> > 
> > The interesting stuff is what lies in between those extremes.
> > 
> > I would like to discuss how we could use UBLK to implement a
> > common FTL with the right knobs to cater for a wide range of workloads
> > that utilize raw block devices. We had some knobs in  the now-dead pblk,
> > a FTL for open channel devices, but I think we could do way better than that.
> > 
> > Pblk did not require bouncing writes and had knobs for over-provisioning and
> > workload isolation which could be implemented. We could also add options
> > for different garbage collection policies. In userspace it would also 
> > be easy to support default block indirection sizes, reducing logical-physical
> > translation table memory overhead.
> > 
> > Use cases for such an FTL includes SSD caching stores such as Apache
> > traffic server [1] and CacheLib[2]. CacheLib's block cache and the apache
> > traffic server storage workloads are *almost* zone block device compatible
> > and would need little translation overhead to perform very well on e.g.
> > ZNS SSDs.
> > 
> > There are probably more use cases that would benefit.
> > 
> > It would also be a great research vehicle for academia. We've used dm-zap
> > for this [4] purpose the last couple of years, but that is not production-ready
> > and cumbersome to improve and maintain as it is implemented as a out-of-tree
> > device mapper.
> 
> Maybe it is one beginning for generic open-source userspace SSD FTL,
> which could be useful for people curious in SSD internal. I have
> google several times for such toolkit to see if it can be ported to
> UBLK easily. SSD simulator isn't great, which isn't disk and can't handle
> real data & workloads. With such project, SSD simulator could be less
> useful, IMO.
> 
> > 
> > ublk adds a bit of latency overhead, but I think this is acceptable at least
> > until we have a great, proven solution, which could be turned into
> > an in-kernel FTL.
> 
> We will keep improving ublk io path, and I am working on ublk
> copy. Once it is done, big chunk IO latency could be reduced a lot.
> 

Just curious, will this also involve running do_splice_direct*() in async style
like normal async read/write, instead of offloading to iowq context ?

Regards,
Nitesh Shetty

[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



  parent reply	other threads:[~2023-02-07 10:43 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-06 10:00 [LSF/MM/BPF BoF]: A host FTL for zoned block devices using UBLK Hans Holmberg
2023-02-06 12:49 ` Ming Lei
2023-02-06 12:54   ` Ming Lei
2023-02-06 14:34   ` Matias Bjørling
2023-02-06 15:32     ` Ming Lei
2023-02-06 18:31     ` Bart Van Assche
2023-02-07  9:40       ` Matias Bjørling
2023-02-07  9:32     ` Hans Holmberg
2023-02-07 10:31   ` Nitesh Shetty [this message]
2023-02-07 12:49     ` Ming Lei
2023-02-06 18:58 ` Bart Van Assche
2023-02-07 12:11   ` Hans Holmberg

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=20230207103141.GC27856@green5 \
    --to=nj.shetty@samsung.com \
    --cc=Ajay.Joshi@wdc.com \
    --cc=Damien.LeMoal@wdc.com \
    --cc=Hans.Holmberg@wdc.com \
    --cc=Jorgen.Hansen@wdc.com \
    --cc=Matias.Bjorling@wdc.com \
    --cc=andreas@metaspace.dk \
    --cc=dennis.maisenbacher@wdc.com \
    --cc=guokuankuan@bytedance.com \
    --cc=hans@owltronix.com \
    --cc=hch@lst.de \
    --cc=javier@javigon.com \
    --cc=kbusch@kernel.org \
    --cc=linux-block@vger.kernel.org \
    --cc=mcgrof@kernel.org \
    --cc=ming.lei@redhat.com \
    --cc=slava@dubeyko.com \
    --cc=viacheslav.dubeyko@bytedance.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.