From: thornber@redhat.com
To: "Darrick J. Wong" <darrick.wong@oracle.com>
Cc: device-mapper development <dm-devel@redhat.com>,
Joe Thornber <ejt@redhat.com>
Subject: Re: [PATCH 8/8] [dm-cache] cache target
Date: Fri, 14 Dec 2012 10:09:59 +0000 [thread overview]
Message-ID: <20121214100958.GA3022@raspberrypi> (raw)
In-Reply-To: <20121214001753.GA9845@blackbox.djwong.org>
On Thu, Dec 13, 2012 at 04:17:53PM -0800, Darrick J. Wong wrote:
> Mmmm, another one! I've been looking forward to this.... :)
> > +dm-cache is a device mapper target written by Joe Thornber, Heinz
> > +Maueslhagen, and Mike Snitzer.
>
> Is this "Mauelshagen"?
y
>
> > +- Migration - Movement of a logical block from one device to the other.
> > +- Promotion - Migration from slow device to fast device.
> > +- Demotion - Migration from fast device to slow device.
>
> If a block is promoted to the fast device, is it always the case that the block
> still resides on the slow device? The existence of WT mode implies this, but
> on the other hand you do say "move" here.
>
> Or is this more like tiered storage where promoting a block moves it to the
> fast device and it's no longer on the slow device?
>
> Put another way -- if I use my SSD as a writethrough cache for a disk and one
> day the SSD loses its brains, can I expect to still have a reasonably up to
> date copy on the disk?
The cached device is the same size as the origin (not origin + ssd).
If writethrough mode is selected then writes will not complete until
they've hit both the origin and the cache. This makes it a relatively
safe way to try the cache out.
Here's the little test I use to demonstrate this:
def test_writethrough
size = gig(2)
# wipe the origin to ensure we don't accidentally have the same
# data on it.
with_standard_linear(:data_size => size) do |origin|
wipe_device(origin)
end
# format and set up a git repo on the cache
with_standard_cache(:format => true,
:io_mode => :writethrough,
:data_size => size) do |cache|
git_prepare(cache, :ext4)
end
# origin should have all data
with_standard_linear(:data_size => size) do |origin|
git_extract(origin, :ext4, TAGS[0..1])
end
end
> How do I calculate how big the metadata device has to be?
Metadata size will be proportional to the number of blocks in your
cache (ssd_size / block_size). For each block we store:
- The mapping and some flags (64bits)
- Policy hint data (size determined by policy, 64bit for mq)
In addition we store a small bitset that records the discard state of
the origin.
A good rule of thumb would be: 4mb + (16bytes * nr_blocks)
> Is there any documentation for the message formats?
>
> Or the policy parameters?
Not yet, I'll let Heinz handle this, he put the messaging stuff in.
- Joe
next prev parent reply other threads:[~2012-12-14 10:09 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-13 20:19 Another cache target Joe Thornber
2012-12-13 20:19 ` [PATCH 1/8] [persistent-data] Fix a bug in btree_del, and another bug that was compensating for it Joe Thornber
2012-12-13 20:19 ` [PATCH 2/8] [persistent-data] dm_btree_walk Joe Thornber
2012-12-13 20:19 ` [PATCH 3/8] [persistent-data] tweak an error message Joe Thornber
2012-12-13 20:19 ` [PATCH 4/8] [dm-bio-prison] Change the bio-prison interface so the memory for the cells is passed in Joe Thornber
2013-01-14 10:02 ` Alasdair G Kergon
2013-01-14 14:06 ` thornber
2013-01-14 14:22 ` Alasdair G Kergon
2013-01-21 23:32 ` Alasdair G Kergon
2013-01-22 11:31 ` thornber
2013-01-22 12:10 ` Alasdair G Kergon
2012-12-13 20:19 ` [PATCH 5/8] [dm-thin] Fix a race condition between discard bios and ordinary bios Joe Thornber
2012-12-14 15:52 ` Mike Snitzer
2013-01-22 0:03 ` Alasdair G Kergon
2013-01-24 2:35 ` Alasdair G Kergon
2013-01-24 13:23 ` thornber
2013-02-06 0:11 ` Mikulas Patocka
2013-02-07 11:20 ` thornber
2012-12-13 20:19 ` [PATCH 6/8] [persistent-data] Add a transactional array Joe Thornber
2013-01-22 21:18 ` Alasdair G Kergon
2013-01-23 12:07 ` thornber
2013-01-25 20:11 ` Alasdair G Kergon
2013-01-28 13:06 ` thornber
2013-01-28 20:25 ` Alasdair G Kergon
2013-01-28 14:57 ` thornber
2013-01-28 20:22 ` Alasdair G Kergon
2012-12-13 20:19 ` [PATCH 7/8] [persistent-data] transactional bitset Joe Thornber
2013-01-22 21:59 ` Alasdair G Kergon
2012-12-13 20:19 ` [PATCH 8/8] [dm-cache] cache target Joe Thornber
2012-12-14 0:17 ` Darrick J. Wong
2012-12-14 10:09 ` thornber [this message]
2013-02-12 15:27 ` Alasdair G Kergon
2013-02-12 16:40 ` Alasdair G Kergon
2013-02-12 17:29 ` Alasdair G Kergon
2013-02-14 13:57 ` Joe Thornber
2013-02-14 14:05 ` Joe Thornber
2013-02-14 21:06 ` Alasdair G Kergon
2012-12-13 21:57 ` Another " Mike Snitzer
2012-12-14 1:16 ` Darrick J. Wong
2012-12-14 2:19 ` Mike Snitzer
2012-12-14 2:27 ` Mike Snitzer
2012-12-14 2:42 ` Darrick J. Wong
2012-12-14 4:23 ` Mike Snitzer
2012-12-14 2:34 ` Darrick J. Wong
2012-12-14 10:24 ` thornber
2012-12-14 12:11 ` thornber
2012-12-14 21:51 ` Darrick J. Wong
2012-12-15 8:23 ` Joe Thornber
2012-12-18 1:49 ` Darrick J. Wong
2012-12-18 2:31 ` Alasdair G Kergon
2013-01-08 0:19 ` Darrick J. Wong
2013-01-08 13:55 ` thornber
2012-12-22 18:50 ` Mark Hills
2012-12-17 16:54 ` Heinz Mauelshagen
2012-12-18 15:44 ` basic cache policy module fix [was: Re: Another cache target] Mike Snitzer
2012-12-20 1:14 ` Darrick J. Wong
2012-12-20 12:57 ` Heinz Mauelshagen
2012-12-20 13:24 ` Mike Snitzer
2012-12-20 16:10 ` Darrick J. Wong
2012-12-20 17:02 ` Heinz Mauelshagen
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=20121214100958.GA3022@raspberrypi \
--to=thornber@redhat.com \
--cc=darrick.wong@oracle.com \
--cc=dm-devel@redhat.com \
--cc=ejt@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox