IO Scheduler via Puppet managen

Ich habe hier seit einiger Zeit suboptimale Lösungen mit vielen Execs oder file_line oder Bash Scripten im Einsatz gehabt, hier nun eine hübsche Lösung von mir. Folgendes Code Snippet modifiziert die grub1 oder grub2 Config und fügt den passenden elevator Kernelparameter hinzu, außerdem setzt es den gewünschten Scheduler live für alle Blockdevices:

# Copyright 2015 Tim Meusel
$elevator = $::virtual ? { 
    'kvm'       => 'noop',
    'physical'  => 'deadline',
    'openvzhn'  => 'deadline',
  }
  kernel_parameter { 'elevator':
    ensure => present,
    value  => $elevator,
  }
  $blockdevices = split($::blockdevices, ',')
  $blockdevices.each |$blockdevice| {
    exec {"set-elevator-${blockdevice}":
      command => "/bin/echo ${elevator} > /sys/block/${blockdevice}/queue/scheduler",
      unless  => "/bin/grep --quiet '\[${elevator}\]' /sys/block/${blockdevice}/queue/scheduler",
    }   
  }
This entry was posted in General, Linux, Puppet. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.