You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
verify: add --verify_type option for crash-consistent verification
This patch introduces a new --verify_type option to support crash-consistent
offline verification scenarios. The primary motivation is to handle cases where
write operations are interrupted by device failures or unexpected power loss
during the write phase, requiring verification to be limited to data that was
properly persisted before the interruption.
Key features:
- New --verify_type=flush option filters verification candidates based on
fsync completion timing
- Tracks fsync completion timestamps during write phase
- During verification, excludes writes that completed after the last fsync
- Always includes FUA (Force Unit Access) writes regardless of timing, as
they bypass cache and are immediately persistent
- Works with existing verify_state_save mechanism for offline verification
Use case:
This is particularly useful for testing storage durability guarantees in
scenarios such as:
1. Simulated power failures during write workloads
2. Device error injection testing
and espeically with such ioengines which directly communicates with the
device directly as io_uring_cmd does.
This enhancement enables more realistic testing of data durability in storage
systems by ensuring only properly synchronized data is verified after
simulated failures.
Examples:
1. write phase
[global]
ioengine=io_uring_cmd
cmd_type=nvme
filename=/dev/ng0n1
rw=write
bs=4k
verify=pattern
verify_pattern=%o
iodepth=32
size=32k
fsync=3
[test]
verify_type=flush
do_verify=0
verify_state_save=1
2. read phase
[global]
ioengine=io_uring_cmd
cmd_type=nvme
filename=/dev/ng0n1
rw=write
bs=4k
verify=pattern
verify_pattern=%o
iodepth=32
size=32k
fsync=3
[test]
verify_type=flush
do_verify=1
verify_only=1
verify_state_load=1
Signed-off-by: Minwoo Im <[email protected]>
0 commit comments