From: Jens Axboe <axboe@kernel.dk>
To: Juan Casse <jcasse@google.com>
Cc: Grant Grundler <grundler@google.com>,
"fio@vger.kernel.org" <fio@vger.kernel.org>
Subject: Re: FIO and Storage Data Integrity testing
Date: Fri, 02 Aug 2013 15:21:00 -0600 [thread overview]
Message-ID: <51FC22BC.4080602@kernel.dk> (raw)
In-Reply-To: <CAPet_214qJj_Ri90kzpgkAq399Fe2kejfdxSGfDxfZv=7CP7Gg@mail.gmail.com>
On 08/02/2013 03:10 PM, Juan Casse wrote:
> Jens, Grant,
>
> Bellow is a summary of the thread as I understood it.
> (To keep it simple, I'm using the TODO keyword for both action items and
> questions.)
>
> Requirements for data integrity and retention test
>
> 1) gpl implementaion:
>
> fio satisfies this
>
> 2) Verify data written to storage is available and correct:
>
>
> fio has axmap to log writes, but
> prefer linear feedback shift registers (lfsr) to reproduce data for
> verification; fio currently supports this with random_generator=lfsr
>
> TODO: Jens says lfsr does not currently work with multiple block sizes?
> I'm missing something here; I thought a single run would have a single
> block size. Please explain.
A single run CAN use a single block size, but it could also be a
multiple of block sizes. It all depends on how you configure the job. If
all you care about is single block size runs, then yes, then fio already
works with lfsr and that.
> 3) Breadcrumbs for debugging data that is not correct:
>
> a) lba - fio has uint64 offset. OK.
> b) generation # - fio has unsigned short numberio
>
>
> TODO: Jens says must be used differently? How does it currently work? Is
> it also incremented and written to storage upon a read?
Depends on how you want to use the generation number. Right now it's
just a truncated variant of the number of writes issued.
> c) timestamp - fio has unsigned long time_sec and time_usec. OK.
> d) magic # - fio has a generic magic number
>
>
> TODO: what does generic mean? is it always the same number dor every run
> of fio?
Yes, it's a fixed constant that fio uses (oxacca). Could easily be made
configurable.
> TODO: make this data structure (vhdr_meta) agnostic to 32- vs. 64-bit
And bonus points for making it little/big endian safe too, we should do
that if we change it anyway. Should be little endian disk format. Fio
has the appropriate cpu_to_leXX etc helpers included, the client/server
protocol is 32/64 little/big endian agnostic.
> 4) Data retention:
>
> fio currently can do:
>
> a) write workload with do_verify=0
> b) read workload with do_verify=1
>
> fio currently checksums:
>
> a) header information
> b) actual data
>
> 5) Test trim/discard:
>
> TODO: use sepparate lfsr to generate read/wrte/trim part
>
> Grant, if fio currently has lfsr and the breadcrumbs and can do writes
> with do_verify=0 and reads with do_verify=1, it seems to me that fio
> already satisfies our requirements for data integrity testing,
> contingent on Jens' answers to my questions above. Also, wouldn't these
> features be sufficient for data retention testing as well? If you write
> do_verify=0 and then 3 months later read do_verify=1, wouldn't that be
> enough?
>
> Juan
--
Jens Axboe
next prev parent reply other threads:[~2013-08-02 21:21 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-31 20:32 FIO and Storage Data Integrity testing Grant Grundler
2013-07-31 21:23 ` Jens Axboe
2013-07-31 22:37 ` Grant Grundler
2013-08-01 2:25 ` Jens Axboe
2013-08-01 21:02 ` Jens Axboe
2013-08-02 17:15 ` Juan Casse
2013-08-02 21:07 ` Juan Casse
2013-08-02 21:10 ` Juan Casse
2013-08-02 21:21 ` Jens Axboe [this message]
2013-08-02 21:18 ` Juan Casse
2013-08-02 21:21 ` Juan Casse
2013-08-02 21:39 ` Grant Grundler
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=51FC22BC.4080602@kernel.dk \
--to=axboe@kernel.dk \
--cc=fio@vger.kernel.org \
--cc=grundler@google.com \
--cc=jcasse@google.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