804ea06499
## Why Ceph OSDs manage their own I/O ordering, so the kernel scheduler on the backing disks just adds overhead. The original intent was to set those disks to the `noop` scheduler. The whole OSD fleet (k8s + incus nodes) runs AlmaLinux 9 on blk-mq kernels (5.14), where the equivalent of `noop` is `none`. ## Changes - Add `profiles::ceph::osd_scheduler`, rendering a udev rule from the `ceph_osd_devices` fact (PR #504) that pins `queue/scheduler` to `none` on each OSD disk. - Reload udev and trigger the matched block devices so the setting applies immediately; the udev rule keeps it set across reboots and device re-add. - No-op when the fact is absent/empty, so VMs and non-OSD hosts are untouched. - Include the class from `profiles::ceph::osd` so it lands only on OSD hosts. https://claude.ai/code/session_01JUoARVdmhxKQHyyyp1pxeT --------- Co-authored-by: BenVincent <benvin@main.unkin.net> Reviewed-on: #505 Co-authored-by: Ben Vincent <ben@unkin.net> Co-committed-by: Ben Vincent <ben@unkin.net>
6 lines
282 B
Plaintext
6 lines
282 B
Plaintext
# Managed by puppet (profiles::ceph::osd_scheduler).
|
|
# Set the I/O scheduler to <%= @scheduler %> on ceph OSD block devices.
|
|
<% @kernel_names.sort.each do |dev| -%>
|
|
ACTION=="add|change", SUBSYSTEM=="block", KERNEL=="<%= dev %>", ATTR{queue/scheduler}="<%= @scheduler %>"
|
|
<% end -%>
|