Kiyoshi Ueda | fd5e033 | 2009-06-22 10:12:27 +0100 | [diff] [blame] | 1 | dm-queue-length |
| 2 | =============== |
| 3 | |
| 4 | dm-queue-length is a path selector module for device-mapper targets, |
| 5 | which selects a path with the least number of in-flight I/Os. |
| 6 | The path selector name is 'queue-length'. |
| 7 | |
| 8 | Table parameters for each path: [<repeat_count>] |
| 9 | <repeat_count>: The number of I/Os to dispatch using the selected |
| 10 | path before switching to the next path. |
| 11 | If not given, internal default is used. To check |
| 12 | the default value, see the activated table. |
| 13 | |
| 14 | Status for each path: <status> <fail-count> <in-flight> |
| 15 | <status>: 'A' if the path is active, 'F' if the path is failed. |
| 16 | <fail-count>: The number of path failures. |
| 17 | <in-flight>: The number of in-flight I/Os on the path. |
| 18 | |
| 19 | |
| 20 | Algorithm |
| 21 | ========= |
| 22 | |
| 23 | dm-queue-length increments/decrements 'in-flight' when an I/O is |
| 24 | dispatched/completed respectively. |
| 25 | dm-queue-length selects a path with the minimum 'in-flight'. |
| 26 | |
| 27 | |
| 28 | Examples |
| 29 | ======== |
| 30 | In case that 2 paths (sda and sdb) are used with repeat_count == 128. |
| 31 | |
| 32 | # echo "0 10 multipath 0 0 1 1 queue-length 0 2 1 8:0 128 8:16 128" \ |
| 33 | dmsetup create test |
| 34 | # |
| 35 | # dmsetup table |
| 36 | test: 0 10 multipath 0 0 1 1 queue-length 0 2 1 8:0 128 8:16 128 |
| 37 | # |
| 38 | # dmsetup status |
| 39 | test: 0 10 multipath 2 0 0 0 1 1 E 0 2 1 8:0 A 0 0 8:16 A 0 0 |