Vorschläge zum Erstellen von sysfs-Parametern bleiben auch nach einem Neustart erhalten

9

Ich experimentiere mit großen Änderungen an den Laufzeitparametern des Linux-Systems, die über das virtuelle Dateisystem von sysfs verfügbar gemacht werden.

Was ist der effizienteste Weg, um diese Parameter so zu verwalten, dass sie bei Neustarts auf einem RHEL / CentOS-System erhalten bleiben?

Geht es einfach darum, Befehle in /etc/rc.local zu speichern? Gibt es ein Init-Skript, das dafür gut geeignet ist? Ich denke auch über Standardisierung aus Sicht des Konfigurationsmanagements nach. Gibt es ein sauberes sysfs-Äquivalent zu sysctl?

ewwhite
quelle

Antworten:

4

Wenn ich es wäre, würde ich wahrscheinlich ein /etc/sysfs.confund ein /etc/init.d/sysfsutilsInit-Skript erstellen . Dann könnte ich alle meine sysfs-bezogenen Konfigurationen und Optionen von allem anderen trennen. Mit einem Init-Skript kann es unter Verwendung der Standard-Idiome für die Verwaltung von Diensten und Konfigurationen über SysV-Init-Skripte (einschließlich service sysfsutils [start|stop|reload|restart|status]unter RHEL / CentOS (mit ein wenig zusätzlicher Arbeit)) verwaltet und verarbeitet werden .

Selbst wenn ich mich nicht mit dem /etc/init.d/sysfsutilsSkript befasst hätte, würde ich die Optionen dennoch in /etc/sysfs.confein separates Skript einfügen und dann den Inhalt dieser Datei aufrufen / verarbeiten ( /etc/rc.localals letzte / faule Option).

Hinweis: Debian und Debian-basierte Distributionen (Ubuntu usw.) tun dies bereits und /etc/sysfs.confliefern eine Konfigurationsdatei und ein Init-Skript mit ihrem sysfsutils-Paket. Das Abrufen dieser beiden Dateien aus einer Debian / Ubuntu-Box (oder dem Debian-Quellpaket für sysfsutils) wäre wahrscheinlich ein guter Weg, um sie selbst zu replizieren.

Christopher Cashell
quelle
Es ist eine Option, aber ich hätte Angst vor Betriebssystemänderungen / -aktualisierungen, die diese Einstellungen möglicherweise beeinträchtigen könnten.
ewwhite
@ewwhite: Wenn Sie sicherstellen möchten, dass keine vom Hersteller bereitgestellten Betriebssystemaktualisierungen / -änderungen das System beeinträchtigen, können Sie nur unter /usr/localoder arbeiten /opt. Ich wäre wahrscheinlich bereit, es für eine kleine Anzahl von Maschinen (mit allen wichtigen Bits gesichert) zu versuchen. Für eine große Anzahl von Boxen würde ich das oben beschriebene Setup, jedoch unter /usr/local, mit Symlinks von /etc/bzw. duplizieren /etc/init.d. Und / oder ich würde wahrscheinlich ein RPM erstellen, um die Datei zu installieren / zu verteilen.
Christopher Cashell
5

Sie können auch udev-Regeln ausprobieren, je nachdem, was Sie festlegen möchten. Auf meinem System habe ich beispielsweise meine SSDs so eingestellt, dass sie den deadlineScheduler verwenden /etc/udev/rules.d/60-ssd-scheduler.rules, indem sie Folgendes enthalten:

# set deadline scheduler for non-rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"

Sie sollten in der Lage sein, alle sysfs-Attribute über den ATTR-Mechanismus abzugleichen.

Raman
quelle
Interessant. Ich habe das nie in Betracht gezogen.
ewwhite
Diese Regeln sehen gut aus. Warum versenden Distributionen diese nicht?
盐 友情 留 在 无 8
4

Probieren Sie das sysfsutilsPaket aus. Insbesondere /etc/sysfs.confsollte dabei helfen.

johnshen64
quelle
2
Eigentlich ist rc.local meiner Meinung nach auch keine schlechte Methode.
Johnshen64
Beachten Sie, dass /etc/sysfsutils.confdas Skript, das angewendet werden soll, nicht Teil des Upstream-Pakets ist (wie in Christophers Antwort erläutert). Es ist nur in einigen Distributionen vorhanden, nicht beispielsweise in Arch Linux. Ich habe systemdrc.local so konfiguriert, dass es nach einem sucht, und das auf meinem Arch-Desktop verwendet.
Peter Cordes
3

Für Fedora / RHEL / CentOS ist die Standardmethode zum Konfigurieren von sysfs und zum Beibehalten von Neustarts die Verwendung von optimiert. Tuned ist eine allgemeine System-Tuning-Infrastruktur. Erstellen Sie für sysfs- Parameter eine [sysfs]Zeilengruppe in Ihrer Konfigurationsdatei und geben Sie eine Zeile pro Variable an, die Sie festlegen möchten und die beim Neustart beibehalten wird.

Auch als Lennart Poettering wies darauf hin - systemd hat eine native Fähigkeit sysfs Einstellungen über Drop einen Ausschnitt in bereitzustellen/etc/tmpfiles.d/

Subhendu Ghosh
quelle
Dead Link: Fedorahosted ist jetzt im Ruhestand . tunedist sehr schwer zu googeln (verloren im Rauschen des gebräuchlichen englischen Wortes, das auch häufig verwendet wird, wenn über sysfs-Einstellungen gesprochen wird), aber eine schnelle Suche hat diese Seite darüber gefunden: docs.fedoraproject.org/en-US/Fedora / 20 / html /… .
Peter Cordes