@@ -3,29 +3,52 @@ dm-delay
3
3
========
4
4
5
5
Device-Mapper's "delay" target delays reads and/or writes
6
- and maps them to different devices.
6
+ and/or flushs and optionally maps them to different devices.
7
7
8
- Parameters ::
8
+ Arguments ::
9
9
10
10
<device> <offset> <delay> [<write_device> <write_offset> <write_delay>
11
11
[<flush_device> <flush_offset> <flush_delay>]]
12
12
13
- With separate write parameters, the first set is only used for reads.
13
+ Table line has to either have 3, 6 or 9 arguments:
14
+
15
+ 3: apply offset and delay to read, write and flush operations on device
16
+
17
+ 6: 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
+
21
+ 9: same as 6 arguments plus define flush_offset and flush_delay explicitely
22
+ on/with optionally different flush_device/flush_offset.
23
+
14
24
Offsets are specified in sectors.
25
+
15
26
Delays are specified in milliseconds.
16
27
28
+
17
29
Example scripts
18
30
===============
19
31
20
32
::
21
-
22
33
#!/bin/sh
23
- # Create device delaying rw operation for 500ms
24
- echo "0 `blockdev --getsz $1` delay $1 0 500" | dmsetup create delayed
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"
25
38
26
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"
27
47
48
+ ::
28
49
#!/bin/sh
29
- # Create device delaying only write operation for 500ms and
30
- # splitting reads and writes to different devices $1 $2
31
- echo "0 `blockdev --getsz $1` delay $1 0 0 $2 0 500" | dmsetup create delayed
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"
0 commit comments