1======== 2dm-delay 3======== 4 5Device-Mapper's "delay" target delays reads and/or writes 6and/or flushs and optionally maps them to different devices. 7 8Arguments:: 9 10 <device> <offset> <delay> [<write_device> <write_offset> <write_delay> 11 [<flush_device> <flush_offset> <flush_delay>]] 12 13Table line has to either have 3, 6 or 9 arguments: 14 153: apply offset and delay to read, write and flush operations on device 16 176: apply offset and delay to device, also apply write_offset and write_delay 18 to write and flush operations on optionally different write_device with 19 optionally different sector offset 20 219: same as 6 arguments plus define flush_offset and flush_delay explicitely 22 on/with optionally different flush_device/flush_offset. 23 24Offsets are specified in sectors. 25 26Delays are specified in milliseconds. 27 28 29Example scripts 30=============== 31 32:: 33 #!/bin/sh 34 # 35 # Create mapped device named "delayed" delaying read, write and flush operations for 500ms. 36 # 37 dmsetup create delayed --table "0 `blockdev --getsz $1` delay $1 0 500" 38 39:: 40 #!/bin/sh 41 # 42 # Create mapped device delaying write and flush operations for 400ms and 43 # splitting reads to device $1 but writes and flushs to different device $2 44 # to different offsets of 2048 and 4096 sectors respectively. 45 # 46 dmsetup create delayed --table "0 `blockdev --getsz $1` delay $1 2048 0 $2 4096 400" 47 48:: 49 #!/bin/sh 50 # 51 # Create mapped device delaying reads for 50ms, writes for 100ms and flushs for 333ms 52 # onto the same backing device at offset 0 sectors. 53 # 54 dmsetup create delayed --table "0 `blockdev --getsz $1` delay $1 0 50 $2 0 100 $1 0 333" 55