Files
puppet-prod/site/profiles/manifests/ceph/osd.pp
T
unkinben e86f60aae3
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: set OSD disk I/O scheduler to none via udev rule
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

17 lines
364 B
Puppet

class profiles::ceph::osd (
Boolean $ensure_running = true,
) {
# tune the I/O scheduler on the disks backing ceph OSDs
include profiles::ceph::osd_scheduler
if $ensure_running and $facts['is_ceph_osd'] {
$facts['ceph_services']['osd'].each |String $svc| {
service { $svc:
ensure => running,
enable => true,
}
}
}
}