^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) ========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) dm-delay
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) ========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) Device-Mapper's "delay" target delays reads and/or writes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) and maps them to different devices.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) Parameters::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) <device> <offset> <delay> [<write_device> <write_offset> <write_delay>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) [<flush_device> <flush_offset> <flush_delay>]]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) With separate write parameters, the first set is only used for reads.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) Offsets are specified in sectors.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) Delays are specified in milliseconds.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) Example scripts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) ===============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) ::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) #!/bin/sh
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) # Create device delaying rw operation for 500ms
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) echo "0 `blockdev --getsz $1` delay $1 0 500" | dmsetup create delayed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) ::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) #!/bin/sh
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) # Create device delaying only write operation for 500ms and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) # splitting reads and writes to different devices $1 $2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) echo "0 `blockdev --getsz $1` delay $1 0 0 $2 0 500" | dmsetup create delayed