Bug 2141996
| Summary: | There is no historical-service-time path selector in multipath.conf man page | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 8 | Reporter: | Lin Li <lilin> |
| Component: | device-mapper-multipath | Assignee: | Ben Marzinski <bmarzins> |
| Status: | CLOSED ERRATA | QA Contact: | Lin Li <lilin> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | 8.8 | CC: | agk, bmarzins, heinzm, msnitzer, prajnoha, zkabelac |
| Target Milestone: | rc | Keywords: | Triaged |
| Target Release: | 8.8 | Flags: | pm-rhel:
mirror+
|
| Hardware: | x86_64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | device-mapper-multipath-0.8.4-33.el8 | Doc Type: | No Doc Update |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2023-05-16 08:44:49 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
1.[root@storageqe-25 ~]# rpm -qa | grep multipath
device-mapper-multipath-libs-0.8.4-34.el8.x86_64
device-mapper-multipath-0.8.4-34.el8.x86_64
2.[root@storageqe-25 ~]# man multipath.conf
path_selector The default path selector algorithm to use; they are offered by the kernel multi-
path target. There are three selector algorithms:
round-robin 0
Loop through every path in the path group, sending the same amount of
I/O to each. Some aspects of behavior can be controlled with the
attributes: rr_min_io, rr_min_io_rq and rr_weight.
queue-length 0
(Since 2.6.31 kernel) Choose the path for the next bunch of I/O based
on the amount of outstanding I/O to the path.
service-time 0
(Since 2.6.31 kernel) Choose the path for the next bunch of I/O based
on the amount of outstanding I/O to the path and its relative through-
put.
historical-service-time 0
(Since 4.18.0-305.3.el8 kernel) Choose the path for the next bunch of
I/O based on the estimation of future service time based on the his-
tory of previous I/O submitted to each path.
The default is: service-time 0
3.configure multipath to use the historical-service-time selector. Add the line
path_selector "historical-service-time 0"
to the defaults section of multipath.conf
4. create some multipath devices
5. Run "multipath -l" to list them
# multipath -l
360a98000324669436c2b45666c567858 dm-3 NETAPP,LUN
size=2.0G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
|-+- policy='historical-service-time 2' prio=0 status=enabled
| |- 7:0:1:0 sdf 8:80 undef undef running
| `- 8:0:1:0 sdn 8:208 undef undef running
`-+- policy='historical-service-time 2' prio=0 status=undef
|- 7:0:0:0 sdb 8:16 undef undef running
`- 8:0:0:0 sdj 8:144 undef undef running
360a98000324669436c2b45666c56785a dm-4 NETAPP,LUN
size=2.0G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
|-+- policy='historical-service-time 2' prio=0 status=enabled
| |- 7:0:1:1 sdg 8:96 undef undef running
| `- 8:0:1:1 sdo 8:224 undef undef running
`-+- policy='historical-service-time 2' prio=0 status=undef
|- 7:0:0:1 sdc 8:32 undef undef running
`- 8:0:0:1 sdk 8:160 undef undef running
360a98000324669436c2b45666c567861 dm-5 NETAPP,LUN
size=2.0G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
|-+- policy='historical-service-time 2' prio=0 status=enabled
| |- 7:0:1:2 sdh 8:112 undef undef running
| `- 8:0:1:2 sdp 8:240 undef undef running
`-+- policy='historical-service-time 2' prio=0 status=undef
|- 7:0:0:2 sdd 8:48 undef undef running
`- 8:0:0:2 sdl 8:176 undef undef running
360a98000324669436c2b45666c567863 dm-6 NETAPP,LUN
size=2.0G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
|-+- policy='historical-service-time 2' prio=0 status=enabled
| |- 7:0:1:3 sdi 8:128 undef undef running
| `- 8:0:1:3 sdq 65:0 undef undef running
`-+- policy='historical-service-time 2' prio=0 status=undef
|- 7:0:0:3 sde 8:64 undef undef running
`- 8:0:0:3 sdm 8:192 undef undef running
Test result:Added historical-service-time to the man page.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (Moderate: device-mapper-multipath security and bug fix update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2023:2948 |
Description of problem: There is no historical-service-time path selector in multipath.conf man page Version-Release number of selected component (if applicable): device-mapper-multipath-0.8.4-31.el8.x86_64 How reproducible: always Steps to Reproduce: 1.# rpm -qa | grep multipath device-mapper-multipath-0.8.4-31.el8.x86_64 device-mapper-multipath-libs-0.8.4-31.el8.x86_64 2.# man multipath.conf path_selector The default path selector algorithm to use; they are offered by the kernel multipath target. There are three selector algorithms: round-robin 0 Loop through every path in the path group, sending the same amount of I/O to each. Some aspects of behavior can be controlled with the attributes: rr_min_io, rr_min_io_rq and rr_weight. queue-length 0 (Since 2.6.31 kernel) Choose the path for the next bunch of I/O based on the amount of outstanding I/O to the path. service-time 0 (Since 2.6.31 kernel) Choose the path for the next bunch of I/O based on the amount of outstanding I/O to the path and its relative throughput. The default is: service-time 0 3.configure multipath to use the historical-service-time selector. Add the line path_selector "historical-service-time 0" to the defaults section of multipath.conf 4. create some multipath devices 5. Run "multipath -l" to list them # multipath -l 360a98000324669436c2b45666c567865 dm-3 NETAPP,LUN size=2.0G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw |-+- policy='historical-service-time 2' prio=0 status=enabled | |- 3:0:0:0 sdj 8:144 undef undef running | `- 4:0:0:0 sdb 8:16 undef undef running `-+- policy='historical-service-time 2' prio=0 status=undef |- 3:0:1:0 sdn 8:208 undef undef running `- 4:0:1:0 sdf 8:80 undef undef running 360a98000324669436c2b45666c567867 dm-4 NETAPP,LUN size=2.0G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw |-+- policy='historical-service-time 2' prio=0 status=enabled | |- 3:0:0:1 sdk 8:160 undef undef running | `- 4:0:0:1 sdc 8:32 undef undef running `-+- policy='historical-service-time 2' prio=0 status=undef |- 3:0:1:1 sdo 8:224 undef undef running `- 4:0:1:1 sdg 8:96 undef undef running 360a98000324669436c2b45666c567869 dm-5 NETAPP,LUN size=2.0G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw |-+- policy='historical-service-time 2' prio=0 status=enabled | |- 3:0:0:2 sdl 8:176 undef undef running | `- 4:0:0:2 sdd 8:48 undef undef running `-+- policy='historical-service-time 2' prio=0 status=undef |- 3:0:1:2 sdp 8:240 undef undef running `- 4:0:1:2 sdh 8:112 undef undef running 360a98000324669436c2b45666c56786b dm-6 NETAPP,LUN size=2.0G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw |-+- policy='historical-service-time 2' prio=0 status=enabled | |- 3:0:0:3 sdm 8:192 undef undef running | `- 4:0:0:3 sde 8:64 undef undef running `-+- policy='historical-service-time 2' prio=0 status=undef |- 3:0:1:3 sdq 65:0 undef undef running `- 4:0:1:3 sdi 8:128 undef undef running mpatha (333333330000007d0) dm-7 Linux,scsi_debug size=100M features='0' hwhandler='1 alua' wp=rw |-+- policy='historical-service-time 2' prio=0 status=enabled | `- 6:0:0:0 sds 65:32 undef undef running |-+- policy='historical-service-time 2' prio=0 status=undef | `- 7:0:0:0 sdt 65:48 undef undef running |-+- policy='historical-service-time 2' prio=0 status=undef | `- 5:0:0:0 sdr 65:16 undef undef running `-+- policy='historical-service-time 2' prio=0 status=undef `- 8:0:0:0 sdu 65:64 undef undef running mpathb (uuid.b195552a-8465-4f6c-baf0-98cf3d29b40a) dm-8 NVME,Linux size=70G features='0' hwhandler='0' wp=rw |-+- policy='historical-service-time 2' prio=0 status=enabled | `- 0:2:1:1 nvme0n1 259:0 undef undef running |-+- policy='historical-service-time 2' prio=0 status=undef | `- 1:3:1:1 nvme1n1 259:1 undef undef running |-+- policy='historical-service-time 2' prio=0 status=undef | `- 2:4:1:1 nvme2n1 259:2 undef undef running `-+- policy='historical-service-time 2' prio=0 status=undef `- 3:1:1:1 nvme3n1 259:3 undef undef running Actual results: No a warning message. multipath supports the historical-service-time path selector. But there is no historical-service-time path selector in multipath.conf man page Expected results: historical-service-time path selector exists in multipath.conf man page Additional info: