Wer den Raspberry Pi nicht nur zum Experimentieren sondern im 24/7 Dauerbetrieb einsetzen will, der wird an der einen oder anderen Stelle auf die Grenzen des Mini-PCs stossen.
Wie man die Schreibzyklen auf die SD-Karte durch die richtigen SWAP- und Log-Einstellungen reduzieren und dadurch die Lebensdauer der SD-Karte bzw. SDHC-Karte erheblich verlängern kann zeigt diese Anleitung.
Einer der Hauptschwachpunkte des Raspberry Pi ist die Verwendung einer SD-Karte bzw. SDHC-Karte.
Diese ist nur für eine begrenzte Anzahl von Schreibzyklen ausgelegt, so dass sie im Dauerbetrieb früher oder später das zeitliche segnen wird.
Es bietet sich daher an, möglichst aktuelle Speicherkarten von Markenherstellern wie Sandisk oder Transcend zu verwenden, da die Angaben der Hersteller zu den maximalen Schreibzyklen in den letzten Jahren massiv zugenommen haben.
Vor ein paar Jahren waren die maximalen Schreibzyklen einer Class 4 Karte noch bei ca. 10.000, Class 6-10 kamen auf 100.000 und die neuesten Karten zum Teil über 2.000.000 Schreibzyklen (hängt natürlich immer vom genau verbauten Chip und nicht nur von der Class aber tendenziell sind die neuesten High Speed Karten technisch auch deutlich ausgereifter als frühere Karten).
Hat man mit der richtigen SD-Karte schonmal eine vernünftige Basis gelegt, gibt es folgende Möglichkeiten zur weiteren Optimierung:
1. Regelmässig erstellte Daten auslagern.
Wenn bestimmte Daten recht kurzzyklisch und regelmäßig erzeugt werden (z.B. Temperatur-Messdaten alle 10 Sekunden oder Fotos mit der Web-Cam alle 5 Minuten), dann sollten diese Daten besser direkt auf einen USB-Stick oder noch besser auf ein NAS (z.B. Synology NAS) oder einen Cloud-Speicher (z.B. Dropbox) geschrieben werden.
Dadurch nimmt die Belastung der SD-Karte durch Schreibvorgänge drastisch ab.
2. Schreibzugriffe des Systems in den RAM auslagern.
Aber auch wenn man keine besonderen Anwendungen nutzt, die häufige Schreibzugriffe erfordern, gibt es schon vom Raspbian-System aus zahlreiche Systemzugriffe auf die SD-Karte, insbesondere wenn Log-Dateien in /var/log geschrieben werden.
Diese Schreibzugriffe kann man von der SD-Karte wegnehmen und in eine RAM-Disk in den Arbeitsspeicher auslagern – natürlich mit der Einschränkung, dass die Daten verloren gehen, wenn der Raspberry Pi vom Strom entfernt wird.
Um die System-Schreibzugriffe nach /var/log und /var/run in den Arbeitsspeicher auszulagern, muss die fstab-Datei mit dem Befehl
sudo nano /etc/fstab
zum editieren geöffnet werden und durch folgende Einträge ergänzt werden:
none /var/run tmpfs size=5M,noatime 00
none /var/log tmpfs size=5M,noatime 00
Nach einem Reboot schreiben /var/log und /var/run nun in den Arbeitsspeicher.
3. Swapping deaktivieren.
Swapping ist im Prinzip eine äußerst smarte Lösung unter Linux, zumal dadurch ein (verlangsamter) Weiterbetrieb des Rechners möglich ist, wenn der Arbeitsspeicher erschöpft ist – dann schreibt Linux die Daten einfach auf die Festplatte.
Vor diesem Hintergrund sind Änderungen an den Swapping-Einstellungen mit Vorsicht zu geniessen.
Sie sind nur dann sinnvoll, wenn der Raspberry Pi so genutzt wird, dass der Arbeitsspeicher noch in großen Teilen zur Verfügung steht (was nur bei sehr einfachen Anwendungen der Fall ist).
Dann kann mit folgenden Befehlen das Swapping deaktiviert werden:
sudo dphys-swapfile swapoff
sudo dphys-swapfile uninstall
sudo update-rc.d dphys-swapfile remove
Vorteil dabei ist, dass die Schreibzugriffe für die Auslagerung auf die SD-Karte hierdurch weiter reduziert werden.
Fazit: Setzt man alle drei Tipps für den 24/7 Dauerbetrieb des Raspberry Pi um, lässt sich die Lebensdauer der SD-Karte deutlich erhöhen.