This RRD was created on other architecture

Speichernutzung eines Servers aus Sicht von MuninIch überwache die Performancedaten der von mir kontrollierten Server zentral über Munin. Darüber habe ich in der Vergangenheit auch schon gebloggt. Munin erstellt wie so viele Tools seiner Art Graphen mit Hilfe der RRD-Tools vom oben genannten Schweizer.

Heute musste ich beim Umzug von einem (32bit) zum anderen (64bit) Server feststellen, dass die RRD-Datenbanken, die Munin über die Zeit erstellt hat, nicht zwischen den Architekturen kompatibel sind. Die im Betreff genannte Fehlermeldung „This RRD was created on another architecture“ war in den Logs zu finden und deutete schnell auf Probleme mit eben diesen 32bit Unterschied hin.

Kurze Suche bei Google und anschliessendes ‚man rrdpp‘ ergab, dass die rrdtools bereits eigenes Werkzeug zur Lösung dieses Problems bereitstellen. Mit ‚rrdtool dump $file.rrd > $file.xml‘ lassen sich die RRD-Daten in XML-Files exportieren und auf der neuen Architektur mit ‚rrdtool restore $file.xml > $file.rrd wieder importieren. Einziger kleiner Haken der das ganze dann doch etwas komplexer macht ist die große Anzahl an RRD-Files die Munin so anlegt. Bei ca. 10 zu überwachenden Hosts mit jeweils 20+ überwachten Diensten/Sensoren kommt da unterm Strich einiges zusammen. Dafür muss also eine Lösung in Form eines Shellscripts her. Ich hab‘ kurz gebastelt und dabei ist folgendes herausgekommen:

dump.sh:

#!/bin/bash
for f in `find /var/lib/munin -name '*.rrd' -print` ; do
f_xml=`dirname $f`/`basename $f .rrd`.xml
rrdtool dump "$f" > "${f_xml}"
chown root:0 "${f_xml}"
done

restore.sh:

#!/bin/bash
for f in `find /var/lib/munin -name '*.xml' -print` ; do
f_rrd=`dirname $f`/`basename $f .xml`.rrd
mv -f "${f_rrd}" "${f_rrd}.bak"
chown root:0 "${f_rrd}.bak"
rrdtool restore "$f" "${f_rrd}"
chown munin:munin "${f_rrd}"
done

Beide Scripts brauchen dann noch die richtigen Rechte (chmod +x) und müssen mit root-Rechten ausgeführt werden. 

Obligatorischer Warnhinweis: Von mir gibt es keinerlei Garantie für die Funktion bzw. Fehlerfreiheit der beiden Scripts, bei mir haben sie allerdings einwandfrei ihren Job erledigt und Munin läuft mit den ex/importierten Daten auf dem neuen 64bit Host freudig weiter. Andernfalls hätten die Performancedaten von über einem halben Jahr gefehlt.

4 Gedanken zu „This RRD was created on other architecture“

  1. Klasse Arbeit! Stehe vor genau der Problematik. Zum Glück war das gleich der erste Treffer bei Google :D
    Vielen Dank für die Veröffentlichung!

    Gruß
    Timm

Kommentar verfassen