ceph: set OSD disk I/O scheduler to none via udev rule #505

Merged
benvin merged 2 commits from benvin/ceph-osd-scheduler into develop 2026-08-08 22:33:30 +10:00

2 Commits

Author SHA1 Message Date
benvin 0b62e7f756 Merge branch 'develop' into benvin/ceph-osd-scheduler
ci/woodpecker/pr/yamllint Pipeline was successful
ci/woodpecker/pr/ruby-validate Pipeline was successful
ci/woodpecker/pr/puppet-lint Pipeline was successful
ci/woodpecker/pr/bolt-validate Pipeline was successful
ci/woodpecker/pr/erb-validate Pipeline was successful
ci/woodpecker/pr/epp-validate Pipeline was successful
ci/woodpecker/pr/puppet-validate Pipeline was successful
ci/woodpecker/pr/ruby-check Pipeline was successful
2026-08-08 22:27:01 +10:00
unkinben e86f60aae3 ceph: set OSD disk I/O scheduler to none via udev rule
ci/woodpecker/pr/ruby-validate Pipeline was successful
ci/woodpecker/pr/puppet-lint Pipeline was successful
ci/woodpecker/pr/yamllint Pipeline was successful
ci/woodpecker/pr/bolt-validate Pipeline was successful
ci/woodpecker/pr/erb-validate Pipeline was successful
ci/woodpecker/pr/epp-validate Pipeline was successful
ci/woodpecker/pr/puppet-validate Pipeline was successful
ci/woodpecker/pr/ruby-check Pipeline was successful
Ceph OSDs get no benefit from kernel I/O scheduling; the original intent
was to set those disks to the noop scheduler. On the fleet's EL9 blk-mq
kernels (AlmaLinux 9, kernel 5.14) the equivalent of noop is none.

- add profiles::ceph::osd_scheduler, which renders a udev rule from the
  ceph_osd_devices fact pinning queue/scheduler to none on each OSD disk
- reload udev and trigger the matched block devices so the change applies
  immediately, while the 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

Claude-Session: https://claude.ai/code/session_01JUoARVdmhxKQHyyyp1pxeT
2026-08-02 21:40:27 +10:00