^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) ===============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) dm-queue-length
^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) dm-queue-length is a path selector module for device-mapper targets,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) which selects a path with the least number of in-flight I/Os.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) The path selector name is 'queue-length'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) Table parameters for each path: [<repeat_count>]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) ::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) <repeat_count>: The number of I/Os to dispatch using the selected
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) path before switching to the next path.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) If not given, internal default is used. To check
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) the default value, see the activated table.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) Status for each path: <status> <fail-count> <in-flight>
^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) <status>: 'A' if the path is active, 'F' if the path is failed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) <fail-count>: The number of path failures.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) <in-flight>: The number of in-flight I/Os on the path.
^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) Algorithm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) =========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) dm-queue-length increments/decrements 'in-flight' when an I/O is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) dispatched/completed respectively.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) dm-queue-length selects a path with the minimum 'in-flight'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) Examples
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) ========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) In case that 2 paths (sda and sdb) are used with repeat_count == 128.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) ::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) # echo "0 10 multipath 0 0 1 1 queue-length 0 2 1 8:0 128 8:16 128" \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) dmsetup create test
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) # dmsetup table
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) test: 0 10 multipath 0 0 1 1 queue-length 0 2 1 8:0 128 8:16 128
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) # dmsetup status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) test: 0 10 multipath 2 0 0 0 1 1 E 0 2 1 8:0 A 0 0 8:16 A 0 0