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 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
17 lines
364 B
Puppet
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,
|
|
}
|
|
}
|
|
}
|
|
}
|