[Lustre-devel] [RFC] "lctl readonly" modification proposal
Alexander.Zarochentsev at Sun.COM
Wed Aug 20 04:23:35 PDT 2008
Currently "lctl readonly" command is used in recovery-related acceptance
test as a disk write barrier, any server operations after such a
barrier do not change disk state. replay-dual.sh:test_14 is an example,
it uses test-framework.sh:replay_barrier which calls "lctl readonly".
However "lctl readonly" cannot immediately "freeze" disk state because
it does device sync right before setting device r/o.
The additional sync breaks COS unit tests: COS-effect (syncs between
dependent transactions) is hidden before the R/O barrier because the
barrier does device sync anyway and COS-effect is invisible after the
barrier because all disk writes are disabled already.
Currently syncs are issued twice at different levels of call stack:
mdt_iocontrol -> dt_sync
__lvfs_set_rdonly -> lvfs_sbdev_sync(dev)
Is there any requirement to have a device sync before setting the device
If not, syncless variant of "lctl readonly" would be more useful for
testing. If changing of "lctl readonly" behavior is not possible, it
would be good to have a syncless set R/O operation under another ioctl.
syncless R/O and a network barrier might be a good simulation of server
crash without a need of machine restart.
Alexander "Zam" Zarochentsev
Lustre Group, Sun Microsystems
More information about the lustre-devel