[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-ddrescue] Benchmarking ddrescue
From: |
Corvus Corax |
Subject: |
[Bug-ddrescue] Benchmarking ddrescue |
Date: |
Wed, 29 Jul 2009 00:55:03 +0200 |
User-agent: |
Mutt/1.5.16 (2007-06-09) |
Hello devs and users of GNU ddrescue :)
I just finnished developing a benchmark suite that simulates faulty
hardware for data resurection in a reproducable way
(and without further damaging real hardware)
It works with a glibc wrapper library, simulating a virtual file/device,
which will behave much like a real one.
I can has:
- simulated IO errors on faulty blocks
- blocks that fail to read with IO error sometimes and sometimes work
(recoverable blocks)
- realistic timing characteristics for sector read times and seeking
(both on faulty blocks and good ones)
Its bundled with safecopy-1.5 ( http://safecopy.sourceforge.net )
(safecopy is free software, GPL v2 )
and will work with any program using read() and seek() calls to recover
data. (cat, dd, dd-rescue, GNU ddrescue, safecopy, ... )
I have put more thorrough information about the simulation idea here:
http://safecopy.sourceforge.net/analysis/analysis.html
The actual statistics data of the drives I analyzed is in a tarball on
sourceforge too (warning, huge):
http://sourceforge.net/projects/safecopy/files/statistics-data/statistics-data.tgz/download
Please tell me what you think and if you have any suggestions or
comments.
regards
Corvus Corax
demo:
> ./benchmark.sh floppy
>
> Safecopy device simulator.
> This program simulates bad media and allows you to benchmark programs
> that try to read from it.
>
> Simulating floppy:
> The virtual file simulating floppy is called 'debug' and accessible in
> any directory.
> You can now benchmark any program attempting to read from it.
>
> For example:
> safecopy -b 512 -o badblocks.log debug output.dat
> or
> dd if=debug of=output.dat
>
> You can exit the simulator at any time with:
> exit
>
>
> Information on floppy:
> This simulates a 5.25 inch floppy disk (with data coming from /dev/zero)
> 80 tracks, 512 byte per sector, 1.2 MB capacity.
> The disk has some buggy sectors on track 0 and 1
> ...
> sh-3.2$ time ddrescue debug test.dat logfile
> simulator initialising - reading config simulator.cfg
> simulator time granularity: 127 usecs
> simulator everything shorter will be busy-waiting
> simulator simulated blocksize: 512
> simulator simulated filesize: 1228800
> simulator time to seek over 1000 sectors: 503905 usec
> simulator delay on any sectors: 34 usec
> simulator simulated soft error count: 2
> simulator opening data source: /dev/zero
> simulator verbosity: 0
>
>
> Press Ctrl-C to interrupt
> Initial status (read from logfile)
> rescued: 269824 B, errsize: 58368 B, errors: 1
> Current status
> rescued: 1227 kB, errsize: 1536 B, current rate: 512 B/s
> ipos: 10240 B, errors: 3, average rate: 24510 B/s
> opos: 10240 B
> Finished
>
> real 0m38.985s
> user 0m0.156s
> sys 0m5.956s
> sh-3.2$
- [Bug-ddrescue] Benchmarking ddrescue,
Corvus Corax <=