Question about the verification of old and new data #1970
-
|
I'd like to confirm: Can fio's verify-related parameters (such as verify_state_save) check the "newness" or "oldness" of data? For example, after writing data to the same LBA, can it verify whether the data read back is the last written data? Additionally, after writing data and performing a power cycle (powering off and then on again), can it verify whether the data read back is the last written data before the power cycle? |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 3 replies
-
|
Hello @MorningWeicheng:
No, split verification (where one job writes the data and a separate job verifies it) does not verify the "generation" or seed a block was written in: One might expect the data that was written sequentially not to verify with the state file from the random run but it does because the block sizes are the same and all the file was written - fio is reading each block from the disk, looking at the header it just read and then using that to verify the rest of the block is correct. Techniques to cope with this involve writing a different fixed pattern on each "pass" and then checking the exact pattern at verification time or changing the block size (e.g. from 4k to 8k) between passes.
If you are somehow telling (and letting) fio to write its state file before cutting the power then yes. See Verification and triggers in the fio documentation (I think @vincentkfu might have been going to write about it in a blog post on https://github.com/vincentkfu/fio-blog/wiki/Verify-overview#state-files but it says "See this blog post for more details about the verify state file" without a link...). Does this answer your question? |
Beta Was this translation helpful? Give feedback.
-
|
Close this discusstion |
Beta Was this translation helpful? Give feedback.
@MorningWeicheng:
I think this was answered in my original reply:
But for the sake of clarity: today (August 2025) with split verification, it doesn't matter whether
verify_state_loadis used or not - fio does not verify the "generation" that blocks…