Question about data integrity check

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dear Chrome OS developers,

Thanks a lot for your contribution on this mailing list to develop
data integrity test for fio. I am in need to extend this tool for
almost similar purpose. Therefore, I did some research to understand
what you and your intern (Juan) has been done so far and have some
comments on your approach:

Based on my understanding the integrity test framework works like this:
    - First, run the write intensive job with verify_only=0 option to
write initial contents and headers on the media
    - Second, run the same job with verify_only=1 option to read what
has been written in the previous run and checks a) header rand_seed b)
in case of verify=meta check numberio


Refering to sample job file posted in here :
https://chromium.googlesource.com/chromiumos/third_party/autotest/+/master/client/site_tests/hardware_StorageFio/8k_async_randwrite

This kind of integrity checking failed to detect stale writes in
following cases. Please correct me if I am wrong but here is why I
think this is not a good method to do integrity checking:

   1. The logic does not work for multiple integrity check on the same
target (file,raw device) since it write exactly the same contents and
headers every time we run the test on the target media. Therefore, if
the test pass for the 1st time, it will pass forever regardless of
future stale writes. You are using randrepeat=1 which essentially
force FIO to use 0 for rand_seed and follow exact the same random IO
blocks every time/run.

   2. The logic does not work for 0 initialized target media with
verify != meta. This is exactly similar to the 8K_async_randwrite job
file that sounds like you are using. In this case, since verify !=
meta then the verify_only phase just check the rand_seed value of
written data with default rand_seed value of FIO. It turns out the
default rand_seed value of FIO is 0 if you have randrepeat=1.
Therefore, assuming the target media is already initialized to 0
(which is a valid case for most of new drives) regardless of what has
been written in first phase, the header rand_write check will pass.


--Alireza
PhD Candidate,
Center for Research in Intelligent Storage,
University of Minnesota - Twin Cities
--
To unsubscribe from this list: send the line "unsubscribe fio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux