dm-delay

设备映射器(Device-Mapper)的“delay”目标会延迟读、写和/或刷新操作,并可选择地将它们映射到不同的设备。

参数

<device> <offset> <delay> [<write_device> <write_offset> <write_delay>
                           [<flush_device> <flush_offset> <flush_delay>]]

表行必须包含 3、6 或 9 个参数

3:对设备上的读、写和刷新操作应用偏移和延迟

6:对设备应用偏移和延迟,同时对写和刷新操作在可选的不同 write_device 上应用 write_offset 和 write_delay

具有可选的不同扇区偏移

9:与 6 个参数相同,额外明确定义 flush_offset 和 flush_delay

在/结合可选的不同 flush_device/flush_offset。

偏移量以扇区为单位。

延迟时间以毫秒为单位。

示例脚本

::

#!/bin/sh # # 创建名为“delayed”的映射设备,将读、写和刷新操作延迟 500 毫秒。# dmsetup create delayed --table “0 blockdev --getsz $1 delay $1 0 500”

::

#!/bin/sh # # 创建映射设备,将写和刷新操作延迟 400 毫秒,并且 # 将读操作分流到设备 $1,但将写和刷新操作分流到不同的设备 $2 # 分别分流到 2048 和 4096 扇区的不同偏移量。# dmsetup create delayed --table “0 blockdev --getsz $1 delay $1 2048 0 $2 4096 400”

::

#!/bin/sh # # 创建映射设备,将读操作延迟 50 毫秒,写操作延迟 100 毫秒,刷新操作延迟 333 毫秒 # 到同一个后端设备,偏移量为 0 扇区。# dmsetup create delayed --table “0 blockdev --getsz $1 delay $1 0 50 $2 0 100 $1 0 333”