Optimierung:ramdisk anlegen

Aus IPFireWiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Wozu eine RamDisk

Warnung
Warnung

Dies Optimierung sollte nur der anwenden, der auch genügent Ram in seinem IPFire verbaut hat. Zu empfehlen wären hier mindesten 512 MB


Hinweis
Hinweis

Diese Anpassung kann auf allen IPFire-Systemen ab Version 2.0 angewand werden.


Vorteile

  • Das ist schnell und einfach erklärt, der Geschwindigkeits gewinn ist enorm.
  • Für IPFire die auf einer SD-Card installiert wurden, sind somit weniger Schreibzugriffe nötig, das lässt die SD-Card länger leben.

Nachteile

  • bei Stromausfall gehen die nicht gespeicherten Daten verloren.
  • weniger Arbeitsspeicher für den IPFire


Vorbereitung

Zuerst geht ihr mit Putty oder direkt am IPFire auf die Console und loggt euch als root ein. Als Nächtes gebt Ihr

du -sh /var/log/rrd/

ein. Daraufhin bekommt ihr einen Wert ausgegeben, diesen merken wir uns und geben 25 % drauf, dieses sollte der Richtwert für die Ramdisk sein.

Jetzt erstellen wir einen Ordner Namens "ramd", dies geschied mit dem Befehl

mkdir /media/ramd

Als Nächstes tragen wir einen Mount-Punkt in die "fstab" ein, dazu öffnen wir mit "MC" oder "winscp" die Datei fstab.

Datei
/etc/fstab

#
# file system  mount-point  type     options         dump  fsck
#                                                        order
/dev/hda1        /boot        ext2     defaults        1     2
/dev/hda2        swap         swap     pri=1           0     0
/dev/hda3        /            reiser4   defaults        1     1
/dev/hda4        /var         reiser4   defaults        1     1
proc           /proc        proc     defaults        0     0
sysfs          /sys         sysfs    defaults        0     0
devpts         /dev/pts     devpts   gid=4,mode=620  0     0
shm            /dev/shm     tmpfs    defaults        0     0
/dev/hdc1	/mnt/harddisk	auto	defaults	0	0
/dev/hdd1	/mnt/harddisk1	auto	defaults	0	0
none    /media/ramd    tmpfs    defaults,size=150M      0      0


Im Beispiel ist es der letzte Eintrag in der "fstab". Wichtig ist hier der Eintrag "size=150M", dieser gibt die Größe der RamDisk an.

Mit dem Befehl

mount -a

wird das erstellte Verzeichniss nach /media/ramd gemountet. Die Vorbereitungen sind abgeschlossen, nun geht es ans Eingemachte.

Anpassen von Dateien für die RamDisk

Warnung
Warnung

Zu Eurer eigenen Sicherheit und um im Notfall "Alles" rückgängig zu machen, legt von den zu ändernden Dateien eine Sicherheitskopie mittels cp dateiname dateiname.old an.


Sodel, da wollen wir mal. Bevor wir irgendeine Datei ändern stoppen wir den "collectd-Deamon" mit dem Befehl

/etc/init.d/collectd stop

Als Erstes ist die Datei "collectd.conf" an der Reihe. Dies wird von folgenden Inhalt

Datei
/etc/collectd.conf
<ein Auszug der Datei>
<Plugin rrdtool>
	DataDir "/var/log/rrd/collectd"
	CacheTimeout 300
	CacheFlush   900
</Plugin>


nach

Datei
/etc/collectd.conf
<ein Auszug der Datei>
<Plugin rrdtool>
	DataDir "/media/ramd/rrd/collectd"
</Plugin>


Wir speichern die Änderung und begeben uns, ohne über LOS zu gehen, zur nächsten Datei.


Als Zweites ist der collectd init Skript an der Reihe. Heir umfassen die Änderungen zwei Abschnitte. Wir bearbeiten also die Datei collectd von

Datei
/etc/init.d/collectd
<ein Auszug der Datei>
case "$1" in
	start)
		if [ ! -e /etc/sysconfig/lm_sensors ]; then
		    boot_mesg "Searching for Sensors..."
		    "yes" | /usr/sbin/sensors-detect > /dev/null
		    evaluate_retval


in

Datei
/etc/init.d/collectd
<ein Auszug der Datei>
case "$1" in
	start)
		boot_mesg "Copying rrd files to ramd..."
		rm -rf /media/ramd/*
		cp -pR /var/log/rrd/ /media/ramd/
		evaluate_retval
		if [ ! -e /etc/sysconfig/lm_sensors ]; then
		    boot_mesg "Searching for Sensors..."
		    "yes" | /usr/sbin/sensors-detect > /dev/null
		    evaluate_retval


Der Zweite Abschnitt wird wie folgt abgeändert.

Datei
/etc/init.d/collectd
<ein Auszug der Datei>
		boot_mesg "Stopping Collection daemon..."
		killproc /usr/sbin/collectd
		evaluate_retval
		;;

	restart)


Dies wird nach

Datei
/etc/init.d/collectd
<ein Auszug der Datei>
		boot_mesg "Stopping Collection daemon..."
		killproc /usr/sbin/collectd
		evaluate_retval
		boot_mesg "Save rrd files from ramd..."
		rm -rf /var/log/rrd/
		cp -pR /media/ramd/rrd/ /var/log/
		evaluate_retval
		;;

	restart)


geändert.


Die nächste Änderung umfast die Graphen für das WebInterface des IPFire. Geändert werden muß in der "graphs.pl", die sich in "/var/ipfire/" befindet, nur eine Zeile. Ich werde hier nur eine Datei als Beispiel machen, die Änderung ist immer die Selbe. Die beiden anderen Dateien befinden sich in "/usr/local/bin/", es sind die Dateien "makegraphs" und "qosd". Auch hier muß nur eine Zeile geändert werden.

Die Änderungen betreffen folgende Zeile

Datei
/var/ipfire/graphs.pl
<ein Auszug der Datei>
my $rrdlog = '/var/log/rrd';


Muß in

Datei
/var/ipfire/graphs.pl
<ein Auszug der Datei>
my $rrdlog = '/media/ramd/rrd';



Sichern von Dateien aus der RamDisk

Wer die Daten aus der RAM-Disk sichern möchte geht folgendermaßen vor. Im Beispiel werden wir alle 30 Minuten die Daten aus der RAM-Disk auf die Festplatte schreiben lassen. Dies macht zum Beipiel für Systemadministratoren Sinn, da so auch die Daten nache einem Stromausfall, zumindest teilweise, gesichert sind.

Um einen Cron-Job zu erzeugen bearbeiten wir die Datei "root.orig". Folgende Zeile muß eingefügt werden.

Datei
/var/spool/cron/root.orig
<ein Auszug der Datei>
# This entry in the root.ini will shut down the collectd-daemon, write the content of
# the ramdisk to disk and restart the daemon.
*/30 * * * *    /etc/init.d/collectd stop; /etc/init.d/collectd start


Hiermit wird angewiesen, das alle 30 Minutern der collectd-Doamon gestoppt und anschließend neu gestartet wird.

Abschluss

Sind alle Anpassungen vorgenommen, können wir den "collectd-Deamon" wieder starten, dies geschiet mit dem Befehl:

/etc/init.d/collectd start

Der Start sollte mit einem grünen OK bestätigt werden.

Nun muß auch noch der Cron-Job erneuert werden, dazu geben wir folgenden Befehl ein:

fcrontab -z

Ein Danke geht an Christian Schmidt der diese Optimierung zur Verfügung gestellt hatt.

Persönliche Werkzeuge