Re: crashblk: a block device crash emulator.

From: Takashi HOSHINO
Date: Sun Jan 17 2016 - 21:25:11 EST

On 2016/01/16 5:09, Josef Bacik wrote:
On 01/15/2016 01:45 AM, Takashi HOSHINO wrote:
Hi Andreas,

On 2016/01/15 4:44, Andreas Dilger wrote:
On Jan 13, 2016, at 6:50 PM, Takashi HOSHINO
<hoshino@xxxxxxxxxxxxxxxxx> wrote:

Hi all,

I'm developing 'crashblk'.
It is a memory block device driver to emulate crash, IO error,
and various response time.

Why not use/improve dm-flakey for this, rather than making yet another
device that does something similar?

I did not know dm-flakey until your reply. Thank you.

I read its documents and code a bit.
The big purpose of two projects are the same, which is to test software
on block devices with errors, but their functions are almost different.

It may be nice idea to implement alternative implementation of crashblk
on device-mapper version by someone.
Currently I'm not familiar with device-mapper development, and I do not
have any motivation with it.

There's also dm-log-writes which will log writes to an external journal
to allow you to replay writes and verify the fs is consistent at all
steps of operation. Thanks,

My colleague let me know about dm-log-writes several months ago and I read its code. Its very small and nice! (<1000 lines)
I felt it is useful to DEBUG file systems or wrapper devices but not useful to TEST them because it will tell us too much information.

BTW, our another software WalB, which is our primary test target of crashblk, also log-writes to an journal device.
Its primary usage is to backup devices incrementally or to replicate them, while it may also useful for debug purpose.
But WalB uses journals not only to extract logs for replay but also to keep consistency and control durability of data like some filesystems, so it requires more code.